我想解析例如:
const unsigned int varname;
限定词的数量未知,并且限定词的列表也未知(因为可以使用using
引入新的限定词)。
但是使用PEG语法
declaration <- qualifier* varname ';'
qualifier <- identifier
varname <- identifier
不起作用,因为限定符*由于匹配而消耗了变量名。有没有办法做到这一点,还是我必须在归约规则中手动提取最后一个标识符?
答案 0 :(得分:0)
好吧,我明白了。
declaration <- qualifier* varname ';'
qualifier <- !varname identifier
varname <- identifier &';'
identifier <- [a-zA-Z_] [a-zA-Z_0-9]* ws
ws <- ' '*