如何在CUP中表达可选令牌

时间:2018-05-05 15:06:47

标签: cup

我正在使用java CUP为一种小型编程语言生成一个LARL(1)解析器。是否有一个紧凑的表格来表达规则中的可选非终端?例如,在以下规则

statement ::= IDENT WHITE EQ WHITE value WHITE SEMICOLON | 
          IDENT WHITE EQ WHITE value SEMICOLON |
          IDENT WHITE EQ value SEMICOLON |
          IDENT EQ value SEMICOLON |
          block;

我重复四次基本相同的事情,这样做是很自然的

statement ::= IDENT (WHITE) EQ (WHITE) value (WHITE) SEMICOLON |
          block;

0 个答案:

没有答案