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 ;
8 digit = [0-9] => [[ digit> ]]
9 number = (digit)+ => [[ 10 digits>integer ]]
11 | ("(" exp ")") => [[ second ]]
13 fac = fac "*" value => [[ first3 nip * ]]
14 | fac "/" value => [[ first3 nip / ]]
17 exp = exp "+" fac => [[ first3 nip + ]]
18 | exp "-" fac => [[ first3 nip - ]]