PEG.js を使用して、いくつかの異なる形式の数字を認識したいと考えています。
number = integer
/ real
/ (integer/real) '^' (integer/real)
/ (integer/real) '^^' (integer/real)
real = [0-9]+ '.' [0-9]*
/ [0-9]* '.' [0-9]+
integer = [0-9]+
PEG.js は、一連の代替候補の前の方に部分一致がある場合、代替候補を探しません。ほとんどの数値は整数で始まり、そうでない場合は実数で始まります。各代替案を個別にテストするようにこれを書き直すにはどうすればよいですか? (ルールをより少ないルールにまとめることには興味がありません。)