summaryrefslogtreecommitdiff
path: root/examples/calc.pest
blob: 383497391e12f39253be56a15f58de18341602cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
 program      =   { SOI ~ expr ~ EOI }
   expr       =   { prefix* ~ primary ~ postfix* ~ (infix ~ prefix* ~ primary ~ postfix* )* }
     infix    =  _{ add | sub | mul | div | pow }
       add    =   { "+" } // Addition
       sub    =   { "-" } // Subtraction
       mul    =   { "*" } // Multiplication
       div    =   { "/" } // Division
       pow    =   { "^" } // Exponentiation
     prefix   =  _{ neg }
       neg    =   { "-" } // Negation
     postfix  =  _{ fac }
       fac    =   { "!" } // Factorial
     primary  =  _{ int | "(" ~ expr ~ ")" }