我正在尝试使用Superpower创建ANSI C解析器,但是我在使用某些解析器(特别是递归解析器)方面费了很多力气。
例如,我要遵循的ANSI C语法定义:
<unary-expression> ::= <postfix-expression>
| ++ <unary-expression>
| -- <unary-expression>
| <unary-operator> <cast-expression>
| sizeof <unary-expression>
| sizeof <type-name>
<postfix-expression> ::= <primary-expression>
| <postfix-expression> [ <expression> ]
| <postfix-expression> ( {<assignment-expression>}* )
| <postfix-expression> . <identifier>
| <postfix-expression> -> <identifier>
| <postfix-expression> ++
| <postfix-expression> --
<primary-expression> ::= <identifier>
| <constant>
| <string>
| ( <expression> )
是否存在为此类表达创建组合子的一般规则?
我要遵循的语法是:ANSI C Grammar in BNF