Index: ruby/trunk/adl_parser/lib/parser.rb
===================================================================
--- ruby/trunk/adl_parser/lib/parser.rb	(revision 14)
+++ ruby/trunk/adl_parser/lib/parser.rb	(revision 16)
@@ -21,5 +21,5 @@
     class Parser < Racc::Parser
 
-module_eval <<'..end lib/parser.y modeval..id7c96f38efa', 'lib/parser.y', 634
+module_eval <<'..end lib/parser.y modeval..id35ef94ed29', 'lib/parser.y', 642
 ###----------/* keywords */ --------------------------------------------- 
 @@adl_reserved = {
@@ -153,5 +153,5 @@
 #          @start_block_received = true
           @adl_type.push(:dadl)
-          yield :SYM_START_DBLOCK, :SYM_START_DBLOCK
+          yield :SYM_START_DBLOCK,  $&
         end
       when /\A\>/   # >
@@ -171,5 +171,5 @@
 #        puts "Escaping #{adl_type}"
         assert_at(__FILE__,__LINE__){adl_type == :cadl}
-        yield :SYM_END_CBLOCK, :SYM_END_CBLOCK
+        yield :SYM_END_CBLOCK, $&
       when /\A\-/   # -
         yield :Minus_code, :Minus_code
@@ -307,5 +307,5 @@
         @in_c_domain_type = true
         @adl_type.push(:dadl)
-          yield :START_V_C_DOMAIN_TYPE_BLOCK, :START_V_C_DOMAIN_TYPE_BLOCK
+          yield :START_V_C_DOMAIN_TYPE_BLOCK, $&
 ###         else
 ###           raise
@@ -316,5 +316,5 @@
         else
           @adl_type.push(:dadl)
-          yield :SYM_START_DBLOCK, :SYM_START_DBLOCK
+          yield :SYM_START_DBLOCK,  $&
         end
       when /\A\>/   # >
@@ -508,14 +508,20 @@
           @in_interval = false
           yield :SYM_GT, :SYM_GT
-        elsif @in_c_domain_type
-          @in_c_domain_type = false
+        elsif @in_c_domain_type == true
+          assert_at(__FILE__,__LINE__){@adl_type.last == :dadl}
           adl_type = @adl_type.pop
-          assert_at(__FILE__,__LINE__){adl_type == :dadl}
-          yield :END_V_C_DOMAIN_TYPE_BLOCK, :END_V_C_DOMAIN_TYPE_BLOCK
-        else
+          if @adl_type.last == :cadl
+            @in_c_domain_type = false
+            yield :END_V_C_DOMAIN_TYPE_BLOCK, $&
+          else
+            yield :SYM_END_DBLOCK, $&
+          end
+        elsif @in_c_domain_type == false
           adl_type = @adl_type.pop
 #          puts "Escaping #{adl_type}"
           assert_at(__FILE__,__LINE__){adl_type == :dadl}
-          yield :SYM_END_DBLOCK, :SYM_END_DBLOCK
+          yield :SYM_END_DBLOCK, $&
+        else
+          raise
         end
       when /\A\-/   # -
@@ -556,18 +562,19 @@
         if @in_interval
           @in_interval = false
-#        elsif @start_block_received
-#          @start_block_received = false
         else
           @in_interval = false
         end
         yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
-      when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/
-#      when /\A\[[a-zA-Z0-9()\._-]+\:\:[a-zA-Z0-9\._-]+\]/   #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
+      when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/   #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
         yield :V_QUALIFIED_TERM_CODE_REF, $&
+      when /\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/   #ERR_V_QUALIFIED_TERM_CODE_REF
+        yield :ERR_V_QUALIFIED_TERM_CODE_REF, $&
+      when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/   #V_LOCAL_TERM_CODE_REF
+        yield :V_LOCAL_TERM_CODE_REF, $&
       when /\A\[/   # [
         yield :Left_bracket_code, :Left_bracket_code
       when /\A\]/   # ]
         yield :Right_bracket_code, :Right_bracket_code
-      when /\A[A-Z][a-zA-Z0-9_]*/
+      when /\A[A-Z][a-zA-Z0-9_-]*/
         yield :V_TYPE_IDENTIFIER, $&
       when /\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/   #V_GENERIC_TYPE_IDENTIFIER
@@ -580,8 +587,4 @@
           yield :V_ATTRIBUTE_IDENTIFIER, $&
         end
-      when /\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/   #ERR_V_QUALIFIED_TERM_CODE_REF
-        yield :ERR_V_QUALIFIED_TERM_CODE_REF, $&
-      when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/   #V_LOCAL_TERM_CODE_REF
-        yield :V_LOCAL_TERM_CODE_REF, $&
       when /\Aa[ct][0-9.]+/   #V_LOCAL_CODE
         yield :V_LOCAL_CODE, $&
@@ -771,5 +774,5 @@
 
 
-..end lib/parser.y modeval..id7c96f38efa
+..end lib/parser.y modeval..id35ef94ed29
 
 ##### racc 1.4.5 generates ###
@@ -795,5 +798,5 @@
  2, 98, :_reduce_none,
  0, 99, :_reduce_none,
- 2, 99, :_reduce_none,
+ 2, 99, :_reduce_19,
  2, 99, :_reduce_none,
  0, 100, :_reduce_none,
@@ -807,6 +810,6 @@
  5, 110, :_reduce_none,
  2, 112, :_reduce_none,
- 1, 114, :_reduce_none,
- 2, 114, :_reduce_none,
+ 1, 114, :_reduce_31,
+ 2, 114, :_reduce_32,
  1, 113, :_reduce_none,
  1, 113, :_reduce_none,
@@ -822,41 +825,40 @@
  1, 119, :_reduce_none,
  3, 126, :_reduce_none,
- 1, 127, :_reduce_none,
  4, 120, :_reduce_none,
  3, 120, :_reduce_none,
  6, 121, :_reduce_none,
- 2, 129, :_reduce_none,
- 2, 132, :_reduce_none,
- 3, 132, :_reduce_none,
- 2, 132, :_reduce_none,
+ 2, 128, :_reduce_none,
+ 2, 131, :_reduce_none,
+ 3, 131, :_reduce_none,
+ 2, 131, :_reduce_none,
  1, 125, :_reduce_none,
- 1, 133, :_reduce_none,
- 1, 133, :_reduce_none,
- 1, 133, :_reduce_none,
- 1, 133, :_reduce_none,
- 1, 133, :_reduce_none,
- 1, 133, :_reduce_none,
- 1, 133, :_reduce_none,
- 1, 133, :_reduce_none,
+ 1, 132, :_reduce_none,
+ 1, 132, :_reduce_none,
+ 1, 132, :_reduce_none,
+ 1, 132, :_reduce_none,
+ 1, 132, :_reduce_none,
+ 1, 132, :_reduce_none,
+ 1, 132, :_reduce_none,
+ 1, 132, :_reduce_none,
  1, 117, :_reduce_none,
  1, 118, :_reduce_none,
  2, 118, :_reduce_none,
- 5, 142, :_reduce_none,
- 5, 142, :_reduce_none,
- 5, 142, :_reduce_none,
+ 5, 141, :_reduce_none,
+ 5, 141, :_reduce_none,
+ 5, 141, :_reduce_none,
+ 2, 142, :_reduce_none,
+ 3, 142, :_reduce_none,
+ 1, 143, :_reduce_none,
  2, 143, :_reduce_none,
- 3, 143, :_reduce_none,
- 1, 144, :_reduce_none,
- 2, 144, :_reduce_none,
- 1, 144, :_reduce_none,
+ 1, 143, :_reduce_none,
+ 0, 129, :_reduce_none,
+ 2, 129, :_reduce_none,
  0, 130, :_reduce_none,
  2, 130, :_reduce_none,
- 0, 131, :_reduce_none,
- 2, 131, :_reduce_none,
+ 1, 146, :_reduce_none,
+ 2, 146, :_reduce_none,
+ 3, 147, :_reduce_none,
  1, 147, :_reduce_none,
- 2, 147, :_reduce_none,
- 3, 148, :_reduce_none,
- 1, 148, :_reduce_none,
- 3, 148, :_reduce_none,
+ 3, 147, :_reduce_none,
  0, 102, :_reduce_none,
  2, 102, :_reduce_none,
@@ -865,32 +867,47 @@
  2, 103, :_reduce_none,
  1, 108, :_reduce_none,
+ 1, 150, :_reduce_none,
+ 1, 150, :_reduce_none,
  1, 151, :_reduce_none,
- 1, 151, :_reduce_none,
+ 2, 151, :_reduce_none,
+ 3, 151, :_reduce_none,
+ 3, 153, :_reduce_none,
+ 1, 154, :_reduce_none,
+ 2, 154, :_reduce_none,
+ 1, 155, :_reduce_none,
+ 1, 155, :_reduce_none,
  1, 152, :_reduce_none,
- 2, 152, :_reduce_none,
- 3, 152, :_reduce_none,
- 3, 154, :_reduce_none,
- 1, 155, :_reduce_none,
- 2, 155, :_reduce_none,
- 1, 156, :_reduce_none,
- 1, 156, :_reduce_none,
- 1, 153, :_reduce_none,
- 1, 153, :_reduce_none,
- 1, 159, :_reduce_none,
- 2, 159, :_reduce_none,
- 3, 160, :_reduce_none,
- 1, 161, :_reduce_none,
- 1, 162, :_reduce_none,
- 2, 162, :_reduce_none,
- 3, 163, :_reduce_none,
- 3, 164, :_reduce_none,
+ 1, 152, :_reduce_none,
  1, 158, :_reduce_none,
  2, 158, :_reduce_none,
- 2, 166, :_reduce_none,
- 3, 166, :_reduce_none,
- 1, 167, :_reduce_none,
+ 3, 159, :_reduce_none,
+ 1, 160, :_reduce_none,
+ 1, 161, :_reduce_none,
+ 2, 161, :_reduce_none,
+ 3, 162, :_reduce_none,
+ 3, 163, :_reduce_none,
  1, 157, :_reduce_none,
  2, 157, :_reduce_none,
- 3, 168, :_reduce_none,
+ 2, 165, :_reduce_none,
+ 3, 165, :_reduce_none,
+ 1, 166, :_reduce_none,
+ 1, 156, :_reduce_none,
+ 2, 156, :_reduce_none,
+ 3, 167, :_reduce_none,
+ 1, 168, :_reduce_none,
+ 1, 168, :_reduce_none,
+ 1, 168, :_reduce_none,
+ 1, 168, :_reduce_none,
+ 1, 168, :_reduce_none,
+ 1, 164, :_reduce_none,
+ 1, 164, :_reduce_none,
+ 1, 164, :_reduce_none,
+ 1, 164, :_reduce_none,
+ 1, 164, :_reduce_none,
+ 1, 164, :_reduce_none,
+ 1, 164, :_reduce_none,
+ 1, 164, :_reduce_none,
+ 1, 164, :_reduce_none,
+ 1, 164, :_reduce_none,
  1, 169, :_reduce_none,
  1, 169, :_reduce_none,
@@ -898,14 +915,8 @@
  1, 169, :_reduce_none,
  1, 169, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 165, :_reduce_none,
+ 1, 169, :_reduce_none,
+ 1, 169, :_reduce_none,
+ 1, 169, :_reduce_none,
+ 1, 169, :_reduce_none,
  1, 170, :_reduce_none,
  1, 170, :_reduce_none,
@@ -914,19 +925,25 @@
  1, 170, :_reduce_none,
  1, 170, :_reduce_none,
- 1, 170, :_reduce_none,
- 1, 170, :_reduce_none,
- 1, 170, :_reduce_none,
- 1, 171, :_reduce_none,
- 1, 171, :_reduce_none,
- 1, 171, :_reduce_none,
- 1, 171, :_reduce_none,
- 1, 171, :_reduce_none,
- 1, 171, :_reduce_none,
  1, 116, :_reduce_none,
  1, 116, :_reduce_none,
+ 1, 173, :_reduce_none,
+ 3, 183, :_reduce_none,
+ 3, 183, :_reduce_none,
+ 3, 183, :_reduce_none,
  1, 174, :_reduce_none,
+ 2, 174, :_reduce_none,
+ 2, 174, :_reduce_none,
  3, 184, :_reduce_none,
  3, 184, :_reduce_none,
  3, 184, :_reduce_none,
+ 5, 192, :_reduce_none,
+ 6, 192, :_reduce_none,
+ 6, 192, :_reduce_none,
+ 7, 192, :_reduce_none,
+ 4, 192, :_reduce_none,
+ 4, 192, :_reduce_none,
+ 4, 192, :_reduce_none,
+ 4, 192, :_reduce_none,
+ 3, 192, :_reduce_none,
  1, 175, :_reduce_none,
  2, 175, :_reduce_none,
@@ -945,9 +962,16 @@
  3, 193, :_reduce_none,
  1, 176, :_reduce_none,
- 2, 176, :_reduce_none,
- 2, 176, :_reduce_none,
+ 1, 176, :_reduce_none,
  3, 186, :_reduce_none,
  3, 186, :_reduce_none,
  3, 186, :_reduce_none,
+ 1, 177, :_reduce_none,
+ 3, 187, :_reduce_none,
+ 3, 187, :_reduce_none,
+ 3, 187, :_reduce_none,
+ 1, 178, :_reduce_none,
+ 3, 188, :_reduce_none,
+ 3, 188, :_reduce_none,
+ 3, 188, :_reduce_none,
  5, 194, :_reduce_none,
  6, 194, :_reduce_none,
@@ -959,13 +983,4 @@
  4, 194, :_reduce_none,
  3, 194, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 3, 187, :_reduce_none,
- 3, 187, :_reduce_none,
- 3, 187, :_reduce_none,
- 1, 178, :_reduce_none,
- 3, 188, :_reduce_none,
- 3, 188, :_reduce_none,
- 3, 188, :_reduce_none,
  1, 179, :_reduce_none,
  3, 189, :_reduce_none,
@@ -1007,84 +1022,77 @@
  4, 197, :_reduce_none,
  3, 197, :_reduce_none,
+ 1, 171, :_reduce_none,
+ 3, 172, :_reduce_none,
+ 3, 172, :_reduce_none,
+ 3, 172, :_reduce_none,
  1, 182, :_reduce_none,
- 3, 192, :_reduce_none,
- 3, 192, :_reduce_none,
- 3, 192, :_reduce_none,
- 5, 198, :_reduce_none,
- 6, 198, :_reduce_none,
- 6, 198, :_reduce_none,
- 7, 198, :_reduce_none,
- 4, 198, :_reduce_none,
- 4, 198, :_reduce_none,
- 4, 198, :_reduce_none,
- 4, 198, :_reduce_none,
- 3, 198, :_reduce_none,
- 1, 172, :_reduce_none,
- 3, 173, :_reduce_none,
- 3, 173, :_reduce_none,
- 3, 173, :_reduce_none,
- 1, 183, :_reduce_none,
  1, 111, :_reduce_none,
  2, 111, :_reduce_none,
+ 3, 198, :_reduce_none,
+ 1, 198, :_reduce_none,
+ 3, 198, :_reduce_none,
+ 1, 149, :_reduce_none,
+ 1, 149, :_reduce_none,
+ 2, 200, :_reduce_none,
+ 2, 200, :_reduce_none,
+ 5, 200, :_reduce_none,
+ 5, 200, :_reduce_none,
+ 2, 200, :_reduce_none,
+ 3, 200, :_reduce_none,
+ 3, 200, :_reduce_none,
+ 3, 200, :_reduce_none,
+ 3, 200, :_reduce_none,
+ 3, 200, :_reduce_none,
+ 3, 200, :_reduce_none,
+ 3, 200, :_reduce_none,
+ 3, 200, :_reduce_none,
+ 3, 200, :_reduce_none,
+ 3, 200, :_reduce_none,
  3, 199, :_reduce_none,
  1, 199, :_reduce_none,
- 3, 199, :_reduce_none,
- 1, 150, :_reduce_none,
- 1, 150, :_reduce_none,
- 2, 201, :_reduce_none,
- 2, 201, :_reduce_none,
- 5, 201, :_reduce_none,
- 5, 201, :_reduce_none,
- 2, 201, :_reduce_none,
- 3, 201, :_reduce_none,
- 3, 201, :_reduce_none,
- 3, 201, :_reduce_none,
- 3, 201, :_reduce_none,
- 3, 201, :_reduce_none,
- 3, 201, :_reduce_none,
- 3, 201, :_reduce_none,
- 3, 201, :_reduce_none,
- 3, 201, :_reduce_none,
- 3, 201, :_reduce_none,
- 3, 200, :_reduce_none,
- 1, 200, :_reduce_none,
- 1, 200, :_reduce_none,
+ 1, 199, :_reduce_none,
+ 1, 202, :_reduce_none,
+ 1, 202, :_reduce_none,
+ 3, 204, :_reduce_none,
+ 3, 204, :_reduce_none,
+ 3, 204, :_reduce_none,
+ 3, 204, :_reduce_none,
+ 3, 204, :_reduce_none,
+ 3, 203, :_reduce_none,
  1, 203, :_reduce_none,
  1, 203, :_reduce_none,
- 3, 205, :_reduce_none,
- 3, 205, :_reduce_none,
- 3, 205, :_reduce_none,
- 3, 205, :_reduce_none,
- 3, 205, :_reduce_none,
- 3, 204, :_reduce_none,
- 1, 204, :_reduce_none,
- 1, 204, :_reduce_none,
- 1, 204, :_reduce_none,
- 1, 128, :_reduce_none,
- 2, 128, :_reduce_none,
- 1, 202, :_reduce_none,
- 3, 202, :_reduce_none,
- 2, 206, :_reduce_none,
+ 1, 203, :_reduce_none,
+ 1, 127, :_reduce_none,
+ 2, 127, :_reduce_none,
+ 1, 201, :_reduce_none,
+ 3, 201, :_reduce_none,
+ 2, 205, :_reduce_none,
+ 1, 205, :_reduce_none,
+ 0, 144, :_reduce_none,
+ 5, 144, :_reduce_none,
  1, 206, :_reduce_none,
- 0, 145, :_reduce_none,
+ 3, 206, :_reduce_none,
  5, 145, :_reduce_none,
  1, 207, :_reduce_none,
  3, 207, :_reduce_none,
- 5, 146, :_reduce_none,
- 1, 208, :_reduce_none,
- 3, 208, :_reduce_none,
- 3, 208, :_reduce_none,
- 3, 208, :_reduce_none,
- 5, 208, :_reduce_none,
- 5, 208, :_reduce_none,
- 5, 208, :_reduce_none,
- 5, 208, :_reduce_none,
- 1, 210, :_reduce_none,
- 1, 210, :_reduce_none,
+ 3, 207, :_reduce_none,
+ 3, 207, :_reduce_none,
+ 5, 207, :_reduce_none,
+ 5, 207, :_reduce_none,
+ 5, 207, :_reduce_none,
+ 5, 207, :_reduce_none,
+ 1, 209, :_reduce_none,
+ 1, 209, :_reduce_none,
  0, 115, :_reduce_none,
  5, 115, :_reduce_none,
  2, 115, :_reduce_none,
- 1, 209, :_reduce_none,
- 3, 209, :_reduce_none,
+ 1, 208, :_reduce_none,
+ 3, 208, :_reduce_none,
+ 1, 210, :_reduce_none,
+ 1, 210, :_reduce_none,
+ 1, 210, :_reduce_none,
+ 1, 133, :_reduce_none,
+ 3, 133, :_reduce_none,
+ 3, 133, :_reduce_none,
  1, 211, :_reduce_none,
  1, 211, :_reduce_none,
@@ -1112,4 +1120,5 @@
  3, 137, :_reduce_none,
  1, 215, :_reduce_none,
+ 3, 215, :_reduce_none,
  1, 215, :_reduce_none,
  1, 215, :_reduce_none,
@@ -1117,8 +1126,7 @@
  3, 138, :_reduce_none,
  3, 138, :_reduce_none,
- 1, 216, :_reduce_none,
- 3, 216, :_reduce_none,
- 1, 216, :_reduce_none,
- 1, 216, :_reduce_none,
+ 1, 217, :_reduce_none,
+ 1, 217, :_reduce_none,
+ 3, 217, :_reduce_none,
  1, 139, :_reduce_none,
  3, 139, :_reduce_none,
@@ -1127,502 +1135,496 @@
  1, 218, :_reduce_none,
  3, 218, :_reduce_none,
+ 3, 218, :_reduce_none,
  1, 140, :_reduce_none,
  3, 140, :_reduce_none,
  3, 140, :_reduce_none,
- 1, 219, :_reduce_none,
- 1, 219, :_reduce_none,
- 3, 219, :_reduce_none,
- 3, 219, :_reduce_none,
- 1, 141, :_reduce_none,
- 3, 141, :_reduce_none,
- 3, 141, :_reduce_none,
  1, 124, :_reduce_none,
  3, 124, :_reduce_none,
  3, 124, :_reduce_none,
- 1, 220, :_reduce_none,
+ 1, 219, :_reduce_none,
+ 3, 219, :_reduce_none,
  3, 220, :_reduce_none,
- 3, 221, :_reduce_none,
  1, 123, :_reduce_none,
  1, 123, :_reduce_none,
- 3, 222, :_reduce_none,
- 0, 223, :_reduce_none,
- 1, 223, :_reduce_none,
- 2, 223, :_reduce_none,
+ 3, 221, :_reduce_none,
+ 0, 222, :_reduce_none,
+ 1, 222, :_reduce_none,
+ 2, 222, :_reduce_none,
  1, 122, :_reduce_none,
- 1, 149, :_reduce_none,
- 1, 149, :_reduce_none,
- 1, 217, :_reduce_none ]
-
-racc_reduce_n = 377
-
-racc_shift_n = 634
+ 1, 148, :_reduce_none,
+ 1, 148, :_reduce_none,
+ 1, 216, :_reduce_none ]
+
+racc_reduce_n = 376
+
+racc_shift_n = 633
 
 racc_action_table = [
-   574,   497,   475,   144,   409,    90,    96,   472,   467,   469,
-    24,   591,   572,   576,     1,   466,   376,    16,   152,   155,
-   323,   324,   108,    67,   368,    54,   162,   112,   524,   163,
-    67,   262,   124,     6,   236,    17,   536,   511,    25,   514,
-   516,   513,   543,    49,   571,   540,    90,    96,   541,   542,
-    49,    44,    46,   317,   156,   495,    78,   183,   112,    86,
-   294,   299,   410,   124,   126,   109,   112,   526,   112,   524,
-   573,   124,   109,   126,    86,   493,   443,   536,   511,    71,
-   514,   516,   273,    90,    96,   309,   314,   279,   532,   148,
-   149,   287,    44,    46,   317,   147,   435,    78,   183,   112,
-    86,   294,   299,   491,   124,   126,   109,   112,   526,   480,
-   160,   109,   152,   155,   431,   143,   628,   217,   463,   323,
-   324,    90,    96,   382,   383,   433,   309,   314,   279,   532,
-   126,   317,   287,   112,    78,   183,   100,    86,   294,   299,
-   230,   124,   126,   109,   112,    90,    96,   371,   156,   216,
-    88,    94,   109,   152,   155,   133,   126,   124,   138,   142,
-   100,    76,   127,   309,   314,   279,    90,    96,   124,   287,
-   152,   155,    78,    86,    78,    86,    88,    94,   152,   155,
-   126,   100,   138,   148,   149,    82,    85,   152,   155,   156,
-   157,   158,    71,   459,   150,   390,    78,   151,   153,    86,
-    88,    94,   134,    98,   152,   155,   156,   152,   155,    82,
-    85,   237,    44,    46,   156,   458,    71,    78,    90,    96,
-    86,    88,    94,   156,   148,   149,   129,   391,   323,   324,
-    82,    85,   568,   219,   382,   383,   274,    71,   323,   324,
-   156,   148,   149,   156,   152,   155,   211,   157,   158,   148,
-   149,   150,   393,   154,   151,   153,   382,   383,   148,   149,
-   236,    62,   165,   166,   167,   168,    90,    96,   212,    78,
-    12,   395,    86,   323,   324,   148,   149,   489,   148,   149,
-   156,   100,    86,    44,    46,    78,   215,    90,    96,    71,
-    14,   396,    86,   323,   324,   382,   383,   417,   102,    90,
-    96,   378,   100,   138,   341,   342,   164,    78,   214,   239,
-   154,    90,    96,   180,   100,   148,   149,    78,    90,    96,
-    86,    88,    94,  -374,   138,   397,   100,    86,   382,   383,
-    82,    85,   456,   219,    90,    96,   138,    71,    78,    44,
-    46,    86,    88,    94,    90,    96,    78,    86,   138,   219,
-    78,    82,    85,    86,    88,    94,    90,    96,    71,   100,
-   398,   329,    78,    82,    85,    86,    88,    94,   123,    78,
-    71,   100,    86,   374,    37,    82,    85,    90,    96,    78,
-   399,    98,    71,   109,    33,    78,    90,    96,    86,    71,
-    44,    46,   100,   138,    58,    78,   382,   383,    86,    88,
-    94,   219,    90,    96,   386,    71,   385,    78,    82,    85,
-    86,    88,    94,   400,    98,    71,    49,   219,   323,   324,
-    82,    85,    49,    44,    46,    44,    46,    71,    78,    90,
-    96,    86,    88,    94,   171,    90,    96,    78,   401,   209,
-    86,    82,    85,   380,   100,   479,   388,    78,    71,    33,
-   219,  -375,   402,    78,   382,   383,    86,    71,   403,    90,
-    96,    90,    96,   382,   383,    20,   138,    21,   322,   382,
-   383,   404,    86,    71,   219,   405,   100,    90,    96,   169,
-    78,    49,   170,    86,    88,    94,    78,    90,    96,    86,
-    44,    46,   219,    82,    85,   406,    90,    96,    98,   414,
-    71,   407,   100,    90,    96,    78,    71,    44,    46,   408,
-    78,   219,    78,    86,   413,    86,    88,    94,   219,   265,
-    78,    90,    96,   261,    98,    82,    85,    20,    78,    21,
-    71,    86,    71,    44,    46,   267,   219,   102,    78,   343,
-   344,    86,    88,    94,    90,    96,   268,    78,    71,   570,
-    86,    82,    85,   268,    78,    55,   266,    86,    71,   100,
-   382,   383,    90,    96,   260,    33,   259,    71,   163,    90,
-    96,   170,    78,   258,    71,    86,   264,   219,    44,    46,
-    33,    98,   165,   166,   167,   168,   180,    90,    96,   380,
-    44,    46,    71,   339,   340,    78,   414,    49,    86,    88,
-    94,    90,    96,   618,   619,   620,    44,    46,    82,    85,
-   265,    78,    49,    78,   266,    71,    86,   127,    90,    96,
-    78,    44,    46,    86,   119,   121,   123,   124,   126,   109,
-   112,  -104,   115,    71,   267,   202,    90,    96,    78,   183,
-   257,    86,   119,   121,   123,   124,   126,   109,   112,   180,
-   115,   256,    78,   382,   383,    86,   255,   498,   436,   124,
-   126,   109,   112,    90,    96,   382,   383,   252,   437,    78,
-   245,   438,    86,   249,   251,   439,   124,   126,   109,   112,
-    90,    96,   440,   326,   351,   352,   441,    78,   119,   121,
-    86,   599,   600,   254,   124,   126,   109,   112,    29,    30,
-   444,   414,   365,   366,    78,   165,   166,   167,   168,   165,
-   166,   167,   168,   445,    78,   446,   413,    86,   119,   121,
-   447,   124,   126,   109,   112,   165,   166,   167,   168,   273,
-   274,    78,    44,    46,    86,   119,   121,   448,   124,   126,
-   109,   112,   165,   166,   167,   168,   165,   166,   167,   168,
-   165,   166,   167,   168,   165,   166,   167,   168,   632,   633,
-   428,   429,   426,   427,   424,   425,   422,   423,   420,   421,
-   418,   419,   331,   332,   449,   450,   451,   452,   453,   454,
-   455,   243,   162,   169,   242,   460,   461,   241,   240,   239,
-   238,   471,   138,   474,   171,   478,   112,   142,   482,   268,
-   484,   485,   486,   207,   102,   161,   147,   141,   138,   136,
-   500,   124,   502,   126,   504,   109,   506,   112,    49,   509,
-   510,   131,   538,   539,    69,    68,   545,   546,    62,   548,
-   124,   550,   126,   552,   109,   554,   112,    33,   557,   558,
-   559,   560,   561,   562,   563,    57,   566,   109,   164,  -104,
-   263,   126,    51,   577,   579,   147,   581,   583,   112,   112,
-   112,    32,   584,   585,   586,   587,   588,   589,   590,   276,
-   593,   594,    28,   597,    27,   277,   601,   602,   603,   318,
-    71,   570,   607,   609,   610,   611,    18,   616,   124,    15,
-   622,    10,     9,   624,   625,   626,   627,     8,     7,   630,
-   631,   123,   112 ]
+   576,   435,   474,   155,   409,    92,    96,   471,   467,   469,
+    24,   594,   574,   578,    12,   465,     1,   373,   148,   151,
+   380,   381,    58,   229,   366,    16,   322,   169,   525,   178,
+   170,   118,   120,   125,    14,     6,   538,   513,    25,   515,
+   518,   514,   543,    17,   573,   540,    92,    96,   541,   542,
+    49,    44,    46,   317,   152,   228,    78,   181,   111,    87,
+   296,   300,   410,   123,   125,   109,   111,   529,   111,   525,
+   575,   123,   109,   125,    87,   491,   495,   538,   513,    71,
+   515,   518,   273,    92,    96,   311,   315,   278,   534,   144,
+   145,   288,    44,    46,   317,   158,   489,    78,   181,   111,
+    87,   296,   300,   433,   123,   125,   109,   111,   529,   148,
+   151,   148,   151,   431,   463,   493,   230,    27,   129,   377,
+   378,    92,    96,   262,   148,   151,   311,   315,   278,   534,
+   125,   317,   288,   111,    78,   181,   100,    87,   296,   300,
+   236,   123,   125,   109,   111,   152,    76,   152,   390,   417,
+   123,    92,    96,    60,   380,   381,   480,   215,   138,   109,
+   152,   377,   378,   311,   315,   278,   100,   571,   125,   288,
+    78,   109,    78,   380,   381,    87,    90,    95,   133,   214,
+   144,   145,   144,   145,   631,    82,    85,   274,    98,    92,
+    96,   327,    71,   148,   151,   144,   145,    44,    46,   123,
+   148,   151,    78,   123,   100,    87,    90,    95,    87,   126,
+   148,   151,    78,   153,   154,    82,    85,   146,    44,    46,
+   147,   149,    71,   148,   151,   134,   138,    87,   462,   152,
+   393,   148,   151,   237,   153,   154,   152,   102,   146,   394,
+    78,   147,   149,    87,    90,    95,   152,   236,   143,   168,
+   461,   380,   381,    82,    85,    92,    96,   380,   381,   152,
+    71,   450,    92,    96,   144,   145,  -373,   152,    92,    96,
+   217,   144,   145,    92,    96,   395,   150,   217,    44,    46,
+   371,   144,   145,   217,   162,   163,   164,   165,   100,    92,
+    96,   111,   142,   166,   144,   145,   167,   150,   396,    92,
+    96,   388,   144,   145,   217,    87,    78,   377,   378,    87,
+   138,    87,   397,    78,   217,   209,    87,    92,    96,    78,
+   380,   381,    87,   102,    78,    34,    71,    87,    90,    95,
+    92,    96,   217,    71,   377,   378,   398,    82,    85,    71,
+    78,    92,    96,    87,    71,   217,    92,    96,    92,    96,
+    78,   399,   369,    87,    92,    96,   217,    49,    78,   400,
+    71,   217,   109,   217,    44,    46,    44,    46,    78,   217,
+    71,    87,    92,    96,    87,   380,   381,   401,    66,   498,
+    55,    78,   377,   378,    87,    78,   449,   100,    71,   211,
+    34,   402,    78,   377,   378,    87,   403,    78,    49,    78,
+    87,    71,    87,    92,    96,    78,   404,   160,    87,   138,
+   405,   212,    71,   377,   378,    92,    96,    71,   100,    71,
+    44,    46,    49,    78,   171,    71,    87,    90,    95,    87,
+   100,    44,    46,    78,   406,   324,    82,    85,    92,    96,
+    98,  -374,   121,    71,    78,   377,   378,    90,    95,    44,
+    46,   407,   138,   100,    78,   341,   342,    87,    90,    95,
+   408,    92,    96,   383,    78,   263,    78,    82,    85,    87,
+    90,    95,   377,   378,    71,    98,   100,   337,   338,    82,
+    85,   413,    92,    96,    44,    46,    71,   265,   261,    78,
+   570,   264,    87,    90,    95,   265,   412,   100,   138,   377,
+   378,   268,    82,    85,   266,    92,    96,   260,   413,    71,
+    29,    30,    78,    92,    96,    87,    90,    95,   259,   138,
+   100,   258,   386,    78,   385,    82,    85,   375,   217,   479,
+   264,    37,    71,    78,    92,    96,    87,    90,    95,   355,
+   356,    34,    98,   265,   377,   378,    82,    85,   497,   100,
+    78,    44,    46,    71,   357,   358,    78,    92,    96,    87,
+    90,    95,   178,    20,    78,    21,    20,    87,    21,    82,
+    85,    98,   100,    49,   377,   378,    71,    34,    92,    96,
+    44,    46,    44,    46,    71,    78,   602,   603,    87,    90,
+    95,   375,   108,   100,    98,    78,    92,    96,    82,    85,
+    66,   339,   340,    44,    46,    71,   273,   274,    78,    49,
+   413,    87,    90,    95,   266,   138,    92,    96,    44,    46,
+    49,    82,    85,   118,   120,   412,   629,   630,    71,    78,
+    92,    96,    87,    90,    95,   162,   163,   164,   165,   611,
+   612,   613,    82,    85,   126,   428,   429,    78,   267,    71,
+    87,   118,   120,   121,   123,   125,   109,   111,   257,   114,
+  -103,    92,    96,   256,   201,   426,   427,    78,   181,   255,
+    87,   118,   120,   121,   123,   125,   109,   111,   178,   114,
+   436,    78,   424,   425,    87,   422,   423,   437,   123,   125,
+   109,   111,    92,    96,   420,   421,   253,   418,   419,   245,
+   118,   120,   249,   250,    92,    96,   162,   163,   164,   165,
+   329,   330,    78,   438,   439,    87,    92,    96,   440,   123,
+   125,   109,   111,   162,   163,   164,   165,   162,   163,   164,
+   165,   162,   163,   164,   165,   162,   163,   164,   165,   162,
+   163,   164,   165,    78,   441,   442,    87,   443,   444,   445,
+   123,   125,   109,   111,   446,    78,   447,   254,    87,   243,
+   452,   453,   123,   125,   109,   111,   454,    78,   455,   456,
+    87,   457,   166,   169,   123,   125,   109,   111,   162,   163,
+   164,   165,   167,   170,   459,   460,   242,   241,   240,   239,
+   238,   138,   473,   171,   476,   477,   268,   142,   482,   111,
+   484,   485,   486,   123,   207,   102,   161,   158,   141,   138,
+   500,   125,   502,   109,   504,   111,   506,   136,    49,   509,
+   510,   511,   512,   131,    69,    68,   545,   546,   123,   548,
+   125,   550,   109,   552,   111,   554,    34,    60,   557,   558,
+   559,   560,   561,   562,   563,   564,   566,    57,   568,   109,
+   168,  -103,    54,   276,    51,   580,   581,   158,   111,   111,
+   111,    32,   583,   584,   585,   586,   587,   588,   277,   591,
+   592,   593,    28,   596,   597,   263,   600,   319,   121,   604,
+   605,   606,   607,    71,   570,   609,   125,    18,   618,   620,
+   621,   622,    15,   624,    10,     9,   626,   627,   628,   123,
+     8,     7,   111 ]
 
 racc_action_check = [
-   529,   427,   405,    82,   312,   529,   529,   403,   400,   401,
-    18,   567,   527,   529,     0,   399,   261,    10,   319,   319,
-   399,   399,    59,    47,   255,    31,    90,   261,   529,    90,
-    59,   196,   255,     0,   319,    10,   529,   529,    18,   529,
-   529,   459,   478,    47,   527,   478,   459,   459,   478,   478,
-    59,   529,   529,   529,   319,   425,   529,   529,   427,   529,
-   529,   529,   312,   529,   529,   529,   529,   529,   405,   459,
-   527,   400,   403,   401,   399,   423,   352,   459,   459,    82,
-   459,   459,   459,   215,   215,   529,   529,   529,   529,   319,
-   319,   529,   459,   459,   459,   567,   344,   459,   459,   478,
-   459,   459,   459,   421,   459,   459,   459,   459,   459,   408,
-    85,   425,   222,   222,   340,    81,   622,   147,   398,   267,
-   267,   622,   622,   398,   398,   342,   459,   459,   459,   459,
-   423,   215,   459,   352,   215,   215,   622,   215,   215,   215,
-   161,   215,   215,   215,   215,   161,   161,   257,   222,   147,
-    85,    85,   344,   225,   225,    69,   257,   421,   622,    81,
-   161,    54,   408,   215,   215,   215,    54,    54,   340,   215,
-   228,   228,   622,   267,   398,   622,   622,   622,   224,   224,
-   342,    54,   161,   222,   222,   622,   622,    84,    84,   225,
-    84,    84,   622,   390,    84,   269,   161,    84,    84,   161,
-   161,   161,    69,    54,   229,   229,   228,   221,   221,   161,
-   161,   173,    54,    54,   224,   390,   161,    54,   158,   158,
-    54,    54,    54,    84,   225,   225,    63,   270,   417,   417,
-    54,    54,   516,   158,   456,   456,   272,    54,   489,   489,
-   229,   228,   228,   221,   172,   172,   141,   172,   172,   224,
-   224,   172,   274,    84,   172,   172,   498,   498,    84,    84,
-   172,    63,   173,   173,   173,   173,   165,   165,   141,   158,
-     6,   276,   158,   419,   419,   229,   229,   419,   221,   221,
-   172,   165,   417,   516,   516,   456,   143,   168,   168,   158,
-     6,   277,   489,   332,   332,   573,   573,   332,    57,   167,
-   167,   262,   168,   165,   247,   247,    91,   498,   143,   280,
-   172,   166,   166,   262,   167,   172,   172,   165,   219,   219,
-   165,   165,   165,    91,   168,   281,   166,   419,   366,   366,
-   165,   165,   366,   219,   157,   157,   167,   165,   168,    57,
-    57,   168,   168,   168,   623,   623,   573,   332,   166,   157,
-   167,   168,   168,   167,   167,   167,   160,   160,   168,   623,
-   282,   243,   166,   167,   167,   166,   166,   166,   243,   219,
-   167,   160,   219,   260,    27,   166,   166,   616,   616,   366,
-   285,   623,   166,   260,    27,   157,   156,   156,   157,   219,
-   623,   623,   616,   160,    38,   623,   268,   268,   623,   623,
-   623,   156,   155,   155,   266,   157,   266,   160,   623,   623,
-   160,   160,   160,   289,   616,   623,    27,   155,   239,   239,
-   160,   160,    38,   616,   616,    27,    27,   160,   616,   100,
-   100,   616,   616,   616,    98,   154,   154,   156,   292,   136,
-   156,   616,   616,   407,   100,   407,   268,   268,   616,   136,
-   154,    98,   294,   155,   265,   265,   155,   156,   296,   153,
-   153,   612,   612,   318,   318,    14,   100,    14,   239,   571,
-   571,   299,   239,   155,   153,   300,   612,   148,   148,    96,
-   100,   136,    96,   100,   100,   100,   154,   607,   607,   154,
-   136,   136,   148,   100,   100,   303,   151,   151,   612,   318,
-   100,   305,   607,   150,   150,   265,   154,   612,   612,   307,
-   153,   151,   612,   153,   318,   612,   612,   612,   150,   310,
-   571,   149,   149,   193,   607,   612,   612,    30,   148,    30,
-   153,   148,   612,   607,   607,   315,   149,   131,   607,   248,
-   248,   607,   607,   607,    75,    75,   518,   151,   148,   518,
-   151,   607,   607,   316,   150,    32,   317,   150,   607,    75,
-   485,   485,   152,   152,   190,    32,   189,   151,   323,    62,
-    62,   324,   149,   188,   150,   149,   199,   152,   131,   131,
-   511,    75,   233,   233,   233,   233,   264,   102,   102,   263,
-    75,    75,   149,   246,   246,    75,   485,    32,    75,    75,
-    75,   251,   251,   610,   610,   610,    32,    32,    75,    75,
-   201,   485,   511,   152,   202,    75,   152,    62,   245,   245,
-    62,   511,   511,    62,    62,    62,    62,    62,    62,    62,
-    62,   102,    62,   152,   204,   102,   249,   249,   102,   102,
-   187,   102,   102,   102,   102,   102,   102,   102,   102,   102,
-   102,   186,   251,   429,   429,   251,   185,   429,   345,   251,
-   251,   251,   251,   183,   183,   583,   583,   183,   346,   245,
-   183,   347,   245,   183,   183,   348,   245,   245,   245,   245,
-   252,   252,   349,   241,   250,   250,   350,   249,   241,   241,
-   249,   578,   578,   184,   249,   249,   249,   249,    22,    22,
-   353,   583,   253,   253,   429,   231,   231,   231,   231,   232,
-   232,   232,   232,   354,   183,   355,   583,   183,   238,   238,
-   356,   183,   183,   183,   183,    95,    95,    95,    95,   211,
-   211,   252,   514,   514,   252,   410,   410,   357,   252,   252,
-   252,   252,   234,   234,   234,   234,   235,   235,   235,   235,
-   615,   615,   615,   615,   629,   629,   629,   629,   627,   627,
-   338,   338,   337,   337,   336,   336,   335,   335,   334,   334,
-   333,   333,   244,   244,   358,   359,   360,   361,   362,   363,
-   364,   182,   382,   383,   181,   393,   394,   179,   178,   176,
-   175,   402,   142,   404,   138,   406,   259,   137,   409,   205,
-   411,   413,   416,   111,   106,    89,    83,    79,    71,    70,
-   430,   431,   432,   433,   434,   435,   442,   443,    67,   457,
-   458,    65,   460,   461,    53,    49,   487,   488,    43,   490,
-   491,   492,   493,   494,   495,   496,   497,    41,   499,   501,
-   503,   505,   507,   508,   510,    36,   513,   256,   515,    33,
-   198,   254,    28,   532,   534,   537,   538,   539,   540,   541,
-   542,    26,   547,   549,   551,   553,   555,   556,   564,   212,
-   569,   570,    20,   572,    19,   214,   579,   581,   582,   216,
-   592,   596,   601,   602,   604,   605,    11,   608,   242,     8,
-   614,     5,     4,   617,   618,   619,   620,     3,     2,   625,
-   626,   240,   543 ]
+   528,   342,   404,    82,   309,   528,   528,   402,   400,   401,
+    18,   569,   526,   528,     6,   399,     0,   260,   223,   223,
+   399,   399,    36,   158,   255,    10,   239,    96,   528,   260,
+    96,   239,   239,   255,     6,     0,   528,   528,    18,   528,
+   528,   462,   477,    10,   526,   477,   462,   462,   477,   477,
+    36,   528,   528,   528,   223,   158,   528,   528,   342,   528,
+   528,   528,   309,   528,   528,   528,   528,   528,   404,   462,
+   526,   400,   402,   401,   399,   421,   425,   462,   462,    82,
+   462,   462,   462,   215,   215,   528,   528,   528,   528,   223,
+   223,   528,   462,   462,   462,   569,   419,   462,   462,   477,
+   462,   462,   462,   340,   462,   462,   462,   462,   462,   219,
+   219,   220,   220,   338,   398,   423,   161,    19,    61,   398,
+   398,   161,   161,   195,   318,   318,   462,   462,   462,   462,
+   421,   215,   462,   425,   215,   215,   161,   215,   215,   215,
+   318,   215,   215,   215,   215,   219,    54,   220,   269,   330,
+   419,    54,    54,    61,   498,   498,   408,   143,   161,   340,
+   318,   263,   263,   215,   215,   215,    54,   518,   338,   215,
+   398,   423,   161,   450,   450,   161,   161,   161,    69,   143,
+   219,   219,   220,   220,   624,   161,   161,   271,    54,   624,
+   624,   243,   161,   227,   227,   318,   318,    54,    54,   243,
+   226,   226,    54,   330,   624,    54,    54,    54,   498,   408,
+    81,    81,   263,    81,    81,    54,    54,    81,   518,   518,
+    81,    81,    54,   222,   222,    69,   624,   450,   394,   227,
+   274,   172,   172,   173,   172,   172,   226,   131,   172,   275,
+   624,   172,   172,   624,   624,   624,    81,   172,    80,    93,
+   394,   268,   268,   624,   624,   151,   151,   358,   358,   222,
+   624,   358,   153,   153,   227,   227,    93,   172,   152,   152,
+   151,   226,   226,   160,   160,   276,    81,   153,   131,   131,
+   259,    81,    81,   152,   173,   173,   173,   173,   160,   154,
+   154,   259,    80,    92,   222,   222,    92,   172,   277,   150,
+   150,   268,   172,   172,   154,   268,   151,   449,   449,   151,
+   160,   358,   279,   153,   150,   136,   153,   149,   149,   152,
+   264,   264,   152,    57,   160,   136,   151,   160,   160,   160,
+   148,   148,   149,   153,   497,   497,   280,   160,   160,   152,
+   154,   147,   147,   154,   160,   148,   146,   146,   145,   145,
+   150,   283,   258,   150,   144,   144,   147,   136,   449,   286,
+   154,   146,   258,   145,    57,    57,   136,   136,   149,   144,
+   150,   149,   163,   163,   264,   429,   429,   290,    45,   429,
+    32,   148,   356,   356,   148,   497,   356,   163,   149,   141,
+    32,   293,   147,   575,   575,   147,   296,   146,    45,   145,
+   146,   148,   145,   618,   618,   144,   297,    85,   144,   163,
+   300,   141,   147,   265,   265,   164,   164,   146,   618,   145,
+   515,   515,    32,   163,    98,   144,   163,   163,   163,   429,
+   164,    32,    32,   356,   301,   241,   163,   163,   625,   625,
+   618,    98,   241,   163,   575,   563,   563,    85,    85,   618,
+   618,   303,   164,   625,   618,   248,   248,   618,   618,   618,
+   305,   165,   165,   265,   265,   307,   164,   618,   618,   164,
+   164,   164,   484,   484,   618,   625,   165,   246,   246,   164,
+   164,   563,   100,   100,   625,   625,   164,   517,   194,   625,
+   517,   312,   625,   625,   625,   313,   563,   100,   165,   573,
+   573,   316,   625,   625,   317,   609,   609,   192,   484,   625,
+    22,    22,   165,   217,   217,   165,   165,   165,   189,   100,
+   609,   186,   266,   484,   266,   165,   165,   407,   217,   407,
+   199,    27,   165,   100,   614,   614,   100,   100,   100,   251,
+   251,    27,   609,   200,   427,   427,   100,   100,   427,   614,
+   573,   609,   609,   100,   252,   252,   609,    75,    75,   609,
+   609,   609,   262,    30,   217,    30,    14,   217,    14,   609,
+   609,   614,    75,    27,   319,   319,   609,   513,   162,   162,
+   614,   614,    27,    27,   217,   614,   579,   579,   614,   614,
+   614,   261,    59,   162,    75,   427,    60,    60,   614,   614,
+    59,   247,   247,    75,    75,   614,   211,   211,    75,   513,
+   319,    75,    75,    75,   201,   162,   102,   102,   513,   513,
+    59,    75,    75,   410,   410,   319,   622,   622,    75,   162,
+   249,   249,   162,   162,   162,   233,   233,   233,   233,   606,
+   606,   606,   162,   162,    60,   336,   336,    60,   203,   162,
+    60,    60,    60,    60,    60,    60,    60,    60,   185,    60,
+   102,   250,   250,   184,   102,   335,   335,   102,   102,   183,
+   102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
+   343,   249,   334,   334,   249,   333,   333,   344,   249,   249,
+   249,   249,   181,   181,   332,   332,   181,   331,   331,   181,
+   267,   267,   181,   181,   245,   245,   231,   231,   231,   231,
+   244,   244,   250,   345,   346,   250,   253,   253,   347,   250,
+   250,   250,   250,   232,   232,   232,   232,   234,   234,   234,
+   234,   235,   235,   235,   235,   617,   617,   617,   617,    91,
+    91,    91,    91,   181,   348,   349,   181,   350,   351,   352,
+   181,   181,   181,   181,   353,   245,   354,   182,   245,   180,
+   359,   360,   245,   245,   245,   245,   361,   253,   362,   363,
+   253,   364,   377,   378,   253,   253,   253,   253,   632,   632,
+   632,   632,   380,   381,   392,   393,   179,   177,   176,   175,
+   174,   142,   403,   138,   405,   406,   204,   137,   409,   257,
+   412,   415,   416,   417,   128,   106,    86,    83,    79,    71,
+   430,   431,   432,   433,   434,   435,   448,    70,    66,   451,
+   459,   460,   461,    63,    53,    49,   487,   488,   489,   490,
+   491,   492,   493,   494,   495,   496,    42,    41,   499,   501,
+   503,   505,   507,   508,   510,   511,   512,    35,   514,   254,
+   516,    34,    31,   212,    28,   534,   535,   537,   540,   541,
+   542,    26,   547,   549,   551,   553,   555,   556,   214,   564,
+   565,   567,    20,   570,   572,   197,   574,   228,   238,   581,
+   589,   590,   591,   595,   599,   604,   242,    11,   610,   611,
+   612,   613,     8,   616,     5,     4,   619,   620,   621,   240,
+     3,     2,   543 ]
 
 racc_action_pointer = [
-    13,   nil,   879,   897,   874,   864,   269,   nil,   889,   nil,
-    16,   858,   nil,   nil,   441,   nil,   nil,   nil,     9,   844,
-   864,   nil,   676,   nil,   nil,   nil,   830,   373,   827,   nil,
-   503,    -7,   554,   799,   nil,   nil,   837,   nil,   379,   nil,
-   nil,   826,   nil,   778,   nil,   nil,   nil,     0,   nil,   824,
-   nil,   nil,   nil,   777,   160,   nil,   nil,   287,   nil,     7,
-   nil,   nil,   563,   211,   nil,   813,   nil,   775,   nil,   154,
-   760,   765,   nil,   nil,   nil,   538,   nil,   nil,   nil,   774,
-   nil,    82,     2,   721,   181,    89,   nil,   nil,   nil,   759,
-   -31,   277,   nil,   nil,   nil,   652,   422,   nil,   405,   nil,
-   423,   nil,   581,   nil,   nil,   nil,   793,   nil,   nil,   nil,
-   nil,   752,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    15,   nil,   882,   900,   877,   867,    13,   nil,   892,   nil,
+    24,   859,   nil,   nil,   542,   nil,   nil,   nil,     9,    87,
+   864,   nil,   488,   nil,   nil,   nil,   830,   530,   829,   nil,
+   539,   820,   379,   nil,   801,   839,     7,   nil,   nil,   nil,
+   nil,   787,   825,   nil,   nil,   355,   nil,   nil,   nil,   824,
+   nil,   nil,   nil,   777,   145,   nil,   nil,   312,   nil,   577,
+   590,   103,   nil,   815,   nil,   nil,   775,   nil,   nil,   177,
+   768,   766,   nil,   nil,   nil,   551,   nil,   nil,   nil,   775,
+   215,   204,     2,   722,   nil,   386,   760,   nil,   nil,   nil,
+   nil,   666,   236,   220,   nil,   nil,   -30,   nil,   395,   nil,
+   476,   nil,   610,   nil,   nil,   nil,   794,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   526,   nil,   nil,   nil,   nil,   438,   720,   765,   nil,
-   nil,   234,   749,   274,   nil,   nil,   nil,   116,   471,   515,
-   497,   490,   556,   453,   429,   396,   380,   328,   212,   nil,
-   350,   139,   nil,   nil,   nil,   260,   305,   293,   281,   nil,
-   nil,   nil,   238,   189,   nil,   735,   734,   nil,   733,   732,
-   nil,   729,   726,   657,   638,   601,   596,   585,   558,   511,
-   509,   nil,   nil,   468,   nil,   nil,   -24,   nil,   795,   521,
-   nil,   555,   559,   nil,   579,   744,   nil,   nil,   nil,   nil,
-   nil,   687,   834,   nil,   840,    77,   867,   nil,   nil,   312,
-   nil,   201,   106,   nil,   172,   147,   nil,   nil,   164,   198,
-   nil,   632,   636,   509,   669,   673,   nil,   nil,   657,   412,
-   838,   627,   824,   305,   714,   612,   535,   246,   481,   630,
-   626,   595,   674,   644,   786,   -32,   781,    91,   nil,   729,
-   317,   -40,   245,   535,   518,   448,   350,   113,   390,   162,
-   213,   nil,   193,   nil,   173,   nil,   235,   255,   nil,   nil,
-   254,   311,   279,   nil,   nil,   299,   nil,   nil,   nil,   332,
-   nil,   nil,   357,   nil,   397,   nil,   377,   nil,   nil,   416,
-   394,   nil,   nil,   418,   nil,   446,   nil,   428,   nil,   nil,
-   464,   nil,   -19,   nil,   nil,   480,   498,   501,   457,    12,
-   nil,   nil,   nil,   508,   511,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   287,   712,   710,   708,   706,   704,   702,   nil,
-   104,   nil,   115,   nil,    86,   600,   610,   613,   617,   624,
-   628,   nil,    66,   642,   655,   657,   662,   679,   716,   717,
-   718,   719,   720,   721,   722,   nil,   322,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   753,   nil,
+   nil,   226,   nil,   nil,   nil,   nil,   314,   720,   764,   nil,
+   nil,   377,   748,   145,   348,   342,   340,   335,   324,   311,
+   293,   249,   262,   256,   283,   nil,   nil,   nil,    22,   nil,
+   267,   115,   572,   366,   409,   455,   nil,   nil,   nil,   nil,
+   nil,   nil,   225,   211,   735,   734,   733,   732,   nil,   731,
+   704,   686,   702,   614,   648,   603,   466,   nil,   nil,   463,
+   nil,   nil,   452,   nil,   433,    68,   nil,   820,   nil,   475,
+   488,   559,   nil,   593,   741,   nil,   nil,   nil,   nil,   nil,
+   nil,   564,   818,   nil,   833,    77,   nil,   507,   nil,   103,
+   105,   nil,   217,    12,   nil,   nil,   194,   187,   865,   nil,
+   nil,   633,   650,   562,   654,   658,   nil,   nil,   815,   -30,
+   835,   379,   821,   135,   652,   698,   419,   543,   397,   624,
+   655,   481,   496,   710,   783,   -32,   nil,   732,   296,   224,
+   -39,   537,   494,   155,   314,   407,   468,   639,   245,   134,
+   nil,   144,   nil,   nil,   151,   206,   239,   262,   nil,   298,
+   255,   nil,   nil,   270,   nil,   nil,   278,   nil,   nil,   nil,
+   296,   nil,   nil,   310,   nil,   nil,   341,   325,   nil,   nil,
+   355,   357,   nil,   396,   nil,   379,   nil,   410,   nil,   -19,
+   nil,   nil,   436,   440,   nil,   nil,   446,   449,   118,   568,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   725,   726,   nil,   nil,   nil,   nil,   nil,   nil,
-   181,   nil,   nil,   752,   706,   nil,   nil,   nil,   117,    14,
-     7,     8,   729,     6,   732,     1,   737,   389,   108,   797,
-   674,   786,   nil,   742,   nil,   nil,   744,   222,   nil,   267,
-   nil,    93,   nil,    65,   nil,    45,   nil,    -9,   nil,   647,
-   752,   747,   754,   748,   756,   749,   nil,   nil,   nil,   nil,
-   nil,   nil,   758,   750,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   228,   761,   785,    40,
-   810,   790,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    32,   nil,
-   nil,   nil,   nil,   nil,   nil,   554,   nil,   768,   769,   232,
-   771,   766,   773,   767,   775,   768,   777,   769,   250,   780,
+   139,   639,   636,   627,   624,   607,   587,   nil,   103,   nil,
+    93,   nil,    -9,   622,   629,   655,   656,   660,   686,   687,
+   689,   690,   691,   696,   698,   nil,   376,   nil,   251,   702,
+   703,   708,   710,   711,   713,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   715,   716,   nil,
+   722,   723,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   704,   752,   216,   nil,   nil,   nil,   113,    14,
+     7,     8,     6,   730,     1,   733,   737,   473,   155,   797,
+   562,   nil,   741,   nil,   nil,   787,   744,   739,   nil,    86,
+   nil,    65,   nil,   105,   nil,    66,   nil,   538,   nil,   369,
+   752,   746,   754,   747,   756,   748,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   758,   301,
+   167,   761,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   787,
+   809,   787,    40,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    32,   nil,   nil,
+   nil,   nil,   nil,   nil,   466,   nil,   nil,   768,   769,   764,
+   771,   765,   773,   766,   775,   767,   777,   328,   148,   780,
    nil,   781,   nil,   782,   nil,   783,   nil,   784,   785,   nil,
-   808,   569,   nil,   832,   680,   819,   231,   nil,   491,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   -11,   nil,    -1,
-   nil,   nil,   762,   nil,   821,   nil,   nil,   770,   799,   845,
+   832,   788,   810,   566,   834,   368,   821,   432,   166,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   -11,   nil,    -1,   nil,
+   nil,   nil,   nil,   nil,   764,   823,   nil,   772,   nil,   nil,
    791,   792,   793,   835,   nil,   nil,   nil,   804,   nil,   805,
    nil,   806,   nil,   807,   nil,   808,   809,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   829,   nil,   nil,    10,   nil,   841,
-   803,   463,   872,   289,   nil,   nil,   nil,   nil,   601,   864,
-   nil,   818,   864,   659,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   803,   nil,   nil,   nil,   823,   nil,   nil,   nil,
-   nil,   838,   826,   nil,   803,   871,   nil,   481,   842,   nil,
-   521,   nil,   455,   nil,   844,   677,   371,   879,   813,   814,
-   815,   nil,   115,   338,   nil,   815,   816,   676,   nil,   681,
-   nil,   nil,   nil,   nil ]
+   nil,   nil,   nil,   439,   810,   856,   nil,   832,   nil,    10,
+   805,   nil,   845,   493,   875,   387,   nil,   nil,   nil,   496,
+   nil,   867,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   866,
+   800,   825,   nil,   nil,   nil,   806,   nil,   nil,   nil,   826,
+   nil,   nil,   nil,   nil,   841,   nil,   557,   nil,   nil,   499,
+   843,   808,   809,   810,   528,   nil,   847,   662,   397,   882,
+   813,   814,   544,   nil,   183,   432,   nil,   nil,   nil,   nil,
+   nil,   nil,   705 ]
 
 racc_action_default = [
-  -377,    -2,  -377,  -377,  -377,   -13,    -6,    -4,  -377,    -1,
-  -377,  -377,    -5,    -7,  -377,   634,   -15,   -14,  -377,   -18,
-  -377,   -12,  -377,    -9,   -17,   -16,   -21,  -377,  -377,    -8,
-  -377,  -377,  -377,  -113,   -91,  -109,  -377,   -20,  -377,   -99,
-  -100,  -377,  -101,  -377,  -147,   -88,  -148,   -89,   -19,   -95,
-   -90,   -11,   -10,   -83,  -377,   -23,   -22,  -377,  -111,  -377,
-  -110,  -102,  -377,  -377,  -105,  -377,   -92,  -377,   -96,  -377,
-  -377,  -285,  -283,   -26,  -249,   -27,   -25,  -254,  -153,  -377,
-  -255,  -377,  -377,  -306,  -377,  -377,  -168,  -274,  -272,  -377,
-  -377,   -31,  -284,  -275,  -273,  -252,  -377,  -287,  -290,  -282,
-  -377,   -24,  -113,   -94,  -114,   -98,  -377,   -97,  -112,  -218,
-  -124,  -377,  -231,  -125,  -126,  -248,  -127,  -128,  -129,  -183,
-  -130,  -184,  -131,  -188,  -192,  -122,  -205,  -149,  -123,  -103,
-  -106,  -377,   -93,   -85,   -84,    -3,  -377,  -286,  -290,  -250,
-  -374,  -377,  -377,  -377,  -257,  -256,   -30,  -377,  -377,  -377,
-  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -260,
-  -377,  -377,  -154,  -169,   -32,  -377,  -377,  -377,  -377,  -155,
-  -170,  -289,  -377,  -377,  -146,  -135,  -124,  -117,  -136,  -125,
-  -244,  -137,  -126,  -377,  -138,  -127,  -139,  -128,  -377,  -140,
-  -129,  -118,  -141,  -130,  -119,  -142,  -120,  -143,  -132,  -121,
-  -144,  -133,  -149,  -145,  -134,  -123,  -115,  -108,  -107,   -87,
-   -86,  -377,  -377,  -288,  -377,  -377,  -377,  -308,  -279,  -377,
-  -280,  -264,  -265,  -276,  -266,  -261,  -277,  -278,  -262,  -263,
-  -253,  -251,  -267,  -268,  -269,  -270,  -281,  -271,  -377,  -377,
-  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -116,  -377,
-  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-  -377,   -33,   -34,   -63,  -291,   -64,  -377,  -377,  -344,  -335,
-  -317,  -377,  -314,   -55,  -324,  -320,   -56,  -376,  -330,  -326,
-   -57,  -336,  -332,   -58,  -354,  -343,  -338,  -313,   -59,  -355,
-  -345,  -319,   -60,  -341,  -325,  -349,   -61,  -351,  -331,  -323,
-  -312,   -62,  -358,  -337,  -329,  -318,  -311,  -348,  -377,  -377,
-  -186,  -171,  -173,  -377,  -377,  -190,  -187,  -185,  -194,  -191,
-  -189,  -182,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -204,
-  -377,  -217,  -377,  -230,  -377,  -377,  -377,  -377,  -377,  -377,
-  -377,  -243,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-  -377,  -377,  -377,  -377,  -377,  -167,  -377,  -207,  -195,  -193,
-  -220,  -208,  -206,  -233,  -221,  -219,  -234,  -232,  -247,  -245,
-  -151,  -246,  -377,  -377,  -157,  -152,  -150,  -172,  -158,  -156,
-  -377,   -29,   -65,  -377,   -69,   -28,  -259,  -258,  -377,  -377,
-  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-  -377,  -377,  -309,  -153,  -305,  -304,  -377,  -377,  -180,  -377,
-  -202,  -377,  -215,  -377,  -228,  -377,  -241,  -377,  -165,  -377,
-  -377,  -377,  -377,  -377,  -377,  -377,  -179,  -201,  -214,  -227,
-  -240,  -164,  -377,  -377,  -181,  -203,  -216,  -229,  -242,  -166,
-  -178,  -200,  -213,  -226,  -239,  -163,  -377,  -377,  -377,  -377,
-  -377,  -377,   -70,  -316,  -315,  -321,  -322,  -328,  -327,  -334,
-  -333,  -356,  -340,  -339,  -357,  -347,  -346,  -342,  -377,  -350,
-  -353,  -352,  -360,  -359,  -307,  -377,  -174,  -377,  -377,  -377,
-  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-  -196,  -377,  -209,  -377,  -222,  -377,  -235,  -377,  -377,  -159,
-  -377,  -377,   -54,   -44,  -377,   -31,  -377,   -73,  -311,   -71,
-   -36,   -37,   -38,   -39,  -373,   -40,  -368,  -361,   -41,  -377,
-  -364,   -42,  -370,  -367,  -377,   -35,   -43,  -306,  -377,  -377,
-  -377,  -377,  -377,  -377,  -310,  -176,  -175,  -377,  -197,  -377,
-  -210,  -377,  -223,  -377,  -236,  -377,  -377,  -160,  -198,  -211,
-  -224,  -237,  -161,   -67,  -377,   -46,   -68,  -306,   -53,   -51,
-  -377,  -377,  -377,  -377,   -44,   -72,   -66,  -371,  -377,  -377,
-   -50,  -293,  -377,  -377,  -177,  -199,  -212,  -225,  -238,  -162,
-   -45,   -48,  -377,   -52,  -366,  -365,  -377,  -363,  -362,  -369,
-  -372,   -74,  -377,  -292,  -296,  -377,   -47,  -377,   -76,  -294,
-  -377,  -295,   -75,   -78,  -377,   -81,  -377,  -377,  -297,  -298,
-  -299,   -79,  -377,   -77,   -49,  -377,  -377,  -377,   -82,   -80,
-  -300,  -301,  -302,  -303 ]
+  -376,    -2,  -376,  -376,  -376,   -13,    -6,    -4,  -376,    -1,
+  -376,  -376,    -5,    -7,  -376,   633,   -15,   -14,  -376,   -18,
+  -376,   -12,  -376,    -9,   -17,   -16,   -21,  -376,  -376,    -8,
+  -376,  -376,  -376,  -108,  -112,  -376,  -376,   -20,   -98,   -99,
+  -100,  -376,  -376,   -87,  -146,   -88,  -147,   -89,   -19,   -94,
+   -90,   -11,   -10,   -82,  -376,   -23,   -22,  -376,  -110,  -376,
+  -376,  -376,  -104,  -376,  -109,  -101,  -376,   -91,   -95,  -376,
+  -376,  -284,  -248,   -26,  -253,   -27,   -25,  -254,  -152,  -376,
+  -376,  -376,  -376,  -305,  -273,  -376,  -376,  -167,  -283,  -274,
+  -271,  -251,  -376,   -31,  -286,  -272,  -376,  -281,  -289,  -282,
+  -376,   -24,  -112,   -93,  -113,   -97,  -376,   -96,  -111,  -217,
+  -124,  -230,  -125,  -126,  -247,  -127,  -128,  -129,  -182,  -130,
+  -183,  -187,  -121,  -191,  -122,  -204,  -148,  -123,  -376,  -102,
+  -105,  -376,   -92,   -84,   -83,    -3,  -376,  -285,  -289,  -249,
+  -373,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
+  -376,  -376,  -376,  -376,  -376,  -256,  -255,   -30,  -376,  -259,
+  -376,  -376,  -376,  -376,  -376,  -376,  -153,  -168,   -32,  -154,
+  -169,  -288,  -376,  -376,  -135,  -124,  -136,  -125,  -243,  -137,
+  -126,  -376,  -138,  -127,  -376,  -139,  -128,  -117,  -140,  -129,
+  -118,  -141,  -119,  -142,  -131,  -120,  -143,  -132,  -144,  -133,
+  -122,  -148,  -145,  -134,  -123,  -116,  -114,  -107,  -106,   -86,
+   -85,  -376,  -376,  -287,  -376,  -376,  -278,  -376,  -279,  -263,
+  -264,  -275,  -265,  -260,  -276,  -277,  -261,  -262,  -376,  -307,
+  -252,  -250,  -266,  -267,  -268,  -269,  -280,  -270,  -376,  -376,
+  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
+  -376,  -376,  -376,  -376,  -376,  -376,  -115,  -376,  -376,  -376,
+  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
+   -33,   -34,   -63,   -62,  -290,  -376,  -376,  -376,  -334,  -376,
+  -313,   -54,  -323,  -319,   -55,  -329,  -325,   -56,  -375,  -335,
+  -331,   -57,  -342,  -337,  -312,   -58,  -353,  -344,  -318,   -59,
+  -354,  -340,  -324,  -348,   -60,  -350,  -330,  -311,   -61,  -357,
+  -336,  -322,  -317,  -310,  -343,  -328,  -316,  -347,  -376,  -376,
+  -189,  -184,  -186,  -193,  -190,  -188,  -206,  -194,  -192,  -203,
+  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -216,  -376,  -229,
+  -376,  -242,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
+  -376,  -376,  -376,  -376,  -376,  -166,  -376,  -181,  -376,  -376,
+  -376,  -376,  -376,  -376,  -376,  -219,  -207,  -205,  -232,  -220,
+  -218,  -233,  -231,  -246,  -244,  -150,  -245,  -376,  -376,  -156,
+  -376,  -376,  -171,  -157,  -155,  -151,  -149,  -185,  -172,  -170,
+   -29,   -64,   -68,  -376,  -376,   -28,  -258,  -257,  -376,  -376,
+  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
+  -376,  -308,  -152,  -304,  -303,  -376,  -376,  -376,  -201,  -376,
+  -214,  -376,  -227,  -376,  -240,  -376,  -164,  -376,  -179,  -376,
+  -376,  -376,  -376,  -376,  -376,  -376,  -200,  -213,  -226,  -239,
+  -163,  -178,  -202,  -215,  -228,  -241,  -165,  -180,  -376,  -376,
+  -376,  -376,  -199,  -212,  -225,  -238,  -162,  -177,   -69,  -376,
+  -376,  -376,  -376,  -315,  -314,  -321,  -320,  -327,  -326,  -333,
+  -332,  -339,  -338,  -355,  -346,  -345,  -356,  -376,  -341,  -349,
+  -352,  -351,  -359,  -358,  -376,  -306,  -195,  -376,  -376,  -376,
+  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
+  -208,  -376,  -221,  -376,  -234,  -376,  -158,  -376,  -376,  -173,
+  -376,  -376,  -376,  -376,   -44,  -376,   -31,  -310,  -376,   -72,
+   -70,   -36,   -37,   -38,   -39,  -372,  -360,   -40,  -376,  -367,
+  -363,   -41,  -366,   -42,  -369,  -376,   -35,  -305,   -43,   -53,
+  -376,  -376,  -376,  -376,  -309,  -197,  -196,  -376,  -209,  -376,
+  -222,  -376,  -235,  -376,  -159,  -376,  -376,  -174,  -210,  -223,
+  -236,  -160,  -175,  -376,  -292,  -376,   -66,  -376,   -67,  -305,
+  -376,   -52,   -50,  -376,  -376,  -376,   -44,   -71,   -65,  -376,
+  -370,  -376,   -49,  -198,  -211,  -224,  -237,  -161,  -176,  -376,
+  -295,  -376,  -291,   -45,   -47,  -376,  -365,   -51,  -364,  -376,
+  -362,  -361,  -368,  -371,   -73,  -294,  -376,  -293,   -46,  -376,
+   -75,  -296,  -297,  -298,   -74,   -77,  -376,   -80,  -376,  -376,
+  -376,  -376,  -376,   -78,  -376,   -76,   -48,  -299,  -300,  -301,
+  -302,   -81,   -79 ]
 
 racc_goto_table = [
-    95,   128,   146,   145,   113,   411,    41,    48,   271,   110,
-   174,    41,    56,   196,   172,   103,   114,   519,   107,   120,
-    61,    95,   275,    60,    74,   181,   111,    89,   621,   612,
-   118,   394,    64,    91,    23,    66,   106,   529,   623,   621,
-   117,   205,   281,    59,   179,   139,   173,    66,    89,   176,
-    52,   116,   130,   218,   220,   132,   182,   223,   617,   193,
-   226,   227,   608,   564,   221,   222,   177,   224,   225,   272,
-   190,   228,   229,    63,   270,    75,    73,   206,   188,   191,
-   187,   194,   101,   392,   199,    61,   481,   575,    60,   208,
-     3,   185,   107,    22,    13,     2,   135,    70,    53,    31,
-   198,   201,   204,   175,   178,   462,   173,   231,   184,   186,
-   106,   232,   233,   234,   235,    41,   210,   189,   192,   195,
-   197,   200,   253,   203,    26,    19,   159,   137,    11,     5,
-   244,   213,   582,   319,   605,     4,   544,   595,   578,   nil,
-   250,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   248,   nil,   nil,   316,   nil,   nil,   nil,   nil,   nil,
-   nil,   247,   280,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   246,   379,   nil,   381,   nil,   nil,   nil,   nil,
-   320,   nil,   nil,   327,   338,   nil,   321,   nil,   350,   nil,
-   358,   364,   333,   nil,   325,   nil,   345,   330,   353,   359,
-   nil,   nil,   337,   nil,   384,   nil,   349,   389,   357,   363,
-   nil,   nil,   nil,   336,   387,   nil,   373,   348,   377,   356,
-   362,   nil,   nil,   335,   370,   nil,   nil,   347,   375,   355,
-   361,   328,   367,   nil,   334,   372,   nil,   nil,   346,   nil,
-   354,   360,   nil,   nil,   369,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   517,   415,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   604,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   416,
+    91,   124,   156,   157,    48,   110,   202,   127,    42,    56,
+   270,   415,   192,    42,   172,   107,   103,   112,   520,    65,
+   117,    91,    64,   128,    23,   272,   623,    86,     3,    72,
+    67,   116,    62,   614,   392,    93,   528,   623,   106,    59,
+    52,   279,   625,   200,    67,   115,   173,   175,    86,   204,
+   139,   132,   130,   619,   610,   271,   113,    61,   269,   177,
+   219,   220,   189,   222,   223,   205,   458,   226,   227,    75,
+   216,   218,   206,   186,   221,   184,   187,   224,   225,   190,
+    73,   195,   481,    65,   577,   391,    64,   183,   101,   107,
+   208,    22,    13,     2,   135,    70,    53,    31,   180,   194,
+   197,   199,   203,   174,   176,   179,   173,   231,   232,   233,
+   234,   235,   106,   210,   182,   185,   188,    42,   191,   193,
+   196,   198,   251,    26,    19,   159,   137,    11,   252,     5,
+   213,   318,   565,   589,     4,   544,   598,   579,   nil,   nil,
+   nil,   248,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   247,   nil,   nil,   nil,   313,   nil,   nil,   nil,
+   nil,   nil,   316,   nil,   nil,   nil,   246,   nil,   nil,   nil,
+   374,   nil,   376,   nil,   nil,   nil,   nil,   244,   nil,   nil,
+   nil,   nil,   nil,   nil,   321,   nil,   335,   nil,   nil,   nil,
+   347,   353,   336,   nil,   363,   320,   348,   354,   325,   nil,
+   364,   nil,   nil,   nil,   379,   334,   384,   nil,   nil,   346,
+   352,   382,   387,   362,   nil,   389,   333,   368,   nil,   372,
+   345,   351,   nil,   nil,   361,   365,   nil,   326,   nil,   370,
+   332,   nil,   nil,   nil,   344,   350,   323,   nil,   360,   328,
+   367,   331,   nil,   nil,   nil,   343,   349,   nil,   nil,   359,
+   nil,   nil,   nil,   nil,   nil,   590,   nil,   nil,   nil,   nil,
+   414,   519,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   457,   nil,   nil,   nil,   442,
-   nil,   nil,   434,   nil,   477,   nil,   nil,   nil,   nil,   nil,
-   432,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   430,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   464,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   465,   nil,   nil,   nil,
-   nil,   nil,   483,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   476,   nil,   487,   nil,   488,   nil,   499,   nil,
-   nil,   473,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   470,
-   nil,   nil,   nil,   nil,   496,   nil,   nil,   nil,   nil,   468,
-   nil,   nil,   nil,   494,   nil,   508,   nil,   nil,   518,   nil,
-   507,   492,   nil,   505,   nil,   nil,   280,   nil,   nil,   nil,
-   490,   503,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   501,   nil,   nil,   nil,   415,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   250,   547,   556,   515,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   555,   nil,   580,   nil,   nil,   nil,
-   nil,   nil,   nil,   553,   nil,   nil,   nil,   nil,   518,   nil,
-   nil,   551,   nil,   nil,   nil,   nil,   280,   nil,   nil,   nil,
-   549,   nil,   nil,   nil,   nil,   nil,   592,   nil,   nil,   nil,
-    41,   565,   nil,   567,   nil,   569,   nil,   337,   349,   357,
-   363,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   515,   nil,
-   596,   nil,   598,   606,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   415,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   448,   nil,   nil,
+   nil,   nil,   434,   nil,   nil,   451,   nil,   nil,   nil,   nil,
+   478,   432,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   430,   nil,   nil,   416,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   464,
+   nil,   nil,   nil,   nil,   nil,   nil,   466,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   483,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   475,   nil,   nil,   nil,   496,   nil,
+   nil,   nil,   nil,   472,   nil,   nil,   499,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   494,   470,   nil,   nil,   nil,
+   507,   nil,   nil,   nil,   492,   505,   468,   508,   nil,   nil,
+   nil,   nil,   nil,   517,   503,   nil,   490,   nil,   nil,   316,
+   nil,   nil,   nil,   487,   nil,   488,   501,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   414,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   248,   555,   nil,
+   nil,   nil,   nil,   516,   nil,   556,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   553,   nil,   582,   nil,   nil,
+   nil,   nil,   nil,   nil,   551,   nil,   nil,   nil,   nil,   517,
+   nil,   nil,   nil,   nil,   nil,   316,   549,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   547,   nil,   nil,   nil,   595,
+   567,   nil,   nil,   nil,    42,   nil,   569,   nil,   nil,   572,
+   334,   346,   352,   362,   414,   nil,   nil,   nil,   nil,   516,
+   nil,   nil,   nil,   nil,   599,   608,   601,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   629 ]
-
-racc_goto_check = [
-    57,    82,    22,    35,    84,   116,    23,    15,    24,    83,
-   105,    23,    15,    79,   110,    63,    85,    26,    60,    89,
-    67,    57,    49,    73,   106,    96,    72,    56,    55,    54,
-    88,    52,    70,    23,    14,    61,    23,    51,    54,    55,
-    87,    82,    40,    59,    84,   106,    57,    61,    56,    83,
-    14,    86,    70,   111,   111,    61,    85,   111,    38,    89,
-   111,   111,    37,    34,   110,   110,    72,   110,   110,    25,
-    88,   110,   110,    69,    20,    18,    17,    75,    76,    77,
-    87,    78,    16,    49,    80,    67,    81,    26,    73,    63,
-     1,    86,    60,    13,    12,    11,    10,     9,     8,     7,
-    91,    92,    93,    94,    95,    53,    57,    57,    97,    98,
-    23,    57,    57,    57,    57,    23,    15,    99,   100,   101,
-   102,   103,    82,   104,     6,     5,   107,   109,     4,     3,
-    83,   113,   114,   110,   115,     2,   117,   128,   130,   nil,
-    89,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    88,   nil,   nil,    82,   nil,   nil,   nil,   nil,   nil,
-   nil,    87,    83,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    86,    79,   nil,    79,   nil,   nil,   nil,   nil,
-    84,   nil,   nil,    84,    82,   nil,    83,   nil,    82,   nil,
-    82,    82,    83,   nil,    85,   nil,    83,    85,    83,    83,
-   nil,   nil,    89,   nil,    82,   nil,    89,    82,    89,    89,
-   nil,   nil,   nil,    88,    83,   nil,    89,    88,    89,    88,
-    88,   nil,   nil,    87,    88,   nil,   nil,    87,    88,    87,
-    87,    86,    87,   nil,    86,    87,   nil,   nil,    86,   nil,
-    86,    86,   nil,   nil,    86,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    24,    82,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   116,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    83,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    82,   nil,   nil,   nil,    89,
-   nil,   nil,    88,   nil,   105,   nil,   nil,   nil,   nil,   nil,
-    87,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    86,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,    82,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    83,   nil,   nil,   nil,
-   nil,   nil,    84,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    89,   nil,    83,   nil,    83,   nil,    82,   nil,
-   nil,    88,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    87,
-   nil,   nil,   nil,   nil,    89,   nil,   nil,   nil,   nil,    86,
-   nil,   nil,   nil,    88,   nil,    82,   nil,   nil,    82,   nil,
-    89,    87,   nil,    88,   nil,   nil,    83,   nil,   nil,   nil,
-    86,    87,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    86,   nil,   nil,   nil,    82,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    89,    83,    82,    23,   nil,
+   632 ]
+
+racc_goto_check = [
+    56,    81,    34,    22,    15,    83,   104,    82,    23,    15,
+    24,   115,    78,    23,   109,    59,    62,    84,    26,    66,
+    88,    56,    72,    71,    14,    48,    54,    55,     1,   105,
+    60,    87,    69,    53,    51,    23,    50,    54,    23,    58,
+    14,    39,    53,    81,    60,    86,    56,    83,    55,    82,
+   105,    60,    69,    37,    36,    25,    85,    68,    20,    84,
+   109,   109,    88,   109,   109,    71,    52,   109,   109,    18,
+   110,   110,    74,    87,   110,    75,    76,   110,   110,    77,
+    17,    79,    80,    66,    26,    48,    72,    86,    16,    59,
+    62,    13,    12,    11,    10,     9,     8,     7,    85,    90,
+    91,    92,    93,    94,    95,    96,    56,    56,    56,    56,
+    56,    56,    23,    15,    97,    98,    99,    23,   100,   101,
+   102,   103,    81,     6,     5,   106,   108,     4,    82,     3,
+   112,   109,   113,   114,     2,   116,   127,   129,   nil,   nil,
+   nil,    88,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    87,   nil,   nil,   nil,    81,   nil,   nil,   nil,
+   nil,   nil,    82,   nil,   nil,   nil,    86,   nil,   nil,   nil,
+    78,   nil,    78,   nil,   nil,   nil,   nil,    85,   nil,   nil,
+   nil,   nil,   nil,   nil,    83,   nil,    81,   nil,   nil,   nil,
+    81,    81,    82,   nil,    81,    84,    82,    82,    84,   nil,
+    82,   nil,   nil,   nil,    81,    88,    81,   nil,   nil,    88,
+    88,    82,    83,    88,   nil,    82,    87,    88,   nil,    88,
+    87,    87,   nil,   nil,    87,    87,   nil,    86,   nil,    87,
+    86,   nil,   nil,   nil,    86,    86,    85,   nil,    86,    85,
+    86,    85,   nil,   nil,   nil,    85,    85,   nil,   nil,    85,
+   nil,   nil,   nil,   nil,   nil,   115,   nil,   nil,   nil,   nil,
+    81,    24,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    89,   nil,    22,   nil,   nil,   nil,
-   nil,   nil,   nil,    88,   nil,   nil,   nil,   nil,    82,   nil,
-   nil,    87,   nil,   nil,   nil,   nil,    83,   nil,   nil,   nil,
-    86,   nil,   nil,   nil,   nil,   nil,    22,   nil,   nil,   nil,
-    23,    15,   nil,    23,   nil,    23,   nil,    89,    89,    89,
-    89,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    23,   nil,
-    82,   nil,    82,    35,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    82,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    81,   nil,   nil,
+   nil,   nil,    88,   nil,   nil,    82,   nil,   nil,   nil,   nil,
+   104,    87,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    86,   nil,   nil,    85,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    81,
+   nil,   nil,   nil,   nil,   nil,   nil,    82,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    83,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,    88,   nil,   nil,   nil,    81,   nil,
+   nil,   nil,   nil,    87,   nil,   nil,    82,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    88,    86,   nil,   nil,   nil,
+    81,   nil,   nil,   nil,    87,    88,    85,    82,   nil,   nil,
+   nil,   nil,   nil,    81,    87,   nil,    86,   nil,   nil,    82,
+   nil,   nil,   nil,    85,   nil,    85,    86,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    81,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    88,    81,   nil,
+   nil,   nil,   nil,    23,   nil,    82,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    88,   nil,    22,   nil,   nil,
+   nil,   nil,   nil,   nil,    87,   nil,   nil,   nil,   nil,    81,
+   nil,   nil,   nil,   nil,   nil,    82,    86,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    85,   nil,   nil,   nil,    22,
+    15,   nil,   nil,   nil,    23,   nil,    23,   nil,   nil,    23,
+    88,    88,    88,    88,    81,   nil,   nil,   nil,   nil,    23,
+   nil,   nil,   nil,   nil,    81,    34,    81,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    57 ]
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    56 ]
 
 racc_goto_pointer = [
-   nil,    90,   135,   129,   123,   114,   105,    73,    67,    44,
-    26,    95,    88,    79,    20,   -20,    28,    22,    21,   nil,
-  -137,   nil,   -81,   -21,  -203,  -142,  -442,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,  -448,   -79,   nil,  -539,  -550,   nil,
-  -173,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -189,
-   nil,  -422,  -243,  -289,  -578,  -584,   -27,   -54,   nil,     5,
-   -39,   -12,   nil,   -42,   nil,   nil,   nil,   -21,   nil,    30,
-   -11,   nil,   -36,   -18,   nil,   -29,   -24,   -23,   -21,   -89,
-   -18,  -322,   -61,   -53,   -58,   -46,   -11,   -22,   -32,   -43,
-   nil,    -2,    -1,     0,     1,     2,   -77,     6,     7,    15,
-    16,    17,    18,    19,    21,   -92,   -30,    41,   nil,    56,
-   -86,   -95,   nil,   -11,  -406,  -449,  -313,  -349,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -434,   nil,
-  -394 ]
+   nil,    28,   134,   129,   122,   113,   104,    71,    65,    42,
+    24,    93,    86,    77,    10,   -23,    34,    26,    15,   nil,
+  -153,   nil,   -80,   -19,  -201,  -156,  -444,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   -80,   nil,  -550,  -557,   nil,  -174,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -186,   nil,
+  -426,  -240,  -326,  -576,  -588,   -27,   -54,   nil,     3,   -42,
+   -15,   nil,   -41,   nil,   nil,   nil,   -23,   nil,    16,    -9,
+   nil,   -37,   -20,   nil,   -34,   -27,   -26,   -23,   -90,   -21,
+  -326,   -59,   -53,   -55,   -43,    -4,   -15,   -29,   -40,   nil,
+    -3,    -2,    -1,     0,     1,     2,     3,    12,    13,    14,
+    16,    17,    18,    19,   -96,   -25,    40,   nil,    55,   -86,
+   -74,   nil,   -12,  -379,  -430,  -308,  -349,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -437,   nil,  -397 ]
 
 racc_goto_default = [
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   535,   nil,    79,
-   nil,    83,   nil,   140,   nil,   nil,   nil,   520,   521,   522,
-   523,   525,   528,   531,   nil,    92,   534,   nil,   nil,   537,
-   512,   283,   286,   290,   293,   298,   302,   306,   311,   nil,
-   269,   nil,   nil,   nil,   nil,   613,   614,   615,    45,    47,
-    50,    34,    36,   nil,   105,    39,    40,    42,    43,   nil,
-   nil,    65,   nil,    35,    38,   104,   nil,   nil,   nil,   nil,
-   nil,   125,    99,    72,   nil,   nil,   284,   288,   291,   295,
-   122,   305,   310,   315,   nil,   nil,   nil,   nil,   nil,   nil,
-   297,   301,   304,   308,   313,   278,   nil,    77,    80,    81,
-    84,    87,    93,    97,   nil,   nil,   nil,   412,   282,   285,
-   289,   292,   296,   300,   303,   307,   312,   527,   530,   533,
-   nil ]
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   536,   nil,    79,
+   nil,    83,   nil,   140,   nil,   nil,   nil,   521,   522,   523,
+   524,   527,   531,   533,    88,   535,   nil,   nil,   537,   539,
+   281,   284,   287,   291,   295,   299,   304,   308,   nil,   275,
+   nil,   nil,   nil,   nil,   615,   616,   617,    43,    45,    47,
+    50,    35,   nil,   105,    38,    39,    40,    41,   nil,   nil,
+    63,   nil,    33,    36,   104,   nil,   nil,   nil,   nil,   nil,
+   122,    97,    99,   nil,   nil,   282,   285,   289,   292,   119,
+   303,   307,   312,   nil,   nil,   nil,   nil,   nil,   nil,   294,
+   298,   302,   306,   310,   314,   nil,    74,    77,    80,    81,
+    84,    89,    94,   nil,   nil,   nil,   411,   280,   283,   286,
+   290,   293,   297,   301,   305,   309,   526,   530,   532,   nil ]
 
 racc_token_table = {
@@ -1665,6 +1667,6 @@
  :END_REGEXP_BLOCK => 36,
  :ERR_C_DOMAIN_TYPE => 37,
- :START_V_C_DOMAIN_TYPE => 38,
- :END_V_C_DOMAIN_TYPE => 39,
+ :START_V_C_DOMAIN_TYPE_BLOCK => 38,
+ :END_V_C_DOMAIN_TYPE_BLOCK => 39,
  :SYM_USE_NODE => 40,
  :SYM_ALLOW_ARCHETYPE => 41,
@@ -1780,6 +1782,6 @@
 'END_REGEXP_BLOCK',
 'ERR_C_DOMAIN_TYPE',
-'START_V_C_DOMAIN_TYPE',
-'END_V_C_DOMAIN_TYPE',
+'START_V_C_DOMAIN_TYPE_BLOCK',
+'END_V_C_DOMAIN_TYPE_BLOCK',
 'SYM_USE_NODE',
 'SYM_ALLOW_ARCHETYPE',
@@ -1869,5 +1871,4 @@
 'c_primitive_object',
 'v_c_domain_type',
-'v_c_domain_type_body',
 'absolute_path',
 'c_archetype_slot_head',
@@ -2009,5 +2010,10 @@
  # reduce 18 omitted
 
- # reduce 19 omitted
+module_eval <<'.,.,', 'lib/parser.y', 74
+  def _reduce_19( val, _values, result )
+    result = {:language => val[1]}
+   result
+  end
+.,.,
 
  # reduce 20 omitted
@@ -2033,7 +2039,17 @@
  # reduce 30 omitted
 
- # reduce 31 omitted
-
- # reduce 32 omitted
+module_eval <<'.,.,', 'lib/parser.y', 111
+  def _reduce_31( val, _values, result )
+    result = {:c_complex_object_id => {:type_identifier => val[0]}}
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'lib/parser.y', 115
+  def _reduce_32( val, _values, result )
+    result = {:c_complex_object_id => {:type_identifier => val[0], :V_LOCAL_TERM_CODE_REF => val[1]}}
+   result
+  end
+.,.,
 
  # reduce 33 omitted
@@ -2722,6 +2738,4 @@
 
  # reduce 375 omitted
-
- # reduce 376 omitted
 
  def _reduce_none( val, _values, result )
