小さなプログラミング言語用の LARL(1) パーサーを生成するために Java CUP を使用しています。ルールでオプションの非終端記号を表現するコンパクトな形式はありますか? たとえば、次のルールでは
statement ::= IDENT WHITE EQ WHITE value WHITE SEMICOLON |
IDENT WHITE EQ WHITE value SEMICOLON |
IDENT WHITE EQ value SEMICOLON |
IDENT EQ value SEMICOLON |
block;
次のようなものを置くのが自然な場合、本質的に同じことを4回繰り返します
statement ::= IDENT (WHITE) EQ (WHITE) value (WHITE) SEMICOLON |
block;