[svn:parrot] r36507 - in trunk/examples: nci pir
NotFound at svn.parrot.org
NotFound at svn.parrot.org
Mon Feb 9 22:17:53 UTC 2009
Author: NotFound
Date: Mon Feb 9 22:17:53 2009
New Revision: 36507
URL: https://trac.parrot.org/parrot/changeset/36507
Log:
[examples] Mysql and pirric fixes
Modified:
trunk/examples/nci/Mysql.pir
trunk/examples/pir/pirric.pir
Modified: trunk/examples/nci/Mysql.pir
==============================================================================
--- trunk/examples/nci/Mysql.pir Mon Feb 9 21:02:32 2009 (r36506)
+++ trunk/examples/nci/Mysql.pir Mon Feb 9 22:17:53 2009 (r36507)
@@ -15,6 +15,8 @@
=cut
+.include 'datatypes.pasm'
+
########################################################################
.namespace ['Mysql']
@@ -421,7 +423,7 @@
$I1 = 0
$I2 = 0
nextcol:
- desc [$I2] = -69
+ desc [$I2] = .DATATYPE_CSTR
inc $I2
desc [$I2] = 1
inc $I2
Modified: trunk/examples/pir/pirric.pir
==============================================================================
--- trunk/examples/pir/pirric.pir Mon Feb 9 21:02:32 2009 (r36506)
+++ trunk/examples/pir/pirric.pir Mon Feb 9 22:17:53 2009 (r36507)
@@ -37,7 +37,7 @@
#
# Command line options:
# -d Parrot debugger mode. Jumps to the debugger after each
-# TRON line inform.
+# TRON line inform and after the 'Ready' prompt.
# -t Trace on. Same as the TRON instruction
# -p all remaining arguments are executed as PRINT instructions
#-----------------------------------------------------------------------
@@ -542,11 +542,13 @@
arg1 = self.'evaluate'(tokenizer)
$P0 = tokenizer.'get'()
+ if_null $P0, fail
$I0 = defined $P0
unless $I0 goto fail
ne $P0, ',', fail
arg2 = self.'evaluate'(tokenizer)
$P0 = tokenizer.'get'()
+ if_null $P0, fail
$I0 = defined $P0
unless $I0 goto fail
ne $P0, ')', fail
@@ -575,6 +577,7 @@
push args, arg
null arg
delim = tokenizer.'get'()
+ if_null delim, fail
$I0 = defined delim
unless $I0 goto fail
eq delim, ')', endargs
@@ -1084,9 +1087,11 @@
getvar:
$P2 = tokenizer.'get'()
+ if_null $P2, donevar
eq $P2, '.', dotted
eq $P2, '(', isfunctor
tokenizer.'back'()
+donevar:
.return(var)
isfunctor:
@@ -1142,12 +1147,17 @@
$P0 = self.'eval_base'(tokenizer, token)
again:
$P1 = tokenizer.'get'()
+ if_null $P1, done
+ $I0 = defined $P1
+ unless $I0 goto done
eq $P1, '[', keyit
tokenizer.'back'()
+done:
.return($P0)
keyit:
$P2 = self.'evaluate'(tokenizer)
$P1 = tokenizer.'get'()
+ if_null $P1, fail
eq $P1, ']', last
ne $P1, ',', fail
$P3 = $P0 [$P2]
@@ -1174,8 +1184,10 @@
$P0 = self.'eval_base_1'(tokenizer, token)
more:
$P1 = tokenizer.'get'()
+ if_null $P1, done
eq $P1, '^', dopow
tokenizer.'back'()
+done:
.return($P0)
dopow:
$P2 = self.'eval_unary'(tokenizer)
@@ -1193,8 +1205,10 @@
$P0 = self.'eval_pow'(tokenizer, token)
more:
$P1 = tokenizer.'get'()
+ if_null $P1, done
eq $P1, 'MOD', domod
tokenizer.'back'()
+done:
.return($P0)
domod:
$P2 = self.'eval_pow'(tokenizer)
@@ -1245,9 +1259,11 @@
$P0 = self.'eval_unary'(tokenizer, token)
more:
$P1 = tokenizer.'get'()
+ if_null $P1, done
eq $P1, '*', domul
eq $P1, '/', dodiv
tokenizer.'back'()
+done:
.return($P0)
domul:
$P2 = self.'eval_unary'(tokenizer)
@@ -1271,9 +1287,11 @@
$P0 = self.'eval_mul'(tokenizer, token)
more:
$P1 = tokenizer.'get'()
+ if_null $P1, done
eq $P1, '+', doadd
eq $P1, '-', dosub
tokenizer.'back'()
+done:
.return($P0)
doadd:
@@ -1312,10 +1330,12 @@
$P0 = self.'eval_add'(tokenizer, token)
more:
$P1 = tokenizer.'get'()
+ if_null $P1, done
eq $P1, '=', doequal
eq $P1, '<', doless
eq $P1, '>', dogreat
tokenizer.'back'()
+done:
.return($P0)
doequal:
$P2 = self.'eval_add'(tokenizer)
@@ -1593,9 +1613,15 @@
.local pmc program
program = getattribute self, 'program'
.local string line
+ .local pmc debugger
+ debugger = getattribute self, 'debugger'
say 'Ready'
+
reinit:
+ unless debugger goto doreadline
+ debug_break
+doreadline:
line = readlinebas(stdin, 1)
.local pmc tokenizer
@@ -1603,6 +1629,7 @@
tokenizer = newTokenizer(line)
token = tokenizer.'get'()
+ if_null token, reinit
$I0 = isa token, 'Integer'
unless $I0 goto execute
@@ -1666,6 +1693,7 @@
keyed_next:
index = self.'evaluate'(tokenizer)
op = tokenizer.'get'()
+ if_null op, fail
eq op, ']', last
ne op, ',', fail
auxobj = obj[index]
@@ -1921,6 +1949,7 @@
.local pmc arg
arg = self.'evaluate'(tokenizer)
$P1 = tokenizer.'get'()
+ if_null $P1, notype
$I1 = defined $P1
unless $I1 goto notype
ne $P1, ',', notype
@@ -2023,7 +2052,9 @@
self.'set_error_exit'($I0)
goto finish
on_error_goto:
- $P0 = self.'evaluate'(tokenizer)
+ $P0 = tokenizer.'get'()
+ $I0 = defined $P0
+ unless $I0 goto fail
$I0 = $P0
self.'set_error_goto'($I0)
goto finish
@@ -2334,10 +2365,12 @@
goto doit
endline:
- last = new 'Undef'
+# last = new 'Undef'
+ null last
setattribute self, 'last', last
.local pmc none
- none = new 'Undef'
+# none = new 'Undef'
+ null none
.return(none)
doit:
More information about the parrot-commits
mailing list