1

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

0 回答 0