factor/extra/peg/expr/expr.factor

21 lines
628 B
Factor
Raw Normal View History

! Copyright (C) 2008 Chris Double.
! See http://factorcode.org/license.txt for BSD license.
USING: kernel arrays strings math.parser sequences
2008-04-28 22:19:14 -04:00
peg peg.ebnf peg.parsers memoize math accessors ;
IN: peg.expr
EBNF: expr
2008-03-30 00:23:11 -04:00
digit = [0-9] => [[ digit> ]]
number = (digit)+ => [[ 10 digits>integer ]]
value = number
| ("(" exp ")") => [[ second ]]
2008-03-30 00:23:11 -04:00
fac = fac "*" value => [[ first3 nip * ]]
| fac "/" value => [[ first3 nip / ]]
| number
2008-03-30 00:23:11 -04:00
exp = exp "+" fac => [[ first3 nip + ]]
| exp "-" fac => [[ first3 nip - ]]
| fac
;EBNF