Preproc: Fix error when macro call has commas in concatenate.

git-svn-id: file://localhost/svn/verilator/trunk/verilator@1071 77ca24e4-aefa-0310-84f0-b9a241c72d87
This commit is contained in:
Wilson Snyder 2008-06-04 15:39:44 +00:00
parent cc6c71eb37
commit bb038e86a2
2 changed files with 7 additions and 1 deletions

View File

@ -7,6 +7,8 @@ indicates the contributor was also the author of the fix; Thanks!
**** Fix syntax error when "`include `defname" is ifdefed. [John Dickol]
**** Fix error when macro call has commas in concatenate. [John Dickol]
**** Fix compile errors under Fedora 9, GCC 4.3.0. [by Jeremy Bennett]
* Verilator 3.664 2008/05/08

View File

@ -141,6 +141,10 @@ psl [p]sl
<ARGMODE><<EOF>> { yyerrorf("EOF in define argument list\n"); yyleng = 0; yyterminate(); }
<ARGMODE>{crnl} { linenoInc(); yytext=(char*)"\n"; yyleng=1; return(VP_WHITE); }
<ARGMODE>{quote} { yy_push_state(STRMODE); yymore(); }
<ARGMODE>[{\[] { V3PreLex::s_currentLexp->m_parenLevel++;
appendDefValue(yytext,yyleng); }
<ARGMODE>[}\]] { V3PreLex::s_currentLexp->m_parenLevel--;
appendDefValue(yytext,yyleng); }
<ARGMODE>[(] { V3PreLex::s_currentLexp->m_parenLevel++;
// Note paren level 0 means before "(" of starting args
// Level 1 means "," between arguments
@ -162,7 +166,7 @@ psl [p]sl
yy_pop_state(); return (VP_DEFARG);
}}
<ARGMODE>"`"{symb} { return (VP_DEFREF); } /* defref in defref */
<ARGMODE>[^\/\*\n\r\\(,)\"`]+ |
<ARGMODE>[^\/\*\n\r\\(,){}\[\]\"`]+ |
<ARGMODE>. { appendDefValue(yytext,yyleng); }
/* One line comments. */