Fixing bug with quoted expressions for lisp.parser
parent
6899bb2898
commit
f82cb061f5
|
@ -74,3 +74,7 @@ IN: lisp.parser.tests
|
||||||
{ { T{ lisp-symbol f "quote" } T{ lisp-symbol f "foo" } } } [
|
{ { T{ lisp-symbol f "quote" } T{ lisp-symbol f "foo" } } } [
|
||||||
"'foo" lisp-expr cons>seq
|
"'foo" lisp-expr cons>seq
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
{ { 1 2 { T{ lisp-symbol { name "quote" } } { 3 4 } } 5 } } [
|
||||||
|
"(1 2 '(3 4) 5)" lisp-expr cons>seq
|
||||||
|
] unit-test
|
|
@ -35,7 +35,7 @@ atom = number
|
||||||
| identifier
|
| identifier
|
||||||
| string
|
| string
|
||||||
s-expression = LPAREN (list-item)* RPAREN => [[ second seq>cons ]]
|
s-expression = LPAREN (list-item)* RPAREN => [[ second seq>cons ]]
|
||||||
list-item = _ ( atom | s-expression ) _ => [[ second ]]
|
list-item = _ ( atom | s-expression | quoted ) _ => [[ second ]]
|
||||||
quoted = squote list-item => [[ second nil cons "quote" <lisp-symbol> swap cons ]]
|
quoted = squote list-item => [[ second nil cons "quote" <lisp-symbol> swap cons ]]
|
||||||
expr = list-item | quoted
|
expr = list-item
|
||||||
;EBNF
|
;EBNF
|
Loading…
Reference in New Issue