Author: julianalbo Date: Sun Jan 25 07:53:53 2009 New Revision: 35996 Modified: trunk/examples/pir/pirric.pir
Log: [pirric] added GETPARROTINTERP function and -p command line option Modified: trunk/examples/pir/pirric.pir ============================================================================== --- trunk/examples/pir/pirric.pir (original) +++ trunk/examples/pir/pirric.pir Sun Jan 25 07:53:53 2009 @@ -31,10 +31,13 @@ # - Predefined string functions: CHR$, ASC, LEN, LEFT$, RIGHT$, MID$ # - Parenthesis # - Indexing with [ ] -# - Special functions: NEW, ISA, COMPREG +# - Special functions: NEW, ISA, COMPREG, GETPARROTINTERP # - Calls to methods in foreign objects # - Calls to functions in foreign namespaces - +# +# Command line options: +# -t Trace on. Same as the TRON instruction +# -p all remaining arguments are executed as PRINT instructions #----------------------------------------------------------------------- .include 'iterator.pasm' @@ -126,6 +129,7 @@ predefs = new 'Hash' setpredef(predefs, 'NEW') setpredef(predefs, 'ISA') + setpredef(predefs, 'GETPARROTINTERP') setpredef(predefs, 'CHR$', 'CHR_S') setpredef(predefs, 'ASC') setpredef(predefs, 'LEN') @@ -204,6 +208,7 @@ .local string arg arg = args[$I1] if arg == '-t' goto opt_tron + if arg == '-p' goto print_items #say arg program.'load'(arg) @@ -216,6 +221,18 @@ inc $I1 goto read_args +print_items: + .local pmc tokenizer + inc $I1 + le $I0, $I1, print_end + $S9 = args [$I1] + tokenizer = newTokenizer($S9) + runner.'func_PRINT'(tokenizer) + null tokenizer + goto print_items +print_end: + exit 0 + no_prog: $I0 = 0 start: @@ -606,6 +623,15 @@ .end #----------------------------------------------------------------------- + +.sub predef_GETPARROTINTERP :method + .param pmc tokenizer + + $P0 = getinterp + .return($P0) +.end + +#----------------------------------------------------------------------- .sub predef_CHR_S :method .param pmc tokenizer