10/03/22 13:28:33 r/65A28k
>408
こんな感じです。 結構省略してるけど
%type <num> ty_keyword
%type <num> ty_exp
%type <num> ty_expr
%token <num> NUM
%token <string> KEYWORD
%left PLUS MINUS
%left MULT DIV MOD
%%
input:
| input ty_expr { ; }
ty_expr: KEYWORD '=' ty_exp ';' { printf $3 }
ty_keyword: KEYWORD { $$= getvalue( $1 ) ; }
| NUM { $$= $1 ; }
ty_exp: ty_keyword { $$= $1 ; }
| ty_exp '+' ty_exp %prec PLUS { $$= $1+ $3; }
| ty_exp '-' ty_exp %prec MINUS { $$= $1- $3 ; }
| ty_exp '*' ty_exp %prec MULT { $$= $1 * $3 ; }
| ty_exp '/' ty_exp %prec DIV { $$= $1/ $3 ; }
| ty_exp '%' ty_exp %prec MOD { $$= $1% $3 ; }