私は LiveScript 言語のパーサーに取り組んでおり、両方のオブジェクト プロパティ定義フォームを一緒に解析するのに問題がありkey: value
ます(+|-)key
。例えば:
prop: "val"
+boolProp
-boolProp
prop2: val2
私はkey: value
これで動作するフォームを持っています:
Expression ::= TestExpression
| ParenExpression
| OpExpression
| ObjDefExpression
| PropDefExpression
| LiteralExpression
| ReferenceExpression
PropDefExpression ::= Expression COLON Expression
ObjDefExpression ::= PropDefExpression (NEWLINE PropDefExpression)*
// ... other expressions
しかし、 orに追加しよ("+"|"-") IDENTIFIER
うとすると、左再帰の使用に関するエラーが発生します。これを行う(正しい)方法は何ですか?PropDefExpression
ObjDefExpression