locals.parser: check for valid locals names.
parent
8d3acb68f5
commit
04a7a793d6
|
@ -11,8 +11,13 @@ SYMBOL: in-lambda?
|
||||||
: ?rewrite-closures ( form -- form' )
|
: ?rewrite-closures ( form -- form' )
|
||||||
in-lambda? get [ 1array ] [ rewrite-closures ] if ;
|
in-lambda? get [ 1array ] [ rewrite-closures ] if ;
|
||||||
|
|
||||||
|
ERROR: invalid-local-name name ;
|
||||||
|
|
||||||
|
: check-local-name ( name -- name )
|
||||||
|
dup { "]" "]!" } member? [ invalid-local-name ] when ;
|
||||||
|
|
||||||
: make-local ( name -- word )
|
: make-local ( name -- word )
|
||||||
"!" ?tail [
|
check-local-name "!" ?tail [
|
||||||
<local-reader>
|
<local-reader>
|
||||||
dup <local-writer> dup name>> ,,
|
dup <local-writer> dup name>> ,,
|
||||||
] [ <local> ] if
|
] [ <local> ] if
|
||||||
|
|
Loading…
Reference in New Issue