Looking through the PGE test examples, it *looks* like subrules are just globals. (so, if I 
refer to <frob> in a rule, there should be a Match object in a global named 
"frob")


e.g., from the PIR code generated for the phone test:


           name = "digits"
           subpat = "\\d+"
           rulesub = p6rule_compile(subpat)

           store_global name, rulesub

           name = "exch"
           subpat = "\\(<digits>\\)"
           rulesub = p6rule_compile(subpat)

           store_global name, rulesub

           name = "_MASTER"
           subpat = ":w<exch> <digits>-<digits>"
           rulesub = p6rule_compile(subpat)

           match = rulesub(target)


What if I want to use a namespace other than the root one, to avoid collision 
with other rules? (I mean, I can store the rule in any global I want, but how 
do I refer to the rule later on?) (especially for library modules, or your 
compiler infrastructure, where you don't want to trounce a pre-existing rule in 
the caller or the generated code)


Further, how does this interact with other globals in the same namespace? What if I have 
a Tcl global called "digits"?


Regards?

Reply via email to