Author: bernhard
Date: Wed May 30 11:48:55 2007
New Revision: 18692
Modified:
trunk/languages/lisp/read.pir
Log:
[languages/lisp]
_FUNCTION_CALL seems to return a single PMC or null
Modified: trunk/languages/lisp/read.pir
==============================================================================
--- trunk/languages/lisp/read.pir (original)
+++ trunk/languages/lisp/read.pir Wed May 30 11:48:55 2007
@@ -2,6 +2,7 @@
.sub _read
.param pmc args
+
.local pmc readmacros
.local pmc readtable
.local pmc readcase
@@ -54,16 +55,16 @@
.local pmc mchar
macro = readmacros[char] # Get the readmacro we're calling
+
.STRING(mchar, char)
.LIST_2(margs, istream, mchar) # Create a list of args to pass in
# VALID_IN_PARROT_0_2_0 retv = _FUNCTION_CALL(macro, margs) # Call
the readmacro
+ null retv
+ retv = _FUNCTION_CALL(macro, margs) # Call the readmacro
# VALID_IN_PARROT_0_2_0 if argcP == 0 goto STEP_1
- (retv :slurpy) = _FUNCTION_CALL(macro, margs) # Call the readmacro
-
- nretv = retv
- if nretv == 0 goto STEP_1
+ if_null retv, STEP_1
goto DONE
STEP_5:
@@ -345,8 +346,18 @@
.return(retv)
.end
+=head2 _semicolon_macro
+
+A comment. Skip everything till the end of line
+or the end of file.
+
+As described in CLtL section 2.4.4
+
+=cut
+
.sub _semicolon_macro # As described in CLtL section 2.4.4
.param pmc args
+
.local string char
.local pmc istream
.local pmc stream