Skip to content

Commit 4964373

Browse files
committed
Added Spin2 v51 POW keyword
1 parent a3302be commit 4964373

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

frontends/lexer.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2502,6 +2502,7 @@ struct reservedword_soft {
25022502
{ "exp10", SP_EXP10, 51, 0 },
25032503
{ "ln", SP_LOG, 51, 0 },
25042504
{ "exp", SP_EXP, 51, 0 },
2505+
{ "pow", SP_POW, 51, 0 },
25052506
};
25062507

25072508
struct reservedword basic_keywords[] = {

frontends/spin/spin.y

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,7 @@ SpinDeclareStruct(AST *ident, AST *defs)
558558
%token SP_EXP10 "EXP10"
559559
%token SP_LOG "LN"
560560
%token SP_EXP "EXP"
561+
%token SP_POW "POW"
561562

562563
%token SP_FADD "+."
563564
%token SP_FSUB "-."
@@ -592,7 +593,7 @@ SpinDeclareStruct(AST *ident, AST *defs)
592593
%left '-' '+' SP_FADD SP_FSUB /* priority 8 */
593594
%left '*' '/' SP_FMUL SP_FDIV SP_REMAINDER SP_HIGHMULT SP_UNSHIGHMULT SP_SCAS SP_UNSDIV SP_UNSMOD SP_FRAC /* priority 7 */
594595
%left '|' /* priority 6 */
595-
%left '^' /* priority 5 */
596+
%left '^' SP_POW /* priority 5 */
596597
%left '&' /* priority 4 */
597598
%left SP_ROTL SP_ROTR SP_SHL SP_SHR SP_SAR SP_REV SP_REV2 SP_SIGNX SP_ZEROX /* priority 3 */
598599
%left SP_NEGATE SP_FNEGATE SP_BIT_NOT SP_ABS SP_FABS SP_SQRT SP_FSQRT SP_DECODE SP_ENCODE SP_ENCODE2 SP_ALLOCA SP_ONES SP_BMASK SP_QLOG SP_QEXP /* priority 2 in Spin2 */
@@ -1887,6 +1888,8 @@ expr:
18871888
{ $$ = AstOperator(K_FMUL, $1, $3); }
18881889
| expr SP_FDIV expr
18891890
{ $$ = AstOperator(K_FDIV, $1, $3); }
1891+
| expr SP_POW expr
1892+
{ $$ = AstOperator(K_POWER, $1, $3); }
18901893
| expr '+' '=' expr %prec SP_ASSIGN
18911894
{ $$ = AstOpAssign('+', $1, $4); }
18921895
| expr '-' '=' expr %prec SP_ASSIGN

0 commit comments

Comments
 (0)