diff --git a/extra/lisp/lisp.factor b/extra/lisp/lisp.factor index e051241a32..3dba8cfb1d 100644 --- a/extra/lisp/lisp.factor +++ b/extra/lisp/lisp.factor @@ -1,8 +1,16 @@ ! Copyright (C) 2008 James Cash ! See http://factorcode.org/license.txt for BSD license. -USING: kernel peg.ebnf peg.expr ; +USING: kernel peg.ebnf peg.expr math.parser sequences arrays ; IN: lisp -EBNF: expr -list = "(" ( atom | list )* ")" => [[ second 1array ]] +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 ]] ;EBNF \ No newline at end of file diff --git a/extra/lisp/tags.txt b/extra/lisp/tags.txt index 0ca0d1aa8c..eee3fba9aa 100644 --- a/extra/lisp/tags.txt +++ b/extra/lisp/tags.txt @@ -1 +1 @@ -Lisp languages +lisp