Skip to content
Snippets Groups Projects
Commit b34c54f6 authored by Wilson Snyder's avatar Wilson Snyder
Browse files

Verilog-Perl: Add SV operators

git-svn-id: file://localhost/svn/Verilog-Perl/trunk/Verilog-Perl@46142 c99bdd1b-02e9-0310-b855-c9df8d5cb90a
parent 6f01f100
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,8 @@ indicates the contributor was also the author of the fix; Thanks!
* Verilog::Language 3.02*
*** Add SystemVerilog operators += -= etc.
*** Add specify operators => *> +=> +*> -=> -*>. [Mark Nodine]
*** Add SystemVerilog times (10ns, etc).
......
......@@ -203,6 +203,18 @@ void VParseBisonerror(const char *s) { VParseGrammar::bisonError(s); }
%token<str> yP_PLUSASTGT "+*>"
%token<str> yP_MINUSEQGT "-=>"
%token<str> yP_MINUSASTGT "-*>"
%token<str> yP_PLUSEQ "+="
%token<str> yP_MINUSEQ "-="
%token<str> yP_TIMESEQ "*="
%token<str> yP_DIVEQ "/="
%token<str> yP_MODEQ "%="
%token<str> yP_ANDEQ "&="
%token<str> yP_OREQ "|="
%token<str> yP_XOREQ "^="
%token<str> yP_SLEFTEQ "<<="
%token<str> yP_SRIGHTEQ ">>="
%token<str> yP_SSRIGHTEQ ">>>="
//********************
// Verilog op precedence
......@@ -974,6 +986,13 @@ specifyJunk: dlyTerm {} /* ignored */
| yP_PLUSEQGT {} | yP_PLUSASTGT {}
| yP_MINUSEQGT {} | yP_MINUSASTGT {}
| yP_PLUSEQ {} | yP_MINUSEQ {}
| yP_TIMESEQ {}
| yP_DIVEQ {} | yP_MODEQ {}
| yP_ANDEQ {} | yP_OREQ {}
| yP_XOREQ {}
| yP_SLEFTEQ {} | yP_SRIGHTEQ {} | yP_SSRIGHTEQ {}
| error {}
;
......
......@@ -411,6 +411,18 @@ escid \\[^ \t\f\r\n]+
<S05>{
"==?" { FL; VALTEXT; CALLBACK(operatorCb); return yP_WILDEQUAL; }
"!=?" { FL; VALTEXT; CALLBACK(operatorCb); return yP_WILDNOTEQUAL; }
"+=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_PLUSEQ; }
"-=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_MINUSEQ; }
"*=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_TIMESEQ; }
"/=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_DIVEQ; }
"%=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_MODEQ; }
"&=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_ANDEQ; }
"|=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_OREQ; }
"^=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_XOREQ; }
"<<=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_SLEFTEQ; }
">>=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_SRIGHTEQ; }
"<<<=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_SLEFTEQ; }
">>>=" { FL; VALTEXT; CALLBACK(operatorCb); return yP_SSRIGHTEQ; }
}
/* Identifiers and numbers */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment