这是有效的BNF语法吗?

时间:2014-10-29 10:05:14

标签: bnf

我刚刚写了一些BNF而且我是noobie,所以我想和你们一起检查这是否是有效的语法,并且提供的输入是否可以运行?

BNF:

<expr> -> <id>  <id> + <id> +  | <id>  <id> + <id> - | <id>  <id> - <id> + | <id>  <id> - <id> -
<id> ->  A | B | C

我的后缀输入:

A B + C -

这会有用吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

符号与表达式之间的有效分隔符为::=而不是->。 查看wikipedia了解详情。

无论如何,更好的语法看起来像这样:

<expr> ::= <id> [ <id> [ <operator> ]? ]{2}
<operator> ::= '-' | '+'
<id> ::= [ '0' .. '9' | 'A' .. 'Z' | 'a' .. 'z' ]+