繁体   English   中英

用于简单算术表达式的上下文无关语法修改

[英]Context free grammar modification for simple arithmetic Expression

给予CFG

E->TE'
E'->+TE'|-TE'|null
T->FT'
T'->*FT'|/FT'|null
F->(E)|number

如何在C程序中实现此CFG,以便它在表达式中接受多位数字输入。例如-我想在上述CFG转换后的代码中输入320 / 40-12 * 2 + 1 * 32。

谢谢

添加规则:

number -> digit | digit number
digit -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

现在,用C语言编写一个解析器。由于这是一个简单的LL(1)语法,最简单的方法是递归下降-为语法中的每个非终结符编写一个函数,以识别输入中的非终结符并消耗掉它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM