summaryrefslogtreecommitdiffstats
path: root/src/vhd2vl.y
diff options
context:
space:
mode:
authorLarry Doolittle <ldoolitt@recycle.lbl.gov>2017-11-22 10:08:09 -0800
committerLarry Doolittle <ldoolitt@recycle.lbl.gov>2017-11-22 10:08:09 -0800
commit43665d04301c179b5f1269e76e8f45f20d9cd34b (patch)
tree499e06f47d90b86548fc097771b10f49a95fb24e /src/vhd2vl.y
parent8ca55ba30e7c52717350ef5b010285052cc9f76d (diff)
parentdfd920bf774a5d488aaed8a5269296bc86ed42c4 (diff)
downloadvhdl2vl-43665d04301c179b5f1269e76e8f45f20d9cd34b.tar.gz
vhdl2vl-43665d04301c179b5f1269e76e8f45f20d9cd34b.zip
Merge branch 'exponentiation'
Diffstat (limited to 'src/vhd2vl.y')
-rw-r--r--src/vhd2vl.y7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/vhd2vl.y b/src/vhd2vl.y
index 2168073..f0efb24 100644
--- a/src/vhd2vl.y
+++ b/src/vhd2vl.y
@@ -740,7 +740,7 @@ slist *emit_io_list(slist *sl)
%token <txt> SELECT OTHERS PROCESS VARIABLE CONSTANT
%token <txt> IF THEN ELSIF ELSE CASE WHILE
%token <txt> FOR LOOP GENERATE
-%token <txt> AFTER AND OR XOR MOD
+%token <txt> AFTER AND OR XOR MOD POW
%token <txt> LASTVALUE EVENT POSEDGE NEGEDGE
%token <txt> STRING NAME RANGE NULLV OPEN
%token <txt> CONVFUNC_1 CONVFUNC_2 BASED FLOAT LEFT
@@ -784,6 +784,7 @@ slist *emit_io_list(slist *sl)
%left '<' '>' BIGEQ LESSEQ NOTEQ EQUAL
%left '+' '-' '&'
%left '*' '/'
+%left POW
%right UMINUS UPLUS NOTL NOT
%error-verbose
@@ -2219,6 +2220,7 @@ expr : signal {
| '+' expr %prec UPLUS {$$=addexpr(NULL,'p'," +",$2);}
| expr '+' expr {$$=addexpr($1,'+'," + ",$3);}
| expr '-' expr {$$=addexpr($1,'-'," - ",$3);}
+ | expr POW expr {$$=addexpr($1,'*'," ** ",$3);}
| expr '*' expr {$$=addexpr($1,'*'," * ",$3);}
| expr '/' expr {$$=addexpr($1,'/'," / ",$3);}
| expr MOD expr {$$=addexpr($1,'%'," % ",$3);}
@@ -2415,6 +2417,9 @@ simple_expr : signal {
| simple_expr '-' simple_expr {
$$=addexpr($1,'-'," - ",$3);
}
+ | simple_expr POW simple_expr {
+ $$=addexpr($1,'*'," ** ",$3);
+ }
| simple_expr '*' simple_expr {
$$=addexpr($1,'*'," * ",$3);
}
OpenPOWER on IntegriCloud