]> gitweb.factorcode.org Git - factor.git/blob - extra/peg/expr/expr.factor
factor: trim more using lists.
[factor.git] / extra / peg / expr / expr.factor
1 ! Copyright (C) 2008 Chris Double.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel math math.parser multiline peg.ebnf sequences ;
4 IN: peg.expr
5
6 EBNF: expr [=[
7 number   = ([0-9])+         => [[ string>number ]]
8 value    =   number
9            | ("(" exp ")")  => [[ second ]]
10
11 fac      =   fac "*" value  => [[ first3 nip * ]]
12            | fac "/" value  => [[ first3 nip / ]]
13            | value
14
15 exp      =   exp "+" fac    => [[ first3 nip + ]]
16            | exp "-" fac    => [[ first3 nip - ]]
17            | fac
18 ]=]