繁体   English   中英

YACC语法变量的可选前缀

[英]YACC Grammar Optional prefix on a variable

我想在我的变量之前添加一个可选字母,例如2p,其中p是ID,2是NUM。 我的ID只匹配字母,我想保持这种方式(即我不想更改ID的正则表达式)。 我尝试过类似的东西,但它不起作用:

var
    : NUM ID
    ;

这不起作用,因为NUM只匹配数字。 我尝试更改NUM的正则表达式以匹配空字符串(我认为这是你如何做到的):

num     ({digits}{fraction}{exponent}|"")

但是id不起作用。 我也试过引入另一个这样的规则:

var
  : number ID;

number:
  : NUM
  | ''
  ;

我猜yacc中有一些符号来处理我可以放入语法的空字符串,但我不确定。 任何帮助都会得到帮助。

我在想它,这样做会:

var
: ID
| NUM ID
;

尝试这个

var
    : NUM ID   {...}
    | ID       {...}
;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM