Fix $or
[factor/jcg.git] / extra / peg / expr / expr.factor
blob8b10b4fc0ce2d926ceae826aca0eb5baeb4d51ff
1 ! Copyright (C) 2008 Chris Double.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel arrays strings math.parser sequences
4 peg peg.ebnf peg.parsers memoize math accessors ;
5 IN: peg.expr
7 EBNF: expr 
8 digit    = [0-9]            => [[ digit> ]]
9 number   = (digit)+         => [[ 10 digits>integer ]]
10 value    =   number 
11            | ("(" exp ")")  => [[ second ]]
13 fac      =   fac "*" value  => [[ first3 nip * ]]
14            | fac "/" value  => [[ first3 nip / ]]
15            | number
17 exp      =   exp "+" fac    => [[ first3 nip + ]]
18            | exp "-" fac    => [[ first3 nip - ]]
19            | fac
20 ;EBNF