Index: languages/PIR/lib/pasm_args.pg
===================================================================
--- languages/PIR/lib/pasm_args.pg	(revision 17016)
+++ languages/PIR/lib/pasm_args.pg	(working copy)
@@ -1,4 +1,4 @@
-grammar PIRGrammar;
+grammar PIR::Grammar;
 
 # This file contains helper rules to handle
 # the PASM instruction arguments. Many instructions
Index: languages/PIR/lib/pasm_core.pg
===================================================================
--- languages/PIR/lib/pasm_core.pg	(revision 17016)
+++ languages/PIR/lib/pasm_core.pg	(working copy)
@@ -7,59 +7,59 @@
   #
   end
 | noop
-| reserved        <int_constant> 
-| load_bytecode   <arg_string>
+| reserved        <arg_hack> #<int_constant> 
+| load_bytecode   <arg_hack> #<arg_string>
   #
   # control flow
   #
-| branch          <arg_int>
-| branch_cs       <arg_string>
-| bsr             <arg_int>
+| branch          <arg_hack> #<arg_int>
+| branch_cs       <arg_hack> #<arg_string>
+| bsr             <arg_hack> #<arg_int>
 | ret
 | jsr <arg_int>
 | enternative
   # conditional branch
-| if              <var> \, <arg_int>
-| unless          <var> \, <arg_int>
-  # subroutine ops
-| invokecc        <arg_pmc_var> 
-| invoke          <arg_pmc_var> \, <arg_pmc_var>
-| yield
-| tailcall        <arg_pmc_var>
-| returncc
-| newclosure      <arg_pmc_var> \, <arg_pmc_var>
+| if              <arg_hack> #<target> \, <arg_int>
+| unless          <arg_hack> #<target> \, <arg_int>
+  # subroutine ops <arg_hack> #
+| invokecc         <arg_hack> #<arg_pmc_target> 
+| invoke           <arg_hack> #<arg_pmc_target> \, <arg_pmc_target>
+| yield            <arg_hack> #
+| tailcall         <arg_hack> #<arg_pmc_target>
+| returncc         <arg_hack> #
+| newclosure       <arg_hack> #<arg_pmc_target> \, <arg_pmc_target>
   # function args ops
-| set_args        <arg_set_args>
-| get_results     <arg_get_results> 
-| get_params      <arg_get_params>
-| set_returns     <arg_set_returns>
+| set_args        <arg_hack> # <arg_set_args>
+| get_results     <arg_hack> # <arg_get_results> 
+| get_params      <arg_hack> # <arg_get_params>
+| set_returns     <arg_hack> # <arg_set_returns>
 | result_info     <arg_hack>
   # address manipulation  
-| set_addr        <arg_hack> #<var> \, <int_constant>
-| get_addr        <arg_hack> #<var> \, <var> 
+| set_addr        <arg_hack> #<target> \, <int_constant>
+| get_addr        <arg_hack> #<target> \, <target> 
   # exception handling
 | push_eh             <arg_hack> #<id>
 | clear_eh            <arg_hack> #
-| throw               <arg_hack> #<var>
-| rethrow             <arg_hack> #<var>
+| throw               <arg_hack> #<target>
+| rethrow             <arg_hack> #<target>
 | die                 <arg_hack> #<int_constant> \, <int_constant>
 | exit                <arg_hack> #<int_constant> 
 | pushmark            <arg_hack> #<int_constant>
 | popmark             <arg_hack> #<int_constant>
-| pushaction          <arg_hack> #<var>
+| pushaction          <arg_hack> #<target>
   # interpreter ops
 | debug               <arg_hack> #<int_constant>
 | bounds              <arg_hack> #<int_constant>
 | profile             <arg_hack> #<int_constant>
 | trace               <arg_hack> #<int_constant>
 | gc_debug            <arg_hack> #<int_constant>
-| interpinfo          <arg_hack> #<var> \, <int_constant>
+| interpinfo          <arg_hack> #<target> \, <int_constant>
 | warningson          <arg_hack> #<int_constant>
 | warningsoff         <arg_hack> #<int_constant>
 | errorson            <arg_hack> #<int_constant>
 | errorsoff           <arg_hack> #<int_constant>
-| runinterp           <arg_hack> #<var> \, <int_constant>
-| getinterp           <arg_hack> #<var> 
+| runinterp           <arg_hack> #<target> \, <int_constant>
+| getinterp           <arg_hack> #<target> 
   # DOD/GC            
 | sweep               <arg_hack> #<int_constant>
 | collect             
@@ -67,11 +67,11 @@
 | sweepon             
 | collectoff          
 | collecton           
-| needs_destroy       <arg_hack> #<var>
+| needs_destroy       <arg_hack> #<target>
   # NCI               
-| loadlib             <arg_hack> #<var> \, <var>
-| dlfunc              <arg_hack> #<var> \, <var> \, <var> \, <var>
-| dlvar               <arg_hack> #<var> \, <var> \, <var>
-| compreg             <arg_hack> #<var> \, <var>
-| new_callback        <arg_hack> #<var> \, <var> \, <var> \, <var>
+| loadlib             <arg_hack> #<target> \, <target>
+| dlfunc              <arg_hack> #<target> \, <target> \, <target> \, <target>
+| dltarget               <arg_hack> #<target> \, <target> \, <target>
+| compreg             <arg_hack> #<target> \, <target>
+| new_callback        <arg_hack> #<target> \, <target> \, <target> \, <target>
 }
Index: languages/PIR/lib/pasm_instr.pg
===================================================================
--- languages/PIR/lib/pasm_instr.pg	(revision 17016)
+++ languages/PIR/lib/pasm_instr.pg	(working copy)
@@ -7,320 +7,322 @@
 # PGE implements this.
 
 token pasm_instruction {
-  end                 
-| noop                
-| reserved        
-| load_bytecode                     
-| branch          
-| branch_cs       
-| bsr             
-| ret                 
-| jsr <arg_int>       
-| enternative         
-| if              
+[ yield             
+| xor               
+| warningson        
+| warningsoff                  
+| valid_type        
+| upcase            
+| unshift           
+| unregister        
+| unpin             
+| unless_null       
 | unless            
-| invokecc        
-| invoke          
-| yield           
-| tailcall        
-| returncc        
+| typeof            
+| trans_encoding    
+| trans_charset     
+| trace             
+| titlecase         
+| time              
+| throw             
+| thaw              
+| tell              
+| tanh              
+| tan               
+| tailcallmethod    
+| tailcall          
+| sysinfo           
+| sweepon           
+| sweepoff          
+| sweep             
+| substr            
+| subclass          
+| sub               
+| stringinfo        
+| store_lex         
+| stat              
+| sqrt              
+| sprintf           
+| split             
+| spawnw            
+| socket            
+| sockaddr          
+| sleep             
+| sizeof            
+| sinh              
+| singleton         
+| sin               
+| shr               
+| shl               
+| shift             
+| setstdout         
+| setstderr         
+| sets_ind          
+| setref            
+| setprop                    
+| setp_ind          
+| setn_ind          
+| seti_ind          
+| setattribute      
+| set_root_global                 
+| set_returns       
+| set_hll_global    
+| set_global        
+| set_args          
+| set_addr          
+| set               
+| send              
+| seek              
+| sech              
+| sec               
+| savec             
+| saveall           
+| save              
+| runinterp                        
+| rotate_up         
+| rot               
+| returncc          
+| rethrow           
+| ret               
+| result_info       
+| restoreall        
+| restore           
+| reserved          
+| repeat            
+| removeparent      
+| removedoes        
+| removeattribute   
+| register          
+| recv              
+| readline          
+| read              
+| pushmark          
+| pushaction        
+| push_eh           
+| push              
+| prophash          
+| profile           
+| printerr          
+| print             
+| print             
+| pow               
+| popmark           
+| pop               
+| poll              
+| pioctl            
+| pin               
+| peek              
+| ord               
+| or                
+| open              
+| null              
+| not               
+| noop              
 | newclosure        
-| set_args        
-| get_results     
-| get_params      
-| set_returns     
-| result_info       
-| set_addr        
+| newclass          
+| new_callback      
+| new               
+| new               
+| neg                             
+| needs_destroy     
+| ne_str            
+| ne_num            
+| ne_addr           
+| ne                
+| n_repeat          
+| n_not                          
+| n_neg             
+| n_infix           
+| n_concat          
+| n_bnots           
+| n_bnot            
+| n_abs             
+| mul               
+| mod               
+| mmdvtregister     
+| mmdvtfind         
+| lt_str            
+| lt_num            
+| lt_addr           
+| lt                
+| lsr               
+| lookback          
+| log2              
+| log10             
+| localtime         
+| loadlib           
+| load_bytecode     
+| ln                
+| listen            
+| length            
+| le_str            
+| le_num            
+| le_addr           
+| le                              
+| lcm               
+| jsr               
+| join              
+| istrue            
+| issame            
+| isnull            
+| isntsame          
+| isne              
+| islt              
+| isle              
+| isgt              
+| isge              
+| isfalse           
+| iseq              
+| isa               
+| is_cclass         
+| invokecc          
+| invoke            
+| interpinfo        
+| infix             
+| index             
+| inc               
+| if_null           
+| if                
+| hash              
+| gt_str            
+| gt_num            
+| gt_addr           
+| gt                
+| gmtime            
+| getstdout         
+| getstdin          
+| getstderr         
+| getprop           
+| getline           
+| getinterp         
+| getfile           
+| getfd                         
+| getclass          
+| getattribute      
+| get_root_namespace
+| get_root_global   
+| get_results       
+| get_repr          
+| get_params        
+| get_namespace     
+| get_mro           
+| get_hll_namespace 
+| get_hll_global    
+| get_global        
 | get_addr          
-| push_eh             
-| clear_eh            
-| throw               
-| rethrow             
-| die                 
-| exit                
-| pushmark            
-| popmark             
-| pushaction          
-| debug               
-| bounds              
-| profile             
-| trace               
-| gc_debug            
-| interpinfo          
-| warningson          
-| warningsoff         
-| errorson            
-| errorsoff           
-| runinterp           
-| getinterp           
-| sweep               
-| collect             
-| sweepoff            
-| sweepon             
-| collectoff          
-| collecton           
-| needs_destroy                   
-| loadlib             
-| dlfunc              
-| dlvar               
-| compreg             
-| new_callback                         
-| band                
-| bands               
-| bnot                
-| n_bnot              
-| bnots               
-| n_bnots             
-| bor                 
-| bors                
-| shl                 
-| shr                 
-| lsr                 
-| rot                 
-| bxor                
-| bxors                                 
-| eq                  
-| eq_str              
-| eq_num              
-| eq_addr             
-| ne                  
-| ne_str              
-| ne_num              
-| ne_addr             
-| lt                  
-| lt_str              
-| lt_num              
-| lt_addr             
-| le                  
-| le_str              
-| le_num              
-| le_addr             
-| gt                  
-| gt_str              
-| gt_num              
-| gt_addr             
-| ge                  
-| ge_str              
-| ge_num              
-| ge_addr             
-| if_null             
-| unless_null         
-| cmp                 
-| cmp_str             
-| cmp_num             
-| issame              
-| isntsame            
-| istrue              
-| isfalse             
-| isnull              
-| isge                
-| isgt                
-| isle                
-| islt                
-| iseq                
-| isne                
-| and                 
-| not                 
-| n_not               
-| or                  
-| xor                                  
-| debug_init          
-| debug_load          
-| debug_break         
-| debug_print         
-| backtrace           
-| getline             
-| getfile                             
-| close               
-| fdopen              
-| getfd               
-| getstdin            
-| getstdout           
-| getstderr           
-| setstdout           
-| setstderr           
-| pioctl              
-| open                
-| print               
-| printerr            
-| print               
-| read                
-| readline            
-| peek                
-| stat                
-| seek                
-| tell                
-| socket              
-| sockaddr            
-| connect             
-| recv                
-| send                
-| poll                
-| bind                
-| listen              
-| accept                               
-| infix               
-| n_infix             
-| abs                 
-| n_abs               
-| add                 
-| cmod                
-| dec                 
-| div                 
-| fdiv                
-| ceil                
-| floor               
-| inc                 
-| mod                 
-| mul                 
-| neg                 
-| n_neg               
-| pow                 
-| sub                 
-| sqrt                
-| acos                
-| asec                
-| asin                
-| atan                
-| cos                 
-| cosh                
-| exp                 
-| ln                  
-| log10               
-| log2                
-| sec                 
-| sech                
-| sin                 
-| sinh                
-| tan                 
-| tanh                
-| gcd                 
-| lcm                 
-| fact                               
-| callmethodcc        
-| callmethod          
-| tailcallmethod      
-| addmethod           
-| can                 
-| does                
-| isa                 
-| newclass            
-| subclass            
-| getclass            
-| singleton           
-| class               
-| classname           
-| addparent           
-| removeparent        
-| addattribute        
-| removeattribute     
-| getattribute        
-| setattribute        
-| classoffset         
-| adddoes             
-| removedoes                            
-| new 
-| typeof              
-| find_type           
-| valid_type          
-| get_repr            
-| find_method         
-| defined             
-| exists              
-| delete              
-| elements            
-| push                
-| pop                 
-| unshift             
-| shift               
-| setprop             
-| getprop             
-| delprop             
-| prophash            
-| freeze              
-| thaw                
-| mmdvtregister       
-| mmdvtfind           
-| register            
-| unregister          
-| hash                
-| get_mro                                 
-| clone               
-| exchange            
-| set                 
-| assign              
-| setref              
-| deref               
-| setp_ind            
-| setn_ind            
-| sets_ind            
-| seti_ind            
-| null                
-| cleari              
-| clearn              
-| clearp              
-| clears                                
-| saveall             
-| restoreall          
-| entrytype           
-| depth               
-| lookback            
-| save                
-| savec               
-| restore             
-| rotate_up                            
-| ord                 
-| chr                 
-| chopn               
-| concat              
-| n_concat            
-| repeat              
-| n_repeat            
-| length              
-| bytelength          
-| pin                 
-| unpin               
-| substr              
-| index               
-| sprintf             
-| new # ??            
-| stringinfo          
-| upcase              
-| downcase            
-| titlecase           
-| join                
-| split               
-| charset             
-| charsetname         
-| find_charset        
-| trans_charset       
-| encoding            
-| find_encoding       
-| trans_encoding      
-| is_cclass           
-| find_cclass         
-| find_not_cclass     
-| escape              
-| compose                               
-| spawnw              
-| err                 
-| time                
-| gmtime              
-| localtime           
-| decodetime          
-| decodelocaltime     
-| sysinfo             
-| sleep               
-| sizeof                              
-| store_lex           
-| find_lex            
-| get_namespace       
-| get_hll_namespace   
-| get_root_namespace  
-| get_global          
-| get_hll_global      
-| get_root_global     
-| set_global          
-| set_hll_global      
-| set_root_global   
+| ge_str            
+| ge_num            
+| ge_addr           
+| ge                
+| gcd               
+| gc_debug          
+| freeze            
+| floor             
+| find_type                        
+| find_not_cclass   
+| find_name
+| find_method       
+| find_lex          
+| find_encoding     
+| find_charset      
+| find_cclass       
+| fdopen            
+| fdiv              
+| fact              
+| exp               
+| exit              
+| exists            
+| exchange          
+| escape            
+| errorson          
+| errorsoff         
+| err               
+| eq_str            
+| eq_num            
+| eq_addr           
+| eq                
+| entrytype         
+| enternative       
+| end               
+| encoding          
+| elements                           
+| downcase          
+| does              
+| dlvar             
+| dlfunc            
+| div               
+| die               
+| deref             
+| depth             
+| delprop           
+| delete            
+| defined           
+| decodetime        
+| decodelocaltime   
+| dec               
+| debug_print                      
+| debug_load        
+| debug_init        
+| debug_break       
+| debug             
+| cosh              
+| cos               
+| connect           
+| concat            
+| compreg                         
+| compose           
+| collecton         
+| collectoff        
+| collect           
+| cmp_str           
+| cmp_num           
+| cmp               
+| cmod              
+| close             
+| clone             
+| clears            
+| clearp            
+| clearn            
+| cleari            
+| clear_eh          
+| classoffset       
+| classname         
+| class             
+| chr               
+| chopn             
+| charsetname       
+| charset           
+| ceil              
+| can               
+| callmethodcc      
+| callmethod        
+| bytelength        
+| bxors             
+| bxor              
+| bsr               
+| branch_cs         
+| branch            
+| bounds                           
+| bors              
+| bor               
+| bnots             
+| bnot              
+| bind              
+| bands             
+| band              
+| backtrace         
+| atan              
+| assign                         
+| asin              
+| asec              
+| and               
+| addparent         
+| addmethod         
+| adddoes           
+| addattribute      
+| add               
+| acos              
+| accept            
+| abs               
+] \b
 } 
Index: languages/PIR/lib/pasm_pmc.pg
===================================================================
--- languages/PIR/lib/pasm_pmc.pg	(revision 17016)
+++ languages/PIR/lib/pasm_pmc.pg	(working copy)
@@ -31,7 +31,7 @@
 | find_method         <arg_hack> #
 | defined             <arg_hack> #
 | exists              <arg_hack> #
-| delete              <arg_hack> #
+| delete              <target> <PGE::Text::bracketed: []> #
 | elements            <arg_hack> #
 | push                <arg_hack> #
 | pop                 <arg_hack> #
