我有以下語法
Arithmetic:
Term < Factor (Add / Sub)*
Add < " " Factor
Sub < "-" Factor
Factor < Primary (Mul / Div)*
Mul < "*" Primary
Div < "/" Primary
Primary < Parens / Neg / Pos / Number / Variable
Parens < "(" Term ")"
Neg < "-" Primary
Pos < " " Primary
Dot < "."
Decimal < ~(digit Dot? digit*)
Integer < digits
Number < Integer / Decimal
Function < identifier (space Primary)
Variable <- identifier
大多數一切都有效,除非我嘗試決議小數(例如0.5),否則它不起作用。在 PEG 中定義十進制決議器的正確語法是什么?
我在 d-lang 中使用 Pegged 庫。有關檔案,請參見此處。
uj5u.com熱心網友回復:
由于訂購了 PEG 替代品,您需要撰寫:
Number < Decimal / Integer
如所寫,Integer / Decimal將始終匹配Integer數字開頭的 ,因此Decimal永遠不會被嘗試。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/383606.html
上一篇:無法弄清楚如何阻止字典鍵覆寫自己
下一篇:從excel中提取多個表
