Skip to content

Instantly share code, notes, and snippets.

@huacnlee
Created October 25, 2022 06:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save huacnlee/ddf9aade4c3cdebcc56ac4757563fb34 to your computer and use it in GitHub Desktop.
Save huacnlee/ddf9aade4c3cdebcc56ac4757563fb34 to your computer and use it in GitHub Desktop.
Pest grammar example for match nested parn
(hello(world) 你好 (var))
(hello2(world))
grammar = { SOI ~ expression | newline ~ EOI }
expression = _{ paren }
paren = { opening_paren ~ paren* ~ closing_paren | inner_paren }
inner_paren = { (!(newline | opening_paren | closing_paren) ~ ANY)+ }
opening_paren = { "(" }
closing_paren = { ")" }
newline = _{ "\n" | "\r\n" }
- grammar > paren
- opening_paren: "("
- paren > inner_paren: "hello"
- paren
- opening_paren: "("
- paren > inner_paren: "world"
- closing_paren: ")"
- paren > inner_paren: " 你好 "
- paren
- opening_paren: "("
- paren > inner_paren: "var"
- closing_paren: ")"
- closing_paren: ")"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment