pasukon is a grammar language created in 2020 by Federico Ramirez.

#1377on PLDB | 2Years Old | 117Users |

0Books | 0Papers |

Try now: Web

JavaScript practical parser generator library using combinators

- the pasukon website
- pasukon is developed on GitHub and has 109 stars
- Read more about pasukon on the web: 1
- Have a question about pasukon not answered here? Open an issue explaining what you need.
- Edit this page

```
lex
match NUMBER /[0-9]+(?:\.[0-9]+)?/
match PLUS '+'
match MINUS '-'
match TIMES '*'
match DIV '/'
match POPEN '('
match PCLOSE ')'
ignore WHITESPACE /^\s+/
/lex
addition
| (subtraction as :lhs) then :PLUS then (subtraction as :rhs)
|> 'return $.lhs + $.rhs'
| subtraction
;
subtraction
| (multiplication as :lhs) then :MINUS then (multiplication as :rhs)
|> 'return $.lhs - $.rhs'
| multiplication
;
multiplication
| (division as :lhs) then :TIMES then (division as :rhs)
|> 'return $.lhs * $.rhs'
| division
;
division
| (expression as :lhs) then :DIV then (expression as :rhs)
|> 'return $.lhs / $.rhs'
| expression
;
expression
| :POPEN then (addition as :expr) then :PCLOSE
|> 'return $.expr'
| number
;
number
| :NUMBER 'return +$1'
;
start
| addition
;
```