[Parsing] How do I process loops with PLY?

F. GEIGER f.geiger at vol.at
Sat Dec 25 13:38:42 EST 2004


I'm rather new to high level parsing with lex/yacc (and realy impressed so
far).

I'd like to parse *and execute* files like this:

A=12
B=23
G X=A Y=B Z=34 # Move to X, Y, Z
G Z=0

etc.

No problems so far.

But when loops enter the game, things seem to become more difficult:

A=12
B=23
C=45
D=56
DX=0

FOR C # Exec the following lines C times
   G X=A+DX Y=B Z=34 # Move to X, Y, Z

   # more statements...

   DX=DX+67
NEXT

How can I tell PLY to go back to the beginning of the FOR-loop's body to
execute it C-1 more times? A syntax checker would not need to do that, but
an interpreter (which actually I am building) has to.

Any hints are welcome.

Kind regards
Franz GEIGER





More information about the Python-list mailing list