Fixed counting verilog line numbers for "// synopsys translate_off" sections
authorClifford Wolf <clifford@clifford.at>
Wed, 30 Jul 2014 18:18:48 +0000 (20:18 +0200)
committerClifford Wolf <clifford@clifford.at>
Wed, 30 Jul 2014 18:18:48 +0000 (20:18 +0200)
frontends/verilog/lexer.l
frontends/verilog/preproc.cc

index 0839f5cf9575bfaa77e941820c4fb38a042c85e2..00deeb0b45c558385308d505d27aece63f378f6c 100644 (file)
@@ -74,21 +74,21 @@ namespace VERILOG_FRONTEND {
 
 %%
 
-"`file_push "[^\n]* {
+<INITIAL,SYNOPSYS_TRANSLATE_OFF>"`file_push "[^\n]* {
        fn_stack.push_back(current_filename);
        ln_stack.push_back(frontend_verilog_yyget_lineno());
        current_filename = yytext+11;
        frontend_verilog_yyset_lineno(0);
 }
 
-"`file_pop"[^\n]*\n {
+<INITIAL,SYNOPSYS_TRANSLATE_OFF>"`file_pop"[^\n]*\n {
        current_filename = fn_stack.back();
        fn_stack.pop_back();
        frontend_verilog_yyset_lineno(ln_stack.back());
        ln_stack.pop_back();
 }
 
-"`line"[ \t]+[^ \t\r\n]+[ \t]+\"[^ \r\n]+\"[^\r\n]*\n {
+<INITIAL,SYNOPSYS_TRANSLATE_OFF>"`line"[ \t]+[^ \t\r\n]+[ \t]+\"[^ \r\n]+\"[^\r\n]*\n {
        char *p = yytext + 5;
        while (*p == ' ' || *p == '\t') p++;
        frontend_verilog_yyset_lineno(atoi(p));
index 9ff68822ed52b0e54fb75f0e06f69fa7f3667a4c..2cfa8ca762f443b04468810255625af126eea1de 100644 (file)
@@ -300,7 +300,7 @@ std::string frontend_verilog_preproc(FILE *f, std::string filename, const std::m
                                input_file(fp, fn);
                                fclose(fp);
                        } else
-                               output_code.push_back("`file_notfound " + fn + "\n");
+                               output_code.push_back("`file_notfound " + fn);
                        continue;
                }