\ *** AAma ADDRESS EXPRESSIONS \ BEGIN automatically generated code (dnw 2Mar07) \ To be renamed: SAVE-SEM 'TIS 'TAINT "[" "]" \ num ::= dec# | hex# | num-name | asc# | oct# | bin# : num ( s -- after.s true | s false ) COND dec# NIF hex# NIF num-name NIF asc# NIF oct# NIF bin# ELSES true THEN ; \ addr ::= addr-ref | temp-ref | num | '.' : addr ( s -- after.s true | s false ) COND addr-ref NIF temp-ref NIF num NIF "." ELSES true THEN ; \ simple-addr-expr ::= [termop] addr {termop addr} : simple-addr-expr ( s -- after.s true | s false ) COND save-sem \ termop drop addr IF BEGIN COND save-sem termop IF addr IF 'tis ELSES 'taint THEN NUNTIL 'tis ELSES 'taint THEN ; \ addr-bracket ::= '[' simple-addr-expr ']' : addr-bracket ( s -- after.s true | s false ) COND save-sem "[" IF simple-addr-expr IF "]" IF 'tis ELSES 'taint THEN ; \ addr-monom ::= [num {factorop num} '*'] addr-bracket {factorop num} : addr-monom ( s -- after.s true | s false ) COND save-sem \ COND save-sem num IF BEGIN COND save-sem factorop IF num IF 'tis ELSES 'taint THEN NUNTIL "*" IF 'tis ELSES 'taint THEN drop addr-bracket IF BEGIN COND save-sem factorop IF num IF 'tis ELSES 'taint THEN NUNTIL 'tis ELSES 'taint THEN ; \ addr-expr ::= [termop] (addr-monom | addr) {termop (addr-monom | addr)} : addr-expr ( s -- after.s true | s false ) 1 last-termop ! \ INITIALIZATION COND save-sem \ termop drop COND addr-monom NIF addr ELSES true THEN IF BEGIN COND save-sem termop IF COND addr-monom NIF addr ELSES true THEN IF 'tis ELSES 'taint THEN NUNTIL 'tis ELSES 'taint THEN ; \ END automatically generated code