小编tac*_*tac的帖子

使用Lemon Parser(LALR)生成计算器,如何从表达式中获取参数

我想从输入中获取参数。例如:Input:12+10。运行我的计算器之后。

我想得到12和10。我知道,我必须使用中的第四个参数Parse(pParser, hTokenID, sTokenData, pArg);,但是如何?

parser.y

%syntax_error{fprintf(stderr, "Syntax error\n");}
%left PLUS MINUS.
%left TIMES DIVIDE.
program ::= expr(A).{printf("Result = %d\n", A);}
expr(A) ::= expr(B) PLUS expr(C).{A = B + C; }
expr(A) ::= expr(B) MINUS expr(C). {A = B - C; }
expr(A) ::= expr(B) TIMES expr(C). {A = B * C; }
expr(A) ::= expr(B) DIVIDE expr(C). {if (C != 0)A = B / C;else fprintf(stderr,"divide by 0");}
expr(A) ::= LPAR expr(B) RPAR. {A …
Run Code Online (Sandbox Code Playgroud)

c sqlite lemon

1
推荐指数
1
解决办法
559
查看次数

标签 统计

c ×1

lemon ×1

sqlite ×1