den Block wie diese Das Element der beiden Aussagen sind gegenseitig mit peg.js referenzierten
compound_stat
= '{' decl exp_stat '}'
exp_stat
= exp ';'
decl
= decl_specs id ';'
decl_specs
= 'int'/'float'
id
=name:[a-z]+ {return name.join("");}
exp_stat
= left:multiplicative "+" right:exp_stat { right=right+1;return left + right; }
/multiplicative
multiplicative
= left:primary "*" right:multiplicative { return left * right; }
/primary
primary
= integer
/id
/"(" exp_stat:exp_stat ")" { return exp_stat; }
integer "integer"
= digits:[0-9]+ { return parseInt(digits.join(""), 10); }
wollen
definieren, um das erreichen {float a = 3 ist, A * 3 + 1;} return i Ich weiß nicht, wie ich die ID in zwei Anweisungen referenzieren soll, die "decl" und "exp_stat" sind. Wer kann ein Beispiel geben?
Wissen Sie, dass Sie zwei verschiedene Regeln namens 'exp_stat' haben? –
Ich machte einen Fehler. Es sollte exp sein – freyone