2008-04-17 02:37:03 -04:00
|
|
|
! Copyright (C) 2008 James Cash
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2008-04-20 01:41:16 -04:00
|
|
|
USING: kernel peg.ebnf peg.expr math.parser sequences arrays ;
|
2008-04-17 12:37:31 -04:00
|
|
|
IN: lisp
|
2008-04-17 02:37:03 -04:00
|
|
|
|
2008-04-20 01:41:16 -04:00
|
|
|
EBNF: lisp-expr
|
|
|
|
digit = [0-9] => [[ digit> ]]
|
|
|
|
integer = (digit)+ => [[ 10 digits>integer ]]
|
|
|
|
float = (digit)+ "." (digit)* => [[ 3 head 3append string>number ]]
|
|
|
|
number = integer
|
|
|
|
| float
|
|
|
|
identifier = [a-zA-Z] ([a-zA-Z0-9])*
|
|
|
|
atom = number
|
|
|
|
| identifier
|
|
|
|
list = "(" (atom|list)* ")" => [[ second 1array ]]
|
2008-04-17 12:37:31 -04:00
|
|
|
;EBNF
|