标签: pest

使用 Pest.rs,如何在关键字后允许出现非重要空格?

我有以下 Pest ( https://pest.rs ) 语法

name = {ASCII_ALPHA+}
fragment = { "fragment" ~ name }
Run Code Online (Sandbox Code Playgroud)

当我尝试fragment name使用它进行解析时,我收到此错误:

 --> 1:9
  |
1 | fragment name
  |         ^---
  |
  = expected name
Run Code Online (Sandbox Code Playgroud)

whitespace rust pest

4
推荐指数
1
解决办法
860
查看次数

Pest 没有像我期望的那样解析递归语法

我正在使用pest crate 在 Rust 中实现递归语法:

id = _{ ASCII_ALPHA_LOWER ~ (ASCII_ALPHANUMERIC|"_")* }
integer = _{ (ASCII_NONZERO_DIGIT ~ ASCII_DIGIT*)|"0" }
real = _{ ((integer ~ "." ~ ASCII_DIGIT*) | (integer? ~ "." ~ ASCII_DIGIT+)) ~ (("e"|"E") ~ ("-"|"+")? ~ ASCII_DIGIT+)? }

unaryop = _{ "sin"|"cos"|"tan"|"exp"|"ln"|"sqrt" }

inner_exp = _{ real|integer|"pi"|id }

exp = { SOI ~ ( inner_exp | (exp ~ ( "+"|"-"|"*"|"/"|"^" ) ~ inner_exp) | ("-" ~ exp) | ("(" ~ exp ~ ")") | (unaryop ~ "(" …
Run Code Online (Sandbox Code Playgroud)

parsing rust pest

2
推荐指数
1
解决办法
1708
查看次数

标签 统计

pest ×2

rust ×2

parsing ×1

whitespace ×1