我正在使用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;