diff --git a/spsil.y b/spsil.y index b4792c9..5380dca 100644 --- a/spsil.y +++ b/spsil.y @@ -7,8 +7,8 @@ { struct tree *n; } -%token ALIAS DEFINE DO ELSE ENDIF ENDWHILE IF IRETURN LOAD STORE STRCMP STRCPY THEN WHILE REG NUM ASSIGNOP ARITHOP1 ARITHOP2 RELOP LOGOP NOTOP ID BREAK CONTINUE -%type IF IRETURN LOAD STORE STRCMP STRCPY WHILE REG NUM ASSIGNOP ARITHOP1 ARITHOP2 RELOP LOGOP NOTOP ID stmtlist stmt expr ids ifpad whilepad BREAK CONTINUE +%token ALIAS DEFINE DO ELSE ENDIF ENDWHILE IF IRETURN LOAD STORE STRCMP STRCPY THEN WHILE HALT REG NUM ASSIGNOP ARITHOP1 ARITHOP2 RELOP LOGOP NOTOP ID BREAK CONTINUE +%type IF IRETURN LOAD STORE STRCMP STRCPY WHILE HALT REG NUM ASSIGNOP ARITHOP1 ARITHOP2 RELOP LOGOP NOTOP ID stmtlist stmt expr ids ifpad whilepad BREAK CONTINUE %left LOGOP %left RELOP %left ARITHOP1 // + and - @@ -115,7 +115,11 @@ stmt: STRCPY '(' ids ',' ids ')' ';' { } $$=$1; } + |HALT ';' { + $$=$1; + } ; + expr: expr ARITHOP1 expr { $$=create_tree($2,$1,$3,NULL);