PEGJSチュートリアルからの引用:
パーサーを生成するには、PEG.buildParser メソッドを呼び出し、文法をパラメーターとして渡します。
var parser = PEG.buildParser("start = ('a' / 'b')+");
私の文法はもう少し複雑です:
start
= additive
additive
= left:multiplicative "+" right:additive { return left + right; }
/ multiplicative
multiplicative
= left:primary "*" right:multiplicative { return left * right; }
/ primary
primary
= integer
/ "(" additive:additive ")" { return additive; }
integer "integer"
= digits:[0-9]+ { return parseInt(digits.join(""), 10); }
PEG.buildParser
文法の開始規則、つまりに合格する必要がadditive
ありますが、正しく理解できません。PEG.buildParser(additive)
またはと書く
PEG.buildParser(start)
と、FireBug は次のように言いました
SyntaxError: Expected "=" or string but end of input found
。私が書くPEG.buildParser(start = additive)
と、私は得GrammarError: Referenced rule "additive" does not exist
ます。私の文法を渡す正しい方法は何ですか?