Author: bernhard
Date: Sun May 13 04:14:07 2007
New Revision: 18523
Modified:
trunk/languages/lisp/cl.pir
trunk/languages/lisp/eval.pir
trunk/languages/lisp/include/macros.pir
trunk/languages/lisp/include/macros/assert.pir
trunk/languages/lisp/include/macros/error.pir
trunk/languages/lisp/include/macros/list.pir
trunk/languages/lisp/include/macros/standard.pir
trunk/languages/lisp/include/macros/types.pir
trunk/languages/lisp/internals.pir
trunk/languages/lisp/lisp.pir
trunk/languages/lisp/read.pir
trunk/languages/lisp/system.pir
trunk/languages/lisp/types.pir
trunk/languages/lisp/validate.pir
Log:
#42885: Resurrect languages/lisp
Detabify.
Put in some '# $Id$'.
Spelling: lsit => list.
Modified: trunk/languages/lisp/cl.pir
==============================================================================
--- trunk/languages/lisp/cl.pir (original)
+++ trunk/languages/lisp/cl.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,4 @@
+# $Id$
.sub _init_cl
.local pmc function
@@ -16,20 +17,20 @@
store_global "PACKAGES", "COMMON-LISP", package
store_global "PACKAGES", "CL", package
- t = package._intern_symbol("T") # Create the T symbol,
T meaning true
+ t = package._intern_symbol("T") # Create the T symbol,
T meaning true
t._set_value(t)
t._set_package(package)
t._set_special(t)
- store_global "SYMBOLS", "T", t # Quick alias to T, T
meaning true
+ store_global "SYMBOLS", "T", t # Quick alias to T, T
meaning true
t = symbol
- symbol = package._intern_symbol("NIL") # Create the T symbol
+ symbol = package._intern_symbol("NIL") # Create the NIL symbol
symbol._set_value(symbol)
symbol._set_package(package)
symbol._set_special(t)
- store_global "SYMBOLS", "NIL", symbol # Quick alias to NIL
+ store_global "SYMBOLS", "NIL", symbol # Quick alias to NIL
.INTEGER(value,1)
.DEFVAR(symbol, package, "*GENSYM-COUNTER*", value)
@@ -142,8 +143,8 @@
goto DONE
SYMBOL:
- func = car._get_function() # Get the function from symbol
- if_null func, INVALID_FUNCTION_NAME # Throw an error if undefined
+ func = car._get_function() # Get the function from symbol
+ if_null func, INVALID_FUNCTION_NAME # Throw an error if undefined
_FUNCTION_CALL(func,cdr)
goto DONE
@@ -161,12 +162,12 @@
goto DONE
DONE:
- # VALID_IN_PARROT_0_2_0 argcI = 0 # No
integer values returned
- # VALID_IN_PARROT_0_2_0 argcN = 0 # No
float values returned
- # VALID_IN_PARROT_0_2_0 argcS = 0 # No
string values returned
+ # VALID_IN_PARROT_0_2_0 argcI = 0 # No
integer values returned
+ # VALID_IN_PARROT_0_2_0 argcN = 0 # No
float values returned
+ # VALID_IN_PARROT_0_2_0 argcS = 0 # No
string values returned
- # VALID_IN_PARROT_0_2_0 returncc # Call
the return continuation
- .return() # Call the return continuation
+ # VALID_IN_PARROT_0_2_0 returncc # Call
the return continuation
+ .return() # Call the return continuation
.end
.sub _atom
@@ -179,8 +180,8 @@
.CAR(a, args)
- typeof type, a # An atom is anything that is
- if type != "LispCons" goto ATOM # not a cons.
+ typeof type, a # An atom is anything that is
+ if type != "LispCons" goto ATOM # not a cons.
goto CONS
ATOM:
@@ -379,32 +380,32 @@
typeof type, form
- if type == "LispSymbol" goto SYMBOL # Retrieve function from symbol
+ if type == "LispSymbol" goto SYMBOL # Retrieve function from symbol
- test = _IS_ORDINARY_LAMBDA_LIST(form) # Check if it's a lambda form
- if test goto LAMBDA_FORM # and build a closure if so
+ test = _IS_ORDINARY_LAMBDA_LIST(form) # Check if it's a lambda form
+ if test goto LAMBDA_FORM # and build a closure if so
goto INVALID_FUNCTION_NAME
SYMBOL:
- symname = form._get_name_as_string() # Retrieve the symbols
name
+ symname = form._get_name_as_string() # Retrieve the symbols name
- package = form._get_package() # Retrieve the symbols package
name
+ package = form._get_package() # Retrieve the symbols package
name
pkgname = package._get_name_as_string()
- symbol = _LOOKUP_GLOBAL(pkgname, symname) # Lookup the symbol
+ symbol = _LOOKUP_GLOBAL(pkgname, symname) # Lookup the symbol
- defined found, symbol # Ensure the symbol was found in
- unless found goto FUNCTION_NOT_FOUND # the global namespace
+ defined found, symbol # Ensure the symbol was found
in
+ unless found goto FUNCTION_NOT_FOUND # the global namespace
- retv = symbol._get_function() # Ensure the symbol had a
function
- defined found, symbol # defined
+ retv = symbol._get_function() # Ensure the symbol had a
function
+ defined found, symbol # defined
unless found goto FUNCTION_NOT_FOUND
goto DONE
LAMBDA_FORM:
- retv = _MAKE_LAMBDA(form) # Create a closure object
+ retv = _MAKE_LAMBDA(form) # Create a closure object
goto DONE
INVALID_FUNCTION_NAME:
@@ -490,13 +491,13 @@
.ASSERT_LENGTH_BETWEEN(args, 2, 3, ERROR_NARGS)
- .CAR(form, args) # Get the test form
+ .CAR(form, args) # Get the test form
.LIST_1(earg,form)
- retv = _eval(earg) # Evaluate the test form.
+ retv = _eval(earg) # Evaluate the test form.
- .NULL(retv, ELSE_CLAUSE) # If test was false, goto else clause
- goto THEN_CLAUSE #else goto then clause
+ .NULL(retv, ELSE_CLAUSE) # If test was false, goto else clause
+ goto THEN_CLAUSE #else goto then clause
THEN_CLAUSE:
.SECOND(form, args)
@@ -603,30 +604,30 @@
.local int nvar
.local int i
- # VALID_IN_PARROT_0_2_0 new_pad -1 #
Create new lexical scope
+ # VALID_IN_PARROT_0_2_0 new_pad -1 # Create new lexical
scope
.ASSERT_MINIMUM_LENGTH(args, 1, ERROR_NARGS)
- .CAR(init, args) # The variable bindings
- .CDR(body, args) # The form to evaluate
+ .CAR(init, args) # The variable bindings
+ .CDR(body, args) # The form to evaluate
- keyvals = new ResizablePMCArray # List for holding init values
- dynvars = new ResizablePMCArray # List for holding dynamic vars
+ keyvals = new ResizablePMCArray # List for holding init values
+ dynvars = new ResizablePMCArray # List for holding dynamic vars
null error
- .NIL(retv) # Initialize return value
+ .NIL(retv) # Initialize return value
- push_eh CLEANUP_HANDLER # Set a handler for cleanup
+ push_eh CLEANUP_HANDLER # Set a handler for cleanup
-INIT_FORM: # Process the init form
+INIT_FORM: # Process the init form
typeof type, init
if type == "LispSymbol" goto INIT_SYMBOL
if type == "LispCons" goto INIT_LIST
goto EVAL_BODY
INIT_SYMBOL:
- null value # Init form was just a symbol -
- push keyvals, init # no value is assigned to it.
+ null value # Init form was just a symbol -
+ push keyvals, init # no value is assigned to it.
push keyvals, value
goto BIND_VARS
@@ -638,22 +639,22 @@
INIT_LIST_LOOP:
.NULL(lptr, INIT_LIST_DONE)
- .CAR(form, lptr) # Get the next init form
+ .CAR(form, lptr) # Get the next init form
.ASSERT_TYPE_AND_BRANCH(form, "list", ERROR_BAD_SPEC)
- # VALID_IN_PARROT_0_2_0 .ASSERT_LENGTH(form, 2, ERROR_BADSPEC) #
Ensure a valid init form
- .ASSERT_LENGTH(form, 2, ERROR_BAD_SPEC) # Ensure a valid init form
+ # VALID_IN_PARROT_0_2_0 .ASSERT_LENGTH(form, 2, ERROR_BADSPEC)
# Ensure a valid init form
+ .ASSERT_LENGTH(form, 2, ERROR_BAD_SPEC) # Ensure a valid init form
- .CAR(symbol, form) # The symbol we're assigning to
- .SECOND(value, form) # The value being assigned
+ .CAR(symbol, form) # The symbol we're assigning to
+ .SECOND(value, form) # The value being assigned
.ASSERT_TYPE_AND_BRANCH(symbol, "symbol", ERROR_BAD_SPEC)
- .LIST_1(fargs, value) # Put value into an arg
list
- value = _eval(fargs) # Evaluate it
+ .LIST_1(fargs, value) # Put value into an arg list
+ value = _eval(fargs) # Evaluate it
- push keyvals, symbol # Push symbol onto
key/val list
- push keyvals, value # Push value onto key/val list
+ push keyvals, symbol # Push symbol onto key/val list
+ push keyvals, value # Push value onto key/val list
.CDR(lptr, lptr)
goto INIT_LIST_LOOP
@@ -670,9 +671,9 @@
BIND_LOOP:
if i >= nvar goto BIND_DONE
- symbol = keyvals[i] # Pop symbol of key/val list
+ symbol = keyvals[i] # Pop symbol of key/val list
inc i
- value = keyvals[i] # Pop value of key/val list
+ value = keyvals[i] # Pop value of key/val list
name = symbol._get_name_as_string()
test = _IS_SPECIAL(symbol)
@@ -681,17 +682,17 @@
goto BIND_DYNAMIC
BIND_LEXICAL:
- symbol = _LEXICAL_SYMBOL(name, value) # Create a new lexical symbol
+ symbol = _LEXICAL_SYMBOL(name, value) # Create a new lexical symbol
inc i
goto BIND_LOOP
BIND_DYNAMIC:
- package = symbol._get_package() # Get dynamic symbols package
+ package = symbol._get_package() # Get dynamic symbols package
- symbol = package._shadow_symbol(name) # Shadow the symbol
- symbol._set_value(value) # Set the new value
+ symbol = package._shadow_symbol(name) # Shadow the symbol
+ symbol._set_value(value) # Set the new value
- push dynvars, symbol # Keep around for
tracking
+ push dynvars, symbol # Keep around for tracking
inc i
goto BIND_LOOP
@@ -701,16 +702,16 @@
EVAL_BODY:
- lptr = body # Set pointer to the body form
+ lptr = body # Set pointer to the body form
-EVAL_LOOP: # Evaluate each form in order
+EVAL_LOOP: # Evaluate each form in order
.NULL(lptr, EVAL_DONE)
- .CAR(form, lptr) # Get the next form in the body
- .LIST_1(fargs, form) # Put it into an arg list
- retv = _eval(fargs) # Evaluate it
+ .CAR(form, lptr) # Get the next form in the body
+ .LIST_1(fargs, form) # Put it into an arg list
+ retv = _eval(fargs) # Evaluate it
- .CDR(lptr, lptr) # Get a pointer to next form
+ .CDR(lptr, lptr) # Get a pointer to next form
goto EVAL_LOOP
EVAL_DONE:
@@ -718,11 +719,11 @@
CLEANUP_HANDLER:
- error = P5 # Caught an exception - save it
- goto CLEANUP # and clean up before
rethrow
+ error = P5 # Caught an exception - save it
+ goto CLEANUP # and clean up before rethrow
CLEANUP:
- # VALID_IN_PARROT_0_2_0 pop_pad # Pop
off the lexical scope
+ # VALID_IN_PARROT_0_2_0 pop_pad # Pop off the
lexical scope
nvar = dynvars
i = 0
@@ -730,18 +731,18 @@
CLEANUP_LOOP:
if i >= nvar goto CLEANUP_DONE
- symbol = dynvars[i] # Symbol to be
unshadowed
+ symbol = dynvars[i] # Symbol to be unshadowed
name = symbol._get_name_as_string()
package = symbol._get_package()
- package._unshadow_symbol(name) # Unshadow the symbol
+ package._unshadow_symbol(name) # Unshadow the symbol
inc i
goto CLEANUP_LOOP
CLEANUP_DONE:
- if_null error, DONE # Rethrow an exception if we
- rethrow error # need to
+ if_null error, DONE # Rethrow an exception if we
+ rethrow error # need to
goto DONE
CLEANUP_RETHROW:
@@ -762,9 +763,9 @@
.return(retv)
.end
-.sub _print # This is just a temporary stand-in - it
- .param pmc args # doesn't have near enough the amount of
- .local string strval # functionality required.
+.sub _print # This is just a temporary stand-in - it
+ .param pmc args # doesn't have near enough the amount of
+ .local string strval # functionality required.
.local pmc retv
.local pmc obj
@@ -801,12 +802,12 @@
FORM_LOOP:
.NULL(lptr, DONE)
- .CAR(eform, lptr) # Create the arg list for eval
+ .CAR(eform, lptr) # Create the arg list for eval
.LIST_1(eargs, eform)
- retv = _eval(eargs) # Evaluate form in list
+ retv = _eval(eargs) # Evaluate form in list
- .CDR(lptr, lptr) # Point to next form
+ .CDR(lptr, lptr) # Point to next form
goto FORM_LOOP
DONE:
@@ -856,7 +857,7 @@
.ASSERT_TYPE(cons, "cons")
- cons[0] = val # Replace the car with val
+ cons[0] = val # Replace the car with val
goto DONE
ERROR_NARGS:
@@ -877,9 +878,9 @@
.CAR(cons, args)
.SECOND(val, args)
- .ASSERT_TYPE(cons, "cons") # Ensure first arg is a cons
+ .ASSERT_TYPE(cons, "cons") # Ensure first arg is a cons
- cons[1] = val # Replace the cdr with val
+ cons[1] = val # Replace the cdr with val
goto DONE
ERROR_NARGS:
@@ -902,25 +903,25 @@
.ASSERT_EVEN_LENGTH(args, ERROR_NARGS)
- lptr = args # Pointer to the arguments
- .NIL(retv) # Initialize return value
+ lptr = args # Pointer to the arguments
+ .NIL(retv) # Initialize return value
LOOP:
- .NULL(lptr, DONE) # If we're at the EOL goto DONE
+ .NULL(lptr, DONE) # If we're at the EOL goto DONE
- .CAR(symbol, lptr) # Get the variable to assign to
- .SECOND(value, lptr) # Get the value being assigned
+ .CAR(symbol, lptr) # Get the variable to assign to
+ .SECOND(value, lptr) # Get the value being assigned
- .ASSERT_TYPE(symbol, "symbol") # Ensure variable is a symbol
+ .ASSERT_TYPE(symbol, "symbol") # Ensure variable is a symbol
- name = symbol._get_name_as_string() # Get the symbols name
- lexical = _LOOKUP_LEXICAL(name) # Look for it in lexical env
+ name = symbol._get_name_as_string() # Get the symbols name
+ lexical = _LOOKUP_LEXICAL(name) # Look for it in lexical env
if_null lexical, SET_SYMBOL_VALUE
- symbol = lexical # Lexical variable was found
+ symbol = lexical # Lexical variable was found
SET_SYMBOL_VALUE:
- .LIST_1(earg, value) # Evaluate the value form
+ .LIST_1(earg, value) # Evaluate the value form
retv = _eval(earg)
symbol._set_value(retv)
@@ -1028,9 +1029,9 @@
.local int size
.local int llen
- llen = _LIST_LENGTH(args) # Get # values we're returning
+ llen = _LIST_LENGTH(args) # Get # values we're returning
- P16 = args # Pointer to argument list
+ P16 = args # Pointer to argument list
if llen == 0 goto DONE
@@ -1078,32 +1079,32 @@
P16 = P16[1]
if llen == 11 goto DONE
- size = llen - 11 # Size of the overflow array
+ size = llen - 11 # Size of the overflow array
- P3 = new Array # Allocate overflow array
+ P3 = new Array # Allocate overflow array
P3 = size
.local pmc elem
.local int indx
- indx = 0 # Initial index into overflow
+ indx = 0 # Initial index into overflow
OVERFLOW_LOOP:
if indx == size goto DONE_OVERFLOW
elem = P16[0]
- P3[indx] = elem # Set next overflow element
+ P3[indx] = elem # Set next overflow element
inc indx
- P16 = P16[1] # Set next element in
list
+ P16 = P16[1] # Set next element in list
goto OVERFLOW_LOOP
DONE_OVERFLOW:
- llen = 11 # Only report # retv's in regs
+ llen = 11 # Only report # retv's in regs
goto DONE
DONE:
- # VALID_IN_PARROT_0_2_0 is_prototyped = 0 # Set
up return registers
+ # VALID_IN_PARROT_0_2_0 is_prototyped = 0 #
Set up return registers
# VALID_IN_PARROT_0_2_0 argcI = 0
# VALID_IN_PARROT_0_2_0 argcN = 0
@@ -1120,17 +1121,17 @@
.local pmc targ
.local pmc retv
- .INTEGER(retv, "0") # + with no args should give 0
+ .INTEGER(retv, "0") # + with no args should give 0
lptr = args
LOOP:
.NULL(lptr, DONE)
- .CAR(targ,lptr) # Get the next arg and ensure
- .ASSERT_TYPE(targ, "number") # it is numeric.
+ .CAR(targ,lptr) # Get the next arg and ensure
+ .ASSERT_TYPE(targ, "number") # it is numeric.
- retv = retv + targ # Add to the running total.
+ retv = retv + targ # Add to the running total.
.CDR(lptr,lptr)
goto LOOP
@@ -1148,27 +1149,27 @@
.ASSERT_MINIMUM_LENGTH(args,1,ERROR_NARGS)
- .CAR(retv,args) # Get the first argument and
- .ASSERT_TYPE(retv, "number") # ensure it is numeric.
+ .CAR(retv,args) # Get the first argument and
+ .ASSERT_TYPE(retv, "number") # ensure it is numeric.
- .CDR(lptr,args) # Get a pointer to rest of args
- narg = 1 # Number of args encountered
+ .CDR(lptr,args) # Get a pointer to rest of args
+ narg = 1 # Number of args encountered
LOOP:
.NULL(lptr,DONE_LOOP)
- .CAR(targ, lptr) # Get the next arg and ensure
- .ASSERT_TYPE(targ, "number") # it is numeric.
+ .CAR(targ, lptr) # Get the next arg and ensure
+ .ASSERT_TYPE(targ, "number") # it is numeric.
- retv = retv - targ # Subtract from running total.
+ retv = retv - targ # Subtract from running total.
.CDR(lptr,lptr)
- inc narg # Increment # args processed
+ inc narg # Increment # args processed
goto LOOP
DONE_LOOP:
- if narg > 1 goto DONE # If we only had one arg return
- neg retv # its negative value
+ if narg > 1 goto DONE # If we only had one arg return
+ neg retv # its negative value
goto DONE
ERROR_NARGS:
@@ -1185,17 +1186,17 @@
.local pmc targ
.local pmc retv
- .INTEGER(retv, "1") # + with no args should give 0
+ .INTEGER(retv, "1") # + with no args should give 0
lptr = args
LOOP:
.NULL(lptr,DONE)
- .CAR(targ,lptr) # Get the next arg and ensure
- .ASSERT_TYPE(targ, "number") # it is numeric.
+ .CAR(targ,lptr) # Get the next arg and ensure
+ .ASSERT_TYPE(targ, "number") # it is numeric.
- retv = retv * targ # Multiply the running total.
+ retv = retv * targ # Multiply the running product.
.CDR(lptr,lptr)
goto LOOP
@@ -1213,27 +1214,27 @@
.ASSERT_MINIMUM_LENGTH(args,1,ERROR_NARGS)
- .CAR(retv,args) # Get the first argument and
- .ASSERT_TYPE(retv, "number") # ensure it is numeric.
+ .CAR(retv,args) # Get the first argument and
+ .ASSERT_TYPE(retv, "number") # ensure it is numeric.
- .CDR(lptr,args) # Get a pointer to rest of args
- narg = 1 # Number of args encountered
+ .CDR(lptr,args) # Get a pointer to rest of args
+ narg = 1 # Number of args encountered
LOOP:
.NULL(lptr,DONE_LOOP)
- .CAR(targ,lptr) # Get the next arg and ensure
- .ASSERT_TYPE(targ, "number") # it is numeric.
+ .CAR(targ,lptr) # Get the next arg and ensure
+ .ASSERT_TYPE(targ, "number") # it is numeric.
- retv = retv / targ # Divide the running total.
+ retv = retv / targ # Divide the running total.
.CDR(lptr,lptr)
- inc narg # Increment # args processed
+ inc narg # Increment # args processed
goto LOOP
DONE_LOOP:
- if narg > 1 goto DONE # If we only had one arg, return
- .INTEGER(targ, 1) # its inverse
+ if narg > 1 goto DONE # If we only had one arg,
return
+ .INTEGER(targ, 1) # its inverse
retv = targ / retv
goto DONE
@@ -1256,12 +1257,12 @@
.CAR(numb,args)
.SECOND(div,args)
- .ASSERT_TYPE(numb, "number") # Ensure both of the args are
- .ASSERT_TYPE(div, "number") # numeric.
+ .ASSERT_TYPE(numb, "number") # Ensure both of the args are
+ .ASSERT_TYPE(div, "number") # numeric.
.INTEGER(retv,0)
- mod retv, numb, div # Compute the modulus
+ mod retv, numb, div # Compute the modulus
goto DONE
ERROR_NARGS:
@@ -1281,18 +1282,18 @@
.ASSERT_MINIMUM_LENGTH(args, 1, ERROR_NARGS)
- .CAR(arg1, args) # Get the first argument and
- .ASSERT_TYPE(arg1, "number") # ensure it is numeric.
+ .CAR(arg1, args) # Get the first argument and
+ .ASSERT_TYPE(arg1, "number") # ensure it is numeric.
- .CDR(lptr,args) # Get a pointer to rest of args
+ .CDR(lptr,args) # Get a pointer to rest of args
.TRUE(retv)
LOOP:
.NULL(lptr, DONE)
- .CAR(arg2, lptr) # Get the next arg and ensure
- .ASSERT_TYPE(arg2, "number") # it is numeric.
+ .CAR(arg2, lptr) # Get the next arg and ensure
+ .ASSERT_TYPE(arg2, "number") # it is numeric.
if arg1 != arg2 goto NOT_EQUAL
Modified: trunk/languages/lisp/eval.pir
==============================================================================
--- trunk/languages/lisp/eval.pir (original)
+++ trunk/languages/lisp/eval.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,4 @@
+# $Id$
.sub _eval
.param pmc args
@@ -56,17 +57,17 @@
funcptr = body
FUNCTION_LOOP:
- .NULL(funcptr, FUNCTION_CALL) # Call the function if no args
left.
+ .NULL(funcptr, FUNCTION_CALL) # Call the function if no args left.
- .CAR(funcarg, funcptr) # Pop the next arg off the list.
+ .CAR(funcarg, funcptr) # Pop the next arg off the list.
- .local pmc evalarg # Evaluate the argument.
+ .local pmc evalarg # Evaluate the argument.
.LIST_1(evalarg, funcarg)
funcarg = _eval(evalarg)
.APPEND(funcargs,funcargs,funcarg) # Add the result to the args list.
- .CDR(funcptr,funcptr) # Move to the next arg in the
list.
+ .CDR(funcptr,funcptr) # Move to the next arg in the list.
goto FUNCTION_LOOP
@@ -100,10 +101,10 @@
macrosym = _LOOKUP_SYMBOL("*MACROEXPAND-HOOK*")
if_null macrosym, MACRO_NOT_INITIALIZED
- macroexp = macrosym._get_value() # Get the expander function
+ macroexp = macrosym._get_value() # Get the expander function
.ASSERT_TYPE_AND_BRANCH(macroexp, "function", MACRO_NOT_INITIALIZED)
- # VALID_IN_PARROT_0_2_0 peek_pad macroenv # Get
current lexical scope
+ # VALID_IN_PARROT_0_2_0 peek_pad macroenv # Get
current lexical scope
.LIST_3(funcargs, symbol, body, macroenv)
retv = _FUNCTION_CALL(macroexp, funcargs) # Call the macroexpand hook
@@ -118,8 +119,8 @@
symbol = form
symname = symbol._get_name_as_string()
- special = _IS_SPECIAL(symbol) # Check if we're a
dynamic
- if special == 0 goto LEXICAL_SYMBOL # variable
+ special = _IS_SPECIAL(symbol) # Check if we're a dynamic
+ if special == 0 goto LEXICAL_SYMBOL # variable
goto DYNAMIC_SYMBOL
DYNAMIC_SYMBOL:
@@ -130,20 +131,20 @@
goto CHECK_VALUE
LEXICAL_SYMBOL:
- retv = _LOOKUP_LEXICAL(symname) # Check for a lexical shadow
- if_null retv, CHECK_VALUE # If not found, assume global
- symbol = retv # Use the lexical value
+ retv = _LOOKUP_LEXICAL(symname) # Check for a lexical shadow
+ if_null retv, CHECK_VALUE # If not found, assume global
+ symbol = retv # Use the lexical value
goto CHECK_VALUE
CHECK_VALUE:
- retv = symbol._get_value() # Check for symbol's value
+ retv = symbol._get_value() # Check for symbol's value
defined found, retv
unless found goto SYMBOL_NOT_FOUND
DONE_SYMBOL:
- # VALID_IN_PARROT_0_2_0 argcP = 1 # One
value returned
- # VALID_IN_PARROT_0_2_0 P5 = retv #
Return value
+ # VALID_IN_PARROT_0_2_0 argcP = 1 # One value
returned
+ # VALID_IN_PARROT_0_2_0 P5 = retv # Return
value
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 goto DONE
.return(retv)
@@ -156,8 +157,8 @@
SELF_EVALUATING_OBJECT:
# Object is a primitive type (ie. a string, integer or float).
retv = form
- # VALID_IN_PARROT_0_2_0 argcP = 1 # One
value returned
- # VALID_IN_PARROT_0_2_0 P5 = retv #
Return value
+ # VALID_IN_PARROT_0_2_0 argcP = 1 # One value
returned
+ # VALID_IN_PARROT_0_2_0 P5 = retv # Return
value
# VALID_IN_PARROT_0_2_0 goto DONE
.return(retv)
@@ -167,12 +168,12 @@
# VALID_IN_PARROT_0_2_0 goto DONE
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 DONE:
-# VALID_IN_PARROT_0_2_0 is_prototyped = 0 #
Nonprototyped return
-# VALID_IN_PARROT_0_2_0 argcI = 0 # No
integer values returned
-# VALID_IN_PARROT_0_2_0 argcN = 0 # No
float values returned
-# VALID_IN_PARROT_0_2_0 argcS = 0 # No
string values returned
+# VALID_IN_PARROT_0_2_0 is_prototyped = 0 #
Nonprototyped return
+# VALID_IN_PARROT_0_2_0 argcI = 0 # No
integer values returned
+# VALID_IN_PARROT_0_2_0 argcN = 0 # No float
values returned
+# VALID_IN_PARROT_0_2_0 argcS = 0 # No string
values returned
# VALID_IN_PARROT_0_2_0
-# VALID_IN_PARROT_0_2_0 returncc # Call
the return continuation
+# VALID_IN_PARROT_0_2_0 returncc # Call the
return continuation
.return()
.end
Modified: trunk/languages/lisp/include/macros.pir
==============================================================================
--- trunk/languages/lisp/include/macros.pir (original)
+++ trunk/languages/lisp/include/macros.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,5 @@
+# $Id$
+
.include "include/macros/assert.pir"
.include "include/macros/error.pir"
.include "include/macros/list.pir"
Modified: trunk/languages/lisp/include/macros/assert.pir
==============================================================================
--- trunk/languages/lisp/include/macros/assert.pir (original)
+++ trunk/languages/lisp/include/macros/assert.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,5 @@
+# $Id$
+
=head1 ASSERT_TYPE(A,T)
Asserts that A is of type T, throwing a error of type "type-error" on failure
@@ -45,9 +47,9 @@
.macro ASSERT_LENGTH(A,L,B)
.sym int _leni
- _leni = _LIST_LENGTH(.A) # Get the length of the lsit
- if _leni == .L goto .$DONE # Branch on success
- goto .B # Branch on failure
+ _leni = _LIST_LENGTH(.A) # Get the length of the list
+ if _leni == .L goto .$DONE # Branch on success
+ goto .B # Branch on failure
.local $DONE:
.endm
@@ -61,9 +63,9 @@
.macro ASSERT_MINIMUM_LENGTH(A,L,B)
.sym int _leni
- _leni = _LIST_LENGTH(.A) # Get the length of the lsit
- if _leni >= .L goto .$DONE # Branch on success
- goto .B # Branch on failure
+ _leni = _LIST_LENGTH(.A) # Get the length of the list
+ if _leni >= .L goto .$DONE # Branch on success
+ goto .B # Branch on failure
.local $DONE:
.endm
@@ -77,10 +79,10 @@
.macro ASSERT_LENGTH_BETWEEN(A,L,M,B)
.sym int _leni
- _leni = _LIST_LENGTH(.A) # Get the length of the lsit
- if _leni >= .L goto .$DONE # Branch on success (min bound)
- if _leni <= .M goto .$DONE # Branch on success (max bound)
- goto .B # Branch on failure
+ _leni = _LIST_LENGTH(.A) # Get the length of the list
+ if _leni >= .L goto .$DONE # Branch on success (min bound)
+ if _leni <= .M goto .$DONE # Branch on success (max bound)
+ goto .B # Branch on failure
.local $DONE:
.endm
@@ -95,10 +97,10 @@
.sym int _leni
.sym int _modi
- _leni = _LIST_LENGTH(.A) # Get the length of the lsit
+ _leni = _LIST_LENGTH(.A) # Get the length of the list
mod _modi, _leni, 2
- if _modi == 0 goto .$DONE # Branch on success
- goto .B # Branch on failure
+ if _modi == 0 goto .$DONE # Branch on success
+ goto .B # Branch on failure
.local $DONE:
.endm
Modified: trunk/languages/lisp/include/macros/error.pir
==============================================================================
--- trunk/languages/lisp/include/macros/error.pir (original)
+++ trunk/languages/lisp/include/macros/error.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,4 @@
+# $Id$
.macro ERROR_0(T,M)
_error(.T, .M)
Modified: trunk/languages/lisp/include/macros/list.pir
==============================================================================
--- trunk/languages/lisp/include/macros/list.pir (original)
+++ trunk/languages/lisp/include/macros/list.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,4 @@
+# $Id$
=head1 LIST PROCESSING MACROS
@@ -45,11 +46,11 @@
.sym pmc _listptr2p
.sym pmc _listtmpp
- .NULL(.A, .$EMPTY_LIST) # Special case if A is an empty list.
+ .NULL(.A, .$EMPTY_LIST) # Special case if A is an empty list.
_listptr1p = .A
-.local $APPEND_LOOP: # Loop until we reach the end of the list.
+.local $APPEND_LOOP: # Loop until we reach the end of the list.
.NULL(_listptr1p,.$DONE_LOOP)
_listptr2p = _listptr1p
@@ -57,8 +58,8 @@
.CDR(_listptr1p,_listptr1p)
goto .$APPEND_LOOP
-.local $DONE_LOOP: # At the EOL, replace the list end (NIL)
- .LIST_1(_listtmpp, .B) # with a new cons containing the new element.
+.local $DONE_LOOP: # At the EOL, replace the list end (NIL)
+ .LIST_1(_listtmpp, .B) # with a new cons containing the new element.
_listptr2p[1] = _listtmpp
goto .$DONE
Modified: trunk/languages/lisp/include/macros/standard.pir
==============================================================================
--- trunk/languages/lisp/include/macros/standard.pir (original)
+++ trunk/languages/lisp/include/macros/standard.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,4 @@
+# $Id$
=head1 MISCELLANEOUS MACROS
Modified: trunk/languages/lisp/include/macros/types.pir
==============================================================================
--- trunk/languages/lisp/include/macros/types.pir (original)
+++ trunk/languages/lisp/include/macros/types.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,4 @@
+# $Id$
=head1 .CONS(R,A,B)
Modified: trunk/languages/lisp/internals.pir
==============================================================================
--- trunk/languages/lisp/internals.pir (original)
+++ trunk/languages/lisp/internals.pir Sun May 13 04:14:07 2007
@@ -10,11 +10,11 @@
.local pmc package
.local pmc retv
- upcase pkgname, pkgname # Convert names to all upcase
+ upcase pkgname, pkgname # Convert names to all upcase
upcase symname, symname
- push_eh PACKAGE_NOT_FOUND # Set an error handler
- find_global package, "PACKAGES", pkgname # Look for the package
+ push_eh PACKAGE_NOT_FOUND # Set an error handler
+ find_global package, "PACKAGES", pkgname # Look for the package
clear_eh
retv = package._lookup_symbol(symname) # Lookup the symbol
@@ -38,13 +38,13 @@
.param string symname
.local pmc retv
- push_eh LEXICAL_NOT_FOUND # Set an error handler
- find_lex retv, symname # Look for the lexical symbol
+ push_eh LEXICAL_NOT_FOUND # Set an error handler
+ find_lex retv, symname # Look for the lexical symbol
clear_eh
goto DONE
-LEXICAL_NOT_FOUND: # Return null if not found
+LEXICAL_NOT_FOUND: # Return null if not found
null retv
goto DONE
@@ -134,10 +134,10 @@
symbol = _LOOKUP_GLOBAL("COMMON-LISP", "*PACKAGE*")
package = symbol._get_value()
- symbol = _SYMBOL(symname) # Create a new symbol
- symbol._set_package(package) # Set the home package
+ symbol = _SYMBOL(symname) # Create a new symbol
+ symbol._set_package(package) # Set the home package
- defined test, value # Set a value if provided
+ defined test, value # Set a value if provided
if test == 0 goto DONE
symbol._set_value(value)
@@ -193,15 +193,15 @@
clear_eh
symbol = package._intern_symbol(symname)
- symbol._set_package(package) # Set the home package
+ symbol._set_package(package) # Set the home package
- defined test, value # Set a value if provided
+ defined test, value # Set a value if provided
if test == 0 goto FUNCTION
symbol._set_value(value)
goto FUNCTION
-FUNCTION: # Set a function if provided
+FUNCTION: # Set a function if provided
defined test, function
if test == 0 goto DONE
@@ -233,29 +233,29 @@
proto = function._get_args()
body = function._get_body()
- typeof type, body # Get the function type
+ typeof type, body # Get the function type
if type == "Sub" goto COMPILED_FUNCTION
goto INTERPRETED_FUNCTION
COMPILED_FUNCTION:
- set_args "0", args # First argument
+ set_args "0", args # First argument
goto CALL_FUNCTION
INTERPRETED_FUNCTION:
scope = function._get_scope()
- # 1st arg - the code to evaluate
- # 2nd arg - the arg prototype
- # 3rd arg - the args to evaluate
- # The closure
+ # 1st arg - the code to evaluate
+ # 2nd arg - the arg prototype
+ # 3rd arg - the args to evaluate
+ # The closure
set_args "0,0,0", body, proto, args
goto CALL_FUNCTION
CALL_FUNCTION:
- # VALID_IN_PARROT_0_2_0 pushtopp # Save the
upper registers
- # VALID_IN_PARROT_0_2_0 invokecc # Call the
closure
- # VALID_IN_PARROT_0_2_0 poptopp # Restore the
upper registers
+ # VALID_IN_PARROT_0_2_0 pushtopp # Save the upper
registers
+ # VALID_IN_PARROT_0_2_0 invokecc # Call the
closure
+ # VALID_IN_PARROT_0_2_0 poptopp # Restore the
upper registers
# VALID_IN_PARROT_0_2_0 returncc
.end
@@ -290,10 +290,10 @@
.local int test
.local int retv
- .CAR(symbol,form) # Ensure first element is a LAMBDA
+ .CAR(symbol,form) # Ensure first element is a LAMBDA
if symbol != "LAMBDA" goto NON_LAMBDA_LIST
- .SECOND(args,form) # Ensure second element is a lambda-list
+ .SECOND(args,form) # Ensure second element is a lambda-list
.ASSERT_TYPE_AND_BRANCH(args, "list", MISSING_LAMBDA_LIST)
goto LAMBDA_LIST
@@ -330,15 +330,15 @@
ARG_LOOP:
.NULL(lptr, SETUP_CLOSURE)
- .CAR(symbol, lptr) # Ensure all the arguments are
- .ASSERT_TYPE(symbol, "symbol") # symbol types.
+ .CAR(symbol, lptr) # Ensure all the arguments are
+ .ASSERT_TYPE(symbol, "symbol") # symbol types.
.CDR(lptr, lptr)
goto ARG_LOOP
SETUP_CLOSURE:
- closure = new .Closure # Capture the scope the closure
- set_addr closure, CLOSURE_START # will later be run in
+ closure = new .Closure # Capture the scope the closure
+ set_addr closure, CLOSURE_START # will later be run in
retv = new "LispFunction"
@@ -374,11 +374,11 @@
.NULL(clprotptr, CLOSURE_CHECK_ARGS)
.NULL(clargsptr, CLOSURE_TOO_FEW_ARGS)
- .CAR(clval, clargsptr) # The lexical value
- .CAR(clarg, clprotptr) # The lexical arg prototype
+ .CAR(clval, clargsptr) # The lexical value
+ .CAR(clarg, clprotptr) # The lexical arg prototype
clsymname = clarg._get_name_as_string()
- clsym = _LEXICAL_SYMBOL(clsymname, clval) # Create a new lexical symbol
+ clsym = _LEXICAL_SYMBOL(clsymname, clval) # Create a new lexical symbol
.CDR(clargsptr, clargsptr)
.CDR(clprotptr, clprotptr)
@@ -386,8 +386,8 @@
goto CLOSURE_ARGS
CLOSURE_CHECK_ARGS:
- .NULL(clargsptr, CLOSURE_BODY) # Ensure we didn't have too
- goto CLOSURE_TOO_MANY_ARGS # many args
+ .NULL(clargsptr, CLOSURE_BODY) # Ensure we didn't have too
+ goto CLOSURE_TOO_MANY_ARGS # many args
CLOSURE_BODY:
.local pmc clearg
Modified: trunk/languages/lisp/lisp.pir
==============================================================================
--- trunk/languages/lisp/lisp.pir (original)
+++ trunk/languages/lisp/lisp.pir Sun May 13 04:14:07 2007
@@ -1,6 +1,6 @@
# $Id$
-.const int INVALID_CHAR = 0
+.const int INVALID_CHAR = 0
.const int CONSTITUENT_CHAR = 1
.const int WHITESPACE_CHAR = 2
.const int TERM_MACRO_CHAR = 3
@@ -58,27 +58,27 @@
is_qualified = p6rule(
"^<[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]>*::<[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]>*"
)
set_global 'is_qualified', is_qualified
- _init_types() # Initialize all the type classes.
+ _init_types() # Initialize all the type classes.
- _init_cl() # Initialize the built-in functions in
- _init_system() # the SYSTEM and COMMON-LISP packages.
+ _init_cl() # Initialize the built-in functions in
+ _init_system() # the SYSTEM and COMMON-LISP packages.
# VALID_IN_PARROT_0_2_0 new_pad 0 # Create the
null lexical environment.
- .STRING(name, "lisp/bootstrap.l") # Load the lisp bootstrap file.
+ .STRING(name, "lisp/bootstrap.l") # Load the lisp bootstrap file.
.LIST_1(args, name)
_load(args)
argc = argv
- if argc <= 1 goto READ_STDIN # Check if we should read STDIN
or load from file
+ if argc <= 1 goto READ_STDIN # Check if we should read STDIN or
load from file
- names = argv[1] # Get the file name
+ names = argv[1] # Get the file name
.STRING(name, names)
.LIST_1(args, name)
- retv = _load(args) # Load the specified file.
+ retv = _load(args) # Load the specified file.
end
@@ -86,14 +86,14 @@
symbol = _LOOKUP_GLOBAL("COMMON-LISP", "*STANDARD-INPUT*")
stream = symbol._get_value()
- push_eh DEBUGGER # Setup error handler for debug loop.
+ push_eh DEBUGGER # Setup error handler for debug loop.
REP_LOOP:
- print "-> " # Display the top level prompt.
+ print "-> " # Display the top level prompt.
- .LIST_1(args, stream) # Read!
+ .LIST_1(args, stream) # Read!
retv = _read(args)
- .LIST_1(args, retv) # Eval!
+ .LIST_1(args, retv) # Eval!
# VALID_IN_PARROT_0_2_0 retv = _eval(args)
# VALID_IN_PARROT_0_2_0 foldup retv
Modified: trunk/languages/lisp/read.pir
==============================================================================
--- trunk/languages/lisp/read.pir (original)
+++ trunk/languages/lisp/read.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,4 @@
+# $Id$
.sub _read
.param pmc args
@@ -13,7 +14,7 @@
.local int nretv
.ASSERT_LENGTH(args,1,ERROR_NARGS) # We should have received one argument -
- # the input stream to read from.
+ # the input stream to read from.
.CAR(istream, args)
stream = istream._get_io()
@@ -161,8 +162,8 @@
.end
.sub _error
- .param string type # There's current no way to add more
- .param string mesg # than just _message to the exception.
+ .param string type # There's current no way to add more
+ .param string mesg # than just _message to the exception.
.local pmc e
e = new Exception
@@ -197,7 +198,7 @@
dchar = delimit
.SECOND(istream, args) # Second arg is the input stream
- .NULL(istream, GET_STDIN) # If we don't have a stream get stdin
+ .NULL(istream, GET_STDIN) # If we don't have a stream get stdin
goto DONE_ARGS
GET_STDIN:
@@ -323,7 +324,7 @@
.ERROR_0("reader-error", "An object cannot start with #\\)")
.end
-.sub _single_quote_macro # As described in CLtL section 2.4.3
+.sub _single_quote_macro # As described in CLtL section 2.4.3
.param pmc args
.local pmc stream
.local pmc symbol
@@ -344,7 +345,7 @@
.return(retv)
.end
-.sub _semicolon_macro # As described in CLtL section 2.4.4
+.sub _semicolon_macro # As described in CLtL section 2.4.4
.param pmc args
.local string char
.local pmc istream
@@ -363,7 +364,7 @@
RETURN:
.end
-.sub _double_quote_macro # As described in CLtL section 2.4.5.
+.sub _double_quote_macro # As described in CLtL section 2.4.5.
.param pmc args
.local string strtok
.local pmc istream
@@ -417,7 +418,7 @@
.return(token)
.end
-.sub _backquote_macro # As described in CLtL section 2.4.6
+.sub _backquote_macro # As described in CLtL section 2.4.6
.param pmc args
.ERROR_0("reader-error", "the backquote macro has not yet been implemented")
@@ -425,7 +426,7 @@
DONE:
.end
-.sub _comma_macro # As described in CLtL section 2.4.7
+.sub _comma_macro # As described in CLtL section 2.4.7
.param pmc args
.ERROR_0("reader-error", "comma is illegal outside of backquote")
@@ -433,7 +434,7 @@
DONE:
.end
-.sub _sharpsign_macro # As described in CLtL section 2.4.8
+.sub _sharpsign_macro # As described in CLtL section 2.4.8
.param pmc args
.local string char
.local string test
Modified: trunk/languages/lisp/system.pir
==============================================================================
--- trunk/languages/lisp/system.pir (original)
+++ trunk/languages/lisp/system.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,4 @@
+# $Id$
.sub _init_system
.local pmc function
@@ -125,7 +126,7 @@
.ASSERT_TYPE(hash, "hash")
.ASSERT_TYPE(key, "string")
- keys = key # Convert the key to a string
+ keys = key # Convert the key to a
string
val = hash[keys]
typeof type, val
Modified: trunk/languages/lisp/types.pir
==============================================================================
--- trunk/languages/lisp/types.pir (original)
+++ trunk/languages/lisp/types.pir Sun May 13 04:14:07 2007
@@ -1,3 +1,4 @@
+# $Id$
.sub _init_types
.local pmc class
Modified: trunk/languages/lisp/validate.pir
==============================================================================
--- trunk/languages/lisp/validate.pir (original)
+++ trunk/languages/lisp/validate.pir Sun May 13 04:14:07 2007
@@ -11,26 +11,26 @@
.local int flag
.local pmc nil
- # VALID_IN_PARROT_0_2_0 flag = _IS_INTEGER(token) # attempt to
parse token as an integer
+ # VALID_IN_PARROT_0_2_0 flag = _IS_INTEGER(token)
.local pmc is_integer
is_integer = get_global 'is_integer'
- flag = is_integer(token) # attempt to parse token as an integer
+ flag = is_integer(token) # attempt to
parse token as an integer
if flag goto INTEGER
- # VALID_IN_PARROT_0_2_0 flag = _IS_FLOAT(token) # attempt to
parse token as a float
+ # VALID_IN_PARROT_0_2_0 flag = _IS_FLOAT(token)
.local pmc is_float
is_float = get_global 'is_float'
- flag = is_float(token) # attempt to parse token as a float
+ flag = is_float(token) # attempt to
parse token as a float
if flag goto FLOAT
- goto QUALIFIED_SYMBOL # else interpret it as a symbol
+ goto QUALIFIED_SYMBOL # else
interpret it as a symbol
INTEGER:
- .INTEGER(retv,token) # create a LispInteger object
+ .INTEGER(retv,token) # create a
LispInteger object
goto DONE
FLOAT:
- .FLOAT(retv,token) # create a ListFloat object
+ .FLOAT(retv,token) # create a
ListFloat object
goto DONE
QUALIFIED_SYMBOL:
@@ -48,19 +48,19 @@
symbol = _LOOKUP_GLOBAL("COMMON-LISP", "*PACKAGE*")
if_null symbol, PACKAGE_NOT_FOUND
- package = symbol._get_value() # Get the current package
+ package = symbol._get_value() # Get the current package
if_null package, PACKAGE_NOT_FOUND
pkgname = package._get_name_as_string()
symname = token
retv = _LOOKUP_GLOBAL(pkgname, symname)
- if_null retv, SYMBOL_NOT_FOUND # If not found, intern a new
symbol
+ if_null retv, SYMBOL_NOT_FOUND # If not found, intern a new
symbol
goto DONE
SYMBOL_NOT_FOUND:
- null nil # Intern a new global symbol
+ null nil # Intern a new global symbol
retv = _GLOBAL_SYMBOL(pkgname, symname, nil, nil)
goto DONE
@@ -84,24 +84,24 @@
# VALID_IN_PARROT_0_2_0 idx = 0
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 SIGNS:
-# VALID_IN_PARROT_0_2_0 rx_oneof token, idx, '+-', DIGIT # check for +/-
signs (optional)
+# VALID_IN_PARROT_0_2_0 rx_oneof token, idx, '+-', DIGIT # check for
+/- signs (optional)
# VALID_IN_PARROT_0_2_0 goto DIGIT
# VALID_IN_PARROT_0_2_0
-# VALID_IN_PARROT_0_2_0 DIGIT: # ensure the
rest is all digits
+# VALID_IN_PARROT_0_2_0 DIGIT: # ensure the
rest is all digits
# VALID_IN_PARROT_0_2_0 rx_is_d token, idx, DECIMAL
# VALID_IN_PARROT_0_2_0 ndig = ndig + 1
# VALID_IN_PARROT_0_2_0 goto DIGIT
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 DECIMAL:
-# VALID_IN_PARROT_0_2_0 rx_literal token, idx, '.', EOS # Check for an
optional decimal point
+# VALID_IN_PARROT_0_2_0 rx_literal token, idx, '.', EOS # Check for an
optional decimal point
# VALID_IN_PARROT_0_2_0 goto EOS
# VALID_IN_PARROT_0_2_0
-# VALID_IN_PARROT_0_2_0 EOS: # check to see
if we're at string end
+# VALID_IN_PARROT_0_2_0 EOS: # check to see
if we're at string end
# VALID_IN_PARROT_0_2_0 rx_zwa_atend token, idx, FAIL
# VALID_IN_PARROT_0_2_0 goto MATCH
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 MATCH:
-# VALID_IN_PARROT_0_2_0 if ndig == 0 goto FAIL # ensure we had
at least one digit
+# VALID_IN_PARROT_0_2_0 if ndig == 0 goto FAIL # ensure we
had at least one digit
# VALID_IN_PARROT_0_2_0 retv = 1
# VALID_IN_PARROT_0_2_0 goto DONE
# VALID_IN_PARROT_0_2_0
@@ -122,26 +122,26 @@
# VALID_IN_PARROT_0_2_0 idx = 0
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 SIGNS:
-# VALID_IN_PARROT_0_2_0 rx_oneof token, idx, '+-', PREDIGITS # check for +/-
signs (optional)
+# VALID_IN_PARROT_0_2_0 rx_oneof token, idx, '+-', PREDIGITS # check for
+/- signs (optional)
# VALID_IN_PARROT_0_2_0 goto PREDIGITS
# VALID_IN_PARROT_0_2_0
-# VALID_IN_PARROT_0_2_0 PREDIGITS: # check for
pre-decimal digits
+# VALID_IN_PARROT_0_2_0 PREDIGITS: # check for
pre-decimal digits
# VALID_IN_PARROT_0_2_0 rx_is_d token, idx, DECIMAL
# VALID_IN_PARROT_0_2_0 goto PREDIGITS
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 DECIMAL:
-# VALID_IN_PARROT_0_2_0 rx_literal token, idx, '.', FAIL # check for a
decimal point
+# VALID_IN_PARROT_0_2_0 rx_literal token, idx, '.', FAIL # check for a
decimal point
# VALID_IN_PARROT_0_2_0 goto POSTDIGIT
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 POSTDIGIT:
-# VALID_IN_PARROT_0_2_0 rx_is_d token, idx, FAIL # check for at
least one required digit
+# VALID_IN_PARROT_0_2_0 rx_is_d token, idx, FAIL # check for at
least one required digit
# VALID_IN_PARROT_0_2_0 goto POSTDIGITS
# VALID_IN_PARROT_0_2_0
-# VALID_IN_PARROT_0_2_0 POSTDIGITS: # check for
option post-decimal digits
+# VALID_IN_PARROT_0_2_0 POSTDIGITS: # check for
option post-decimal digits
# VALID_IN_PARROT_0_2_0 rx_is_d token, idx, EOS
# VALID_IN_PARROT_0_2_0 goto POSTDIGITS
# VALID_IN_PARROT_0_2_0
-# VALID_IN_PARROT_0_2_0 EOS: # check to see
if we're at string end
+# VALID_IN_PARROT_0_2_0 EOS: # check to see
if we're at string end
# VALID_IN_PARROT_0_2_0 rx_zwa_atend token, idx, FAIL
# VALID_IN_PARROT_0_2_0 goto MATCH
# VALID_IN_PARROT_0_2_0
@@ -177,17 +177,17 @@
# VALID_IN_PARROT_0_2_0 goto PACKAGE
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 COLON:
-# VALID_IN_PARROT_0_2_0 idx2 = idx1 # Index of last
valid symbol character
+# VALID_IN_PARROT_0_2_0 idx2 = idx1 # Index of
last valid symbol character
# VALID_IN_PARROT_0_2_0
-# VALID_IN_PARROT_0_2_0 rx_literal token, idx1, ':', FAIL # If we don't
have this -> not qualified
+# VALID_IN_PARROT_0_2_0 rx_literal token, idx1, ':', FAIL # If we don't
have this -> not qualified
# VALID_IN_PARROT_0_2_0
-# VALID_IN_PARROT_0_2_0 idx3 = idx1 # Start of
symbol character
-# VALID_IN_PARROT_0_2_0 type = 0 # External
symbol
+# VALID_IN_PARROT_0_2_0 idx3 = idx1 # Start of
symbol character
+# VALID_IN_PARROT_0_2_0 type = 0 # External
symbol
# VALID_IN_PARROT_0_2_0
-# VALID_IN_PARROT_0_2_0 rx_literal token, idx1, ':', SYMBOL # If we don't
have this -> not external
+# VALID_IN_PARROT_0_2_0 rx_literal token, idx1, ':', SYMBOL # If we don't
have this -> not external
# VALID_IN_PARROT_0_2_0
-# VALID_IN_PARROT_0_2_0 idx3 = idx1 # Start of
symbol character
-# VALID_IN_PARROT_0_2_0 type = 1 # Internal
symbol
+# VALID_IN_PARROT_0_2_0 idx3 = idx1 # Start of
symbol character
+# VALID_IN_PARROT_0_2_0 type = 1 # Internal
symbol
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 goto SYMBOL
# VALID_IN_PARROT_0_2_0
@@ -196,7 +196,7 @@
# VALID_IN_PARROT_0_2_0 goto SYMBOL
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 EOS:
-# VALID_IN_PARROT_0_2_0 rx_zwa_atend token, idx1, FAIL # check to see
if we're at string end
+# VALID_IN_PARROT_0_2_0 rx_zwa_atend token, idx1, FAIL # check to see
if we're at string end
# VALID_IN_PARROT_0_2_0 goto MATCH
# VALID_IN_PARROT_0_2_0
# VALID_IN_PARROT_0_2_0 KEYWORD: