私は 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うとすると、左再帰の使用に関するエラーが発生します。これを行う(正しい)方法は何ですか?PropDefExpressionObjDefExpression