编译原理中无符号整数/无符号偶数的文法是什么?

能简单解释一下吗?谢谢

无符号整数:
S->Sn,S->ε,n->0..9
无符号偶数:
S->Ae,A->An,e->0|2|4|6|8,n->0..9

=================================
看看书吧,S代表文法的开始符号,语言从它开始,
比如S->Sn,表示S可以用“产生式”右边的符号替换,即可从开始得到:
S->Snn
这就让它增长了。
ε表示空。
n->0..9更常见的写法是
n->0|1|2|3|4|5|6|7|8|9,
这里|表示析取。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-07

无符号整数: 开头不能为 0 的任意长度的数字串

S -> TE                         // S 表示以[1-9]开头的 任意长度的字符串, 也就是无符号整数啦。
E -> ED | ε                    // E表示任意长度数字串 或 空串
D -> T | 0                      // D表示[0-9]的终结符
T -> 1 | ... | 9                // T表示[1-9]的终结符


无符号偶数:  以0, 2, 4, 6, 8 结尾的任意长度的数字串。

S -> ET                         // S 表示以0 2 4 6 8 结尾的任意长度的数字串。
E -> Ed | ε                    // E 表示任意长度的数字串 或 空串。
D -> 0 | 1 | 2 | ...| 9         // D 表示[0-9]中任意一个数字。
T -> 0 | 2 | 4 | 6 | 8          // T 表示偶数单个数字。

相似回答