diff --git a/src/verilog.l b/src/verilog.l index 5f9264ba7..811c32d03 100644 --- a/src/verilog.l +++ b/src/verilog.l @@ -568,6 +568,12 @@ escid \\[^ \t\f\r\n]+ "~&" {yylval.fileline = CRELINE(); return yP_NAND;} "~|" {yylval.fileline = CRELINE(); return yP_NOR;} "->" {yylval.fileline = CRELINE(); return yP_MINUSGT;} + "=>" {yylval.fileline = CRELINE(); return yP_EQGT; } + "*>" {yylval.fileline = CRELINE(); return yP_ASTGT; } + "+=>" {yylval.fileline = CRELINE(); return yP_PLUSEQGT; } + "+*>" {yylval.fileline = CRELINE(); return yP_PLUSASTGT; } + "-=>" {yylval.fileline = CRELINE(); return yP_MINUSEQGT; } + "-*>" {yylval.fileline = CRELINE(); return yP_MINUSASTGT; } } /* Verilog 2001 Operators */ diff --git a/src/verilog.y b/src/verilog.y index 8761a802b..b4b8b9ae9 100644 --- a/src/verilog.y +++ b/src/verilog.y @@ -248,6 +248,12 @@ class AstSenTree; %token yP_PLUSCOLON "+:" %token yP_MINUSCOLON "-:" +%token yP_EQGT "=>" +%token yP_ASTGT "*>" +%token yP_PLUSEQGT "+=>" +%token yP_PLUSASTGT "+*>" +%token yP_MINUSEQGT "-=>" +%token yP_MINUSASTGT "-*>" %token yPSL_BRA "{" %token yPSL_KET "}" @@ -1132,6 +1138,9 @@ specifyJunk: dlyTerm {} /* ignored */ | yPSL_KET {} | yP_OR_MINUS_GT {} | yP_OR_EQ_GT {} + | yP_EQGT {} | yP_ASTGT {} + | yP_PLUSEQGT {} | yP_PLUSASTGT {} + | yP_MINUSEQGT {} | yP_MINUSASTGT {} | error {} ;