我刚刚写了一些BNF而且我是noobie,所以我想和你们一起检查这是否是有效的语法,并且提供的输入是否可以运行?
BNF:
<expr> -> <id> <id> + <id> + | <id> <id> + <id> - | <id> <id> - <id> + | <id> <id> - <id> -
<id> -> A | B | C
我的后缀输入:
A B + C -
这会有用吗?提前谢谢。
答案 0 :(得分:0)
符号与表达式之间的有效分隔符为::=
而不是->
。
查看wikipedia了解详情。
无论如何,更好的语法看起来像这样:
<expr> ::= <id> [ <id> [ <operator> ]? ]{2}
<operator> ::= '-' | '+'
<id> ::= [ '0' .. '9' | 'A' .. 'Z' | 'a' .. 'z' ]+