PEG
Parsing Expression Grammar
PEGに曖昧さは存在しない
|(又は)とかがない
正しい構文木は常に1つ
逆に
自然言語の多義性を、そのまま複数の構文木が可能である、という形で形式化するのには向かない。ref 字句ルールと構文ルールを同時に定義できる
BNFの|と似ているものに\がある
「又は」ではなく、「左辺の解析が成功すれば、右辺を解析」を表す
並び: e1 e2
do e1; e2
選択: e1 / e2
e1 <|> e2
ゼロ個以上: e*
many e
1個以上: e+
many1 e
省略可能: e?
AND述語: &e
try e
NOT述語: !e
notFollowedBy e
実装
PEG.js
参考
rustで作る