Changeset 32


Ignore:
Timestamp:
May 6, 2008, 12:18:06 AM (16 years ago)
Author:
Tatsukawa, Akimichi
Message:

fixed Archetype::Constraint_Model and Primitive classes

Location:
ruby/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/adl_parser/lib/parser.rb

    r26 r32  
    2626    class Parser < Racc::Parser
    2727
    28 module_eval <<'..end lib/parser.y modeval..id3b9eed63e6', 'lib/parser.y', 1127
     28module_eval <<'..end lib/parser.y modeval..idf8b8df4140', 'lib/parser.y', 1175
    2929
    3030def assert_at(file,line, message = "")
     
    819819
    820820
    821 ..end lib/parser.y modeval..id3b9eed63e6
     821..end lib/parser.y modeval..idf8b8df4140
    822822
    823823##### racc 1.4.5 generates ###
     
    825825racc_reduce_table = [
    826826 0, 0, :racc_error,
    827  2, 95, :_reduce_1,
    828  1, 95, :_reduce_none,
    829  8, 96, :_reduce_3,
    830  2, 97, :_reduce_4,
    831  2, 97, :_reduce_5,
    832  1, 105, :_reduce_6,
    833  2, 105, :_reduce_7,
    834  3, 106, :_reduce_8,
    835  1, 107, :_reduce_9,
    836  3, 107, :_reduce_10,
    837  3, 108, :_reduce_11,
    838  1, 108, :_reduce_12,
    839  0, 98, :_reduce_none,
    840  2, 98, :_reduce_none,
    841  2, 98, :_reduce_none,
    842  2, 99, :_reduce_16,
     827 2, 96, :_reduce_1,
     828 1, 96, :_reduce_none,
     829 8, 97, :_reduce_3,
     830 2, 98, :_reduce_4,
     831 2, 98, :_reduce_5,
     832 1, 106, :_reduce_6,
     833 2, 106, :_reduce_7,
     834 3, 107, :_reduce_8,
     835 1, 108, :_reduce_9,
     836 3, 108, :_reduce_10,
     837 3, 109, :_reduce_11,
     838 1, 109, :_reduce_12,
     839 0, 99, :_reduce_none,
    843840 2, 99, :_reduce_none,
    844  0, 100, :_reduce_18,
    845  2, 100, :_reduce_19,
     841 2, 99, :_reduce_none,
     842 2, 100, :_reduce_16,
    846843 2, 100, :_reduce_none,
    847  0, 101, :_reduce_none,
    848  2, 101, :_reduce_22,
     844 0, 101, :_reduce_18,
     845 2, 101, :_reduce_19,
    849846 2, 101, :_reduce_none,
    850  2, 102, :_reduce_24,
     847 0, 102, :_reduce_none,
     848 2, 102, :_reduce_22,
    851849 2, 102, :_reduce_none,
    852  1, 110, :_reduce_26,
    853  1, 110, :_reduce_27,
    854  5, 111, :_reduce_28,
    855  5, 111, :_reduce_29,
    856  2, 113, :_reduce_30,
    857  1, 115, :_reduce_31,
    858  2, 115, :_reduce_32,
    859  1, 114, :_reduce_none,
    860  1, 114, :_reduce_34,
    861  1, 120, :_reduce_35,
    862  1, 120, :_reduce_36,
    863  1, 120, :_reduce_37,
    864  1, 120, :_reduce_38,
    865  1, 120, :_reduce_39,
    866  1, 120, :_reduce_40,
    867  1, 120, :_reduce_41,
    868  1, 120, :_reduce_42,
    869  1, 120, :_reduce_none,
    870  1, 120, :_reduce_none,
    871  3, 121, :_reduce_45,
    872  4, 122, :_reduce_none,
    873  3, 122, :_reduce_none,
    874  6, 123, :_reduce_none,
    875  2, 129, :_reduce_none,
    876  2, 132, :_reduce_none,
    877  3, 132, :_reduce_none,
    878  2, 132, :_reduce_none,
    879  1, 127, :_reduce_53,
    880  1, 133, :_reduce_54,
    881  1, 133, :_reduce_55,
    882  1, 133, :_reduce_56,
    883  1, 133, :_reduce_57,
    884  1, 133, :_reduce_58,
    885  1, 133, :_reduce_59,
    886  1, 133, :_reduce_60,
    887  1, 133, :_reduce_61,
    888  1, 118, :_reduce_none,
    889  1, 119, :_reduce_63,
    890  2, 119, :_reduce_64,
    891  5, 142, :_reduce_65,
    892  5, 142, :_reduce_66,
    893  5, 142, :_reduce_67,
    894  2, 143, :_reduce_68,
    895  3, 143, :_reduce_69,
    896  1, 144, :_reduce_70,
    897  2, 144, :_reduce_71,
    898  1, 144, :_reduce_72,
    899  0, 130, :_reduce_none,
    900  2, 130, :_reduce_none,
     850 2, 103, :_reduce_24,
     851 2, 103, :_reduce_none,
     852 1, 111, :_reduce_26,
     853 1, 111, :_reduce_27,
     854 5, 112, :_reduce_28,
     855 5, 112, :_reduce_29,
     856 2, 114, :_reduce_30,
     857 1, 116, :_reduce_31,
     858 2, 116, :_reduce_32,
     859 1, 115, :_reduce_none,
     860 1, 115, :_reduce_34,
     861 1, 121, :_reduce_35,
     862 1, 121, :_reduce_36,
     863 1, 121, :_reduce_37,
     864 1, 121, :_reduce_38,
     865 1, 121, :_reduce_39,
     866 1, 121, :_reduce_40,
     867 1, 121, :_reduce_41,
     868 1, 121, :_reduce_42,
     869 1, 121, :_reduce_none,
     870 1, 121, :_reduce_none,
     871 3, 122, :_reduce_45,
     872 4, 123, :_reduce_46,
     873 3, 123, :_reduce_none,
     874 6, 124, :_reduce_48,
     875 2, 130, :_reduce_49,
     876 2, 133, :_reduce_50,
     877 3, 133, :_reduce_none,
     878 2, 133, :_reduce_none,
     879 1, 128, :_reduce_53,
     880 1, 134, :_reduce_54,
     881 1, 134, :_reduce_55,
     882 1, 134, :_reduce_56,
     883 1, 134, :_reduce_57,
     884 1, 134, :_reduce_58,
     885 1, 134, :_reduce_59,
     886 1, 134, :_reduce_60,
     887 1, 134, :_reduce_61,
     888 1, 119, :_reduce_none,
     889 1, 120, :_reduce_63,
     890 2, 120, :_reduce_64,
     891 5, 143, :_reduce_65,
     892 5, 143, :_reduce_66,
     893 5, 143, :_reduce_67,
     894 2, 144, :_reduce_68,
     895 3, 144, :_reduce_69,
     896 1, 145, :_reduce_70,
     897 2, 145, :_reduce_71,
     898 1, 145, :_reduce_72,
    901899 0, 131, :_reduce_none,
    902  2, 131, :_reduce_none,
    903  1, 147, :_reduce_none,
    904  2, 147, :_reduce_none,
    905  3, 148, :_reduce_none,
     900 2, 131, :_reduce_74,
     901 0, 132, :_reduce_none,
     902 2, 132, :_reduce_76,
    906903 1, 148, :_reduce_none,
    907  3, 148, :_reduce_none,
    908  0, 103, :_reduce_none,
    909  2, 103, :_reduce_none,
    910  2, 103, :_reduce_none,
    911  2, 104, :_reduce_85,
     904 2, 148, :_reduce_none,
     905 3, 149, :_reduce_none,
     906 1, 149, :_reduce_none,
     907 3, 149, :_reduce_none,
     908 0, 104, :_reduce_none,
    912909 2, 104, :_reduce_none,
    913  1, 109, :_reduce_none,
    914  1, 151, :_reduce_none,
    915  1, 151, :_reduce_none,
    916  1, 152, :_reduce_90,
    917  2, 152, :_reduce_91,
    918  3, 152, :_reduce_92,
    919  3, 154, :_reduce_93,
    920  1, 155, :_reduce_94,
    921  2, 155, :_reduce_none,
    922  1, 156, :_reduce_96,
    923  1, 156, :_reduce_97,
    924  1, 153, :_reduce_98,
    925  1, 153, :_reduce_99,
    926  1, 159, :_reduce_100,
    927  2, 159, :_reduce_101,
    928  3, 160, :_reduce_102,
    929  1, 161, :_reduce_103,
    930  1, 162, :_reduce_104,
    931  2, 162, :_reduce_105,
    932  3, 163, :_reduce_106,
    933  3, 164, :_reduce_107,
    934  1, 158, :_reduce_108,
    935  2, 158, :_reduce_109,
    936  2, 166, :_reduce_110,
    937  3, 166, :_reduce_111,
    938  1, 167, :_reduce_none,
    939  1, 157, :_reduce_113,
    940  2, 157, :_reduce_114,
    941  3, 168, :_reduce_115,
    942  1, 169, :_reduce_116,
    943  1, 169, :_reduce_117,
    944  1, 169, :_reduce_118,
    945  1, 169, :_reduce_119,
    946  1, 169, :_reduce_120,
    947  1, 165, :_reduce_121,
    948  1, 165, :_reduce_122,
    949  1, 165, :_reduce_123,
    950  1, 165, :_reduce_124,
    951  1, 165, :_reduce_125,
    952  1, 165, :_reduce_126,
    953  1, 165, :_reduce_127,
    954  1, 165, :_reduce_128,
    955  1, 165, :_reduce_129,
    956  1, 165, :_reduce_130,
    957  1, 170, :_reduce_none,
    958  1, 170, :_reduce_none,
    959  1, 170, :_reduce_none,
    960  1, 170, :_reduce_none,
    961  1, 170, :_reduce_none,
    962  1, 170, :_reduce_none,
    963  1, 170, :_reduce_none,
    964  1, 170, :_reduce_none,
    965  1, 170, :_reduce_none,
     910 2, 104, :_reduce_none,
     911 2, 105, :_reduce_85,
     912 2, 105, :_reduce_none,
     913 1, 110, :_reduce_none,
     914 1, 152, :_reduce_none,
     915 1, 152, :_reduce_none,
     916 1, 153, :_reduce_90,
     917 2, 153, :_reduce_91,
     918 3, 153, :_reduce_92,
     919 3, 155, :_reduce_93,
     920 1, 156, :_reduce_94,
     921 2, 156, :_reduce_none,
     922 1, 157, :_reduce_96,
     923 1, 157, :_reduce_97,
     924 1, 154, :_reduce_98,
     925 1, 154, :_reduce_99,
     926 1, 160, :_reduce_100,
     927 2, 160, :_reduce_101,
     928 3, 161, :_reduce_102,
     929 1, 162, :_reduce_103,
     930 1, 163, :_reduce_104,
     931 2, 163, :_reduce_105,
     932 3, 164, :_reduce_106,
     933 3, 165, :_reduce_107,
     934 1, 159, :_reduce_108,
     935 2, 159, :_reduce_109,
     936 2, 167, :_reduce_110,
     937 3, 167, :_reduce_111,
     938 1, 168, :_reduce_none,
     939 1, 158, :_reduce_113,
     940 2, 158, :_reduce_114,
     941 3, 169, :_reduce_115,
     942 1, 170, :_reduce_116,
     943 1, 170, :_reduce_117,
     944 1, 170, :_reduce_118,
     945 1, 170, :_reduce_119,
     946 1, 170, :_reduce_120,
     947 1, 166, :_reduce_121,
     948 1, 166, :_reduce_122,
     949 1, 166, :_reduce_123,
     950 1, 166, :_reduce_124,
     951 1, 166, :_reduce_125,
     952 1, 166, :_reduce_126,
     953 1, 166, :_reduce_127,
     954 1, 166, :_reduce_128,
     955 1, 166, :_reduce_129,
     956 1, 166, :_reduce_130,
    966957 1, 171, :_reduce_none,
    967958 1, 171, :_reduce_none,
     
    970961 1, 171, :_reduce_none,
    971962 1, 171, :_reduce_none,
    972  1, 117, :_reduce_146,
    973  1, 117, :_reduce_147,
    974  1, 174, :_reduce_148,
    975  3, 184, :_reduce_none,
    976  3, 184, :_reduce_none,
    977  3, 184, :_reduce_none,
    978  1, 175, :_reduce_152,
    979  2, 175, :_reduce_153,
    980  2, 175, :_reduce_154,
     963 1, 171, :_reduce_none,
     964 1, 171, :_reduce_none,
     965 1, 171, :_reduce_none,
     966 1, 172, :_reduce_none,
     967 1, 172, :_reduce_none,
     968 1, 172, :_reduce_none,
     969 1, 172, :_reduce_none,
     970 1, 172, :_reduce_none,
     971 1, 172, :_reduce_none,
     972 1, 118, :_reduce_146,
     973 1, 118, :_reduce_147,
     974 1, 175, :_reduce_148,
    981975 3, 185, :_reduce_none,
    982976 3, 185, :_reduce_none,
    983977 3, 185, :_reduce_none,
    984  5, 193, :_reduce_none,
    985  6, 193, :_reduce_none,
    986  6, 193, :_reduce_none,
    987  7, 193, :_reduce_none,
    988  4, 193, :_reduce_none,
    989  4, 193, :_reduce_none,
    990  4, 193, :_reduce_none,
    991  4, 193, :_reduce_none,
    992  3, 193, :_reduce_none,
    993  1, 176, :_reduce_167,
    994  2, 176, :_reduce_168,
    995  2, 176, :_reduce_169,
     978 1, 176, :_reduce_152,
     979 2, 176, :_reduce_153,
     980 2, 176, :_reduce_154,
    996981 3, 186, :_reduce_none,
    997982 3, 186, :_reduce_none,
     
    1006991 4, 194, :_reduce_none,
    1007992 3, 194, :_reduce_none,
    1008  1, 177, :_reduce_182,
    1009  1, 177, :_reduce_183,
     993 1, 177, :_reduce_167,
     994 2, 177, :_reduce_168,
     995 2, 177, :_reduce_169,
    1010996 3, 187, :_reduce_none,
    1011997 3, 187, :_reduce_none,
    1012998 3, 187, :_reduce_none,
    1013  1, 178, :_reduce_none,
    1014  3, 188, :_reduce_none,
    1015  3, 188, :_reduce_none,
    1016  3, 188, :_reduce_none,
    1017  1, 179, :_reduce_none,
    1018  3, 189, :_reduce_none,
    1019  3, 189, :_reduce_none,
    1020  3, 189, :_reduce_none,
    1021999 5, 195, :_reduce_none,
    10221000 6, 195, :_reduce_none,
     
    10281006 4, 195, :_reduce_none,
    10291007 3, 195, :_reduce_none,
     1008 1, 178, :_reduce_182,
     1009 1, 178, :_reduce_183,
     1010 3, 188, :_reduce_none,
     1011 3, 188, :_reduce_none,
     1012 3, 188, :_reduce_none,
     1013 1, 179, :_reduce_none,
     1014 3, 189, :_reduce_none,
     1015 3, 189, :_reduce_none,
     1016 3, 189, :_reduce_none,
    10301017 1, 180, :_reduce_none,
    10311018 3, 190, :_reduce_none,
     
    10541041 4, 197, :_reduce_none,
    10551042 3, 197, :_reduce_none,
    1056  1, 182, :_reduce_230,
     1043 1, 182, :_reduce_none,
    10571044 3, 192, :_reduce_none,
    10581045 3, 192, :_reduce_none,
     
    10671054 4, 198, :_reduce_none,
    10681055 3, 198, :_reduce_none,
    1069  1, 172, :_reduce_243,
    1070  3, 173, :_reduce_none,
    1071  3, 173, :_reduce_none,
    1072  3, 173, :_reduce_none,
    1073  1, 183, :_reduce_247,
    1074  1, 112, :_reduce_none,
    1075  2, 112, :_reduce_none,
     1056 1, 183, :_reduce_230,
     1057 3, 193, :_reduce_none,
     1058 3, 193, :_reduce_none,
     1059 3, 193, :_reduce_none,
     1060 5, 199, :_reduce_none,
     1061 6, 199, :_reduce_none,
     1062 6, 199, :_reduce_none,
     1063 7, 199, :_reduce_none,
     1064 4, 199, :_reduce_none,
     1065 4, 199, :_reduce_none,
     1066 4, 199, :_reduce_none,
     1067 4, 199, :_reduce_none,
    10761068 3, 199, :_reduce_none,
    1077  1, 199, :_reduce_none,
    1078  3, 199, :_reduce_none,
    1079  1, 150, :_reduce_none,
    1080  1, 150, :_reduce_none,
    1081  2, 201, :_reduce_none,
    1082  2, 201, :_reduce_none,
    1083  5, 201, :_reduce_none,
    1084  5, 201, :_reduce_none,
    1085  2, 201, :_reduce_none,
    1086  3, 201, :_reduce_none,
    1087  3, 201, :_reduce_none,
    1088  3, 201, :_reduce_none,
    1089  3, 201, :_reduce_none,
    1090  3, 201, :_reduce_none,
    1091  3, 201, :_reduce_none,
    1092  3, 201, :_reduce_none,
    1093  3, 201, :_reduce_none,
    1094  3, 201, :_reduce_none,
    1095  3, 201, :_reduce_none,
     1069 1, 173, :_reduce_243,
     1070 3, 174, :_reduce_none,
     1071 3, 174, :_reduce_none,
     1072 3, 174, :_reduce_none,
     1073 1, 184, :_reduce_247,
     1074 1, 113, :_reduce_none,
     1075 2, 113, :_reduce_none,
    10961076 3, 200, :_reduce_none,
    10971077 1, 200, :_reduce_none,
    1098  1, 200, :_reduce_none,
    1099  1, 203, :_reduce_none,
    1100  1, 203, :_reduce_none,
    1101  3, 205, :_reduce_none,
    1102  3, 205, :_reduce_none,
    1103  3, 205, :_reduce_none,
    1104  3, 205, :_reduce_none,
    1105  3, 205, :_reduce_none,
    1106  3, 204, :_reduce_none,
     1078 3, 200, :_reduce_none,
     1079 1, 151, :_reduce_none,
     1080 1, 151, :_reduce_none,
     1081 2, 202, :_reduce_none,
     1082 2, 202, :_reduce_none,
     1083 5, 202, :_reduce_none,
     1084 5, 202, :_reduce_none,
     1085 2, 202, :_reduce_none,
     1086 3, 202, :_reduce_none,
     1087 3, 202, :_reduce_none,
     1088 3, 202, :_reduce_none,
     1089 3, 202, :_reduce_none,
     1090 3, 202, :_reduce_none,
     1091 3, 202, :_reduce_none,
     1092 3, 202, :_reduce_none,
     1093 3, 202, :_reduce_none,
     1094 3, 202, :_reduce_none,
     1095 3, 202, :_reduce_none,
     1096 3, 201, :_reduce_none,
     1097 1, 201, :_reduce_none,
     1098 1, 201, :_reduce_none,
    11071099 1, 204, :_reduce_none,
    11081100 1, 204, :_reduce_none,
    1109  1, 204, :_reduce_none,
    1110  1, 128, :_reduce_none,
    1111  2, 128, :_reduce_none,
    1112  1, 202, :_reduce_none,
    1113  3, 202, :_reduce_none,
    1114  2, 206, :_reduce_288,
    1115  1, 206, :_reduce_289,
    1116  0, 145, :_reduce_290,
    1117  5, 145, :_reduce_291,
    1118  1, 207, :_reduce_292,
    1119  3, 207, :_reduce_293,
    1120  5, 146, :_reduce_294,
    1121  1, 208, :_reduce_none,
    1122  3, 208, :_reduce_none,
    1123  3, 208, :_reduce_none,
    1124  3, 208, :_reduce_none,
    1125  5, 208, :_reduce_none,
    1126  5, 208, :_reduce_none,
    1127  5, 208, :_reduce_none,
    1128  5, 208, :_reduce_none,
    1129  1, 210, :_reduce_none,
    1130  1, 210, :_reduce_none,
    1131  0, 116, :_reduce_none,
    1132  5, 116, :_reduce_306,
    1133  2, 116, :_reduce_none,
     1101 3, 206, :_reduce_none,
     1102 3, 206, :_reduce_none,
     1103 3, 206, :_reduce_none,
     1104 3, 206, :_reduce_none,
     1105 3, 206, :_reduce_none,
     1106 3, 205, :_reduce_none,
     1107 1, 205, :_reduce_none,
     1108 1, 205, :_reduce_none,
     1109 1, 205, :_reduce_none,
     1110 1, 129, :_reduce_none,
     1111 2, 129, :_reduce_none,
     1112 1, 203, :_reduce_none,
     1113 3, 203, :_reduce_none,
     1114 2, 207, :_reduce_288,
     1115 1, 207, :_reduce_289,
     1116 0, 146, :_reduce_290,
     1117 5, 146, :_reduce_291,
     1118 1, 208, :_reduce_292,
     1119 3, 208, :_reduce_293,
     1120 5, 147, :_reduce_294,
    11341121 1, 209, :_reduce_none,
    11351122 3, 209, :_reduce_none,
     1123 3, 209, :_reduce_none,
     1124 3, 209, :_reduce_none,
     1125 5, 209, :_reduce_none,
     1126 5, 209, :_reduce_none,
     1127 5, 209, :_reduce_none,
     1128 5, 209, :_reduce_none,
    11361129 1, 211, :_reduce_none,
    11371130 1, 211, :_reduce_none,
    1138  1, 211, :_reduce_none,
    1139  1, 134, :_reduce_none,
    1140  3, 134, :_reduce_none,
    1141  3, 134, :_reduce_none,
     1131 0, 117, :_reduce_none,
     1132 5, 117, :_reduce_306,
     1133 2, 117, :_reduce_none,
     1134 1, 210, :_reduce_none,
     1135 3, 210, :_reduce_none,
    11421136 1, 212, :_reduce_none,
    11431137 1, 212, :_reduce_none,
     
    11651159 3, 138, :_reduce_none,
    11661160 1, 216, :_reduce_none,
    1167  3, 216, :_reduce_none,
    11681161 1, 216, :_reduce_none,
    11691162 1, 216, :_reduce_none,
     
    11711164 3, 139, :_reduce_none,
    11721165 3, 139, :_reduce_none,
    1173  1, 218, :_reduce_none,
    1174  1, 218, :_reduce_none,
    1175  3, 218, :_reduce_none,
     1166 1, 217, :_reduce_none,
     1167 3, 217, :_reduce_none,
     1168 1, 217, :_reduce_none,
     1169 1, 217, :_reduce_none,
    11761170 1, 140, :_reduce_none,
    11771171 3, 140, :_reduce_none,
    11781172 3, 140, :_reduce_none,
    1179  1, 219, :_reduce_353,
    1180  1, 219, :_reduce_354,
    1181  3, 219, :_reduce_355,
    1182  3, 219, :_reduce_356,
    1183  1, 141, :_reduce_357,
    1184  3, 141, :_reduce_358,
    1185  3, 141, :_reduce_359,
    1186  1, 126, :_reduce_none,
    1187  3, 126, :_reduce_none,
    1188  3, 126, :_reduce_none,
    1189  1, 220, :_reduce_none,
    1190  3, 220, :_reduce_none,
    1191  3, 221, :_reduce_365,
    1192  1, 125, :_reduce_none,
    1193  1, 125, :_reduce_none,
    1194  3, 222, :_reduce_none,
    1195  0, 223, :_reduce_none,
    1196  1, 223, :_reduce_none,
    1197  2, 223, :_reduce_none,
    1198  1, 124, :_reduce_none,
    1199  1, 149, :_reduce_none,
    1200  1, 149, :_reduce_374,
    1201  1, 217, :_reduce_375 ]
     1173 1, 219, :_reduce_none,
     1174 1, 219, :_reduce_none,
     1175 3, 219, :_reduce_none,
     1176 1, 141, :_reduce_none,
     1177 3, 141, :_reduce_none,
     1178 3, 141, :_reduce_none,
     1179 1, 220, :_reduce_353,
     1180 1, 220, :_reduce_354,
     1181 3, 220, :_reduce_355,
     1182 3, 220, :_reduce_356,
     1183 1, 142, :_reduce_357,
     1184 3, 142, :_reduce_358,
     1185 3, 142, :_reduce_359,
     1186 1, 127, :_reduce_none,
     1187 3, 127, :_reduce_none,
     1188 3, 127, :_reduce_none,
     1189 1, 221, :_reduce_none,
     1190 3, 221, :_reduce_none,
     1191 3, 222, :_reduce_365,
     1192 1, 126, :_reduce_366,
     1193 1, 126, :_reduce_367,
     1194 3, 223, :_reduce_none,
     1195 0, 224, :_reduce_none,
     1196 1, 224, :_reduce_none,
     1197 2, 224, :_reduce_none,
     1198 1, 125, :_reduce_372,
     1199 1, 150, :_reduce_373,
     1200 1, 150, :_reduce_374,
     1201 1, 218, :_reduce_375 ]
    12021202
    12031203racc_reduce_n = 376
    12041204
    1205 racc_shift_n = 631
     1205racc_shift_n = 633
    12061206
    12071207racc_action_table = [
    1208    571,   442,   161,   472,   144,   588,   470,   466,   468,   129,
    1209    214,   570,   165,   573,   229,    10,   542,   170,   376,   539,
    1210     29,    58,   540,   541,   171,   458,   496,   386,   522,   385,
    1211     24,   116,   213,   494,  -373,    12,   535,   510,   434,   513,
    1212    514,  -374,   512,   569,    60,   492,   228,   457,    30,    50,
    1213    145,    46,    48,   317,    97,    98,    78,    81,    84,   188,
    1214    116,    94,   302,   307,    75,   109,   112,   114,   116,   529,
    1215    522,   116,   109,   114,   112,   116,   152,   154,   535,   510,
    1216     76,   513,   514,   272,   101,   116,   314,   279,   281,   532,
    1217    160,   114,   291,    46,    48,   317,   114,   625,    78,    81,
    1218     84,   188,   112,    94,   302,   307,    99,   109,   112,   114,
    1219    116,   529,   156,   432,     1,    46,    48,   101,   347,   348,
    1220     78,    81,    84,   230,   479,    94,    97,    98,   314,   279,
    1221    281,   532,   490,     5,   291,    88,    92,   152,   154,   138,
    1222    152,   154,    76,   101,   260,   374,   152,   154,   430,   148,
    1223    150,   133,   259,    78,    81,    84,   236,   114,    94,    97,
    1224     98,   152,   154,    67,   481,   138,   152,   154,    88,    92,
    1225    112,   152,   154,   156,   462,    76,   156,   127,   329,    78,
    1226     81,    84,   156,    50,    94,    97,    98,   126,   109,   152,
    1227    154,   465,   157,   158,    88,    92,   149,   156,   134,   151,
    1228    153,    76,   156,   594,   109,   152,   154,   156,   157,   158,
    1229    148,   150,   149,   148,   150,   151,   153,   566,   332,   148,
    1230    150,   236,   337,   338,   378,   156,   123,   124,   109,   101,
    1231     78,   382,   383,    55,   148,   150,   211,    20,   184,   148,
    1232    150,   156,   497,    35,   148,   150,   209,   257,   323,   324,
    1233    250,   138,    94,   254,   256,    21,    35,   155,   212,    78,
    1234    382,   383,   148,   150,   390,    78,    81,    84,    46,    48,
    1235     94,    97,    98,   155,   217,    50,   391,   455,   148,   150,
    1236     88,    92,   217,   274,    46,    48,   394,    76,    50,    78,
    1237    382,   383,   101,   237,    78,    81,    84,    46,    48,    94,
    1238    102,   395,   335,   109,   112,   114,   116,   272,   274,   108,
    1239     78,    81,    84,   112,   138,    94,   101,    67,    78,    81,
    1240     84,   396,   141,    94,    78,   382,   383,   142,    78,    81,
    1241     84,   268,    76,    94,    97,    98,   568,    50,   138,   101,
    1242     76,    46,    48,    88,    92,   239,   168,   169,   166,   167,
    1243     76,   101,    78,    81,    84,   146,   397,    94,    97,    98,
    1244    147,   138,   398,   217,   326,   345,   346,    88,    92,   217,
    1245    102,   123,   124,   138,    76,    78,    81,    84,   217,   399,
    1246     94,    97,    98,   168,   169,   166,   167,    78,    81,    84,
    1247     88,    92,    94,    97,    98,   400,   217,    76,   401,    78,
    1248     81,    84,    88,    92,    94,    78,    81,    84,   101,    76,
    1249     94,    46,    48,   402,    78,    81,    84,   403,    16,    94,
    1250     17,    76,   322,   404,   323,   324,   101,    76,    94,   405,
    1251     99,   488,    78,    81,    84,   217,    76,    94,   406,    46,
    1252     48,    78,   382,   383,    78,    81,    84,   407,    99,    94,
    1253     97,    98,   416,   217,    76,    46,    48,    46,    48,    88,
    1254     92,   217,    78,    81,    84,   408,    76,    94,    97,    98,
    1255    265,    78,    81,    84,   349,   350,    94,    88,    92,   323,
    1256    324,    25,    26,    94,    76,   101,   357,   358,    35,    78,
    1257     81,    84,   409,    76,    94,   596,   597,    78,    81,    84,
    1258    323,   324,    94,   217,    94,   267,   380,    99,   477,   217,
    1259    268,    76,   615,   616,   617,   217,    46,    48,   266,    76,
    1260     50,    78,    81,    84,   427,   428,    94,    97,    98,    46,
    1261     48,   323,   324,   101,   248,    94,    88,    92,   247,    78,
    1262     81,    84,   142,    76,    94,    78,    81,    84,   371,   372,
    1263     94,    78,    81,    84,   147,    99,    94,   101,   246,   323,
    1264    324,    76,    39,    94,    46,    48,   413,    76,   380,    78,
    1265     81,    84,    35,    76,    94,    97,    98,   425,   426,    99,
    1266    101,    78,   382,   383,    88,    92,   423,   424,    46,    48,
    1267    413,    76,   261,    78,    81,    84,   421,   422,    94,    97,
    1268     98,    16,   138,    17,    50,   412,   382,   383,    88,    92,
    1269    413,   419,   420,    46,    48,    76,    78,    81,    84,   417,
    1270    418,    94,    97,    98,   262,   412,   382,   383,   263,   323,
    1271    324,    88,    92,    94,   629,   630,   317,   116,    76,    78,
    1272     81,    84,   188,   264,    94,   302,   307,   245,   109,   112,
    1273    114,   116,    78,    81,    84,   123,   124,    94,    78,   382,
    1274    383,   109,   112,   114,   116,   168,   169,   166,   167,   314,
    1275    279,   281,  -103,   244,   243,   291,   202,   435,   436,    78,
    1276     81,    84,   188,   437,    94,   123,   124,   126,   109,   112,
    1277    114,   116,   184,   119,   127,   438,   439,    78,    81,    84,
    1278    440,   242,    94,   123,   124,   126,   109,   112,   114,   116,
    1279    443,   119,    78,    81,    84,   444,   445,    94,    78,   382,
    1280    383,   109,   112,   114,   116,    78,    81,    84,   446,   447,
    1281     94,    78,   382,   383,   109,   112,   114,   116,    78,    81,
    1282     84,   448,   449,    94,   450,   451,   452,   109,   112,   114,
    1283    116,   168,   169,   166,   167,   388,    78,   382,   383,   168,
    1284    169,   166,   167,   168,   169,   166,   167,   168,   169,   166,
    1285    167,   168,   169,   166,   167,   168,   169,   166,   167,   453,
    1286    454,   241,   141,   146,   240,   460,   461,   239,   238,   138,
    1287    171,   145,   207,   474,   476,   265,   478,   102,   163,   483,
    1288    484,   485,   160,   143,   138,   135,    50,   131,    69,   499,
    1289    109,   501,   112,   503,   114,   505,   116,   266,   508,   509,
    1290     68,   537,   538,    35,    60,   544,   545,    57,   547,   109,
    1291    549,   112,   551,   114,   553,   116,   267,   556,   557,   558,
    1292    559,   560,   561,   562,  -103,   564,   268,    54,   170,    34,
    1293    114,    31,   575,   576,   160,   578,   579,   116,   116,   116,
    1294     28,   581,   582,   583,   584,   585,   586,   587,   112,   590,
    1295    591,   276,   184,   109,   598,    23,   601,   602,    76,   568,
    1296    604,   606,   607,   608,   277,   613,   126,    15,   619,    13,
    1297      9,   621,   622,   623,   624,     8,     7,   627,   628,   319,
    1298    116 ]
     1208   576,   483,   147,   164,   476,   594,   474,    59,   215,   472,
     1209   131,   470,   452,   578,   575,   464,   462,    29,   383,   341,
     1210   387,    67,   385,   321,   155,   157,    25,    26,   526,   114,
     1211   119,   216,    73,   500,   190,   121,    36,   513,   515,   463,
     1212   518,   519,    36,   517,   502,    30,    62,   574,   148,   155,
     1213   157,   434,    49,    51,   284,   112,   444,    81,    84,    87,
     1214   194,   160,    97,   309,   314,   238,   114,   117,   119,   121,
     1215   534,   526,   121,   121,   119,    73,   117,   114,   128,   129,
     1216   513,   515,    79,   518,   519,   277,   160,   281,   286,   288,
     1217   537,   163,   119,   298,    75,    49,    51,   284,   152,   153,
     1218    81,    84,    87,   194,   121,    97,   309,   314,   114,   114,
     1219   117,   119,   121,   534,   102,   119,   436,   230,   232,   494,
     1220   168,   498,   134,   152,   153,     9,    73,   496,   155,   157,
     1221   281,   286,   288,   537,   155,   157,   298,    71,   102,   338,
     1222   249,   322,   631,   323,   344,    11,    49,    51,   111,   248,
     1223   231,    81,    84,    87,   467,   117,    97,   100,   101,   155,
     1224   157,   140,   102,   100,   101,   160,    91,    95,   325,   326,
     1225   135,   160,    97,    79,   117,    81,    84,    87,   468,   117,
     1226    97,   100,   101,   389,   114,   140,   190,   155,   157,   138,
     1227    91,    95,   173,   155,   157,   121,   160,    79,   392,    81,
     1228    84,    87,   152,   153,    97,   100,   101,  -374,   152,   153,
     1229  -373,    81,   329,   330,    91,    95,   155,   157,   219,   158,
     1230   161,    79,   571,   151,   160,    22,   154,   156,   155,   157,
     1231   160,   158,   161,   152,   153,   151,   325,   326,   154,   156,
     1232    97,   219,   242,    23,   238,   544,   103,   573,   541,   394,
     1233   601,   542,   543,   160,     1,    81,    84,    87,   602,   603,
     1234    97,   152,   153,   263,   109,   160,   256,   152,   153,   259,
     1235   261,   395,    67,     4,    49,    51,   103,    79,    81,    84,
     1236    87,   144,    16,    97,    17,   159,   145,   102,    49,    51,
     1237   152,   153,   333,    36,   325,   326,   219,   159,    97,   149,
     1238    79,   396,   152,   153,   150,   121,   219,    81,   329,   330,
     1239   140,    81,    84,    87,   102,    16,    97,    17,    49,    51,
     1240   114,   117,   119,   121,    81,    84,    87,   128,   129,    97,
     1241   100,   101,   219,    81,    84,    87,   420,   140,    97,    91,
     1242    95,   272,   219,    81,    84,    87,    79,   416,    97,   277,
     1243   272,    81,    84,    87,   398,    79,    97,   100,   101,   389,
     1244   102,   481,   415,   329,   330,    79,    91,    95,   335,    81,
     1245    84,    87,   102,    79,    97,   128,   129,   212,   241,    81,
     1246    84,    87,   242,    71,    97,   325,   326,    35,   240,    97,
     1247   244,    79,    49,    51,   399,   140,   400,    81,    84,    87,
     1248   102,    79,    97,   100,   101,   401,   418,   402,   219,    81,
     1249    84,    87,    91,    95,    97,   100,   101,   403,    40,    79,
     1250    36,   629,   630,    71,    91,    95,   404,   219,    35,    49,
     1251    51,    79,    49,    51,    81,   329,   330,    81,    84,    87,
     1252   102,   405,    97,   100,   101,    81,    84,    87,   431,   432,
     1253    97,   406,    91,    95,    81,   329,   330,   492,   102,    79,
     1254   407,    36,   408,    71,    81,    84,    87,    79,   409,    97,
     1255    49,    51,    49,    51,   429,   430,   219,    81,    84,    87,
     1256   410,    71,    97,   100,   101,   102,    79,    81,   329,   330,
     1257    49,    51,    91,    95,   270,    81,    84,    87,   411,    79,
     1258    97,   100,   101,   102,   239,    81,   329,   330,   140,   247,
     1259    91,    95,   246,    81,    84,    87,   145,    79,    97,    81,
     1260   329,   330,    81,    84,    87,   150,   140,    97,   100,   101,
     1261   144,   102,   611,   612,   613,    79,   416,    91,    95,   219,
     1262    81,    84,    87,   149,    79,    97,   100,   101,   245,   219,
     1263   244,   415,   329,   330,    71,    91,    95,   219,   172,   169,
     1264   170,   171,    79,    49,    51,   346,   347,    35,    81,    84,
     1265    87,   348,   349,    97,   100,   101,    81,    84,    87,   251,
     1266   102,    97,    56,    91,    95,   252,    81,    84,    87,   416,
     1267    79,    97,    35,   253,    81,    84,    87,   264,    79,    97,
     1268    36,   427,   428,   140,    81,   329,   330,   265,    79,    49,
     1269    51,   325,   326,   356,   357,    97,    79,    81,    84,    87,
     1270   358,   359,    97,   100,   101,    36,   325,   326,   425,   426,
     1271    97,   119,    91,    95,    49,    51,   243,   284,   242,    79,
     1272    81,    84,    87,   194,   437,    97,   309,   314,   438,   114,
     1273   117,   119,   121,    81,    84,    87,   325,   326,    97,   439,
     1274    97,   440,   114,   117,   119,   121,   172,   169,   170,   171,
     1275   281,   286,   288,  -103,   366,   367,   298,   176,   423,   424,
     1276    81,    84,    87,   194,   441,    97,   128,   129,   111,   114,
     1277   117,   119,   121,   190,   124,   112,   374,   375,    81,    84,
     1278    87,   421,   422,    97,   128,   129,   111,   114,   117,   119,
     1279   121,   442,   124,    81,    84,    87,    49,    51,    97,    81,
     1280   329,   330,   114,   117,   119,   121,    81,    84,    87,   241,
     1281   445,    97,   446,   447,   448,   114,   117,   119,   121,    81,
     1282    84,    87,   449,   450,    97,   240,   453,   454,   114,   117,
     1283   119,   121,   172,   169,   170,   171,   172,   169,   170,   171,
     1284   328,    81,   329,   330,   172,   169,   170,   171,   172,   169,
     1285   170,   171,   172,   169,   170,   171,   172,   169,   170,   171,
     1286   172,   169,   170,   171,   455,   456,   457,   458,   460,   461,
     1287   140,   214,   148,   138,   213,   210,   103,   166,   478,   480,
     1288   266,   482,   163,   485,   486,   487,   117,   489,   146,   140,
     1289   139,   136,    36,   110,    69,   503,   114,   505,   117,   507,
     1290   119,   509,   121,   511,   512,    35,   540,    62,    58,   546,
     1291   547,   548,   267,   550,    57,   552,   114,   554,   117,   556,
     1292   119,   558,   121,   560,   561,   562,   563,   564,   565,   163,
     1293  -103,   569,   250,    54,   173,    34,   114,    31,   580,   581,
     1294   582,   121,   121,    28,   121,   583,   584,   585,   586,   587,
     1295   588,   268,   591,   592,   593,    24,   596,   597,   111,    21,
     1296   269,   604,   605,   606,   607,    79,   573,   609,   270,   271,
     1297   619,   620,   621,   622,    15,   624,    14,   625,    12,   627,
     1298   628,   319,     8,     7,   121 ]
    12991299
    13001300racc_action_check = [
    1301    526,   358,    88,   403,    83,   565,   402,   400,   401,    61,
    1302    144,   524,    92,   526,   160,     5,   476,    95,   261,   476,
    1303     23,    40,   476,   476,    99,   390,   426,   266,   526,   266,
    1304     16,   261,   144,   424,    95,     5,   526,   526,   350,   526,
    1305    526,    99,   458,   524,    61,   422,   160,   390,    23,    40,
    1306     83,   526,   526,   526,    92,    92,   526,   526,   526,   526,
    1307    358,   526,   526,   526,    54,   526,   526,   526,   526,   526,
    1308    458,   403,   400,   402,   401,   476,   226,   226,   458,   458,
    1309     88,   458,   458,   458,    54,   426,   526,   526,   526,   526,
    1310    565,   424,   526,   458,   458,   458,   350,   619,   458,   458,
    1311    458,   458,   422,   458,   458,   458,    54,   458,   458,   458,
    1312    458,   458,   226,   348,     0,    54,    54,   619,   252,   252,
    1313     54,    54,    54,   163,   408,    54,    54,    54,   458,   458,
    1314    458,   458,   420,     0,   458,    54,    54,   224,   224,   619,
    1315    318,   318,    54,   163,   190,   260,   227,   227,   346,   226,
    1316    226,    69,   189,   619,   619,   619,   318,   260,   619,   619,
    1317    619,   220,   220,    49,   409,   163,   218,   218,   619,   619,
    1318    348,   222,   222,   224,   398,   619,   318,   408,   243,   163,
    1319    163,   163,   227,    49,   163,   163,   163,   243,   420,    85,
    1320     85,   399,    85,    85,   163,   163,    85,   220,    69,    85,
    1321     85,   163,   218,   570,   346,   172,   172,   222,   172,   172,
    1322    224,   224,   172,   318,   318,   172,   172,   514,   245,   227,
    1323    227,   172,   249,   249,   262,    85,   409,   409,   245,   168,
    1324    398,   398,   398,    34,   220,   220,   143,    13,   262,   218,
    1325    218,   172,   428,    34,   222,   222,   135,   188,   399,   399,
    1326    188,   168,   399,   188,   188,    13,   135,    85,   143,   570,
    1327    570,   570,    85,    85,   269,   168,   168,   168,   514,   514,
    1328    168,   168,   168,   172,   151,    34,   270,   372,   172,   172,
    1329    168,   168,   217,   273,    34,    34,   274,   168,   135,   428,
    1330    428,   428,   167,   173,   188,   188,   188,   135,   135,   188,
    1331    131,   276,   247,   188,   188,   188,   188,   211,   211,    59,
    1332    151,   151,   151,   247,   167,   151,   166,    59,   217,   217,
    1333    217,   277,    81,   217,   372,   372,   372,    81,   167,   167,
    1334    167,   516,   151,   167,   167,   167,   516,    59,   166,   169,
    1335    217,   131,   131,   167,   167,   280,   173,   173,   173,   173,
    1336    167,   165,   166,   166,   166,    84,   282,   166,   166,   166,
    1337     84,   169,   283,   152,   241,   251,   251,   166,   166,   150,
    1338     57,   241,   241,   165,   166,   169,   169,   169,   149,   286,
    1339    169,   169,   169,   235,   235,   235,   235,   165,   165,   165,
    1340    169,   169,   165,   165,   165,   289,   148,   169,   293,   152,
    1341    152,   152,   165,   165,   152,   150,   150,   150,    79,   165,
    1342    150,    57,    57,   296,   149,   149,   149,   299,    12,   149,
    1343     12,   152,   239,   302,   239,   239,   620,   150,   239,   303,
    1344     79,   418,   148,   148,   148,   153,   149,   148,   305,    79,
    1345     79,   265,   265,   265,    79,    79,    79,   307,   620,    79,
    1346     79,    79,   338,   158,   148,   513,   513,   620,   620,    79,
    1347     79,   154,   620,   620,   620,   308,    79,   620,   620,   620,
    1348    310,   153,   153,   153,   253,   253,   153,   620,   620,   418,
    1349    418,    18,    18,   418,   620,   613,   255,   255,   510,   158,
    1350    158,   158,   312,   153,   158,   574,   574,   154,   154,   154,
    1351    338,   338,   154,   155,   338,   315,   406,   613,   406,   156,
    1352    316,   158,   606,   606,   606,   157,   613,   613,   317,   154,
    1353    510,   613,   613,   613,   344,   344,   613,   613,   613,   510,
    1354    510,   267,   267,   609,   187,   267,   613,   613,   186,   155,
    1355    155,   155,   323,   613,   155,   156,   156,   156,   258,   258,
    1356    156,   157,   157,   157,   324,   609,   157,   604,   185,   488,
    1357    488,   155,    28,   488,   609,   609,   484,   156,   263,   609,
    1358    609,   609,    28,   157,   609,   609,   609,   343,   343,   604,
    1359    101,   484,   484,   484,   609,   609,   342,   342,   604,   604,
    1360    578,   609,   193,   604,   604,   604,   341,   341,   604,   604,
    1361    604,    26,   101,    26,    28,   578,   578,   578,   604,   604,
    1362    319,   340,   340,    28,    28,   604,   101,   101,   101,   339,
    1363    339,   101,   101,   101,   196,   319,   319,   319,   198,   416,
    1364    416,   101,   101,   416,   624,   624,   214,   259,   101,   214,
    1365    214,   214,   214,   199,   214,   214,   214,   183,   214,   214,
    1366    214,   214,   254,   254,   254,   238,   238,   254,   569,   569,
    1367    569,   254,   254,   254,   254,    93,    93,    93,    93,   214,
    1368    214,   214,   102,   182,   181,   214,   102,   351,   352,   102,
    1369    102,   102,   102,   353,   102,   102,   102,   102,   102,   102,
    1370    102,   102,   102,   102,    60,   354,   355,    60,    60,    60,
    1371    356,   180,    60,    60,    60,    60,    60,    60,    60,    60,
    1372    359,    60,   250,   250,   250,   360,   361,   250,   455,   455,
    1373    455,   250,   250,   250,   250,   257,   257,   257,   362,   363,
    1374    257,   497,   497,   497,   257,   257,   257,   257,   256,   256,
    1375    256,   364,   365,   256,   366,   367,   368,   256,   256,   256,
    1376    256,   612,   612,   612,   612,   268,   268,   268,   268,   231,
    1377    231,   231,   231,   232,   232,   232,   232,   233,   233,   233,
    1378    233,   234,   234,   234,   234,   626,   626,   626,   626,   369,
    1379    370,   179,   382,   383,   178,   393,   394,   176,   175,   145,
    1380    138,   137,   111,   404,   405,   201,   407,   106,    89,   410,
    1381    412,   415,    86,    82,    76,    70,    67,    63,    53,   429,
    1382    430,   431,   432,   433,   434,   441,   442,   202,   456,   457,
    1383     50,   460,   461,    45,    44,   486,   487,    38,   489,   490,
    1384    491,   492,   493,   494,   495,   496,   204,   498,   500,   502,
    1385    504,   506,   507,   509,    35,   512,   205,    33,   515,    27,
    1386    246,    24,   532,   533,   536,   537,   538,   539,   540,   541,
    1387     22,   546,   548,   550,   552,   554,   555,   563,   244,   567,
    1388    568,   212,   264,   242,   576,    14,   579,   580,   589,   593,
    1389    598,   599,   600,   601,   213,   605,   240,     8,   611,     6,
    1390      4,   614,   615,   616,   617,     3,     2,   622,   623,   228,
    1391    542 ]
     1301   531,   410,    86,    91,   405,   570,   404,    43,   147,   403,
     1302    63,   402,   375,   531,   529,   398,   395,    21,   265,   250,
     1303   267,    52,   266,   231,   222,   222,    18,    18,   531,   250,
     1304   265,   147,   531,   430,   267,   266,    43,   531,   531,   395,
     1305   531,   531,    52,   462,   432,    21,    63,   529,    86,   320,
     1306   320,   357,   531,   531,   531,   410,   367,   531,   531,   531,
     1307   531,   222,   531,   531,   531,   320,   531,   531,   531,   531,
     1308   531,   462,   375,   405,   404,   462,   403,   402,   398,   398,
     1309   462,   462,    91,   462,   462,   462,   320,   531,   531,   531,
     1310   531,   570,   430,   531,    54,   462,   462,   462,   222,   222,
     1311   462,   462,   462,   462,   432,   462,   462,   462,   357,   462,
     1312   462,   462,   462,   462,    54,   367,   359,   163,   166,   424,
     1313    95,   428,    69,   320,   320,     4,    54,   426,   227,   227,
     1314   462,   462,   462,   462,   229,   229,   462,    54,   166,   248,
     1315   188,   240,   624,   240,   252,     4,    54,    54,   248,   187,
     1316   163,    54,    54,    54,   400,   252,    54,    54,    54,   224,
     1317   224,   166,   624,    95,    95,   227,    54,    54,   424,   424,
     1318    69,   229,   424,    54,   359,   166,   166,   166,   401,   428,
     1319   166,   166,   166,   268,   426,   624,   269,   218,   218,    71,
     1320   166,   166,    98,   226,   226,   264,   224,   166,   271,   624,
     1321   624,   624,   227,   227,   624,   624,   624,    71,   229,   229,
     1322    98,   400,   400,   400,   624,   624,    88,    88,   157,    88,
     1323    88,   624,   519,    88,   218,    14,    88,    88,   174,   174,
     1324   226,   174,   174,   224,   224,   174,   401,   401,   174,   174,
     1325   401,   152,   522,    14,   174,   480,   110,   522,   480,   272,
     1326   575,   480,   480,    88,     0,   157,   157,   157,   579,   579,
     1327   157,   218,   218,   194,    60,   174,   194,   226,   226,   194,
     1328   194,   274,    60,     0,   519,   519,    58,   157,   152,   152,
     1329   152,    84,    11,   152,    11,    88,    84,   171,   110,   110,
     1330    88,    88,   244,    60,   244,   244,   153,   174,   244,    87,
     1331   152,   275,   174,   174,    87,   480,   161,   575,   575,   575,
     1332   171,   194,   194,   194,   168,    26,   194,    26,    58,    58,
     1333   194,   194,   194,   194,   171,   171,   171,   243,   243,   171,
     1334   171,   171,   160,   153,   153,   153,   349,   168,   153,   171,
     1335   171,   278,   159,   161,   161,   161,   171,   321,   161,   214,
     1336   214,   168,   168,   168,   279,   153,   168,   168,   168,   408,
     1337   626,   408,   321,   321,   321,   161,   168,   168,   246,   160,
     1338   160,   160,   170,   168,   160,   246,   246,   136,   282,   159,
     1339   159,   159,   283,   626,   159,   349,   349,   136,   284,   349,
     1340   287,   160,   626,   626,   289,   170,   290,   626,   626,   626,
     1341   619,   159,   626,   626,   626,   293,   347,   296,   158,   170,
     1342   170,   170,   626,   626,   170,   170,   170,   300,    28,   626,
     1343   136,   622,   622,   619,   170,   170,   303,   151,    28,   136,
     1344   136,   170,   619,   619,   270,   270,   270,   619,   619,   619,
     1345    82,   306,   619,   619,   619,   158,   158,   158,   355,   355,
     1346   158,   309,   619,   619,   347,   347,   347,   422,   614,   619,
     1347   310,    28,   312,    82,   151,   151,   151,   158,   314,   151,
     1348    28,    28,    82,    82,   354,   354,   154,    82,    82,    82,
     1349   315,   614,    82,    82,    82,   169,   151,   574,   574,   574,
     1350   614,   614,    82,    82,   317,   614,   614,   614,   319,    82,
     1351   614,   614,   614,   102,   175,   422,   422,   422,   169,   186,
     1352   614,   614,   185,   154,   154,   154,   325,   614,   154,   418,
     1353   418,   418,   169,   169,   169,   326,   102,   169,   169,   169,
     1354   329,   609,   606,   606,   606,   154,   564,   169,   169,   219,
     1355   102,   102,   102,   330,   169,   102,   102,   102,   184,   156,
     1356   182,   564,   564,   564,   609,   102,   102,   155,   175,   175,
     1357   175,   175,   102,   609,   609,   254,   254,   515,   609,   609,
     1358   609,   255,   255,   609,   609,   609,   219,   219,   219,   191,
     1359   172,   219,    34,   609,   609,   192,   156,   156,   156,   486,
     1360   609,   156,    34,   193,   155,   155,   155,   195,   219,   155,
     1361   515,   353,   353,   172,   486,   486,   486,   196,   156,   515,
     1362   515,   420,   420,   257,   257,   420,   155,   172,   172,   172,
     1363   258,   258,   172,   172,   172,    34,   494,   494,   352,   352,
     1364   494,   251,   172,   172,    34,    34,   181,   215,   179,   172,
     1365   215,   215,   215,   215,   360,   215,   215,   215,   361,   215,
     1366   215,   215,   215,   263,   263,   263,   241,   241,   263,   362,
     1367   241,   363,   263,   263,   263,   263,    96,    96,    96,    96,
     1368   215,   215,   215,   103,   260,   260,   215,   103,   351,   351,
     1369   103,   103,   103,   103,   364,   103,   103,   103,   103,   103,
     1370   103,   103,   103,   103,   103,    62,   262,   262,    62,    62,
     1371    62,   350,   350,    62,    62,    62,    62,    62,    62,    62,
     1372    62,   365,    62,   256,   256,   256,   518,   518,   256,   492,
     1373   492,   492,   256,   256,   256,   256,   261,   261,   261,   178,
     1374   368,   261,   369,   370,   371,   261,   261,   261,   261,   259,
     1375   259,   259,   372,   373,   259,   176,   376,   377,   259,   259,
     1376   259,   259,   237,   237,   237,   237,   234,   234,   234,   234,
     1377   242,   242,   242,   242,   236,   236,   236,   236,   617,   617,
     1378   617,   617,   235,   235,   235,   235,   233,   233,   233,   233,
     1379   632,   632,   632,   632,   378,   379,   380,   381,   393,   394,
     1380   148,   146,   141,   140,   139,   116,   108,    92,   406,   407,
     1381   199,   409,    89,   413,   415,   417,   249,   419,    85,    79,
     1382    73,    70,    67,    61,    53,   433,   434,   435,   436,   443,
     1383   444,   451,   452,   460,   461,    48,   463,    47,    42,   488,
     1384   490,   491,   202,   493,    36,   495,   496,   497,   498,   499,
     1385   500,   501,   502,   504,   506,   508,   510,   511,   512,   514,
     1386    35,   517,   189,    33,   520,    27,   247,    24,   537,   538,
     1387   540,   541,   542,    20,   544,   549,   551,   553,   555,   557,
     1388   559,   204,   565,   566,   568,    16,   572,   573,   245,    13,
     1389   205,   581,   589,   590,   591,   595,   598,   604,   207,   213,
     1390   610,   611,   612,   613,     8,   616,     6,   618,     5,   620,
     1391   621,   216,     3,     2,   543 ]
    13921392
    13931393racc_action_pointer = [
    1394    113,   nil,   877,   895,   872,    14,   862,   nil,   887,   nil,
    1395    nil,   nil,   394,   236,   847,   nil,    22,   nil,   459,   nil,
    1396    nil,   nil,   830,    19,   826,   nil,   577,   818,   561,   nil,
    1397    nil,   nil,   nil,   815,   232,   794,   nil,   nil,   819,   nil,
    1398      6,   nil,   nil,   nil,   774,   812,   nil,   nil,   nil,   140,
    1399    819,   nil,   nil,   761,    63,   nil,   nil,   359,   nil,   294,
    1400    640,    -6,   nil,   799,   nil,   nil,   nil,   763,   nil,   150,
    1401    756,   nil,   nil,   nil,   nil,   nil,   761,   nil,   nil,   387,
    1402    nil,   265,   770,   -29,   298,   183,   716,   nil,     1,   752,
    1403    nil,   nil,    -9,   590,   nil,   -12,   nil,   nil,   nil,    -5,
    1404    nil,   559,   622,   nil,   nil,   nil,   786,   nil,   nil,   nil,
    1405    nil,   741,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1394   253,   nil,   884,   902,   124,   880,   869,   nil,   894,   nil,
     1395   nil,   258,   nil,   851,   224,   nil,   867,   nil,     4,   nil,
     1396   833,    16,   nil,   nil,   832,   nil,   291,   824,   417,   nil,
     1397   nil,   nil,   nil,   821,   581,   799,   833,   nil,   nil,   nil,
     1398   nil,   nil,   820,    -8,   nil,   nil,   nil,   776,   814,   nil,
     1399   nil,   nil,    -2,   766,    93,   nil,   nil,   nil,   265,   nil,
     1400   249,   805,   640,    -5,   nil,   nil,   nil,   768,   nil,   121,
     1401   761,   160,   nil,   776,   nil,   nil,   nil,   nil,   nil,   765,
     1402   nil,   nil,   419,   nil,   223,   774,   -32,   241,   210,   715,
     1403   nil,     2,   750,   nil,   nil,    99,   590,   nil,   163,   nil,
     1404   nil,   nil,   482,   622,   nil,   nil,   nil,   nil,   785,   nil,
     1405   235,   nil,   nil,   nil,   nil,   nil,   743,   nil,   nil,   nil,
    14061406   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1407    nil,   289,   nil,   nil,   nil,   245,   nil,   712,   761,   nil,
    1408    nil,   nil,   nil,   224,    -2,   746,   nil,   nil,   375,   357,
    1409    348,   253,   342,   414,   440,   482,   488,   494,   432,   nil,
    1410     13,   nil,   nil,   122,   nil,   330,   295,   271,   208,   318,
    1411    nil,   nil,   199,   271,   nil,   733,   732,   nil,   729,   726,
    1412    646,   619,   618,   592,   nil,   503,   483,   519,   237,    97,
    1413     89,   nil,   nil,   537,   nil,   nil,   569,   nil,   573,   588,
    1414    nil,   740,   762,   nil,   781,   791,   nil,   nil,   nil,   nil,
    1415    nil,   265,   836,   849,   582,   nil,   nil,   261,   160,   nil,
    1416    155,   nil,   165,   nil,   131,   nil,    70,   140,   887,   nil,
    1417    nil,   684,   688,   692,   696,   308,   nil,   nil,   592,   366,
    1418    821,   308,   807,   122,   801,   162,   782,   246,   nil,   162,
    1419    655,   305,    58,   414,   595,   426,   681,   668,   488,   568,
    1420     89,   -38,   168,   514,   802,   384,   -27,   473,   699,   231,
    1421    262,   nil,   nil,   240,   205,   nil,   265,   285,   nil,   nil,
    1422    290,   nil,   342,   339,   nil,   nil,   356,   nil,   nil,   372,
    1423    nil,   nil,   nil,   375,   nil,   nil,   390,   nil,   nil,   394,
    1424    nil,   nil,   368,   350,   nil,   383,   nil,   392,   442,   nil,
    1425    415,   nil,   469,   nil,   nil,   450,   455,   463,   134,   568,
    1426    nil,   nil,   nil,   480,   492,   nil,   nil,   nil,   nil,   nil,
    1427    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   442,   559,
    1428    551,   536,   526,   517,   464,   nil,   138,   nil,   103,   nil,
    1429     28,   617,   618,   623,   635,   636,   640,   nil,    -9,   650,
    1430    655,   656,   668,   669,   681,   682,   684,   685,   686,   719,
    1431    720,   nil,   267,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1432    nil,   nil,   725,   726,   nil,   nil,   nil,   nil,   nil,   nil,
    1433     13,   nil,   nil,   703,   753,   nil,   nil,   nil,   173,   190,
    1434      6,     7,     5,     2,   729,   734,   452,   733,   123,   163,
    1435    785,   nil,   739,   nil,   nil,   741,   571,   nil,   421,   nil,
    1436    122,   nil,    35,   nil,    23,   nil,    16,   nil,   232,   749,
    1437    744,   751,   745,   753,   746,   nil,   nil,   nil,   nil,   nil,
    1438    nil,   755,   747,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1439    nil,   nil,   nil,   nil,   nil,   661,   758,   784,    41,   nil,
    1440    788,   810,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1441    nil,   nil,   nil,   nil,   nil,   nil,     6,   nil,   nil,   nil,
    1442    nil,   nil,   nil,   nil,   524,   nil,   765,   766,   501,   768,
    1443    763,   770,   764,   772,   765,   774,   766,   674,   777,   nil,
    1444    778,   nil,   779,   nil,   780,   nil,   781,   782,   nil,   807,
    1445    477,   nil,   831,   403,   216,   819,   276,   nil,   nil,   nil,
    1446    nil,   nil,   nil,   nil,   -12,   nil,    -1,   nil,   nil,   nil,
    1447    nil,   nil,   760,   820,   nil,   nil,   768,   843,   799,   788,
    1448    789,   790,   831,   nil,   nil,   nil,   801,   nil,   802,   nil,
    1449    803,   nil,   804,   nil,   805,   806,   nil,   nil,   nil,   nil,
    1450    nil,   nil,   nil,   828,   nil,     4,   nil,   840,   800,   601,
    1451    202,   nil,   nil,   nil,   404,   nil,   862,   nil,   548,   815,
    1452    863,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   799,
    1453    nil,   nil,   nil,   819,   nil,   nil,   nil,   nil,   836,   858,
    1454    868,   826,   nil,   nil,   536,   840,   429,   nil,   nil,   512,
    1455    nil,   842,   676,   464,   877,   869,   870,   871,   nil,    96,
    1456    405,   nil,   812,   813,   551,   nil,   700,   nil,   nil,   nil,
    1457    nil ]
     1407   nil,   nil,   nil,   nil,   nil,   nil,   376,   nil,   nil,   759,
     1408   764,   712,   nil,   nil,   nil,   nil,   779,    -4,   746,   nil,
     1409   nil,   406,   220,   275,   455,   536,   528,   197,   387,   321,
     1410   311,   285,   nil,   116,   nil,   nil,   117,   nil,   293,   464,
     1411   351,   266,   559,   nil,   222,   482,   689,   nil,   673,   582,
     1412   nil,   580,   494,   nil,   492,   456,   453,    93,    84,   796,
     1413   nil,   523,   529,   578,   253,   541,   551,   nil,   nil,   744,
     1414   nil,   nil,   776,   nil,   815,   824,   nil,   832,   nil,   nil,
     1415   nil,   nil,   nil,   853,   306,   582,   865,   nil,   181,   518,
     1416   nil,   nil,    18,   nil,   153,   nil,   187,   122,   nil,   128,
     1417   nil,    11,   nil,   700,   680,   696,   688,   676,   nil,   nil,
     1418    86,   597,   703,   263,   235,   812,   311,   789,    82,   738,
     1419   -38,   562,    87,   nil,   504,   510,   655,   552,   559,   681,
     1420   613,   668,   635,   595,   125,   -39,   -35,   -37,   128,   115,
     1421   376,   161,   167,   nil,   237,   287,   nil,   nil,   297,   331,
     1422   nil,   nil,   322,   326,   332,   nil,   nil,   334,   nil,   380,
     1423   373,   nil,   nil,   382,   nil,   nil,   384,   nil,   nil,   nil,
     1424   394,   nil,   nil,   403,   nil,   nil,   418,   nil,   nil,   395,
     1425   380,   nil,   406,   nil,   412,   457,   nil,   438,   nil,   461,
     1426    43,   304,   nil,   nil,   nil,   453,   462,   nil,   nil,   472,
     1427   485,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1428   nil,   nil,   nil,   nil,   nil,   nil,   nil,   396,   nil,   326,
     1429   640,   617,   567,   540,   413,   387,   nil,    41,   nil,   106,
     1430   583,   587,   598,   600,   623,   650,   nil,    46,   669,   671,
     1431   672,   673,   681,   682,   nil,     2,   685,   686,   723,   724,
     1432   725,   726,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1433   nil,   nil,   nil,   705,   755,     4,   nil,   nil,    14,   nil,
     1434   153,   177,    10,     8,     5,     3,   733,   738,   304,   737,
     1435     0,   nil,   nil,   789,   nil,   742,   nil,   744,   461,   746,
     1436   552,   nil,   447,   nil,   109,   nil,   117,   nil,   111,   nil,
     1437    23,   nil,    34,   754,   749,   756,   750,   nil,   nil,   nil,
     1438   nil,   nil,   nil,   758,   751,   nil,   nil,   nil,   nil,   nil,
     1439   nil,   760,   752,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1440   789,   812,    42,   790,   nil,   nil,   nil,   nil,   nil,   nil,
     1441   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1442   235,   nil,   nil,   nil,   nil,   nil,   546,   nil,   768,   nil,
     1443   769,   770,   661,   772,   567,   774,   769,   776,   770,   778,
     1444   771,   780,   772,   nil,   782,   nil,   783,   nil,   784,   nil,
     1445   785,   835,   790,   nil,   762,   556,   nil,   837,   663,   221,
     1446   825,   nil,   186,   nil,   nil,   nil,   nil,   nil,   nil,    -9,
     1447   nil,    -1,   nil,   nil,   nil,   nil,   nil,   765,   825,   nil,
     1448   823,   791,   792,   834,   794,   nil,   nil,   nil,   nil,   804,
     1449   nil,   805,   nil,   806,   nil,   807,   nil,   808,   nil,   809,
     1450   nil,   nil,   nil,   nil,   493,   810,   859,   nil,   834,   nil,
     1451     4,   nil,   847,   806,   429,   249,   nil,   nil,   nil,   166,
     1452   nil,   869,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   868,
     1453   860,   826,   nil,   nil,   nil,   805,   nil,   nil,   825,   nil,
     1454   nil,   nil,   nil,   nil,   842,   nil,   448,   nil,   nil,   510,
     1455   844,   868,   869,   870,   437,   nil,   848,   692,   883,   379,
     1456   813,   814,   337,   nil,   141,   nil,   339,   nil,   nil,   nil,
     1457   nil,   nil,   704 ]
    14581458
    14591459racc_action_default = [
    1460   -376,    -2,  -376,  -376,  -376,    -6,   -13,    -4,  -376,    -1,
    1461     -5,    -7,  -376,  -376,  -376,   631,  -376,   -12,  -376,    -9,
    1462    -15,   -14,   -18,  -376,  -376,    -8,  -376,   -21,  -376,   -17,
    1463    -16,   -11,   -10,  -376,  -376,  -112,   -90,  -108,  -376,   -20,
    1464   -376,   -98,   -99,  -100,  -376,  -376,  -146,   -87,  -147,   -88,
    1465    -94,   -89,   -19,   -82,  -376,   -23,   -22,  -376,  -110,  -376,
    1466   -376,  -376,  -104,  -376,  -109,  -101,   -91,  -376,   -95,  -376,
    1467   -376,  -282,   -24,  -248,   -26,   -25,  -284,  -253,  -152,   -27,
    1468   -254,  -376,  -376,  -376,  -376,  -376,  -305,  -273,  -376,  -376,
    1469   -283,  -274,  -376,  -251,  -167,   -31,  -286,  -271,  -272,  -289,
    1470   -281,  -376,  -112,   -93,  -113,   -97,  -376,   -96,  -111,  -191,
    1471   -123,  -376,  -204,  -124,  -217,  -125,  -230,  -126,  -127,  -247,
    1472   -128,  -129,  -130,  -182,  -183,  -121,  -187,  -148,  -122,  -102,
    1473   -105,  -376,   -92,   -84,   -83,  -376,    -3,  -285,  -289,  -249,
    1474   -373,  -153,  -168,  -376,  -376,  -376,  -154,  -169,  -376,  -376,
    1475   -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,   -30,
    1476   -376,  -256,  -255,  -376,  -259,  -376,  -376,  -376,  -376,  -376,
    1477    -32,  -288,  -376,  -376,  -145,  -134,  -123,  -116,  -135,  -124,
    1478   -136,  -125,  -137,  -126,  -243,  -138,  -127,  -376,  -376,  -139,
    1479   -128,  -117,  -140,  -129,  -118,  -141,  -119,  -142,  -131,  -120,
    1480   -143,  -132,  -148,  -144,  -133,  -122,  -114,  -107,  -106,   -86,
    1481    -85,  -376,  -376,  -376,  -376,  -287,  -278,  -376,  -263,  -279,
    1482   -264,  -275,  -265,  -276,  -260,  -277,  -261,  -262,  -376,  -307,
    1483   -252,  -250,  -268,  -269,  -266,  -267,  -280,  -270,  -376,  -376,
    1484   -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -115,  -376,
     1460  -376,    -2,  -376,  -376,    -6,  -376,   -13,    -4,  -376,    -5,
     1461    -7,  -376,    -1,  -376,  -376,   633,  -376,   -12,  -376,    -9,
     1462   -18,  -376,   -15,   -14,  -376,    -8,  -376,   -21,  -376,   -17,
     1463   -16,   -11,   -10,  -376,  -376,  -112,   -94,   -89,   -19,   -90,
     1464   -20,  -108,  -376,  -376,   -98,   -99,  -100,  -376,  -376,  -146,
     1465   -87,  -147,   -88,   -82,  -376,   -22,   -23,   -95,  -376,  -110,
     1466  -376,  -376,  -376,  -376,  -104,  -109,  -101,  -376,   -91,  -376,
     1467  -376,  -289,  -281,  -376,  -282,   -25,   -24,  -248,   -26,  -284,
     1468  -253,  -152,   -27,  -254,  -376,  -376,  -376,  -376,  -376,  -305,
     1469  -273,  -376,  -376,  -283,  -274,  -376,  -251,  -167,   -31,  -286,
     1470  -271,  -272,  -376,  -112,   -96,   -93,  -113,   -97,  -376,  -111,
     1471  -376,  -187,  -148,  -122,  -191,  -123,  -376,  -204,  -124,  -217,
     1472  -125,  -230,  -126,  -127,  -247,  -128,  -129,  -130,  -182,  -183,
     1473  -121,  -102,  -105,   -92,   -84,   -83,  -376,    -3,  -288,  -376,
     1474  -289,  -285,  -249,  -373,  -153,  -168,  -376,  -376,  -376,  -154,
     1475  -169,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
     1476  -376,  -376,   -30,  -376,  -256,  -255,  -376,  -259,  -376,  -376,
     1477  -376,  -376,  -376,   -32,  -376,  -376,  -148,  -144,  -133,  -122,
     1478  -145,  -134,  -123,  -116,  -135,  -124,  -136,  -125,  -137,  -126,
     1479  -243,  -138,  -127,  -376,  -376,  -139,  -128,  -117,  -140,  -129,
     1480  -118,  -141,  -119,  -142,  -131,  -120,  -143,  -132,  -114,  -106,
     1481  -107,   -85,   -86,  -376,  -376,  -376,  -376,  -287,  -263,  -376,
     1482  -278,  -279,  -264,  -275,  -265,  -276,  -261,  -260,  -277,  -262,
     1483  -307,  -376,  -252,  -250,  -267,  -268,  -269,  -266,  -280,  -270,
    14851484  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
     1485  -376,  -376,  -376,  -115,  -376,  -376,  -376,  -376,  -376,  -376,
    14861486  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
    1487   -376,   -33,   -62,   -34,  -290,   -63,  -376,  -376,  -343,  -328,
    1488   -316,  -334,  -376,  -313,   -54,  -323,  -319,   -55,  -329,  -325,
    1489    -56,  -375,  -335,  -331,   -57,  -342,  -337,  -312,   -58,  -344,
    1490   -318,   -59,  -353,  -340,  -324,  -348,   -60,  -354,  -350,  -330,
    1491   -311,   -61,  -357,  -336,  -322,  -317,  -310,  -347,  -376,  -376,
    1492   -185,  -170,  -172,  -376,  -376,  -189,  -186,  -184,  -193,  -190,
    1493   -188,  -206,  -194,  -192,  -219,  -207,  -205,  -181,  -376,  -376,
    1494   -376,  -376,  -376,  -376,  -376,  -203,  -376,  -216,  -376,  -229,
    1495   -376,  -376,  -376,  -376,  -376,  -376,  -376,  -242,  -376,  -376,
     1487  -376,  -376,  -290,   -63,  -376,  -376,   -33,   -62,   -34,  -357,
     1488  -336,  -322,  -317,  -310,  -347,  -343,  -328,  -316,  -334,  -376,
     1489  -313,   -54,  -323,  -319,   -55,  -329,  -325,   -56,  -375,  -335,
     1490  -331,   -57,  -342,  -337,  -312,   -58,  -344,  -318,   -59,  -353,
     1491  -340,  -324,  -348,   -60,  -354,  -350,  -330,  -311,   -61,  -376,
     1492  -376,  -376,  -149,  -151,  -171,  -376,  -376,  -155,  -157,  -376,
     1493  -376,  -185,  -170,  -172,  -189,  -186,  -184,  -193,  -190,  -188,
     1494  -206,  -194,  -192,  -219,  -207,  -205,  -166,  -376,  -181,  -376,
     1495  -376,  -376,  -376,  -376,  -376,  -376,  -203,  -376,  -216,  -376,
     1496  -376,  -376,  -376,  -376,  -376,  -376,  -229,  -376,  -376,  -376,
     1497  -376,  -376,  -376,  -376,  -242,  -376,  -376,  -376,  -376,  -376,
     1498  -376,  -376,  -232,  -220,  -218,  -233,  -231,  -246,  -244,  -150,
     1499  -245,  -156,   -28,   -68,  -376,  -376,   -29,   -64,  -376,  -257,
    14961500  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
    1497   -376,  -166,  -376,  -232,  -220,  -218,  -233,  -231,  -246,  -244,
    1498   -150,  -245,  -376,  -376,  -156,  -151,  -149,  -171,  -157,  -155,
    1499   -376,   -29,   -64,   -68,  -376,   -28,  -258,  -257,  -376,  -376,
     1501  -376,  -258,  -303,  -376,  -308,  -152,  -304,  -376,  -376,  -376,
     1502  -376,  -164,  -376,  -179,  -376,  -201,  -376,  -214,  -376,  -227,
     1503  -376,  -240,  -376,  -376,  -376,  -376,  -376,  -163,  -178,  -200,
     1504  -213,  -226,  -239,  -376,  -376,  -165,  -180,  -202,  -215,  -228,
     1505  -241,  -376,  -376,  -162,  -177,  -199,  -212,  -225,  -238,   -69,
     1506  -376,  -376,  -376,  -376,  -359,  -358,  -314,  -315,  -321,  -320,
     1507  -327,  -326,  -333,  -332,  -339,  -338,  -346,  -345,  -355,  -341,
     1508  -376,  -349,  -356,  -352,  -351,  -306,  -376,  -158,  -376,  -173,
    15001509  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
    1501   -376,  -308,  -152,  -304,  -303,  -376,  -376,  -179,  -376,  -201,
    1502   -376,  -214,  -376,  -227,  -376,  -240,  -376,  -164,  -376,  -376,
    1503   -376,  -376,  -376,  -376,  -376,  -178,  -200,  -213,  -226,  -239,
    1504   -163,  -376,  -376,  -180,  -202,  -215,  -228,  -241,  -165,  -177,
    1505   -199,  -212,  -225,  -238,  -162,  -376,  -376,  -376,  -376,   -69,
    1506   -376,  -376,  -315,  -314,  -320,  -321,  -327,  -326,  -333,  -332,
    1507   -339,  -338,  -346,  -345,  -355,  -341,  -376,  -349,  -356,  -352,
    1508   -351,  -359,  -358,  -306,  -376,  -173,  -376,  -376,  -376,  -376,
    1509   -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -376,  -195,
    1510   -376,  -208,  -376,  -221,  -376,  -234,  -376,  -376,  -158,  -376,
    1511   -376,   -53,   -44,  -376,  -376,   -31,  -310,   -72,   -70,   -35,
    1512    -37,   -38,  -372,   -39,  -360,   -40,  -376,  -363,   -41,  -367,
    1513   -366,   -42,  -369,  -376,   -36,   -43,  -305,  -376,  -376,  -376,
    1514   -376,  -376,  -376,  -309,  -175,  -174,  -376,  -196,  -376,  -209,
    1515   -376,  -222,  -376,  -235,  -376,  -376,  -159,  -197,  -210,  -223,
    1516   -236,  -160,   -66,  -376,   -67,  -305,   -52,   -50,  -376,  -376,
    1517   -376,   -44,   -71,   -65,  -376,  -370,  -376,   -49,  -376,  -292,
    1518   -376,  -176,  -198,  -211,  -224,  -237,  -161,   -45,   -47,  -376,
    1519    -51,  -365,  -364,  -376,  -362,  -361,  -368,  -371,   -73,  -295,
    1520   -376,  -376,  -291,   -46,  -376,   -75,  -376,  -294,  -293,   -74,
    1521    -77,  -376,   -80,  -376,  -376,  -296,  -297,  -298,   -78,  -376,
    1522    -76,   -48,  -376,  -376,  -376,   -81,   -79,  -299,  -300,  -301,
    1523   -302 ]
     1510  -376,  -376,  -376,  -195,  -376,  -208,  -376,  -221,  -376,  -234,
     1511  -376,  -376,  -376,   -43,  -305,  -376,   -53,   -44,  -376,  -376,
     1512   -31,   -72,  -310,   -70,   -35,   -37,  -372,   -38,   -39,  -360,
     1513   -40,  -376,  -363,   -41,  -367,  -366,   -42,  -369,  -376,   -36,
     1514  -376,  -376,  -376,  -376,  -376,  -309,  -160,  -175,  -159,  -376,
     1515  -174,  -376,  -196,  -376,  -209,  -376,  -222,  -376,  -235,  -376,
     1516  -197,  -210,  -223,  -236,  -376,  -292,  -376,   -49,  -376,   -67,
     1517  -305,   -52,   -50,  -376,  -376,  -376,   -44,   -71,   -65,  -376,
     1518  -370,  -376,   -66,  -161,  -176,  -198,  -211,  -224,  -237,  -376,
     1519  -295,  -376,  -291,   -45,   -47,  -376,   -51,  -365,  -376,  -364,
     1520  -361,  -362,  -368,  -371,   -73,  -294,  -376,  -293,   -46,  -376,
     1521   -75,  -296,  -297,  -298,   -74,   -77,  -376,   -80,  -376,  -376,
     1522  -376,  -376,  -376,   -78,  -376,   -48,   -76,  -299,  -300,  -301,
     1523  -302,   -81,   -79 ]
    15241524
    15251525racc_goto_table = [
    1526     93,   128,   162,    45,   174,   159,   113,   410,   271,    45,
    1527     52,   196,   107,   115,   172,   103,    56,   518,   121,   275,
    1528     89,    65,    64,   111,    73,    93,    66,    19,   618,    95,
    1529      3,   609,   106,    62,   393,   526,    66,   120,    59,   618,
    1530    620,    32,   282,   205,   132,    89,   110,   173,   179,   139,
    1531    130,   614,   605,   273,   118,   181,    61,   270,   459,    79,
    1532    193,   206,   218,   187,   220,   177,   222,   191,   224,   194,
    1533    226,   227,   216,    74,   219,   199,   221,   117,   223,   190,
    1534    225,   392,    65,    64,   480,   572,   107,    72,   176,   208,
    1535     18,    11,     2,   136,    70,    53,   186,    33,   198,   201,
    1536    204,   175,   178,   180,   182,   185,   106,   189,   192,   231,
    1537     45,   173,   232,   233,   234,   235,   195,   210,   197,   183,
    1538    200,   203,    27,    22,   164,   137,    14,     6,   215,   258,
    1539    318,   580,   600,     4,   543,   592,   574,   nil,   nil,   nil,
    1540    nil,   nil,   nil,   nil,   nil,   nil,   255,   nil,   nil,   nil,
    1541    nil,   nil,   nil,   nil,   nil,   316,   nil,   nil,   nil,   nil,
    1542    nil,   nil,   nil,   nil,   nil,   253,   nil,   nil,   nil,   nil,
    1543    nil,   379,   nil,   381,   249,   nil,   nil,   nil,   nil,   nil,
    1544    nil,   nil,   252,   nil,   320,   nil,   nil,   327,   nil,   nil,
    1545    nil,   344,   nil,   325,   nil,   356,   330,   364,   370,   nil,
    1546    280,   nil,   nil,   nil,   nil,   251,   384,   nil,   343,   389,
    1547    nil,   nil,   355,   nil,   363,   369,   nil,   373,   nil,   377,
    1548    nil,   nil,   nil,   334,   nil,   321,   nil,   342,   nil,   nil,
    1549    nil,   354,   nil,   362,   368,   nil,   339,   375,   331,   nil,
    1550    351,   336,   359,   365,   341,   nil,   nil,   nil,   353,   nil,
    1551    361,   367,   nil,   387,   nil,   517,   nil,   nil,   nil,   328,
    1552    414,   nil,   333,   nil,   nil,   nil,   599,   340,   nil,   nil,
    1553    nil,   352,   nil,   360,   366,   nil,   nil,   nil,   nil,   nil,
     1526    96,   113,   165,    38,   162,    48,   118,   180,   276,    55,
     1527   413,    48,   202,   120,   523,   104,    65,   273,   105,   126,
     1528   116,    92,    77,   174,    66,   125,    68,    64,    96,    19,
     1529   614,    98,     3,   115,    68,   108,   393,   531,    60,   623,
     1530   626,   133,   179,   132,    32,   289,   618,   185,   175,    92,
     1531   142,   623,   610,   123,   187,   278,    63,   275,   459,    82,
     1532   199,   183,   208,   193,   197,   200,   196,   104,    78,   205,
     1533   209,   484,   218,    76,   182,   222,    65,   224,   122,   226,
     1534   227,   397,   229,   577,    66,   220,   221,   108,   223,    18,
     1535   225,    10,     2,   228,   192,   137,    70,    53,    33,   204,
     1536   207,   178,   181,   184,   186,   188,   191,   195,   198,   201,
     1537   203,   211,   233,    48,   175,   234,   235,   236,   237,   189,
     1538   206,   177,    27,    20,   167,   141,    13,     6,   217,   566,
     1539   589,     5,   545,   254,   599,   579,   nil,   nil,   nil,   nil,
     1540   320,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1541   nil,   262,   nil,   nil,   283,   nil,   nil,   260,   nil,   nil,
     1542   nil,   nil,   nil,   nil,   nil,   255,   nil,   nil,   nil,   nil,
     1543   nil,   nil,   nil,   nil,   nil,   nil,   388,   nil,   390,   nil,
     1544   nil,   327,   nil,   nil,   nil,   258,   287,   331,   nil,   nil,
     1545   336,   nil,   nil,   nil,   nil,   350,   334,   nil,   360,   339,
     1546   368,   nil,   376,   nil,   nil,   nil,   nil,   nil,   nil,   391,
     1547   257,   nil,   324,   355,   343,   332,   365,   nil,   373,   354,
     1548   381,   382,   364,   386,   372,   nil,   380,   351,   384,   nil,
     1549   361,   nil,   369,   nil,   377,   nil,   nil,   nil,   nil,   nil,
     1550   340,   nil,   nil,   345,   nil,   nil,   nil,   353,   nil,   nil,
     1551   363,   nil,   371,   590,   379,   nil,   521,   nil,   nil,   nil,
     1552   412,   nil,   nil,   337,   nil,   nil,   342,   nil,   nil,   nil,
     1553   nil,   nil,   352,   nil,   nil,   362,   nil,   370,   nil,   378,
     1554   nil,   nil,   nil,   nil,   nil,   nil,   417,   nil,   nil,   nil,
    15541555   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    15551556   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1556    nil,   nil,   nil,   nil,   nil,   nil,   nil,   475,   nil,   nil,
    1557    nil,   nil,   nil,   456,   nil,   nil,   441,   nil,   nil,   nil,
    1558    nil,   nil,   nil,   nil,   415,   nil,   nil,   433,   nil,   nil,
    1559    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   463,
    1560    nil,   nil,   431,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1561    nil,   nil,   nil,   nil,   nil,   482,   nil,   nil,   nil,   nil,
    1562    nil,   473,   nil,   429,   nil,   nil,   nil,   nil,   nil,   498,
    1563    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   471,
    1564    nil,   nil,   nil,   nil,   495,   464,   nil,   nil,   nil,   nil,
    1565    nil,   nil,   nil,   nil,   nil,   469,   507,   nil,   nil,   516,
    1566    506,   493,   486,   nil,   487,   nil,   nil,   nil,   nil,   nil,
    1567    nil,   504,   nil,   nil,   nil,   nil,   491,   467,   nil,   nil,
    1568    nil,   nil,   nil,   nil,   nil,   414,   502,   nil,   nil,   nil,
    1569    nil,   nil,   nil,   515,   255,   nil,   nil,   489,   555,   nil,
    1570    nil,   nil,   nil,   nil,   280,   nil,   nil,   500,   nil,   nil,
    1571    nil,   nil,   nil,   nil,   554,   577,   nil,   nil,   nil,   nil,
    1572    nil,   nil,   nil,   nil,   nil,   nil,   nil,   516,   nil,   nil,
    1573    nil,   552,   nil,   nil,   546,   nil,   nil,   nil,   nil,   nil,
    1574    nil,   nil,   nil,   nil,   589,    45,   550,   nil,   565,   567,
    1575    nil,   nil,   563,   nil,   nil,   nil,   nil,   343,   355,   363,
    1576    369,   515,   nil,   603,   nil,   nil,   nil,   548,   nil,   nil,
    1577    593,   595,   280,   nil,   nil,   nil,   nil,   nil,   nil,   414,
     1557   nil,   479,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1558   419,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1559   443,   nil,   451,   nil,   nil,   nil,   nil,   nil,   nil,   466,
     1560   nil,   nil,   465,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1561   435,   nil,   nil,   nil,   nil,   nil,   nil,   488,   nil,   nil,
     1562   nil,   491,   477,   nil,   nil,   nil,   nil,   475,   nil,   nil,
     1563   nil,   nil,   469,   433,   nil,   nil,   nil,   nil,   nil,   nil,
     1564   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   501,
     1565   nil,   490,   nil,   499,   473,   493,   nil,   nil,   nil,   nil,
     1566   nil,   522,   nil,   nil,   nil,   nil,   nil,   508,   nil,   510,
     1567   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   471,   497,
     1568   nil,   nil,   nil,   nil,   nil,   412,   nil,   506,   nil,   567,
     1569   nil,   549,   nil,   287,   nil,   nil,   nil,   262,   nil,   520,
     1570   nil,   nil,   495,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1571   504,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   559,
     1572   nil,   nil,   nil,   557,   nil,   551,   nil,   nil,   nil,   nil,
     1573   522,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1574   nil,   nil,   nil,   nil,   nil,   595,   nil,   nil,   nil,   555,
     1575   568,   nil,    48,   nil,   nil,   570,   572,   nil,   355,   365,
     1576   373,   381,   287,   412,   nil,   nil,   608,   nil,   520,   nil,
     1577   nil,   nil,   553,   598,   600,   nil,   nil,   nil,   nil,   nil,
    15781578   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    15791579   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    15801580   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    15811581   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1582    nil,   nil,   nil,   nil,   nil,   626 ]
     1582   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1583   632 ]
    15831584
    15841585racc_goto_check = [
    1585     56,    81,    34,    23,   104,    22,    83,   115,    24,    23,
    1586     15,    78,    59,    84,   109,    62,    15,    26,    88,    48,
    1587     55,    66,    72,    71,   105,    56,    60,    14,    54,    23,
    1588      1,    53,    23,    69,    51,    50,    60,    87,    58,    54,
    1589     53,    14,    39,    81,    60,    55,    82,    56,    83,   105,
    1590     69,    37,    36,    25,    86,    84,    68,    20,    52,    18,
    1591     88,    74,   109,    75,   109,    71,   109,    76,   109,    77,
    1592    109,   109,   110,    17,   110,    79,   110,    85,   110,    87,
    1593    110,    48,    66,    72,    80,    26,    59,    16,    82,    62,
    1594     13,    12,    11,    10,     9,     8,    86,     7,    90,    91,
    1595     92,    93,    94,    95,    96,    97,    23,    98,    99,    56,
    1596     23,    56,    56,    56,    56,    56,   100,    15,   101,    85,
    1597    102,   103,     6,     5,   106,   108,     4,     3,   112,    81,
    1598    109,   113,   114,     2,   116,   127,   129,   nil,   nil,   nil,
    1599    nil,   nil,   nil,   nil,   nil,   nil,    88,   nil,   nil,   nil,
    1600    nil,   nil,   nil,   nil,   nil,    81,   nil,   nil,   nil,   nil,
    1601    nil,   nil,   nil,   nil,   nil,    87,   nil,   nil,   nil,   nil,
    1602    nil,    78,   nil,    78,    82,   nil,   nil,   nil,   nil,   nil,
    1603    nil,   nil,    86,   nil,    83,   nil,   nil,    83,   nil,   nil,
    1604    nil,    81,   nil,    84,   nil,    81,    84,    81,    81,   nil,
    1605     82,   nil,   nil,   nil,   nil,    85,    81,   nil,    88,    81,
    1606    nil,   nil,    88,   nil,    88,    88,   nil,    88,   nil,    88,
    1607    nil,   nil,   nil,    87,   nil,    82,   nil,    87,   nil,   nil,
    1608    nil,    87,   nil,    87,    87,   nil,    82,    87,    86,   nil,
    1609     82,    86,    82,    82,    86,   nil,   nil,   nil,    86,   nil,
    1610     86,    86,   nil,    82,   nil,    24,   nil,   nil,   nil,    85,
    1611     81,   nil,    85,   nil,   nil,   nil,   115,    85,   nil,   nil,
    1612    nil,    85,   nil,    85,    85,   nil,   nil,   nil,   nil,   nil,
     1586    56,    81,    34,    15,    22,    23,    83,   104,    24,    15,
     1587   115,    23,    78,    84,    26,    59,    72,    48,    62,    88,
     1588    71,    55,   105,   109,    66,    87,    60,    69,    56,    14,
     1589    53,    23,     1,    82,    60,    23,    51,    50,    58,    54,
     1590    53,    60,    81,    69,    14,    39,    37,    83,    56,    55,
     1591   105,    54,    36,    86,    84,    25,    68,    20,    52,    18,
     1592    88,    71,    74,    75,    76,    77,    87,    59,    17,    79,
     1593    62,    80,   109,    16,    82,   109,    72,   109,    85,   109,
     1594   109,    48,   109,    26,    66,   110,   110,    23,   110,    13,
     1595   110,    12,    11,   110,    86,    10,     9,     8,     7,    90,
     1596    91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
     1597   101,    15,    56,    23,    56,    56,    56,    56,    56,    85,
     1598   102,   103,     6,     5,   106,   108,     4,     3,   112,   113,
     1599   114,     2,   116,    81,   127,   129,   nil,   nil,   nil,   nil,
     1600   109,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1601   nil,    88,   nil,   nil,    81,   nil,   nil,    87,   nil,   nil,
     1602   nil,   nil,   nil,   nil,   nil,    82,   nil,   nil,   nil,   nil,
     1603   nil,   nil,   nil,   nil,   nil,   nil,    78,   nil,    78,   nil,
     1604   nil,    81,   nil,   nil,   nil,    86,    82,    83,   nil,   nil,
     1605    83,   nil,   nil,   nil,   nil,    81,    84,   nil,    81,    84,
     1606    81,   nil,    81,   nil,   nil,   nil,   nil,   nil,   nil,    81,
     1607    85,   nil,    82,    88,    87,    82,    88,   nil,    88,    87,
     1608    88,    88,    87,    88,    87,   nil,    87,    82,    87,   nil,
     1609    82,   nil,    82,   nil,    82,   nil,   nil,   nil,   nil,   nil,
     1610    86,   nil,   nil,    86,   nil,   nil,   nil,    86,   nil,   nil,
     1611    86,   nil,    86,   115,    86,   nil,    24,   nil,   nil,   nil,
     1612    81,   nil,   nil,    85,   nil,   nil,    85,   nil,   nil,   nil,
     1613   nil,   nil,    85,   nil,   nil,    85,   nil,    85,   nil,    85,
     1614   nil,   nil,   nil,   nil,   nil,   nil,    81,   nil,   nil,   nil,
    16131615   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    16141616   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1615    nil,   nil,   nil,   nil,   nil,   nil,   nil,   104,   nil,   nil,
    1616    nil,   nil,   nil,    81,   nil,   nil,    88,   nil,   nil,   nil,
    1617    nil,   nil,   nil,   nil,    82,   nil,   nil,    87,   nil,   nil,
    1618    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    81,
    1619    nil,   nil,    86,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1620    nil,   nil,   nil,   nil,   nil,    83,   nil,   nil,   nil,   nil,
    1621    nil,    88,   nil,    85,   nil,   nil,   nil,   nil,   nil,    81,
    1622    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    87,
    1623    nil,   nil,   nil,   nil,    88,    82,   nil,   nil,   nil,   nil,
    1624    nil,   nil,   nil,   nil,   nil,    86,    81,   nil,   nil,    81,
    1625     88,    87,    82,   nil,    82,   nil,   nil,   nil,   nil,   nil,
    1626    nil,    87,   nil,   nil,   nil,   nil,    86,    85,   nil,   nil,
    1627    nil,   nil,   nil,   nil,   nil,    81,    86,   nil,   nil,   nil,
    1628    nil,   nil,   nil,    23,    88,   nil,   nil,    85,    81,   nil,
    1629    nil,   nil,   nil,   nil,    82,   nil,   nil,    85,   nil,   nil,
    1630    nil,   nil,   nil,   nil,    88,    22,   nil,   nil,   nil,   nil,
    1631    nil,   nil,   nil,   nil,   nil,   nil,   nil,    81,   nil,   nil,
    1632    nil,    87,   nil,   nil,    82,   nil,   nil,   nil,   nil,   nil,
    1633    nil,   nil,   nil,   nil,    22,    23,    86,   nil,    23,    23,
    1634    nil,   nil,    15,   nil,   nil,   nil,   nil,    88,    88,    88,
    1635     88,    23,   nil,    34,   nil,   nil,   nil,    85,   nil,   nil,
    1636     81,    81,    82,   nil,   nil,   nil,   nil,   nil,   nil,    81,
     1617   nil,   104,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1618    82,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1619    87,   nil,    88,   nil,   nil,   nil,   nil,   nil,   nil,    81,
     1620   nil,   nil,    83,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1621    86,   nil,   nil,   nil,   nil,   nil,   nil,    81,   nil,   nil,
     1622   nil,    81,    88,   nil,   nil,   nil,   nil,    87,   nil,   nil,
     1623   nil,   nil,    82,    85,   nil,   nil,   nil,   nil,   nil,   nil,
     1624   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    88,
     1625   nil,    82,   nil,    87,    86,    82,   nil,   nil,   nil,   nil,
     1626   nil,    81,   nil,   nil,   nil,   nil,   nil,    87,   nil,    88,
     1627   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    85,    86,
     1628   nil,   nil,   nil,   nil,   nil,    81,   nil,    86,   nil,    22,
     1629   nil,    81,   nil,    82,   nil,   nil,   nil,    88,   nil,    23,
     1630   nil,   nil,    85,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1631    85,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    88,
     1632   nil,   nil,   nil,    87,   nil,    82,   nil,   nil,   nil,   nil,
     1633    81,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1634   nil,   nil,   nil,   nil,   nil,    22,   nil,   nil,   nil,    86,
     1635    15,   nil,    23,   nil,   nil,    23,    23,   nil,    88,    88,
     1636    88,    88,    82,    81,   nil,   nil,    34,   nil,    23,   nil,
     1637   nil,   nil,    85,    81,    81,   nil,   nil,   nil,   nil,   nil,
    16371638   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    16381639   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    16391640   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    16401641   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1641    nil,   nil,   nil,   nil,   nil,    56 ]
     1642   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1643    56 ]
    16421644
    16431645racc_goto_pointer = [
    1644    nil,    30,   133,   127,   120,   109,   100,    70,    62,    41,
    1645     23,    92,    86,    78,    15,   -18,    33,    19,     5,   nil,
    1646   -154,   nil,   -81,   -25,  -203,  -158,  -441,   nil,   nil,   nil,
    1647    nil,   nil,   nil,   nil,   -86,   nil,  -546,  -554,   nil,  -172,
    1648    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -192,   nil,
    1649   -423,  -240,  -335,  -573,  -581,   -34,   -54,   nil,    -2,   -45,
    1650    -23,   nil,   -42,   nil,   nil,   nil,   -24,   nil,    12,   -11,
    1651    nil,   -37,   -23,   nil,   -45,   -39,   -35,   -33,   -91,   -27,
    1652   -324,   -59,   -14,   -54,   -47,    17,    -6,   -23,   -42,   nil,
    1653     -4,    -3,    -2,    -1,     0,     1,     2,     3,     5,     6,
    1654     14,    16,    18,    19,   -98,   -30,    32,   nil,    49,   -87,
    1655    -76,   nil,   -17,  -407,  -446,  -312,  -350,   nil,   nil,   nil,
    1656    nil,   nil,   nil,   nil,   nil,   nil,   nil,  -434,   nil,  -396 ]
     1646   nil,    32,   131,   127,   120,   110,   102,    71,    64,    43,
     1647    25,    92,    87,    78,    18,   -25,    19,    14,     5,   nil,
     1648  -157,   nil,   -85,   -23,  -206,  -159,  -448,   nil,   nil,   nil,
     1649   nil,   nil,   nil,   nil,   -89,   nil,  -552,  -564,   nil,  -170,
     1650   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -197,   nil,
     1651  -425,  -236,  -335,  -579,  -575,   -33,   -54,   nil,    -5,   -43,
     1652   -26,   nil,   -40,   nil,   nil,   nil,   -24,   nil,     9,   -20,
     1653   nil,   -42,   -32,   nil,   -46,   -40,   -39,   -38,   -91,   -34,
     1654  -339,   -61,   -29,   -56,   -49,    16,    -9,   -37,   -43,   nil,
     1655    -4,    -3,    -2,    -1,     0,     1,     2,     3,     4,     5,
     1656     6,     7,    17,    18,   -96,   -32,    29,   nil,    46,   -79,
     1657   -67,   nil,   -20,  -383,  -434,  -311,  -354,   nil,   nil,   nil,
     1658   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -440,   nil,  -402 ]
    16571659
    16581660racc_goto_default = [
    16591661   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1660    nil,   nil,   nil,   nil,   nil,   nil,   nil,   534,   nil,    82,
    1661    nil,    86,   nil,   140,   nil,   nil,   nil,   519,   520,   521,
    1662    523,   525,   528,   531,    90,   533,   nil,   nil,   536,   511,
    1663    284,   287,   290,   294,   298,   301,   306,   311,   nil,   269,
    1664    nil,   nil,   nil,   nil,   610,   611,   612,    47,    49,    51,
    1665     36,    38,   nil,   105,    41,    42,    43,    44,   nil,   nil,
    1666     63,   nil,    37,    40,   104,   nil,   nil,   nil,   nil,   nil,
    1667    125,   100,    71,   nil,   nil,   285,   288,   292,   295,   122,
    1668    305,   310,   315,   nil,   nil,   nil,   nil,   nil,   nil,   297,
    1669    300,   304,   309,   313,   278,   nil,    77,    80,    83,    85,
    1670     87,    91,    96,   nil,   nil,   nil,   411,   283,   286,   289,
    1671    293,   296,   299,   303,   308,   312,   524,   527,   530,   nil ]
     1662   nil,   nil,   nil,   nil,   nil,   nil,   nil,   539,   nil,    85,
     1663   nil,    89,   nil,   143,   nil,   nil,   nil,   524,   525,   527,
     1664   528,   530,   533,   536,    93,   538,   nil,   nil,   514,   516,
     1665   291,   294,   297,   301,   305,   308,   313,   318,   nil,   274,
     1666   nil,   nil,   nil,   nil,   615,   616,   617,    50,    52,    37,
     1667    39,    42,   nil,   107,    44,    45,    46,    47,   nil,   nil,
     1668    61,   nil,    41,    43,   106,   nil,   nil,   nil,   nil,   nil,
     1669   130,    72,    74,   nil,   nil,   292,   295,   299,   302,   127,
     1670   312,   317,   282,   nil,   nil,   nil,   nil,   nil,   nil,   304,
     1671   307,   311,   316,   280,   285,   nil,    80,    83,    86,    88,
     1672    90,    94,    99,   nil,   nil,   nil,   414,   290,   293,   296,
     1673   300,   303,   306,   310,   315,   279,   529,   532,   535,   nil ]
    16721674
    16731675racc_token_table = {
     
    17051707 :SYM_DESCRIPTION => 31,
    17061708 :SYM_DEFINITION => 32,
    1707  :SYM_MATCHES => 33,
    1708  :START_REGEXP_BLOCK => 34,
    1709  :REGEXP_BODY => 35,
    1710  :END_REGEXP_BLOCK => 36,
    1711  :ERR_C_DOMAIN_TYPE => 37,
    1712  :START_V_C_DOMAIN_TYPE_BLOCK => 38,
    1713  :END_V_C_DOMAIN_TYPE_BLOCK => 39,
    1714  :SYM_USE_NODE => 40,
    1715  :SYM_ALLOW_ARCHETYPE => 41,
    1716  :Star_code => 42,
    1717  :V_ATTRIBUTE_IDENTIFIER => 43,
    1718  :SYM_INCLUDE => 44,
    1719  :SYM_EXCLUDE => 45,
    1720  ":" => 46,
    1721  :SYM_INVARIANT => 47,
    1722  :V_ASSERTION_TEXT => 48,
    1723  :SYM_ONTOLOGY => 49,
    1724  :Left_bracket_code => 50,
    1725  :Right_bracket_code => 51,
    1726  :V_TYPE_IDENTIFIER => 52,
    1727  :V_GENERIC_TYPE_IDENTIFIER => 53,
    1728  :V_STRING => 54,
    1729  :Comma_code => 55,
    1730  :SYM_LIST_CONTINUE => 56,
    1731  :V_INTEGER => 57,
    1732  :Plus_code => 58,
    1733  :Minus_code => 59,
    1734  :SYM_INTERVAL_DELIM => 60,
    1735  :SYM_ELLIPSIS => 61,
    1736  :V_REAL => 62,
    1737  :SYM_TRUE => 63,
    1738  :SYM_FALSE => 64,
    1739  :V_CHARACTER => 65,
    1740  :V_ISO8601_EXTENDED_DATE => 66,
    1741  :V_ISO8601_EXTENDED_TIME => 67,
    1742  :V_ISO8601_EXTENDED_DATE_TIME => 68,
    1743  :V_ISO8601_DURATION => 69,
    1744  :V_QUALIFIED_TERM_CODE_REF => 70,
    1745  :V_URI => 71,
    1746  :SYM_EXISTS => 72,
    1747  :SYM_NOT => 73,
    1748  "=" => 74,
    1749  :SYM_AND => 75,
    1750  :SYM_OR => 76,
    1751  :SYM_XOR => 77,
    1752  :SYM_IMPLIES => 78,
    1753  :Slash_code => 79,
    1754  "^" => 80,
    1755  :SYM_EXISTENCE => 81,
    1756  :SYM_CARDINALITY => 82,
    1757  :SYM_ORDERED => 83,
    1758  :SYM_UNORDERED => 84,
    1759  :SYM_UNIQUE => 85,
    1760  :SYM_OCCURRENCES => 86,
    1761  :V_ISO8601_DATE_CONSTRAINT_PATTERN => 87,
    1762  :V_ISO8601_TIME_CONSTRAINT_PATTERN => 88,
    1763  :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN => 89,
    1764  :START_TERM_CODE_CONSTRAINT => 90,
    1765  :END_TERM_CODE_CONSTRAINT => 91,
    1766  :TERM_CODE => 92,
    1767  :V_ISO8601_DURATION_CONSTRAINT_PATTERN => 93 }
     1709 :c_complx_object_head => 33,
     1710 :SYM_MATCHES => 34,
     1711 :START_REGEXP_BLOCK => 35,
     1712 :REGEXP_BODY => 36,
     1713 :END_REGEXP_BLOCK => 37,
     1714 :ERR_C_DOMAIN_TYPE => 38,
     1715 :START_V_C_DOMAIN_TYPE_BLOCK => 39,
     1716 :END_V_C_DOMAIN_TYPE_BLOCK => 40,
     1717 :SYM_USE_NODE => 41,
     1718 :SYM_ALLOW_ARCHETYPE => 42,
     1719 :Star_code => 43,
     1720 :V_ATTRIBUTE_IDENTIFIER => 44,
     1721 :SYM_INCLUDE => 45,
     1722 :SYM_EXCLUDE => 46,
     1723 ":" => 47,
     1724 :SYM_INVARIANT => 48,
     1725 :V_ASSERTION_TEXT => 49,
     1726 :SYM_ONTOLOGY => 50,
     1727 :Left_bracket_code => 51,
     1728 :Right_bracket_code => 52,
     1729 :V_TYPE_IDENTIFIER => 53,
     1730 :V_GENERIC_TYPE_IDENTIFIER => 54,
     1731 :V_STRING => 55,
     1732 :Comma_code => 56,
     1733 :SYM_LIST_CONTINUE => 57,
     1734 :V_INTEGER => 58,
     1735 :Plus_code => 59,
     1736 :Minus_code => 60,
     1737 :SYM_INTERVAL_DELIM => 61,
     1738 :SYM_ELLIPSIS => 62,
     1739 :V_REAL => 63,
     1740 :SYM_TRUE => 64,
     1741 :SYM_FALSE => 65,
     1742 :V_CHARACTER => 66,
     1743 :V_ISO8601_EXTENDED_DATE => 67,
     1744 :V_ISO8601_EXTENDED_TIME => 68,
     1745 :V_ISO8601_EXTENDED_DATE_TIME => 69,
     1746 :V_ISO8601_DURATION => 70,
     1747 :V_QUALIFIED_TERM_CODE_REF => 71,
     1748 :V_URI => 72,
     1749 :SYM_EXISTS => 73,
     1750 :SYM_NOT => 74,
     1751 "=" => 75,
     1752 :SYM_AND => 76,
     1753 :SYM_OR => 77,
     1754 :SYM_XOR => 78,
     1755 :SYM_IMPLIES => 79,
     1756 :Slash_code => 80,
     1757 "^" => 81,
     1758 :SYM_EXISTENCE => 82,
     1759 :SYM_CARDINALITY => 83,
     1760 :SYM_ORDERED => 84,
     1761 :SYM_UNORDERED => 85,
     1762 :SYM_UNIQUE => 86,
     1763 :SYM_OCCURRENCES => 87,
     1764 :V_ISO8601_DATE_CONSTRAINT_PATTERN => 88,
     1765 :V_ISO8601_TIME_CONSTRAINT_PATTERN => 89,
     1766 :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN => 90,
     1767 :START_TERM_CODE_CONSTRAINT => 91,
     1768 :END_TERM_CODE_CONSTRAINT => 92,
     1769 :TERM_CODE => 93,
     1770 :V_ISO8601_DURATION_CONSTRAINT_PATTERN => 94 }
    17681771
    17691772racc_use_result_var = true
    17701773
    1771 racc_nt_base = 94
     1774racc_nt_base = 95
    17721775
    17731776Racc_arg = [
     
    18211824'SYM_DESCRIPTION',
    18221825'SYM_DEFINITION',
     1826'c_complx_object_head',
    18231827'SYM_MATCHES',
    18241828'START_REGEXP_BLOCK',
     
    22432247.,.,
    22442248
    2245 module_eval <<'.,.,', 'lib/parser.y', 211
     2249module_eval <<'.,.,', 'lib/parser.y', 212
    22462250  def _reduce_36( val, _values, result )
    2247     result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new
    2248    result
    2249   end
    2250 .,.,
    2251 
    2252 module_eval <<'.,.,', 'lib/parser.y', 215
     2251    @@log.info("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0].inspect} at #{@filename}:#{@lineno}")
     2252    result = val[0]
     2253   result
     2254  end
     2255.,.,
     2256
     2257module_eval <<'.,.,', 'lib/parser.y', 220
    22532258  def _reduce_37( val, _values, result )
    2254     result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new
    2255    result
    2256   end
    2257 .,.,
    2258 
    2259 module_eval <<'.,.,', 'lib/parser.y', 219
     2259    result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.create do |archetype_internal_ref|
     2260      archetype_internal_ref.target_path = val[0][:absolute_path]
     2261      archetype_internal_ref.rm_type_name = val[0][:type_identifier]
     2262      archetype_internal_ref.occurrences = val[0][:c_occurrences]
     2263    end
     2264   result
     2265  end
     2266.,.,
     2267
     2268module_eval <<'.,.,', 'lib/parser.y', 224
    22602269  def _reduce_38( val, _values, result )
    2261     result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new
    2262    result
    2263   end
    2264 .,.,
    2265 
    2266 module_eval <<'.,.,', 'lib/parser.y', 223
     2270    result = val[0]
     2271   result
     2272  end
     2273.,.,
     2274
     2275module_eval <<'.,.,', 'lib/parser.y', 230
    22672276  def _reduce_39( val, _values, result )
    2268     result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new
    2269    result
    2270   end
    2271 .,.,
    2272 
    2273 module_eval <<'.,.,', 'lib/parser.y', 227
     2277    result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.create do |constraint_ref|
     2278      constraint_ref.reference = val[0]
     2279    end
     2280   result
     2281  end
     2282.,.,
     2283
     2284module_eval <<'.,.,', 'lib/parser.y', 234
    22742285  def _reduce_40( val, _values, result )
    22752286    result = val[0]
     
    22782289.,.,
    22792290
    2280 module_eval <<'.,.,', 'lib/parser.y', 231
     2291module_eval <<'.,.,', 'lib/parser.y', 238
    22812292  def _reduce_41( val, _values, result )
    22822293    result = val[0]
     
    22852296.,.,
    22862297
    2287 module_eval <<'.,.,', 'lib/parser.y', 235
     2298module_eval <<'.,.,', 'lib/parser.y', 242
    22882299  def _reduce_42( val, _values, result )
    22892300    result = val[0]
     
    22962307 # reduce 44 omitted
    22972308
    2298 module_eval <<'.,.,', 'lib/parser.y', 250
     2309module_eval <<'.,.,', 'lib/parser.y', 257
    22992310  def _reduce_45( val, _values, result )
    23002311    result = val[1]
     
    23032314.,.,
    23042315
    2305  # reduce 46 omitted
     2316module_eval <<'.,.,', 'lib/parser.y', 263
     2317  def _reduce_46( val, _values, result )
     2318    result = {:type_identifier => val[1], :c_occurrences => val[2], :absolute_path => val[3] }
     2319   result
     2320  end
     2321.,.,
    23062322
    23072323 # reduce 47 omitted
    23082324
    2309  # reduce 48 omitted
    2310 
    2311  # reduce 49 omitted
    2312 
    2313  # reduce 50 omitted
     2325module_eval <<'.,.,', 'lib/parser.y', 275
     2326  def _reduce_48( val, _values, result )
     2327    result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.create do |archetype_slot|
     2328      archetype_slot.includes = val[3]
     2329      archetype_slot.excludes = val[4]
     2330      archetype_slot.rm_type_name = val[0][:c_archetype_slot_id]
     2331      archetype_slot.occurrences = val[0][:c_occurrences]
     2332    end
     2333   result
     2334  end
     2335.,.,
     2336
     2337module_eval <<'.,.,', 'lib/parser.y', 279
     2338  def _reduce_49( val, _values, result )
     2339    result = {:c_archetype_slot_id => val[0],:c_occurrences => val[1]}
     2340   result
     2341  end
     2342.,.,
     2343
     2344module_eval <<'.,.,', 'lib/parser.y', 284
     2345  def _reduce_50( val, _values, result )
     2346    result = val[1]
     2347   result
     2348  end
     2349.,.,
    23142350
    23152351 # reduce 51 omitted
     
    23172353 # reduce 52 omitted
    23182354
    2319 module_eval <<'.,.,', 'lib/parser.y', 270
     2355module_eval <<'.,.,', 'lib/parser.y', 295
    23202356  def _reduce_53( val, _values, result )
    23212357    assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE)}
    2322     result = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new(:item => val[0])
    2323    result
    2324   end
    2325 .,.,
    2326 
    2327 module_eval <<'.,.,', 'lib/parser.y', 276
     2358    result = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.create do |c_primitive_object|
     2359      c_primitive_object.item = val[0]
     2360    end
     2361   result
     2362  end
     2363.,.,
     2364
     2365module_eval <<'.,.,', 'lib/parser.y', 305
    23282366  def _reduce_54( val, _values, result )
    23292367    @@log.info("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}")
    2330     result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new
    2331    result
    2332   end
    2333 .,.,
    2334 
    2335 module_eval <<'.,.,', 'lib/parser.y', 281
     2368    result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.create do |c_integer|
     2369      c_integer.list
     2370      c_integer.range
     2371      c_integer.assumed_value
     2372    end
     2373   result
     2374  end
     2375.,.,
     2376
     2377module_eval <<'.,.,', 'lib/parser.y', 310
    23362378  def _reduce_55( val, _values, result )
    23372379    @@log.info("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}")
     
    23412383.,.,
    23422384
    2343 module_eval <<'.,.,', 'lib/parser.y', 286
     2385module_eval <<'.,.,', 'lib/parser.y', 315
    23442386  def _reduce_56( val, _values, result )
    23452387    @@log.info("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}")
     
    23492391.,.,
    23502392
    2351 module_eval <<'.,.,', 'lib/parser.y', 291
     2393module_eval <<'.,.,', 'lib/parser.y', 320
    23522394  def _reduce_57( val, _values, result )
    23532395    @@log.info("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}")
     
    23572399.,.,
    23582400
    2359 module_eval <<'.,.,', 'lib/parser.y', 296
     2401module_eval <<'.,.,', 'lib/parser.y', 325
    23602402  def _reduce_58( val, _values, result )
    23612403    @@log.info("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}")
     
    23652407.,.,
    23662408
    2367 module_eval <<'.,.,', 'lib/parser.y', 301
     2409module_eval <<'.,.,', 'lib/parser.y', 330
    23682410  def _reduce_59( val, _values, result )
    23692411    @@log.info("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}")
     
    23732415.,.,
    23742416
    2375 module_eval <<'.,.,', 'lib/parser.y', 306
     2417module_eval <<'.,.,', 'lib/parser.y', 335
    23762418  def _reduce_60( val, _values, result )
    23772419    @@log.info("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}")
     
    23812423.,.,
    23822424
    2383 module_eval <<'.,.,', 'lib/parser.y', 312
     2425module_eval <<'.,.,', 'lib/parser.y', 341
    23842426  def _reduce_61( val, _values, result )
    23852427    assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN)}
     
    23922434 # reduce 62 omitted
    23932435
    2394 module_eval <<'.,.,', 'lib/parser.y', 322
     2436module_eval <<'.,.,', 'lib/parser.y', 351
    23952437  def _reduce_63( val, _values, result )
    23962438    result = [val[0]]
     
    23992441.,.,
    24002442
    2401 module_eval <<'.,.,', 'lib/parser.y', 326
     2443module_eval <<'.,.,', 'lib/parser.y', 355
    24022444  def _reduce_64( val, _values, result )
    24032445    result = (val[0] << val[1])
     
    24062448.,.,
    24072449
    2408 module_eval <<'.,.,', 'lib/parser.y', 335
     2450module_eval <<'.,.,', 'lib/parser.y', 364
    24092451  def _reduce_65( val, _values, result )
    24102452    assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
     
    24162458.,.,
    24172459
    2418 module_eval <<'.,.,', 'lib/parser.y', 340
     2460module_eval <<'.,.,', 'lib/parser.y', 369
    24192461  def _reduce_66( val, _values, result )
    24202462    assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
     
    24242466.,.,
    24252467
    2426 module_eval <<'.,.,', 'lib/parser.y', 345
     2468module_eval <<'.,.,', 'lib/parser.y', 374
    24272469  def _reduce_67( val, _values, result )
    24282470    assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
     
    24322474.,.,
    24332475
    2434 module_eval <<'.,.,', 'lib/parser.y', 356
     2476module_eval <<'.,.,', 'lib/parser.y', 385
    24352477  def _reduce_68( val, _values, result )
    24362478    @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}")
     
    24432485.,.,
    24442486
    2445 module_eval <<'.,.,', 'lib/parser.y', 366
     2487module_eval <<'.,.,', 'lib/parser.y', 395
    24462488  def _reduce_69( val, _values, result )
    24472489    assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY) }
     
    24562498.,.,
    24572499
    2458 module_eval <<'.,.,', 'lib/parser.y', 371
     2500module_eval <<'.,.,', 'lib/parser.y', 400
    24592501  def _reduce_70( val, _values, result )
    24602502    result = Array[val[0]]
     
    24632505.,.,
    24642506
    2465 module_eval <<'.,.,', 'lib/parser.y', 375
     2507module_eval <<'.,.,', 'lib/parser.y', 404
    24662508  def _reduce_71( val, _values, result )
    24672509    result = (val[0] << val[1])
     
    24702512.,.,
    24712513
    2472 module_eval <<'.,.,', 'lib/parser.y', 379
     2514module_eval <<'.,.,', 'lib/parser.y', 408
    24732515  def _reduce_72( val, _values, result )
    24742516    result = Array[val[0]]
     
    24792521 # reduce 73 omitted
    24802522
    2481  # reduce 74 omitted
     2523module_eval <<'.,.,', 'lib/parser.y', 416
     2524  def _reduce_74( val, _values, result )
     2525    result = val[1]
     2526   result
     2527  end
     2528.,.,
    24822529
    24832530 # reduce 75 omitted
    24842531
    2485  # reduce 76 omitted
     2532module_eval <<'.,.,', 'lib/parser.y', 424
     2533  def _reduce_76( val, _values, result )
     2534    result = val[1]
     2535   result
     2536  end
     2537.,.,
    24862538
    24872539 # reduce 77 omitted
     
    25012553 # reduce 84 omitted
    25022554
    2503 module_eval <<'.,.,', 'lib/parser.y', 410
     2555module_eval <<'.,.,', 'lib/parser.y', 445
    25042556  def _reduce_85( val, _values, result )
    25052557    dadl_section = val[1]
     
    25172569 # reduce 89 omitted
    25182570
    2519 module_eval <<'.,.,', 'lib/parser.y', 424
     2571module_eval <<'.,.,', 'lib/parser.y', 459
    25202572  def _reduce_90( val, _values, result )
    25212573    result = Array[val[0]]
     
    25242576.,.,
    25252577
    2526 module_eval <<'.,.,', 'lib/parser.y', 428
     2578module_eval <<'.,.,', 'lib/parser.y', 463
    25272579  def _reduce_91( val, _values, result )
    25282580    result = (val[0] << val[1])
     
    25312583.,.,
    25322584
    2533 module_eval <<'.,.,', 'lib/parser.y', 432
     2585module_eval <<'.,.,', 'lib/parser.y', 467
    25342586  def _reduce_92( val, _values, result )
    25352587    result = (val[0] << val[2])
     
    25382590.,.,
    25392591
    2540 module_eval <<'.,.,', 'lib/parser.y', 438
     2592module_eval <<'.,.,', 'lib/parser.y', 473
    25412593  def _reduce_93( val, _values, result )
    25422594    @@log.info("#{__FILE__}:#{__LINE__}: attr_id = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}")
     
    25462598.,.,
    25472599
    2548 module_eval <<'.,.,', 'lib/parser.y', 444
     2600module_eval <<'.,.,', 'lib/parser.y', 479
    25492601  def _reduce_94( val, _values, result )
    25502602    @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}")
     
    25562608 # reduce 95 omitted
    25572609
    2558 module_eval <<'.,.,', 'lib/parser.y', 450
     2610module_eval <<'.,.,', 'lib/parser.y', 485
    25592611  def _reduce_96( val, _values, result )
    25602612    result = val[0]
     
    25632615.,.,
    25642616
    2565 module_eval <<'.,.,', 'lib/parser.y', 454
     2617module_eval <<'.,.,', 'lib/parser.y', 489
    25662618  def _reduce_97( val, _values, result )
    25672619    result = val[0]
     
    25702622.,.,
    25712623
    2572 module_eval <<'.,.,', 'lib/parser.y', 459
     2624module_eval <<'.,.,', 'lib/parser.y', 494
    25732625  def _reduce_98( val, _values, result )
    25742626    result = val[0]
     
    25772629.,.,
    25782630
    2579 module_eval <<'.,.,', 'lib/parser.y', 463
     2631module_eval <<'.,.,', 'lib/parser.y', 498
    25802632  def _reduce_99( val, _values, result )
    25812633    result = val[0]
     
    25842636.,.,
    25852637
    2586 module_eval <<'.,.,', 'lib/parser.y', 468
     2638module_eval <<'.,.,', 'lib/parser.y', 503
    25872639  def _reduce_100( val, _values, result )
    25882640    result = {:untyped_multiple_attr_object_block => val[0]}
     
    25912643.,.,
    25922644
    2593 module_eval <<'.,.,', 'lib/parser.y', 472
     2645module_eval <<'.,.,', 'lib/parser.y', 507
    25942646  def _reduce_101( val, _values, result )
    25952647    result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]}
     
    25982650.,.,
    25992651
    2600 module_eval <<'.,.,', 'lib/parser.y', 477
     2652module_eval <<'.,.,', 'lib/parser.y', 512
    26012653  def _reduce_102( val, _values, result )
    26022654    result = {:multiple_attr_object_block_head => val[0], :keyed_objects => val[1]}
     
    26052657.,.,
    26062658
    2607 module_eval <<'.,.,', 'lib/parser.y', 483
     2659module_eval <<'.,.,', 'lib/parser.y', 518
    26082660  def _reduce_103( val, _values, result )
    26092661    @@log.info("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}")
     
    26132665.,.,
    26142666
    2615 module_eval <<'.,.,', 'lib/parser.y', 488
     2667module_eval <<'.,.,', 'lib/parser.y', 523
    26162668  def _reduce_104( val, _values, result )
    26172669    result = Array[val[0]]
     
    26202672.,.,
    26212673
    2622 module_eval <<'.,.,', 'lib/parser.y', 492
     2674module_eval <<'.,.,', 'lib/parser.y', 527
    26232675  def _reduce_105( val, _values, result )
    26242676    result = (val[0] << val[1])
     
    26272679.,.,
    26282680
    2629 module_eval <<'.,.,', 'lib/parser.y', 498
     2681module_eval <<'.,.,', 'lib/parser.y', 533
    26302682  def _reduce_106( val, _values, result )
    26312683    @@log.info("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}")
     
    26352687.,.,
    26362688
    2637 module_eval <<'.,.,', 'lib/parser.y', 504
     2689module_eval <<'.,.,', 'lib/parser.y', 539
    26382690  def _reduce_107( val, _values, result )
    26392691    @@log.info("object_key: [#{val[1]}] at #{@filename}:#{@lineno}")
     
    26432695.,.,
    26442696
    2645 module_eval <<'.,.,', 'lib/parser.y', 509
     2697module_eval <<'.,.,', 'lib/parser.y', 544
    26462698  def _reduce_108( val, _values, result )
    26472699    result = {:untyped_single_attr_object_block => val[0]}
     
    26502702.,.,
    26512703
    2652 module_eval <<'.,.,', 'lib/parser.y', 513
     2704module_eval <<'.,.,', 'lib/parser.y', 548
    26532705  def _reduce_109( val, _values, result )
    26542706    result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]}
     
    26572709.,.,
    26582710
    2659 module_eval <<'.,.,', 'lib/parser.y', 519
     2711module_eval <<'.,.,', 'lib/parser.y', 554
    26602712  def _reduce_110( val, _values, result )
    26612713    @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}")
     
    26652717.,.,
    26662718
    2667 module_eval <<'.,.,', 'lib/parser.y', 524
     2719module_eval <<'.,.,', 'lib/parser.y', 559
    26682720  def _reduce_111( val, _values, result )
    26692721    @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]}, attr_vals = #{val[1]} at #{@filename}:#{@lineno}")
     
    26752727 # reduce 112 omitted
    26762728
    2677 module_eval <<'.,.,', 'lib/parser.y', 530
     2729module_eval <<'.,.,', 'lib/parser.y', 565
    26782730  def _reduce_113( val, _values, result )
    26792731    @@log.info("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}")
     
    26832735.,.,
    26842736
    2685 module_eval <<'.,.,', 'lib/parser.y', 535
     2737module_eval <<'.,.,', 'lib/parser.y', 570
    26862738  def _reduce_114( val, _values, result )
    26872739    @@log.info("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}")
     
    26912743.,.,
    26922744
    2693 module_eval <<'.,.,', 'lib/parser.y', 540
     2745module_eval <<'.,.,', 'lib/parser.y', 575
    26942746  def _reduce_115( val, _values, result )
    26952747    @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}")
     
    26992751.,.,
    27002752
    2701 module_eval <<'.,.,', 'lib/parser.y', 544
     2753module_eval <<'.,.,', 'lib/parser.y', 579
    27022754  def _reduce_116( val, _values, result )
    27032755    result = val[0]
     
    27062758.,.,
    27072759
    2708 module_eval <<'.,.,', 'lib/parser.y', 548
     2760module_eval <<'.,.,', 'lib/parser.y', 583
    27092761  def _reduce_117( val, _values, result )
    27102762    result = val[0]
     
    27132765.,.,
    27142766
    2715 module_eval <<'.,.,', 'lib/parser.y', 552
     2767module_eval <<'.,.,', 'lib/parser.y', 587
    27162768  def _reduce_118( val, _values, result )
    27172769    result = val[0]
     
    27202772.,.,
    27212773
    2722 module_eval <<'.,.,', 'lib/parser.y', 556
     2774module_eval <<'.,.,', 'lib/parser.y', 591
    27232775  def _reduce_119( val, _values, result )
    27242776    result = val[0]
     
    27272779.,.,
    27282780
    2729 module_eval <<'.,.,', 'lib/parser.y', 560
     2781module_eval <<'.,.,', 'lib/parser.y', 595
    27302782  def _reduce_120( val, _values, result )
    27312783    result = val[0]
     
    27342786.,.,
    27352787
    2736 module_eval <<'.,.,', 'lib/parser.y', 565
     2788module_eval <<'.,.,', 'lib/parser.y', 600
    27372789  def _reduce_121( val, _values, result )
    27382790    @@log.info("string_value: #{val[0]} at #{@filename}:#{@lineno}")
     
    27422794.,.,
    27432795
    2744 module_eval <<'.,.,', 'lib/parser.y', 570
     2796module_eval <<'.,.,', 'lib/parser.y', 605
    27452797  def _reduce_122( val, _values, result )
    27462798    @@log.info("integer_value: #{val[0]} at #{@filename}:#{@lineno}")
     
    27502802.,.,
    27512803
    2752 module_eval <<'.,.,', 'lib/parser.y', 575
     2804module_eval <<'.,.,', 'lib/parser.y', 610
    27532805  def _reduce_123( val, _values, result )
    27542806    @@log.info("real_value: #{val[0]} at #{@filename}:#{@lineno}")
     
    27582810.,.,
    27592811
    2760 module_eval <<'.,.,', 'lib/parser.y', 580
     2812module_eval <<'.,.,', 'lib/parser.y', 615
    27612813  def _reduce_124( val, _values, result )
    27622814    @@log.info("boolean_value: #{val[0]} at #{@filename}:#{@lineno}")
     
    27662818.,.,
    27672819
    2768 module_eval <<'.,.,', 'lib/parser.y', 585
     2820module_eval <<'.,.,', 'lib/parser.y', 620
    27692821  def _reduce_125( val, _values, result )
    27702822    @@log.info("character_value: #{val[0]} at #{@filename}:#{@lineno}")
     
    27742826.,.,
    27752827
    2776 module_eval <<'.,.,', 'lib/parser.y', 590
     2828module_eval <<'.,.,', 'lib/parser.y', 625
    27772829  def _reduce_126( val, _values, result )
    27782830    @@log.info("date_value: #{val[0]} at #{@filename}:#{@lineno}")
     
    27822834.,.,
    27832835
    2784 module_eval <<'.,.,', 'lib/parser.y', 595
     2836module_eval <<'.,.,', 'lib/parser.y', 630
    27852837  def _reduce_127( val, _values, result )
    27862838    @@log.info("time_value: #{val[0]} at #{@filename}:#{@lineno}")
     
    27902842.,.,
    27912843
    2792 module_eval <<'.,.,', 'lib/parser.y', 600
     2844module_eval <<'.,.,', 'lib/parser.y', 635
    27932845  def _reduce_128( val, _values, result )
    27942846    @@log.info("date_time_value: #{val[0]} at #{@filename}:#{@lineno}")
     
    27982850.,.,
    27992851
    2800 module_eval <<'.,.,', 'lib/parser.y', 605
     2852module_eval <<'.,.,', 'lib/parser.y', 640
    28012853  def _reduce_129( val, _values, result )
    28022854    @@log.info("duration_value: #{val[0]} at #{@filename}:#{@lineno}")
     
    28062858.,.,
    28072859
    2808 module_eval <<'.,.,', 'lib/parser.y', 610
     2860module_eval <<'.,.,', 'lib/parser.y', 645
    28092861  def _reduce_130( val, _values, result )
    28102862    @@log.info("uri_value: #{val[0]} at #{@filename}:#{@lineno}")
     
    28442896 # reduce 145 omitted
    28452897
    2846 module_eval <<'.,.,', 'lib/parser.y', 633
     2898module_eval <<'.,.,', 'lib/parser.y', 668
    28472899  def _reduce_146( val, _values, result )
    28482900    @@log.info("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
     
    28522904.,.,
    28532905
    2854 module_eval <<'.,.,', 'lib/parser.y', 638
     2906module_eval <<'.,.,', 'lib/parser.y', 673
    28552907  def _reduce_147( val, _values, result )
    28562908    @@log.info("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
     
    28602912.,.,
    28612913
    2862 module_eval <<'.,.,', 'lib/parser.y', 644
     2914module_eval <<'.,.,', 'lib/parser.y', 679
    28632915  def _reduce_148( val, _values, result )
    28642916    @@log.info("V_STRING: #{val[0]} at #{@filename}:#{@lineno}")
     
    28742926 # reduce 151 omitted
    28752927
    2876 module_eval <<'.,.,', 'lib/parser.y', 658
     2928module_eval <<'.,.,', 'lib/parser.y', 693
    28772929  def _reduce_152( val, _values, result )
    28782930    begin
     
    28862938.,.,
    28872939
    2888 module_eval <<'.,.,', 'lib/parser.y', 667
     2940module_eval <<'.,.,', 'lib/parser.y', 702
    28892941  def _reduce_153( val, _values, result )
    28902942    begin
     
    28982950.,.,
    28992951
    2900 module_eval <<'.,.,', 'lib/parser.y', 676
     2952module_eval <<'.,.,', 'lib/parser.y', 711
    29012953  def _reduce_154( val, _values, result )
    29022954    begin
     
    29342986 # reduce 166 omitted
    29352987
    2936 module_eval <<'.,.,', 'lib/parser.y', 702
     2988module_eval <<'.,.,', 'lib/parser.y', 737
    29372989  def _reduce_167( val, _values, result )
    29382990    begin
     
    29462998.,.,
    29472999
    2948 module_eval <<'.,.,', 'lib/parser.y', 711
     3000module_eval <<'.,.,', 'lib/parser.y', 746
    29493001  def _reduce_168( val, _values, result )
    29503002    begin
     
    29583010.,.,
    29593011
    2960 module_eval <<'.,.,', 'lib/parser.y', 720
     3012module_eval <<'.,.,', 'lib/parser.y', 755
    29613013  def _reduce_169( val, _values, result )
    29623014    begin
     
    29943046 # reduce 181 omitted
    29953047
    2996 module_eval <<'.,.,', 'lib/parser.y', 740
     3048module_eval <<'.,.,', 'lib/parser.y', 775
    29973049  def _reduce_182( val, _values, result )
    29983050    result = true
     
    30013053.,.,
    30023054
    3003 module_eval <<'.,.,', 'lib/parser.y', 744
     3055module_eval <<'.,.,', 'lib/parser.y', 779
    30043056  def _reduce_183( val, _values, result )
    30053057    result = false
     
    31003152 # reduce 229 omitted
    31013153
    3102 module_eval <<'.,.,', 'lib/parser.y', 808
     3154module_eval <<'.,.,', 'lib/parser.y', 843
    31033155  def _reduce_230( val, _values, result )
    31043156    @@log.info("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}")
     
    31323184 # reduce 242 omitted
    31333185
    3134 module_eval <<'.,.,', 'lib/parser.y', 828
     3186module_eval <<'.,.,', 'lib/parser.y', 863
    31353187  def _reduce_243( val, _values, result )
    31363188    @@log.info("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}")
     
    31463198 # reduce 246 omitted
    31473199
    3148 module_eval <<'.,.,', 'lib/parser.y', 838
     3200module_eval <<'.,.,', 'lib/parser.y', 873
    31493201  def _reduce_247( val, _values, result )
    31503202    @@log.info("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}")
     
    32343286 # reduce 287 omitted
    32353287
    3236 module_eval <<'.,.,', 'lib/parser.y', 907
     3288module_eval <<'.,.,', 'lib/parser.y', 942
    32373289  def _reduce_288( val, _values, result )
    32383290    @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
     
    32413293.,.,
    32423294
    3243 module_eval <<'.,.,', 'lib/parser.y', 911
     3295module_eval <<'.,.,', 'lib/parser.y', 946
    32443296  def _reduce_289( val, _values, result )
    32453297    @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
     
    32483300.,.,
    32493301
    3250 module_eval <<'.,.,', 'lib/parser.y', 922
     3302module_eval <<'.,.,', 'lib/parser.y', 957
    32513303  def _reduce_290( val, _values, result )
    32523304    result = Range.new(1,1)
     
    32553307.,.,
    32563308
    3257 module_eval <<'.,.,', 'lib/parser.y', 926
     3309module_eval <<'.,.,', 'lib/parser.y', 961
    32583310  def _reduce_291( val, _values, result )
    32593311    result = val[3]
     
    32623314.,.,
    32633315
    3264 module_eval <<'.,.,', 'lib/parser.y', 936
     3316module_eval <<'.,.,', 'lib/parser.y', 971
    32653317  def _reduce_292( val, _values, result )
    32663318    begin
     
    32743326.,.,
    32753327
    3276 module_eval <<'.,.,', 'lib/parser.y', 946
     3328module_eval <<'.,.,', 'lib/parser.y', 981
    32773329  def _reduce_293( val, _values, result )
    32783330    begin
     
    32873339.,.,
    32883340
    3289 module_eval <<'.,.,', 'lib/parser.y', 951
     3341module_eval <<'.,.,', 'lib/parser.y', 986
    32903342  def _reduce_294( val, _values, result )
    32913343    result = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new
     
    33163368 # reduce 305 omitted
    33173369
    3318 module_eval <<'.,.,', 'lib/parser.y', 970
     3370module_eval <<'.,.,', 'lib/parser.y', 1005
    33193371  def _reduce_306( val, _values, result )
    33203372    result = val[3]
     
    34153467 # reduce 352 omitted
    34163468
    3417 module_eval <<'.,.,', 'lib/parser.y', 1040
     3469module_eval <<'.,.,', 'lib/parser.y', 1075
    34183470  def _reduce_353( val, _values, result )
    34193471    result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true)
     
    34223474.,.,
    34233475
    3424 module_eval <<'.,.,', 'lib/parser.y', 1044
     3476module_eval <<'.,.,', 'lib/parser.y', 1079
    34253477  def _reduce_354( val, _values, result )
    34263478    result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false)
     
    34293481.,.,
    34303482
    3431 module_eval <<'.,.,', 'lib/parser.y', 1048
     3483module_eval <<'.,.,', 'lib/parser.y', 1083
    34323484  def _reduce_355( val, _values, result )
    34333485    result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false)
     
    34363488.,.,
    34373489
    3438 module_eval <<'.,.,', 'lib/parser.y', 1052
     3490module_eval <<'.,.,', 'lib/parser.y', 1087
    34393491  def _reduce_356( val, _values, result )
    34403492    result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true)
     
    34433495.,.,
    34443496
    3445 module_eval <<'.,.,', 'lib/parser.y', 1057
     3497module_eval <<'.,.,', 'lib/parser.y', 1092
    34463498  def _reduce_357( val, _values, result )
    34473499    result = val[0]
     
    34503502.,.,
    34513503
    3452 module_eval <<'.,.,', 'lib/parser.y', 1061
     3504module_eval <<'.,.,', 'lib/parser.y', 1096
    34533505  def _reduce_358( val, _values, result )
    34543506    raise 'Not implemented yet'
     
    34573509.,.,
    34583510
    3459 module_eval <<'.,.,', 'lib/parser.y', 1065
     3511module_eval <<'.,.,', 'lib/parser.y', 1100
    34603512  def _reduce_359( val, _values, result )
    34613513    raise 'Not implemented yet'
     
    34743526 # reduce 364 omitted
    34753527
    3476 module_eval <<'.,.,', 'lib/parser.y', 1078
     3528module_eval <<'.,.,', 'lib/parser.y', 1113
    34773529  def _reduce_365( val, _values, result )
    34783530    @in_interval = false
     
    34823534.,.,
    34833535
    3484  # reduce 366 omitted
    3485 
    3486  # reduce 367 omitted
     3536module_eval <<'.,.,', 'lib/parser.y', 1119
     3537  def _reduce_366( val, _values, result )
     3538      result = val[0]
     3539   result
     3540  end
     3541.,.,
     3542
     3543module_eval <<'.,.,', 'lib/parser.y', 1123
     3544  def _reduce_367( val, _values, result )
     3545      result = val[0]
     3546   result
     3547  end
     3548.,.,
    34873549
    34883550 # reduce 368 omitted
     
    34943556 # reduce 371 omitted
    34953557
    3496  # reduce 372 omitted
    3497 
    3498  # reduce 373 omitted
    3499 
    3500 module_eval <<'.,.,', 'lib/parser.y', 1100
     3558module_eval <<'.,.,', 'lib/parser.y', 1138
     3559  def _reduce_372( val, _values, result )
     3560      result = val[0]
     3561   result
     3562  end
     3563.,.,
     3564
     3565module_eval <<'.,.,', 'lib/parser.y', 1143
     3566  def _reduce_373( val, _values, result )
     3567      result = val[0]
     3568   result
     3569  end
     3570.,.,
     3571
     3572module_eval <<'.,.,', 'lib/parser.y', 1148
    35013573  def _reduce_374( val, _values, result )
    35023574    @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}")
    3503    result
    3504   end
    3505 .,.,
    3506 
    3507 module_eval <<'.,.,', 'lib/parser.y', 1110
     3575      result = val[0]
     3576   result
     3577  end
     3578.,.,
     3579
     3580module_eval <<'.,.,', 'lib/parser.y', 1158
    35083581  def _reduce_375( val, _values, result )
    35093582    result = val[0]
  • ruby/trunk/adl_parser/lib/parser.y

    r26 r32  
    160160
    161161#c_complex_object: c_complex_object_head SYM_MATCHES SYM_START_CBLOCK c_complex_object_body SYM_END_CBLOCK
    162 c_complex_object: c_complex_object_head SYM_MATCHES START_REGEXP_BLOCK REGEXP_BODY END_REGEXP_BLOCK # added by akimichi
     162c_complex_object: c_complx_object_head SYM_MATCHES START_REGEXP_BLOCK REGEXP_BODY END_REGEXP_BLOCK # added by akimichi
    163163  {
    164164    result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object|
     
    203203
    204204c_object: v_c_domain_type
    205   { 
     205  {
    206206    result = val[0]
    207207  }
    208208  | c_complex_object
    209   {
    210     result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new
     209  {
     210    @@log.info("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0].inspect} at #{@filename}:#{@lineno}")
     211    result = val[0]
    211212  }
    212213  | archetype_internal_ref
    213   {
    214     result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new
     214  {
     215    result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.create do |archetype_internal_ref|
     216      archetype_internal_ref.target_path = val[0][:absolute_path]
     217      archetype_internal_ref.rm_type_name = val[0][:type_identifier]
     218      archetype_internal_ref.occurrences = val[0][:c_occurrences]
     219    end
    215220  }
    216221  | archetype_slot
    217   { 
    218     result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new
     222  {
     223    result = val[0]
    219224  }
    220225  | constraint_ref
    221   {
    222     result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new
     226  {
     227    result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.create do |constraint_ref|
     228      constraint_ref.reference = val[0]
     229    end
    223230  }
    224231  | c_code_phrase
    225   { 
     232  {
    226233    result = val[0]
    227234  }
    228235  | c_ordinal
    229   { 
     236  {
    230237    result = val[0]
    231238  }
    232239  | c_primitive_object
    233   { 
     240  {
    234241    result = val[0]
    235242  }
     
    252259# 'archetype_internal_ref' is a node that refers to a previously defined object node in the same archetype.
    253260archetype_internal_ref: SYM_USE_NODE type_identifier c_occurrences absolute_path
     261  {
     262    result = {:type_identifier => val[1], :c_occurrences => val[2], :absolute_path => val[3] }
     263  }
    254264  | SYM_USE_NODE type_identifier error
    255265
    256266# 'archetype_slot' is a node whose statements define a constraint that determines which other archetypes may appear at that point in the current archetype.
    257267archetype_slot: c_archetype_slot_head SYM_MATCHES SYM_START_CBLOCK c_includes c_excludes SYM_END_CBLOCK
    258 
     268  {
     269    result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.create do |archetype_slot|
     270      archetype_slot.includes = val[3]
     271      archetype_slot.excludes = val[4]
     272      archetype_slot.rm_type_name = val[0][:c_archetype_slot_id]
     273      archetype_slot.occurrences = val[0][:c_occurrences]
     274    end
     275  }
    259276c_archetype_slot_head: c_archetype_slot_id c_occurrences
     277  {
     278    result = {:c_archetype_slot_id => val[0],:c_occurrences => val[1]}
     279  }
    260280
    261281c_archetype_slot_id: SYM_ALLOW_ARCHETYPE type_identifier
     282  {
     283    result = val[1]
     284  }
    262285  | SYM_ALLOW_ARCHETYPE type_identifier V_LOCAL_TERM_CODE_REF
    263286  | SYM_ALLOW_ARCHETYPE error
     
    267290  {
    268291    assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE)}
    269     result = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new(:item => val[0])
     292    result = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.create do |c_primitive_object|
     293      c_primitive_object.item = val[0]
     294    end
    270295  }
    271296
     
    273298  {
    274299    @@log.info("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}")
    275     result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new
     300    result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.create do |c_integer|
     301      c_integer.list
     302      c_integer.range
     303      c_integer.assumed_value
     304    end
    276305  }
    277306  | c_real
     
    383412c_includes: #-- Empty
    384413    | SYM_INCLUDE invariants
     414{
     415    result = val[1]
     416}
    385417
    386418### c_excludes: #-- Empty
     
    388420c_excludes: #-- Empty
    389421    | SYM_EXCLUDE invariants
     422{
     423    result = val[1]
     424}
    390425
    391426invariants: invariant
     
    10801115#c_code_phrase: V_TERM_CODE_CONSTRAINT #-- e.g. "[local::at0040, at0041; at0040]"
    10811116c_code_phrase: term_code_constraint_section #-- e.g. "[local::at0040, at0041; at0040]"
     1117  {
     1118      result = val[0]
     1119  }
    10821120  | V_QUALIFIED_TERM_CODE_REF
     1121  {
     1122      result = val[0]
     1123  }
    10831124
    10841125#term_code_constraint_section: START_TERM_CODE_CONSTRAINT term_code_body Right_bracket_code
     
    10931134# A Constraint_Ref is a proxy for a set of constraints on an object.
    10941135constraint_ref: V_LOCAL_TERM_CODE_REF #-- e.g. "ac0003"
     1136  {
     1137      result = val[0]
     1138  }
    10951139
    10961140any_identifier: type_identifier
     1141  {
     1142      result = val[0]
     1143  }
    10971144  | V_ATTRIBUTE_IDENTIFIER
    10981145  {
    10991146    @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}")
     1147      result = val[0]
    11001148  }
    11011149
  • ruby/trunk/models/Rakefile

    r23 r32  
    4545    item.include?(".svn") || item.include?("rdoc")
    4646  end
    47 #  s.files << FileList['COPYING', 'Rakefile','am.rb','assumed_library_types.rb','rm.rb']
    4847#  s.require_paths += [".","am","rm"]
    4948  s.require_path = "."
  • ruby/trunk/models/am.rb

    r23 r32  
    2727      module Constraint_Model
    2828        autoload :ARCHETYPE_CONSTRAINT, "am/archetype/constraint_model/archetype_constraint.rb"
     29        autoload :ARCHETYPE_SLOT, "am/archetype/constraint_model/archetype_constraint.rb"
    2930        autoload :Primitive, "am/archetype/constraint_model/primitive.rb"
    3031      end #end of ConstraintModel
  • ruby/trunk/models/am/archetype/constraint_model/archetype_constraint.rb

    r23 r32  
    1919            @occurrences = args[:occurrences] if args[:occurrences]
    2020            @rm_type_name = args[:rm_type_name] if args[:rm_type_name]
     21          end
     22
     23          def self.create(args = { }, &block)
     24            c_object = new(args)
     25            if block_given?
     26              yield c_object
     27            end
     28            return c_object
    2129          end
    2230        end
     
    4452        class C_PRIMITIVE_OBJECT < C_DEFINED_OBJECT
    4553          attr_accessor :item
    46          
     54
    4755          def initialize(args = { })
    4856            @attributes = args[:item] if args[:item]
     
    5361        class C_COMPLEX_OBJECT < C_DEFINED_OBJECT
    5462          attr_accessor :attributes, :attributes_valid
    55          
     63
    5664          def initialize(args = { })
    5765            @attributes = args[:attributes] ? args[:attributes] : []
     
    7381
    7482        class C_REFERENCE_OBJECT < C_OBJECT
    75          
    7683        end
    7784
    7885        class ARCHETYPE_INTERNAL_REF < C_REFERENCE_OBJECT
    79          
     86          attr_accessor :target_path
    8087        end
    8188
    8289        class ARCHETYPE_SLOT < C_REFERENCE_OBJECT
    83          
     90          attr_accessor :includes, :excludes
     91
     92          def self.create(args = { }, &block)
     93            archetype_slot = new(args)
     94            archetype_slot.includes = args[:includes]
     95            archetype_slot.excludes = args[:excludes]
     96            if block_given?
     97              yield archetype_slot
     98            end
     99            return archetype_slot
     100          end
    84101        end
    85102
    86103        class CONSTRAINT_REF < C_REFERENCE_OBJECT
    87          
     104          attr_accessor :reference
     105
     106          def self.create(args = { }, &block)
     107            constraint_ref = new(args)
     108            constraint_ref.reference = args[:reference]
     109            if block_given?
     110              yield constraint_ref
     111            end
     112            return constraint_ref
     113          end
    88114        end
    89115
  • ruby/trunk/models/am/archetype/constraint_model/primitive.rb

    r26 r32  
    77
    88          class C_PRIMITIVE
     9
     10            def initialize
     11              raise "abstract class"
     12            end
     13
     14            def self.create(args = {})
     15              instance = new(args)
     16
     17              if block_given?
     18                yield instance
     19              end
     20              return instance
     21            end
     22
     23
    924            def assumed_value
    1025              raise NotImplementedError, "assumed_value should be implemented"
    1126            end
     27
    1228            def default_value
    1329              raise NotImplementedError, "assumed_value should be implemented"
    1430            end
     31
    1532            def has_assumed_value?
    1633              assumed_value != nil
    1734            end
     35
    1836            def valid_value?
    1937              raise NotImplementedError, "valid_value? should be implemented"
     
    5068              else
    5169                (a_value && @true_valid) || (!a_value && @false_valid)
    52               end             
     70              end
    5371            end
    5472
     
    5876              if !true_valid && !false_valid
    5977                raise ArgumentError, "Either true_valid or false_valid must be true"
    60               end             
     78              end
    6179            end
    6280          end # of C_Boolean
    6381
    6482          class C_STRING < C_PRIMITIVE
    65            
     83            attr_accessor :list, :assumed_value, :list_open, :pattern
     84
     85            def initialize(args = { })
     86              @list, @assumed_value, @list_open, @pattern = args[:list], args[:assumed_value], args[:list_open], args[:pattern]
     87            end
    6688          end
    6789
    6890          class C_INTEGER < C_PRIMITIVE
    69            
     91            attr_accessor :list, :range, :assumed_value
     92
     93            def initialize(args = { })
     94              @list, @range, @assumed_value = args[:list], args[:range], args[:assumed_value]
     95            end
     96
     97            def self.create(args = {})
     98              c_primitive = new(args)
     99
     100              if block_given?
     101                yield c_primitive
     102              end
     103              return c_primitive
     104            end
    70105          end
    71106
    72107          class C_REAL < C_PRIMITIVE
    73            
     108            attr_accessor :list, :range, :assumed_value
     109
     110            def initialize(args = { })
     111              @list, @range, @assumed_value = args[:list], args[:range], args[:assumed_value]
     112            end
    74113          end
    75114
    76115          class C_TIME < C_PRIMITIVE
    77            
     116            attr_accessor :assumed_value, :milli_second_validity, :minute_validity, :range, :second_validity, :timezone_validity
     117            def initialize(args = { })
     118              @assumed_value, @milli_second_validity, @minute_validity, @month_validity, @range, @second_validity, @timezone_validity = args[:assumed_value], args[:milli_second_validity], args[:minute_validity], args[:range], args[:second_validity], args[:timezone_validity]
     119            end
    78120          end
    79121
    80122          class C_DATE < C_PRIMITIVE
    81            
     123            attr_accessor :assumed_value, :day_validity, :hour_validity, :month_validity, :range, :timezone_validity
     124            def initialize(args = { })
     125              @assumed_value, @day_validity, @hour_validity,  @month_validity, @range,  @timezone_validity = args[:assumed_value], args[:day_validity], args[:hour_validity], args[:month_validity], args[:range], args[:timezone_validity]
     126            end
    82127          end
    83128
    84129          class C_DATE_TIME < C_PRIMITIVE
    85            
     130            attr_accessor :assumed_value, :day_validity, :hour_validity, :milli_second_validity, :minute_validity, :month_validity, :range, :second_validity, :timezone_validity
     131            def initialize(args = { })
     132              @assumed_value, @day_validity, @hour_validity, @milli_second_validity, @minute_validity, @month_validity, @range, @second_validity, @timezone_validity = args[:assumed_value], args[:day_validity], args[:hour_validity], args[:milli_second_validity], args[:minute_validity], args[:month_validity], args[:range], args[:second_validity], args[:timezone_validity]
     133            end
    86134          end
    87135
    88136          class C_DURATION < C_PRIMITIVE
    89137            attr_accessor :years_allowed, :months_allowed, :weeks_allowed, :days_allowed, :hours_allowed, :minutes_allowed, :seconds_allowed, :fractional_seconds_allowed, :range, :assumed_value
     138
     139            def initialize(args = { })
     140              @years_allowed, @months_allowed, @weeks_allowed, @days_allowed, @hours_allowed, @minutes_allowed, @seconds_allowed, @fractional_seconds_allowed, @range, @assumed_value = args[:years_allowed], args[:months_allowed], args[:weeks_allowed], args[:days_allowed], args[:hours_allowed], args[:minutes_allowed], args[:seconds_allowed], args[:fractional_seconds_allowed], args[:range], args[:assumed_value]
     141            end
    90142          end
    91143
  • ruby/trunk/models/tests/test_archetype_model.rb

    r24 r32  
    8282class ArchetypeModelPrimitiveTest < Test::Unit::TestCase
    8383  def setup
    84     @c_primitive = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE.new
     84    #@c_primitive = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE.new
    8585    @c_boolean = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,
    8686                                                                                    :false_valid => true,
     
    9696
    9797  def test_init
    98     assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE, @c_primitive
     98    #assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE, @c_primitive
    9999    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN, @c_boolean
    100100    assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING, @c_string
Note: See TracChangeset for help on using the changeset viewer.