Changeset 14


Ignore:
Timestamp:
Apr 16, 2008, 11:11:40 PM (16 years ago)
Author:
Tatsukawa, Akimichi
Message:

working on V_C_DOMAIN_TYPE mini parser

Location:
ruby/trunk/adl_parser
Files:
6 edited

Legend:

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

    r4 r14  
    1818  class CADLParser < Racc::Parser
    1919
    20 module_eval <<'..end lib/cparser.y modeval..idc9f893ecc2', 'lib/cparser.y', 438
     20module_eval <<'..end lib/cparser.y modeval..id58c48b332c', 'lib/cparser.y', 440
    2121###----------/* keywords */ ---------------------------------------------
    2222@@reserved = {
     
    223223
    224224
    225 ..end lib/cparser.y modeval..idc9f893ecc2
     225..end lib/cparser.y modeval..id58c48b332c
    226226
    227227##### racc 1.4.5 generates ###
     
    881881 :SYM_END_CBLOCK => 19,
    882882 :V_LOCAL_TERM_CODE_REF => 20,
    883  :V_C_DOMAIN_TYPE => 21,
     883 :v_c_domain_type => 21,
    884884 :ERR_C_DOMAIN_TYPE => 22,
    885885 :SYM_USE_NODE => 23,
     
    974974'SYM_END_CBLOCK',
    975975'V_LOCAL_TERM_CODE_REF',
    976 'V_C_DOMAIN_TYPE',
     976'v_c_domain_type',
    977977'ERR_C_DOMAIN_TYPE',
    978978'SYM_USE_NODE',
     
    11151115'uri_value']
    11161116
    1117 Racc_debug_parser = true
     1117Racc_debug_parser = false
    11181118
    11191119##### racc system variables end #####
  • ruby/trunk/adl_parser/lib/cparser.y

    r4 r14  
    5252  | c_ordinal
    5353  | c_primitive_object
    54   | V_C_DOMAIN_TYPE
     54  | v_c_domain_type
     55#  | V_C_DOMAIN_TYPE
    5556  | ERR_C_DOMAIN_TYPE
    5657  | error
     58
    5759
    5860# 'archetype_internal_ref' is a node that refers to a previously defined object node in the same archetype.
  • ruby/trunk/adl_parser/lib/parser.rb

    r4 r14  
    2121    class Parser < Racc::Parser
    2222
    23 module_eval <<'..end lib/parser.y modeval..ida66f0a3b48', 'lib/parser.y', 624
     23module_eval <<'..end lib/parser.y modeval..id7c96f38efa', 'lib/parser.y', 634
    2424###----------/* keywords */ ---------------------------------------------
    2525@@adl_reserved = {
     
    304304      when /\A\<=/   # <=
    305305        yield :SYM_LE, :SYM_LE
     306      when /\A[A-Z][a-zA-Z0-9_]*[ \n]*\</   # V_C_DOMAIN_TYPE
     307        @in_c_domain_type = true
     308        @adl_type.push(:dadl)
     309          yield :START_V_C_DOMAIN_TYPE_BLOCK, :START_V_C_DOMAIN_TYPE_BLOCK
     310###         else
     311###           raise
     312###         end
    306313      when /\A\</   # <
    307314        if @in_interval
     
    501508          @in_interval = false
    502509          yield :SYM_GT, :SYM_GT
     510        elsif @in_c_domain_type
     511          @in_c_domain_type = false
     512          adl_type = @adl_type.pop
     513          assert_at(__FILE__,__LINE__){adl_type == :dadl}
     514          yield :END_V_C_DOMAIN_TYPE_BLOCK, :END_V_C_DOMAIN_TYPE_BLOCK
    503515        else
    504516          adl_type = @adl_type.pop
     
    734746  @in_regexp = false
    735747  @in_interval = false
     748  @in_c_domain_type = false
    736749  yyparse self, :scan
    737750end
     
    758771
    759772
    760 ..end lib/parser.y modeval..ida66f0a3b48
     773..end lib/parser.y modeval..id7c96f38efa
    761774
    762775##### racc 1.4.5 generates ###
     
    764777racc_reduce_table = [
    765778 0, 0, :racc_error,
    766  2, 93, :_reduce_none,
    767  1, 93, :_reduce_none,
    768  8, 94, :_reduce_none,
    769  2, 95, :_reduce_none,
    770  2, 95, :_reduce_none,
    771  1, 103, :_reduce_none,
    772  2, 103, :_reduce_none,
    773  3, 104, :_reduce_none,
    774  1, 105, :_reduce_none,
    775  3, 105, :_reduce_none,
    776  3, 106, :_reduce_none,
    777  1, 106, :_reduce_none,
    778  0, 96, :_reduce_none,
     779 2, 94, :_reduce_none,
     780 1, 94, :_reduce_none,
     781 8, 95, :_reduce_none,
    779782 2, 96, :_reduce_none,
    780783 2, 96, :_reduce_none,
     784 1, 104, :_reduce_none,
     785 2, 104, :_reduce_none,
     786 3, 105, :_reduce_none,
     787 1, 106, :_reduce_none,
     788 3, 106, :_reduce_none,
     789 3, 107, :_reduce_none,
     790 1, 107, :_reduce_none,
     791 0, 97, :_reduce_none,
    781792 2, 97, :_reduce_none,
    782793 2, 97, :_reduce_none,
    783  0, 98, :_reduce_none,
    784794 2, 98, :_reduce_none,
    785795 2, 98, :_reduce_none,
     
    787797 2, 99, :_reduce_none,
    788798 2, 99, :_reduce_none,
     799 0, 100, :_reduce_none,
    789800 2, 100, :_reduce_none,
    790801 2, 100, :_reduce_none,
    791  1, 108, :_reduce_none,
    792  1, 108, :_reduce_none,
    793  5, 109, :_reduce_none,
    794  5, 109, :_reduce_none,
    795  2, 111, :_reduce_none,
     802 2, 101, :_reduce_none,
     803 2, 101, :_reduce_none,
     804 1, 109, :_reduce_none,
     805 1, 109, :_reduce_none,
     806 5, 110, :_reduce_none,
     807 5, 110, :_reduce_none,
     808 2, 112, :_reduce_none,
     809 1, 114, :_reduce_none,
     810 2, 114, :_reduce_none,
    796811 1, 113, :_reduce_none,
    797  2, 113, :_reduce_none,
    798  1, 112, :_reduce_none,
    799  1, 112, :_reduce_none,
     812 1, 113, :_reduce_none,
     813 1, 119, :_reduce_none,
     814 1, 119, :_reduce_none,
     815 1, 119, :_reduce_none,
     816 1, 119, :_reduce_none,
     817 1, 119, :_reduce_none,
     818 1, 119, :_reduce_none,
     819 1, 119, :_reduce_none,
     820 1, 119, :_reduce_none,
     821 1, 119, :_reduce_none,
     822 1, 119, :_reduce_none,
     823 3, 126, :_reduce_none,
     824 1, 127, :_reduce_none,
     825 4, 120, :_reduce_none,
     826 3, 120, :_reduce_none,
     827 6, 121, :_reduce_none,
     828 2, 129, :_reduce_none,
     829 2, 132, :_reduce_none,
     830 3, 132, :_reduce_none,
     831 2, 132, :_reduce_none,
     832 1, 125, :_reduce_none,
     833 1, 133, :_reduce_none,
     834 1, 133, :_reduce_none,
     835 1, 133, :_reduce_none,
     836 1, 133, :_reduce_none,
     837 1, 133, :_reduce_none,
     838 1, 133, :_reduce_none,
     839 1, 133, :_reduce_none,
     840 1, 133, :_reduce_none,
     841 1, 117, :_reduce_none,
    800842 1, 118, :_reduce_none,
    801  1, 118, :_reduce_none,
    802  1, 118, :_reduce_none,
    803  1, 118, :_reduce_none,
    804  1, 118, :_reduce_none,
    805  1, 118, :_reduce_none,
    806  1, 118, :_reduce_none,
    807  1, 118, :_reduce_none,
    808  1, 118, :_reduce_none,
    809  1, 118, :_reduce_none,
    810  4, 119, :_reduce_none,
    811  3, 119, :_reduce_none,
    812  6, 120, :_reduce_none,
    813  2, 126, :_reduce_none,
    814  2, 129, :_reduce_none,
    815  3, 129, :_reduce_none,
    816  2, 129, :_reduce_none,
    817  1, 124, :_reduce_none,
    818  1, 130, :_reduce_none,
    819  1, 130, :_reduce_none,
    820  1, 130, :_reduce_none,
    821  1, 130, :_reduce_none,
    822  1, 130, :_reduce_none,
    823  1, 130, :_reduce_none,
    824  1, 130, :_reduce_none,
    825  1, 130, :_reduce_none,
    826  1, 116, :_reduce_none,
    827  1, 117, :_reduce_none,
    828  2, 117, :_reduce_none,
    829  5, 139, :_reduce_none,
    830  5, 139, :_reduce_none,
    831  5, 139, :_reduce_none,
    832  2, 140, :_reduce_none,
    833  3, 140, :_reduce_none,
    834  1, 141, :_reduce_none,
    835  2, 141, :_reduce_none,
    836  1, 141, :_reduce_none,
    837  0, 127, :_reduce_none,
    838  2, 127, :_reduce_none,
    839  0, 128, :_reduce_none,
    840  2, 128, :_reduce_none,
     843 2, 118, :_reduce_none,
     844 5, 142, :_reduce_none,
     845 5, 142, :_reduce_none,
     846 5, 142, :_reduce_none,
     847 2, 143, :_reduce_none,
     848 3, 143, :_reduce_none,
    841849 1, 144, :_reduce_none,
    842850 2, 144, :_reduce_none,
    843  3, 145, :_reduce_none,
    844  1, 145, :_reduce_none,
    845  3, 145, :_reduce_none,
    846  0, 101, :_reduce_none,
    847  2, 101, :_reduce_none,
    848  2, 101, :_reduce_none,
     851 1, 144, :_reduce_none,
     852 0, 130, :_reduce_none,
     853 2, 130, :_reduce_none,
     854 0, 131, :_reduce_none,
     855 2, 131, :_reduce_none,
     856 1, 147, :_reduce_none,
     857 2, 147, :_reduce_none,
     858 3, 148, :_reduce_none,
     859 1, 148, :_reduce_none,
     860 3, 148, :_reduce_none,
     861 0, 102, :_reduce_none,
    849862 2, 102, :_reduce_none,
    850863 2, 102, :_reduce_none,
    851  1, 107, :_reduce_none,
    852  1, 148, :_reduce_none,
    853  1, 148, :_reduce_none,
    854  1, 149, :_reduce_none,
    855  2, 149, :_reduce_none,
    856  3, 149, :_reduce_none,
    857  3, 151, :_reduce_none,
     864 2, 103, :_reduce_none,
     865 2, 103, :_reduce_none,
     866 1, 108, :_reduce_none,
     867 1, 151, :_reduce_none,
     868 1, 151, :_reduce_none,
    858869 1, 152, :_reduce_none,
    859870 2, 152, :_reduce_none,
     871 3, 152, :_reduce_none,
     872 3, 154, :_reduce_none,
     873 1, 155, :_reduce_none,
     874 2, 155, :_reduce_none,
     875 1, 156, :_reduce_none,
     876 1, 156, :_reduce_none,
    860877 1, 153, :_reduce_none,
    861878 1, 153, :_reduce_none,
    862  1, 150, :_reduce_none,
    863  1, 150, :_reduce_none,
    864  1, 156, :_reduce_none,
    865  2, 156, :_reduce_none,
    866  3, 157, :_reduce_none,
    867  1, 158, :_reduce_none,
    868879 1, 159, :_reduce_none,
    869880 2, 159, :_reduce_none,
    870881 3, 160, :_reduce_none,
    871  3, 161, :_reduce_none,
    872  1, 155, :_reduce_none,
    873  2, 155, :_reduce_none,
    874  2, 163, :_reduce_none,
     882 1, 161, :_reduce_none,
     883 1, 162, :_reduce_none,
     884 2, 162, :_reduce_none,
    875885 3, 163, :_reduce_none,
    876  1, 164, :_reduce_none,
    877  1, 154, :_reduce_none,
    878  2, 154, :_reduce_none,
    879  3, 165, :_reduce_none,
    880  1, 166, :_reduce_none,
    881  1, 166, :_reduce_none,
    882  1, 166, :_reduce_none,
    883  1, 166, :_reduce_none,
    884  1, 166, :_reduce_none,
    885  1, 162, :_reduce_none,
    886  1, 162, :_reduce_none,
    887  1, 162, :_reduce_none,
    888  1, 162, :_reduce_none,
    889  1, 162, :_reduce_none,
    890  1, 162, :_reduce_none,
    891  1, 162, :_reduce_none,
    892  1, 162, :_reduce_none,
    893  1, 162, :_reduce_none,
    894  1, 162, :_reduce_none,
     886 3, 164, :_reduce_none,
     887 1, 158, :_reduce_none,
     888 2, 158, :_reduce_none,
     889 2, 166, :_reduce_none,
     890 3, 166, :_reduce_none,
    895891 1, 167, :_reduce_none,
    896  1, 167, :_reduce_none,
    897  1, 167, :_reduce_none,
    898  1, 167, :_reduce_none,
    899  1, 167, :_reduce_none,
    900  1, 167, :_reduce_none,
    901  1, 167, :_reduce_none,
    902  1, 167, :_reduce_none,
    903  1, 167, :_reduce_none,
    904  1, 168, :_reduce_none,
    905  1, 168, :_reduce_none,
    906  1, 168, :_reduce_none,
    907  1, 168, :_reduce_none,
    908  1, 168, :_reduce_none,
    909  1, 168, :_reduce_none,
    910  1, 115, :_reduce_none,
    911  1, 115, :_reduce_none,
     892 1, 157, :_reduce_none,
     893 2, 157, :_reduce_none,
     894 3, 168, :_reduce_none,
     895 1, 169, :_reduce_none,
     896 1, 169, :_reduce_none,
     897 1, 169, :_reduce_none,
     898 1, 169, :_reduce_none,
     899 1, 169, :_reduce_none,
     900 1, 165, :_reduce_none,
     901 1, 165, :_reduce_none,
     902 1, 165, :_reduce_none,
     903 1, 165, :_reduce_none,
     904 1, 165, :_reduce_none,
     905 1, 165, :_reduce_none,
     906 1, 165, :_reduce_none,
     907 1, 165, :_reduce_none,
     908 1, 165, :_reduce_none,
     909 1, 165, :_reduce_none,
     910 1, 170, :_reduce_none,
     911 1, 170, :_reduce_none,
     912 1, 170, :_reduce_none,
     913 1, 170, :_reduce_none,
     914 1, 170, :_reduce_none,
     915 1, 170, :_reduce_none,
     916 1, 170, :_reduce_none,
     917 1, 170, :_reduce_none,
     918 1, 170, :_reduce_none,
    912919 1, 171, :_reduce_none,
    913  3, 181, :_reduce_none,
    914  3, 181, :_reduce_none,
    915  3, 181, :_reduce_none,
    916  1, 172, :_reduce_none,
    917  2, 172, :_reduce_none,
    918  2, 172, :_reduce_none,
    919  3, 182, :_reduce_none,
    920  3, 182, :_reduce_none,
    921  3, 182, :_reduce_none,
    922  5, 190, :_reduce_none,
    923  6, 190, :_reduce_none,
    924  6, 190, :_reduce_none,
    925  7, 190, :_reduce_none,
    926  4, 190, :_reduce_none,
    927  4, 190, :_reduce_none,
    928  4, 190, :_reduce_none,
    929  4, 190, :_reduce_none,
    930  3, 190, :_reduce_none,
    931  1, 173, :_reduce_none,
    932  2, 173, :_reduce_none,
    933  2, 173, :_reduce_none,
    934  3, 183, :_reduce_none,
    935  3, 183, :_reduce_none,
    936  3, 183, :_reduce_none,
    937  5, 191, :_reduce_none,
    938  6, 191, :_reduce_none,
    939  6, 191, :_reduce_none,
    940  7, 191, :_reduce_none,
    941  4, 191, :_reduce_none,
    942  4, 191, :_reduce_none,
    943  4, 191, :_reduce_none,
    944  4, 191, :_reduce_none,
    945  3, 191, :_reduce_none,
    946  1, 174, :_reduce_none,
     920 1, 171, :_reduce_none,
     921 1, 171, :_reduce_none,
     922 1, 171, :_reduce_none,
     923 1, 171, :_reduce_none,
     924 1, 171, :_reduce_none,
     925 1, 116, :_reduce_none,
     926 1, 116, :_reduce_none,
    947927 1, 174, :_reduce_none,
    948928 3, 184, :_reduce_none,
     
    950930 3, 184, :_reduce_none,
    951931 1, 175, :_reduce_none,
     932 2, 175, :_reduce_none,
     933 2, 175, :_reduce_none,
    952934 3, 185, :_reduce_none,
    953935 3, 185, :_reduce_none,
    954936 3, 185, :_reduce_none,
    955  1, 176, :_reduce_none,
    956  3, 186, :_reduce_none,
    957  3, 186, :_reduce_none,
    958  3, 186, :_reduce_none,
    959  5, 192, :_reduce_none,
    960  6, 192, :_reduce_none,
    961  6, 192, :_reduce_none,
    962  7, 192, :_reduce_none,
    963  4, 192, :_reduce_none,
    964  4, 192, :_reduce_none,
    965  4, 192, :_reduce_none,
    966  4, 192, :_reduce_none,
    967  3, 192, :_reduce_none,
    968  1, 177, :_reduce_none,
    969  3, 187, :_reduce_none,
    970  3, 187, :_reduce_none,
    971  3, 187, :_reduce_none,
    972937 5, 193, :_reduce_none,
    973938 6, 193, :_reduce_none,
     
    979944 4, 193, :_reduce_none,
    980945 3, 193, :_reduce_none,
    981  1, 178, :_reduce_none,
    982  3, 188, :_reduce_none,
    983  3, 188, :_reduce_none,
    984  3, 188, :_reduce_none,
     946 1, 176, :_reduce_none,
     947 2, 176, :_reduce_none,
     948 2, 176, :_reduce_none,
     949 3, 186, :_reduce_none,
     950 3, 186, :_reduce_none,
     951 3, 186, :_reduce_none,
    985952 5, 194, :_reduce_none,
    986953 6, 194, :_reduce_none,
     
    992959 4, 194, :_reduce_none,
    993960 3, 194, :_reduce_none,
     961 1, 177, :_reduce_none,
     962 1, 177, :_reduce_none,
     963 3, 187, :_reduce_none,
     964 3, 187, :_reduce_none,
     965 3, 187, :_reduce_none,
     966 1, 178, :_reduce_none,
     967 3, 188, :_reduce_none,
     968 3, 188, :_reduce_none,
     969 3, 188, :_reduce_none,
    994970 1, 179, :_reduce_none,
    995971 3, 189, :_reduce_none,
     
    1005981 4, 195, :_reduce_none,
    1006982 3, 195, :_reduce_none,
    1007  1, 169, :_reduce_none,
    1008  3, 170, :_reduce_none,
    1009  3, 170, :_reduce_none,
    1010  3, 170, :_reduce_none,
    1011983 1, 180, :_reduce_none,
    1012  1, 110, :_reduce_none,
    1013  2, 110, :_reduce_none,
     984 3, 190, :_reduce_none,
     985 3, 190, :_reduce_none,
     986 3, 190, :_reduce_none,
     987 5, 196, :_reduce_none,
     988 6, 196, :_reduce_none,
     989 6, 196, :_reduce_none,
     990 7, 196, :_reduce_none,
     991 4, 196, :_reduce_none,
     992 4, 196, :_reduce_none,
     993 4, 196, :_reduce_none,
     994 4, 196, :_reduce_none,
    1014995 3, 196, :_reduce_none,
    1015  1, 196, :_reduce_none,
    1016  3, 196, :_reduce_none,
    1017  1, 147, :_reduce_none,
    1018  1, 147, :_reduce_none,
    1019  2, 198, :_reduce_none,
    1020  2, 198, :_reduce_none,
     996 1, 181, :_reduce_none,
     997 3, 191, :_reduce_none,
     998 3, 191, :_reduce_none,
     999 3, 191, :_reduce_none,
     1000 5, 197, :_reduce_none,
     1001 6, 197, :_reduce_none,
     1002 6, 197, :_reduce_none,
     1003 7, 197, :_reduce_none,
     1004 4, 197, :_reduce_none,
     1005 4, 197, :_reduce_none,
     1006 4, 197, :_reduce_none,
     1007 4, 197, :_reduce_none,
     1008 3, 197, :_reduce_none,
     1009 1, 182, :_reduce_none,
     1010 3, 192, :_reduce_none,
     1011 3, 192, :_reduce_none,
     1012 3, 192, :_reduce_none,
    10211013 5, 198, :_reduce_none,
    1022  5, 198, :_reduce_none,
    1023  2, 198, :_reduce_none,
     1014 6, 198, :_reduce_none,
     1015 6, 198, :_reduce_none,
     1016 7, 198, :_reduce_none,
     1017 4, 198, :_reduce_none,
     1018 4, 198, :_reduce_none,
     1019 4, 198, :_reduce_none,
     1020 4, 198, :_reduce_none,
    10241021 3, 198, :_reduce_none,
    1025  3, 198, :_reduce_none,
    1026  3, 198, :_reduce_none,
    1027  3, 198, :_reduce_none,
    1028  3, 198, :_reduce_none,
    1029  3, 198, :_reduce_none,
    1030  3, 198, :_reduce_none,
    1031  3, 198, :_reduce_none,
    1032  3, 198, :_reduce_none,
    1033  3, 198, :_reduce_none,
    1034  3, 197, :_reduce_none,
    1035  1, 197, :_reduce_none,
    1036  1, 197, :_reduce_none,
     1022 1, 172, :_reduce_none,
     1023 3, 173, :_reduce_none,
     1024 3, 173, :_reduce_none,
     1025 3, 173, :_reduce_none,
     1026 1, 183, :_reduce_none,
     1027 1, 111, :_reduce_none,
     1028 2, 111, :_reduce_none,
     1029 3, 199, :_reduce_none,
     1030 1, 199, :_reduce_none,
     1031 3, 199, :_reduce_none,
     1032 1, 150, :_reduce_none,
     1033 1, 150, :_reduce_none,
     1034 2, 201, :_reduce_none,
     1035 2, 201, :_reduce_none,
     1036 5, 201, :_reduce_none,
     1037 5, 201, :_reduce_none,
     1038 2, 201, :_reduce_none,
     1039 3, 201, :_reduce_none,
     1040 3, 201, :_reduce_none,
     1041 3, 201, :_reduce_none,
     1042 3, 201, :_reduce_none,
     1043 3, 201, :_reduce_none,
     1044 3, 201, :_reduce_none,
     1045 3, 201, :_reduce_none,
     1046 3, 201, :_reduce_none,
     1047 3, 201, :_reduce_none,
     1048 3, 201, :_reduce_none,
     1049 3, 200, :_reduce_none,
    10371050 1, 200, :_reduce_none,
    10381051 1, 200, :_reduce_none,
    1039  3, 202, :_reduce_none,
    1040  3, 202, :_reduce_none,
    1041  3, 202, :_reduce_none,
    1042  3, 202, :_reduce_none,
    1043  3, 202, :_reduce_none,
    1044  3, 201, :_reduce_none,
    1045  1, 201, :_reduce_none,
    1046  1, 201, :_reduce_none,
    1047  1, 201, :_reduce_none,
    1048  1, 125, :_reduce_none,
    1049  2, 125, :_reduce_none,
    1050  1, 199, :_reduce_none,
    1051  3, 199, :_reduce_none,
    1052  2, 203, :_reduce_none,
    10531052 1, 203, :_reduce_none,
    1054  0, 142, :_reduce_none,
    1055  5, 142, :_reduce_none,
    1056  1, 204, :_reduce_none,
    1057  3, 204, :_reduce_none,
    1058  5, 143, :_reduce_none,
    1059  1, 205, :_reduce_none,
     1053 1, 203, :_reduce_none,
    10601054 3, 205, :_reduce_none,
    10611055 3, 205, :_reduce_none,
    10621056 3, 205, :_reduce_none,
    1063  5, 205, :_reduce_none,
    1064  5, 205, :_reduce_none,
    1065  5, 205, :_reduce_none,
    1066  5, 205, :_reduce_none,
     1057 3, 205, :_reduce_none,
     1058 3, 205, :_reduce_none,
     1059 3, 204, :_reduce_none,
     1060 1, 204, :_reduce_none,
     1061 1, 204, :_reduce_none,
     1062 1, 204, :_reduce_none,
     1063 1, 128, :_reduce_none,
     1064 2, 128, :_reduce_none,
     1065 1, 202, :_reduce_none,
     1066 3, 202, :_reduce_none,
     1067 2, 206, :_reduce_none,
     1068 1, 206, :_reduce_none,
     1069 0, 145, :_reduce_none,
     1070 5, 145, :_reduce_none,
    10671071 1, 207, :_reduce_none,
    1068  1, 207, :_reduce_none,
    1069  0, 114, :_reduce_none,
    1070  5, 114, :_reduce_none,
    1071  2, 114, :_reduce_none,
    1072  1, 206, :_reduce_none,
    1073  3, 206, :_reduce_none,
     1072 3, 207, :_reduce_none,
     1073 5, 146, :_reduce_none,
    10741074 1, 208, :_reduce_none,
    1075  1, 208, :_reduce_none,
    1076  1, 208, :_reduce_none,
    1077  1, 131, :_reduce_none,
    1078  3, 131, :_reduce_none,
    1079  3, 131, :_reduce_none,
    1080  1, 209, :_reduce_none,
    1081  1, 209, :_reduce_none,
    1082  1, 209, :_reduce_none,
    1083  1, 132, :_reduce_none,
    1084  3, 132, :_reduce_none,
    1085  3, 132, :_reduce_none,
     1075 3, 208, :_reduce_none,
     1076 3, 208, :_reduce_none,
     1077 3, 208, :_reduce_none,
     1078 5, 208, :_reduce_none,
     1079 5, 208, :_reduce_none,
     1080 5, 208, :_reduce_none,
     1081 5, 208, :_reduce_none,
    10861082 1, 210, :_reduce_none,
    10871083 1, 210, :_reduce_none,
    1088  1, 210, :_reduce_none,
    1089  1, 133, :_reduce_none,
    1090  3, 133, :_reduce_none,
    1091  3, 133, :_reduce_none,
     1084 0, 115, :_reduce_none,
     1085 5, 115, :_reduce_none,
     1086 2, 115, :_reduce_none,
     1087 1, 209, :_reduce_none,
     1088 3, 209, :_reduce_none,
    10921089 1, 211, :_reduce_none,
    10931090 1, 211, :_reduce_none,
     
    11031100 3, 135, :_reduce_none,
    11041101 1, 213, :_reduce_none,
    1105  3, 213, :_reduce_none,
    11061102 1, 213, :_reduce_none,
    11071103 1, 213, :_reduce_none,
     
    11091105 3, 136, :_reduce_none,
    11101106 3, 136, :_reduce_none,
    1111  1, 215, :_reduce_none,
    1112  1, 215, :_reduce_none,
    1113  3, 215, :_reduce_none,
     1107 1, 214, :_reduce_none,
     1108 1, 214, :_reduce_none,
     1109 1, 214, :_reduce_none,
    11141110 1, 137, :_reduce_none,
    11151111 3, 137, :_reduce_none,
    11161112 3, 137, :_reduce_none,
    1117  1, 216, :_reduce_none,
    1118  1, 216, :_reduce_none,
    1119  3, 216, :_reduce_none,
    1120  3, 216, :_reduce_none,
     1113 1, 215, :_reduce_none,
     1114 1, 215, :_reduce_none,
     1115 1, 215, :_reduce_none,
    11211116 1, 138, :_reduce_none,
    11221117 3, 138, :_reduce_none,
    11231118 3, 138, :_reduce_none,
     1119 1, 216, :_reduce_none,
     1120 3, 216, :_reduce_none,
     1121 1, 216, :_reduce_none,
     1122 1, 216, :_reduce_none,
     1123 1, 139, :_reduce_none,
     1124 3, 139, :_reduce_none,
     1125 3, 139, :_reduce_none,
     1126 1, 218, :_reduce_none,
     1127 1, 218, :_reduce_none,
     1128 3, 218, :_reduce_none,
     1129 1, 140, :_reduce_none,
     1130 3, 140, :_reduce_none,
     1131 3, 140, :_reduce_none,
     1132 1, 219, :_reduce_none,
     1133 1, 219, :_reduce_none,
     1134 3, 219, :_reduce_none,
     1135 3, 219, :_reduce_none,
     1136 1, 141, :_reduce_none,
     1137 3, 141, :_reduce_none,
     1138 3, 141, :_reduce_none,
     1139 1, 124, :_reduce_none,
     1140 3, 124, :_reduce_none,
     1141 3, 124, :_reduce_none,
     1142 1, 220, :_reduce_none,
     1143 3, 220, :_reduce_none,
     1144 3, 221, :_reduce_none,
    11241145 1, 123, :_reduce_none,
    1125  3, 123, :_reduce_none,
    1126  3, 123, :_reduce_none,
    1127  1, 217, :_reduce_none,
    1128  3, 217, :_reduce_none,
    1129  3, 218, :_reduce_none,
     1146 1, 123, :_reduce_none,
     1147 3, 222, :_reduce_none,
     1148 0, 223, :_reduce_none,
     1149 1, 223, :_reduce_none,
     1150 2, 223, :_reduce_none,
    11301151 1, 122, :_reduce_none,
    1131  1, 122, :_reduce_none,
    1132  3, 219, :_reduce_none,
    1133  0, 220, :_reduce_none,
    1134  1, 220, :_reduce_none,
    1135  2, 220, :_reduce_none,
    1136  1, 121, :_reduce_none,
    1137  1, 146, :_reduce_none,
    1138  1, 146, :_reduce_none,
    1139  1, 214, :_reduce_none ]
    1140 
    1141 racc_reduce_n = 375
    1142 
    1143 racc_shift_n = 630
     1152 1, 149, :_reduce_none,
     1153 1, 149, :_reduce_none,
     1154 1, 217, :_reduce_none ]
     1155
     1156racc_reduce_n = 377
     1157
     1158racc_shift_n = 634
    11441159
    11451160racc_action_table = [
    1146    537,   192,   490,   172,   488,    80,    83,   486,    63,   485,
    1147     93,   588,   243,   262,    59,   482,   409,   574,   185,   187,
    1148    323,   324,   465,    12,   443,   337,   133,   135,   549,   134,
    1149    136,   597,    82,    46,   242,    46,   558,   533,   535,   538,
    1150    385,   577,   471,    14,    53,   261,    80,    83,   576,   173,
    1151     40,    42,   376,   188,   579,    71,   145,   469,    76,   357,
    1152    362,   395,    85,    88,    91,    69,   550,    69,    91,   549,
    1153     88,    85,    69,    76,   575,    85,   129,   558,   533,   535,
    1154    538,   444,    80,    83,   372,   374,   377,   553,   190,   181,
    1155    349,    40,    42,   376,   196,   393,    71,   145,    69,    76,
    1156    357,   362,   467,    85,    88,    91,    69,   550,   497,   270,
    1157    185,   187,    91,   391,   110,   531,    91,    85,   528,    80,
    1158     83,   529,   530,   385,   386,   372,   374,   377,   553,   376,
    1159    236,   349,    71,   145,   130,    76,   357,   362,   624,    85,
    1160     88,    91,    69,    80,    83,   188,   323,   324,   501,    88,
    1161    475,   185,   187,   320,   322,   126,    88,   314,   130,   235,
    1162     89,   372,   374,   377,    40,    42,    85,   349,    69,    71,
    1163    259,    69,    76,   121,   123,    80,    83,   185,   187,   206,
    1164    190,   181,   113,   118,   185,   187,   188,   189,   191,   129,
    1165    130,   182,   178,    71,   183,   186,    76,   121,   123,    76,
    1166    267,   320,   322,    71,     1,   273,   113,   118,   316,    80,
    1167     83,   206,   188,   129,    88,   185,   187,   185,   187,   188,
    1168    141,   190,   181,     6,   248,    71,   185,   187,    76,   121,
    1169    123,    80,    83,   185,   187,   179,   189,   191,   113,   118,
    1170    182,   234,   267,   183,   186,   129,   248,   190,   181,   184,
    1171    188,    71,   188,   233,   190,   181,    80,    83,    16,    71,
    1172    504,   188,    76,    80,    83,    80,    83,   203,   188,   323,
    1173    324,   248,   323,   324,    80,    83,    17,   232,   248,   129,
    1174    248,    71,   503,  -372,    76,   190,   181,   190,   181,   130,
    1175     80,    83,    80,    83,   323,   324,   190,   181,   184,   323,
    1176    324,   129,    24,   190,   181,   248,    71,   248,   572,    76,
    1177    206,   320,   322,    71,   245,    71,    76,   238,    76,    80,
    1178     83,   329,    76,   389,    71,    76,   129,    76,   121,   123,
    1179     25,    80,    83,   129,   130,   129,   246,   113,   118,    98,
    1180     71,   239,    71,    76,   129,    76,   130,    76,   320,   322,
    1181    323,   324,    76,   197,   425,   126,    80,    83,    40,    42,
    1182    129,    71,   129,   232,    40,    42,   569,   206,   318,    71,
    1183    495,   248,    76,   121,   123,    80,    83,   320,   322,    40,
    1184     42,    71,   113,   118,    76,   121,   123,    80,    83,   129,
    1185    130,   206,   121,   123,   113,   118,   179,   326,    71,    80,
    1186     83,   129,   130,    76,   204,   312,    71,    98,   204,    76,
    1187    231,   126,   456,   410,   130,    91,   320,   322,    80,    83,
    1188     40,    42,   411,   206,  -373,    71,   129,   453,    76,   121,
    1189    123,    80,    83,   248,    20,   206,    21,    71,   113,   118,
    1190     76,   121,   123,    80,    83,   129,   130,    40,    42,    71,
    1191    113,   118,    76,   121,   123,   595,   596,   129,   130,    80,
    1192     83,   412,   113,   118,   320,   322,    71,   206,    71,   129,
    1193     67,    76,    80,    83,   248,   199,   200,   201,   202,   206,
    1194     31,    71,   320,   322,    76,   121,   123,   130,   129,   320,
    1195    322,   301,   302,    71,   113,   118,    76,   121,   123,   456,
    1196     20,   129,    21,   413,    80,    83,   113,   118,   126,    71,
    1197    268,    46,    76,   129,    71,    29,    30,    40,    42,   130,
    1198     40,    42,    71,    80,    83,    76,   121,   123,   334,   129,
    1199     80,    83,    71,    78,    79,   113,   118,   414,   248,    71,
    1200    126,   332,   129,   331,   415,   248,   287,   288,   103,    40,
    1201     42,    80,    83,   416,    71,   417,    59,    76,   121,   123,
    1202    199,   200,   201,   202,    78,    79,   130,   113,   118,    80,
    1203     83,   279,   280,    71,   129,    46,    76,   614,   615,   616,
    1204     71,   303,   304,    76,   418,    80,    83,   126,   199,   200,
    1205    201,   202,   419,   129,    40,    42,    40,    42,   277,   278,
    1206    129,    71,   275,   276,    76,   121,   123,    80,    83,    78,
    1207     79,   420,  -102,   421,   113,   118,   166,   628,   629,    71,
    1208    145,   129,    76,    78,    79,    82,    85,    88,    91,    69,
    1209    141,    73,    89,    80,    83,    71,   406,   407,    76,    78,
    1210     79,    82,    85,    88,    91,    69,    33,    73,    80,    83,
    1211    320,   322,   223,   240,   473,   217,    31,    71,   219,   220,
    1212     76,    80,    83,    31,    85,    88,    91,    69,   199,   200,
    1213    201,   202,    80,    83,   320,   322,   320,   322,   404,   405,
    1214    423,   402,   403,    71,   400,   401,    76,    46,   398,   399,
    1215     85,    88,    91,    69,    46,   230,    40,    42,    71,   229,
    1216     71,    76,   426,    40,    42,    85,    88,    91,    69,   456,
    1217    427,    71,   396,   397,    76,   428,   429,   430,    85,    88,
    1218     91,    69,    71,   431,   453,    76,    71,   133,   135,    85,
    1219     88,    91,    69,   199,   200,   201,   202,   199,   200,   201,
    1220    202,   199,   200,   201,   202,   199,   200,   201,   202,   199,
    1221    200,   201,   202,   134,   136,   432,   433,   434,   435,   436,
    1222    437,   438,   439,   440,   441,   442,   230,   228,   231,   232,
    1223    234,   445,   235,   446,   447,   386,   449,   450,   452,   227,
    1224    226,   458,    85,   460,    88,   462,    91,   225,   224,   213,
    1225    212,   211,   210,   476,    69,   478,   209,   480,   206,   196,
    1226    194,   180,   175,    98,   492,   493,    88,   496,   137,   499,
    1227     91,   104,    46,   505,   507,   508,    95,   510,   511,   512,
    1228    513,    85,   515,    88,   517,    91,   519,    69,   521,    66,
    1229    523,    62,   525,   526,   527,    61,   532,    31,   559,   560,
    1230     53,   562,   563,   564,   565,   566,   567,    69,    69,    69,
    1231     69,   568,  -102,   387,   203,   571,   339,    51,    50,   581,
    1232    582,   196,   584,   586,   587,    85,   590,   591,    28,    26,
    1233     82,   237,   598,   599,   141,   129,   569,   604,   605,   606,
    1234    607,   608,    18,    69,    15,   618,    10,   620,     9,   621,
    1235    622,   623,     8,     7,   626,   627,   318,   509 ]
     1161   574,   497,   475,   144,   409,    90,    96,   472,   467,   469,
     1162    24,   591,   572,   576,     1,   466,   376,    16,   152,   155,
     1163   323,   324,   108,    67,   368,    54,   162,   112,   524,   163,
     1164    67,   262,   124,     6,   236,    17,   536,   511,    25,   514,
     1165   516,   513,   543,    49,   571,   540,    90,    96,   541,   542,
     1166    49,    44,    46,   317,   156,   495,    78,   183,   112,    86,
     1167   294,   299,   410,   124,   126,   109,   112,   526,   112,   524,
     1168   573,   124,   109,   126,    86,   493,   443,   536,   511,    71,
     1169   514,   516,   273,    90,    96,   309,   314,   279,   532,   148,
     1170   149,   287,    44,    46,   317,   147,   435,    78,   183,   112,
     1171    86,   294,   299,   491,   124,   126,   109,   112,   526,   480,
     1172   160,   109,   152,   155,   431,   143,   628,   217,   463,   323,
     1173   324,    90,    96,   382,   383,   433,   309,   314,   279,   532,
     1174   126,   317,   287,   112,    78,   183,   100,    86,   294,   299,
     1175   230,   124,   126,   109,   112,    90,    96,   371,   156,   216,
     1176    88,    94,   109,   152,   155,   133,   126,   124,   138,   142,
     1177   100,    76,   127,   309,   314,   279,    90,    96,   124,   287,
     1178   152,   155,    78,    86,    78,    86,    88,    94,   152,   155,
     1179   126,   100,   138,   148,   149,    82,    85,   152,   155,   156,
     1180   157,   158,    71,   459,   150,   390,    78,   151,   153,    86,
     1181    88,    94,   134,    98,   152,   155,   156,   152,   155,    82,
     1182    85,   237,    44,    46,   156,   458,    71,    78,    90,    96,
     1183    86,    88,    94,   156,   148,   149,   129,   391,   323,   324,
     1184    82,    85,   568,   219,   382,   383,   274,    71,   323,   324,
     1185   156,   148,   149,   156,   152,   155,   211,   157,   158,   148,
     1186   149,   150,   393,   154,   151,   153,   382,   383,   148,   149,
     1187   236,    62,   165,   166,   167,   168,    90,    96,   212,    78,
     1188    12,   395,    86,   323,   324,   148,   149,   489,   148,   149,
     1189   156,   100,    86,    44,    46,    78,   215,    90,    96,    71,
     1190    14,   396,    86,   323,   324,   382,   383,   417,   102,    90,
     1191    96,   378,   100,   138,   341,   342,   164,    78,   214,   239,
     1192   154,    90,    96,   180,   100,   148,   149,    78,    90,    96,
     1193    86,    88,    94,  -374,   138,   397,   100,    86,   382,   383,
     1194    82,    85,   456,   219,    90,    96,   138,    71,    78,    44,
     1195    46,    86,    88,    94,    90,    96,    78,    86,   138,   219,
     1196    78,    82,    85,    86,    88,    94,    90,    96,    71,   100,
     1197   398,   329,    78,    82,    85,    86,    88,    94,   123,    78,
     1198    71,   100,    86,   374,    37,    82,    85,    90,    96,    78,
     1199   399,    98,    71,   109,    33,    78,    90,    96,    86,    71,
     1200    44,    46,   100,   138,    58,    78,   382,   383,    86,    88,
     1201    94,   219,    90,    96,   386,    71,   385,    78,    82,    85,
     1202    86,    88,    94,   400,    98,    71,    49,   219,   323,   324,
     1203    82,    85,    49,    44,    46,    44,    46,    71,    78,    90,
     1204    96,    86,    88,    94,   171,    90,    96,    78,   401,   209,
     1205    86,    82,    85,   380,   100,   479,   388,    78,    71,    33,
     1206   219,  -375,   402,    78,   382,   383,    86,    71,   403,    90,
     1207    96,    90,    96,   382,   383,    20,   138,    21,   322,   382,
     1208   383,   404,    86,    71,   219,   405,   100,    90,    96,   169,
     1209    78,    49,   170,    86,    88,    94,    78,    90,    96,    86,
     1210    44,    46,   219,    82,    85,   406,    90,    96,    98,   414,
     1211    71,   407,   100,    90,    96,    78,    71,    44,    46,   408,
     1212    78,   219,    78,    86,   413,    86,    88,    94,   219,   265,
     1213    78,    90,    96,   261,    98,    82,    85,    20,    78,    21,
     1214    71,    86,    71,    44,    46,   267,   219,   102,    78,   343,
     1215   344,    86,    88,    94,    90,    96,   268,    78,    71,   570,
     1216    86,    82,    85,   268,    78,    55,   266,    86,    71,   100,
     1217   382,   383,    90,    96,   260,    33,   259,    71,   163,    90,
     1218    96,   170,    78,   258,    71,    86,   264,   219,    44,    46,
     1219    33,    98,   165,   166,   167,   168,   180,    90,    96,   380,
     1220    44,    46,    71,   339,   340,    78,   414,    49,    86,    88,
     1221    94,    90,    96,   618,   619,   620,    44,    46,    82,    85,
     1222   265,    78,    49,    78,   266,    71,    86,   127,    90,    96,
     1223    78,    44,    46,    86,   119,   121,   123,   124,   126,   109,
     1224   112,  -104,   115,    71,   267,   202,    90,    96,    78,   183,
     1225   257,    86,   119,   121,   123,   124,   126,   109,   112,   180,
     1226   115,   256,    78,   382,   383,    86,   255,   498,   436,   124,
     1227   126,   109,   112,    90,    96,   382,   383,   252,   437,    78,
     1228   245,   438,    86,   249,   251,   439,   124,   126,   109,   112,
     1229    90,    96,   440,   326,   351,   352,   441,    78,   119,   121,
     1230    86,   599,   600,   254,   124,   126,   109,   112,    29,    30,
     1231   444,   414,   365,   366,    78,   165,   166,   167,   168,   165,
     1232   166,   167,   168,   445,    78,   446,   413,    86,   119,   121,
     1233   447,   124,   126,   109,   112,   165,   166,   167,   168,   273,
     1234   274,    78,    44,    46,    86,   119,   121,   448,   124,   126,
     1235   109,   112,   165,   166,   167,   168,   165,   166,   167,   168,
     1236   165,   166,   167,   168,   165,   166,   167,   168,   632,   633,
     1237   428,   429,   426,   427,   424,   425,   422,   423,   420,   421,
     1238   418,   419,   331,   332,   449,   450,   451,   452,   453,   454,
     1239   455,   243,   162,   169,   242,   460,   461,   241,   240,   239,
     1240   238,   471,   138,   474,   171,   478,   112,   142,   482,   268,
     1241   484,   485,   486,   207,   102,   161,   147,   141,   138,   136,
     1242   500,   124,   502,   126,   504,   109,   506,   112,    49,   509,
     1243   510,   131,   538,   539,    69,    68,   545,   546,    62,   548,
     1244   124,   550,   126,   552,   109,   554,   112,    33,   557,   558,
     1245   559,   560,   561,   562,   563,    57,   566,   109,   164,  -104,
     1246   263,   126,    51,   577,   579,   147,   581,   583,   112,   112,
     1247   112,    32,   584,   585,   586,   587,   588,   589,   590,   276,
     1248   593,   594,    28,   597,    27,   277,   601,   602,   603,   318,
     1249    71,   570,   607,   609,   610,   611,    18,   616,   124,    15,
     1250   622,    10,     9,   624,   625,   626,   627,     8,     7,   630,
     1251   631,   123,   112 ]
    12361252
    12371253racc_action_check = [
    1238    504,   113,   437,   104,   436,   504,   504,   435,    48,   434,
    1239     54,   570,   178,   196,    39,   433,   288,   544,   253,   253,
    1240    433,   433,   397,     6,   367,   239,    80,    83,   504,    80,
    1241     83,   582,   239,    39,   178,    48,   504,   504,   504,   504,
    1242    504,   545,   403,     6,    54,   196,   545,   545,   544,   104,
    1243    504,   504,   504,   253,   545,   504,   504,   401,   504,   504,
    1244    504,   280,   504,   504,   504,   504,   504,   437,   436,   545,
    1245    435,   434,   288,   433,   544,   397,   113,   545,   545,   545,
    1246    545,   367,   243,   243,   504,   504,   504,   504,   253,   253,
    1247    504,   545,   545,   545,   570,   278,   545,   545,   403,   545,
    1248    545,   545,   399,   545,   545,   545,   545,   545,   442,   210,
    1249    256,   256,   401,   276,    66,   493,   280,   210,   493,    66,
    1250     66,   493,   493,   245,   245,   545,   545,   545,   545,   243,
    1251    167,   545,   243,   243,    66,   243,   243,   243,   620,   243,
    1252    243,   243,   243,   620,   620,   256,   407,   407,   446,   278,
    1253    407,   258,   258,   446,   446,    66,   399,   226,   620,   166,
    1254    442,   243,   243,   243,    66,    66,   276,   243,   226,    66,
    1255    194,   493,    66,    66,    66,   194,   194,   251,   251,   620,
    1256    256,   256,    66,    66,   207,   207,   258,   207,   207,    66,
    1257    194,   207,   108,   620,   207,   207,   620,   620,   620,   407,
    1258    207,   575,   575,   446,     0,   212,   620,   620,   227,   183,
    1259    183,   194,   251,   620,   212,   249,   249,   250,   250,   207,
    1260    227,   258,   258,     0,   183,   194,   388,   388,   194,   194,
    1261    194,   248,   248,   111,   111,   108,   111,   111,   194,   194,
    1262    111,   164,   388,   111,   111,   194,   248,   251,   251,   207,
    1263    249,   575,   250,   163,   207,   207,   185,   185,    10,   183,
    1264    449,   388,   183,   182,   182,   186,   186,   122,   111,   425,
    1265    425,   185,   234,   234,   130,   130,    10,   161,   182,   183,
    1266    186,   248,   449,   122,   248,   249,   249,   250,   250,   130,
    1267    184,   184,   181,   181,   475,   475,   388,   388,   111,   231,
    1268    231,   248,    18,   111,   111,   184,   185,   181,   538,   185,
    1269    130,   576,   576,   182,   180,   186,   182,   169,   186,   604,
    1270    604,   234,   425,   261,   130,   234,   185,   130,   130,   130,
    1271     18,   202,   202,   182,   604,   186,   180,   130,   130,    95,
    1272    184,   170,   181,   184,   130,   181,   202,   475,   232,   232,
    1273    304,   304,   231,   118,   304,   604,   187,   187,   538,   538,
    1274    184,   576,   181,   534,   604,   604,   534,   202,   440,   604,
    1275    440,   187,   604,   604,   604,   107,   107,   586,   586,    95,
    1276     95,   202,   604,   604,   202,   202,   202,   201,   201,   604,
    1277    107,   179,   118,   118,   202,   202,   205,   232,   232,   200,
    1278    200,   202,   201,   304,   206,   225,   187,    62,   126,   187,
    1279    160,   107,   586,   289,   200,   225,   423,   423,   191,   191,
    1280    107,   107,   290,   201,   126,   107,   187,   586,   107,   107,
    1281    107,   199,   199,   191,    30,   200,    30,   201,   107,   107,
    1282    201,   201,   201,   197,   197,   107,   199,    62,    62,   200,
    1283    201,   201,   200,   200,   200,   580,   580,   201,   197,   190,
    1284    190,   291,   200,   200,   508,   508,   423,   199,   191,   200,
    1285     50,   191,   610,   610,   190,   613,   613,   613,   613,   197,
    1286     50,   199,   473,   473,   199,   199,   199,   610,   191,   230,
    1287    230,   221,   221,   197,   199,   199,   197,   197,   197,   508,
    1288     14,   199,    14,   292,   617,   617,   197,   197,   610,   190,
    1289    208,    50,   190,   197,   508,    22,    22,   610,   610,   617,
    1290     50,    50,   610,   189,   189,   610,   610,   610,   237,   190,
    1291    188,   188,   473,   237,   237,   610,   610,   293,   189,   230,
    1292    617,   235,   610,   235,   294,   188,   218,   218,    64,   617,
    1293    617,   608,   608,   295,   617,   296,    64,   617,   617,   617,
    1294    208,   208,   208,   208,   233,   233,   608,   617,   617,    98,
    1295     98,   216,   216,   189,   617,    64,   189,   607,   607,   607,
    1296    188,   222,   222,   188,   297,    53,    53,   608,   263,   263,
    1297    263,   263,   298,   189,   535,   535,   608,   608,   215,   215,
    1298    188,   608,   214,   214,   608,   608,   608,   217,   217,   444,
    1299    444,   299,    98,   300,   608,   608,    98,   623,   623,    98,
    1300     98,   608,    98,    98,    98,    98,    98,    98,    98,    98,
    1301     98,    98,    53,   223,   223,    53,   286,   286,    53,    53,
    1302     53,    53,    53,    53,    53,    53,    26,    53,   145,   145,
    1303    405,   405,   145,   175,   405,   145,    26,   217,   145,   145,
    1304    217,   219,   219,   175,   217,   217,   217,   217,   264,   264,
    1305    264,   264,   220,   220,   389,   389,   302,   302,   285,   285,
    1306    302,   284,   284,   223,   283,   283,   223,    26,   282,   282,
    1307    223,   223,   223,   223,   175,   158,    26,    26,   145,   156,
    1308    405,   145,   305,   175,   175,   145,   145,   145,   145,   389,
    1309    306,   219,   281,   281,   219,   307,   308,   309,   219,   219,
    1310    219,   219,   220,   310,   389,   220,   302,   320,   322,   220,
    1311    220,   220,   220,   266,   266,   266,   266,   260,   260,   260,
    1312    260,   119,   119,   119,   119,   265,   265,   265,   265,   625,
    1313    625,   625,   625,   323,   324,   339,   341,   344,   347,   351,
    1314    354,   357,   358,   360,   362,   363,   365,   155,   369,   370,
    1315    373,   375,   376,   378,   380,   383,   384,   386,   387,   153,
    1316    150,   390,   391,   392,   393,   394,   395,   147,   146,   144,
    1317    143,   142,   140,   408,   409,   422,   139,   424,   129,   115,
    1318    114,   109,   105,   100,   438,   439,   209,   441,    87,   443,
    1319    211,    65,    59,   450,   451,   453,    56,   459,   461,   463,
    1320    464,   465,   466,   467,   468,   469,   470,   471,   472,    49,
    1321    474,    47,   477,   479,   481,    46,   503,    37,   505,   507,
    1322     36,   514,   516,   518,   520,   522,   524,   528,   529,   530,
    1323    531,   532,    31,   246,   536,   537,   242,    28,    27,   553,
    1324    554,   556,   559,   560,   569,   238,   573,   574,    20,    19,
    1325    236,   168,   584,   585,   229,   589,   593,   597,   598,   600,
    1326    601,   603,    11,   224,     8,   609,     5,   612,     4,   614,
    1327    615,   616,     3,     2,   621,   622,   228,   455 ]
     1254   529,   427,   405,    82,   312,   529,   529,   403,   400,   401,
     1255    18,   567,   527,   529,     0,   399,   261,    10,   319,   319,
     1256   399,   399,    59,    47,   255,    31,    90,   261,   529,    90,
     1257    59,   196,   255,     0,   319,    10,   529,   529,    18,   529,
     1258   529,   459,   478,    47,   527,   478,   459,   459,   478,   478,
     1259    59,   529,   529,   529,   319,   425,   529,   529,   427,   529,
     1260   529,   529,   312,   529,   529,   529,   529,   529,   405,   459,
     1261   527,   400,   403,   401,   399,   423,   352,   459,   459,    82,
     1262   459,   459,   459,   215,   215,   529,   529,   529,   529,   319,
     1263   319,   529,   459,   459,   459,   567,   344,   459,   459,   478,
     1264   459,   459,   459,   421,   459,   459,   459,   459,   459,   408,
     1265    85,   425,   222,   222,   340,    81,   622,   147,   398,   267,
     1266   267,   622,   622,   398,   398,   342,   459,   459,   459,   459,
     1267   423,   215,   459,   352,   215,   215,   622,   215,   215,   215,
     1268   161,   215,   215,   215,   215,   161,   161,   257,   222,   147,
     1269    85,    85,   344,   225,   225,    69,   257,   421,   622,    81,
     1270   161,    54,   408,   215,   215,   215,    54,    54,   340,   215,
     1271   228,   228,   622,   267,   398,   622,   622,   622,   224,   224,
     1272   342,    54,   161,   222,   222,   622,   622,    84,    84,   225,
     1273    84,    84,   622,   390,    84,   269,   161,    84,    84,   161,
     1274   161,   161,    69,    54,   229,   229,   228,   221,   221,   161,
     1275   161,   173,    54,    54,   224,   390,   161,    54,   158,   158,
     1276    54,    54,    54,    84,   225,   225,    63,   270,   417,   417,
     1277    54,    54,   516,   158,   456,   456,   272,    54,   489,   489,
     1278   229,   228,   228,   221,   172,   172,   141,   172,   172,   224,
     1279   224,   172,   274,    84,   172,   172,   498,   498,    84,    84,
     1280   172,    63,   173,   173,   173,   173,   165,   165,   141,   158,
     1281     6,   276,   158,   419,   419,   229,   229,   419,   221,   221,
     1282   172,   165,   417,   516,   516,   456,   143,   168,   168,   158,
     1283     6,   277,   489,   332,   332,   573,   573,   332,    57,   167,
     1284   167,   262,   168,   165,   247,   247,    91,   498,   143,   280,
     1285   172,   166,   166,   262,   167,   172,   172,   165,   219,   219,
     1286   165,   165,   165,    91,   168,   281,   166,   419,   366,   366,
     1287   165,   165,   366,   219,   157,   157,   167,   165,   168,    57,
     1288    57,   168,   168,   168,   623,   623,   573,   332,   166,   157,
     1289   167,   168,   168,   167,   167,   167,   160,   160,   168,   623,
     1290   282,   243,   166,   167,   167,   166,   166,   166,   243,   219,
     1291   167,   160,   219,   260,    27,   166,   166,   616,   616,   366,
     1292   285,   623,   166,   260,    27,   157,   156,   156,   157,   219,
     1293   623,   623,   616,   160,    38,   623,   268,   268,   623,   623,
     1294   623,   156,   155,   155,   266,   157,   266,   160,   623,   623,
     1295   160,   160,   160,   289,   616,   623,    27,   155,   239,   239,
     1296   160,   160,    38,   616,   616,    27,    27,   160,   616,   100,
     1297   100,   616,   616,   616,    98,   154,   154,   156,   292,   136,
     1298   156,   616,   616,   407,   100,   407,   268,   268,   616,   136,
     1299   154,    98,   294,   155,   265,   265,   155,   156,   296,   153,
     1300   153,   612,   612,   318,   318,    14,   100,    14,   239,   571,
     1301   571,   299,   239,   155,   153,   300,   612,   148,   148,    96,
     1302   100,   136,    96,   100,   100,   100,   154,   607,   607,   154,
     1303   136,   136,   148,   100,   100,   303,   151,   151,   612,   318,
     1304   100,   305,   607,   150,   150,   265,   154,   612,   612,   307,
     1305   153,   151,   612,   153,   318,   612,   612,   612,   150,   310,
     1306   571,   149,   149,   193,   607,   612,   612,    30,   148,    30,
     1307   153,   148,   612,   607,   607,   315,   149,   131,   607,   248,
     1308   248,   607,   607,   607,    75,    75,   518,   151,   148,   518,
     1309   151,   607,   607,   316,   150,    32,   317,   150,   607,    75,
     1310   485,   485,   152,   152,   190,    32,   189,   151,   323,    62,
     1311    62,   324,   149,   188,   150,   149,   199,   152,   131,   131,
     1312   511,    75,   233,   233,   233,   233,   264,   102,   102,   263,
     1313    75,    75,   149,   246,   246,    75,   485,    32,    75,    75,
     1314    75,   251,   251,   610,   610,   610,    32,    32,    75,    75,
     1315   201,   485,   511,   152,   202,    75,   152,    62,   245,   245,
     1316    62,   511,   511,    62,    62,    62,    62,    62,    62,    62,
     1317    62,   102,    62,   152,   204,   102,   249,   249,   102,   102,
     1318   187,   102,   102,   102,   102,   102,   102,   102,   102,   102,
     1319   102,   186,   251,   429,   429,   251,   185,   429,   345,   251,
     1320   251,   251,   251,   183,   183,   583,   583,   183,   346,   245,
     1321   183,   347,   245,   183,   183,   348,   245,   245,   245,   245,
     1322   252,   252,   349,   241,   250,   250,   350,   249,   241,   241,
     1323   249,   578,   578,   184,   249,   249,   249,   249,    22,    22,
     1324   353,   583,   253,   253,   429,   231,   231,   231,   231,   232,
     1325   232,   232,   232,   354,   183,   355,   583,   183,   238,   238,
     1326   356,   183,   183,   183,   183,    95,    95,    95,    95,   211,
     1327   211,   252,   514,   514,   252,   410,   410,   357,   252,   252,
     1328   252,   252,   234,   234,   234,   234,   235,   235,   235,   235,
     1329   615,   615,   615,   615,   629,   629,   629,   629,   627,   627,
     1330   338,   338,   337,   337,   336,   336,   335,   335,   334,   334,
     1331   333,   333,   244,   244,   358,   359,   360,   361,   362,   363,
     1332   364,   182,   382,   383,   181,   393,   394,   179,   178,   176,
     1333   175,   402,   142,   404,   138,   406,   259,   137,   409,   205,
     1334   411,   413,   416,   111,   106,    89,    83,    79,    71,    70,
     1335   430,   431,   432,   433,   434,   435,   442,   443,    67,   457,
     1336   458,    65,   460,   461,    53,    49,   487,   488,    43,   490,
     1337   491,   492,   493,   494,   495,   496,   497,    41,   499,   501,
     1338   503,   505,   507,   508,   510,    36,   513,   256,   515,    33,
     1339   198,   254,    28,   532,   534,   537,   538,   539,   540,   541,
     1340   542,    26,   547,   549,   551,   553,   555,   556,   564,   212,
     1341   569,   570,    20,   572,    19,   214,   579,   581,   582,   216,
     1342   592,   596,   601,   602,   604,   605,    11,   608,   242,     8,
     1343   614,     5,     4,   617,   618,   619,   620,     3,     2,   625,
     1344   626,   240,   543 ]
    13281345
    13291346racc_action_pointer = [
    1330    203,   nil,   874,   892,   870,   859,    22,   nil,   884,   nil,
    1331    257,   854,   nil,   nil,   476,   nil,   nil,   nil,   301,   839,
    1332    860,   nil,   493,   nil,   nil,   nil,   645,   827,   832,   nil,
    1333    410,   803,   nil,   nil,   nil,   nil,   791,   826,   nil,    -9,
    1334    nil,   nil,   nil,   nil,   nil,   nil,   834,   823,    -7,   797,
    1335    469,   nil,   nil,   579,    -5,   nil,   808,   nil,   nil,   770,
    1336    nil,   nil,   396,   nil,   533,   765,   113,   nil,   nil,   nil,
     1347    13,   nil,   879,   897,   874,   864,   269,   nil,   889,   nil,
     1348    16,   858,   nil,   nil,   441,   nil,   nil,   nil,     9,   844,
     1349   864,   nil,   676,   nil,   nil,   nil,   830,   373,   827,   nil,
     1350   503,    -7,   554,   799,   nil,   nil,   837,   nil,   379,   nil,
     1351   nil,   826,   nil,   778,   nil,   nil,   nil,     0,   nil,   824,
     1352   nil,   nil,   nil,   777,   160,   nil,   nil,   287,   nil,     7,
     1353   nil,   nil,   563,   211,   nil,   813,   nil,   775,   nil,   154,
     1354   760,   765,   nil,   nil,   nil,   538,   nil,   nil,   nil,   774,
     1355   nil,    82,     2,   721,   181,    89,   nil,   nil,   nil,   759,
     1356   -31,   277,   nil,   nil,   nil,   652,   422,   nil,   405,   nil,
     1357   423,   nil,   581,   nil,   nil,   nil,   793,   nil,   nil,   nil,
     1358   nil,   752,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    13371359   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1338    -30,   nil,   nil,   -29,   nil,   nil,   nil,   758,   nil,   nil,
    1339    nil,   nil,   nil,   nil,   nil,   328,   nil,   nil,   563,   nil,
    1340    792,   nil,   nil,   nil,     2,   754,   nil,   369,   159,   768,
    1341    nil,   227,   nil,     0,   755,   715,   nil,   nil,   332,   669,
    1342    nil,   nil,   238,   nil,   nil,   nil,   379,   nil,   nil,   756,
    1343    268,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   742,
    1344    738,   nil,   737,   736,   774,   642,   734,   733,   nil,   nil,
    1345    726,   nil,   nil,   725,   nil,   713,   645,   nil,   641,   nil,
    1346    356,   223,   nil,   199,   187,   nil,   105,    76,   817,   263,
    1347    287,   nil,   nil,   nil,   nil,   652,   nil,   nil,     0,   349,
    1348    302,   286,   257,   203,   284,   250,   259,   350,   524,   517,
    1349    453,   412,   nil,   nil,   169,   nil,    12,   437,   nil,   425,
    1350    393,   381,   325,   nil,   nil,   320,   375,   178,   488,   742,
    1351     54,   745,   150,   nil,   545,   541,   514,   601,   489,   655,
    1352    666,   434,   524,   627,   817,   350,   102,   153,   843,   807,
    1353    483,   293,   342,   504,   266,   488,   808,   473,   802,   -30,
    1354    nil,   nil,   821,    76,   nil,    82,   818,   nil,   225,   209,
    1355    211,   171,   nil,    12,   nil,   nil,   104,   nil,   145,   nil,
    1356    665,   311,   nil,   516,   596,   673,   661,   nil,   nil,   nil,
    1357    nil,   nil,   nil,   nil,   nil,   nil,   103,   nil,    85,   nil,
    1358     51,   655,   631,   627,   624,   621,   579,   nil,     6,   356,
    1359    365,   404,   446,   480,   487,   496,   498,   527,   535,   554,
    1360    556,   nil,   670,   nil,   344,   645,   653,   658,   659,   660,
    1361    666,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1362    671,   nil,   672,   694,   695,   nil,   nil,   nil,   nil,   nil,
    1363    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   719,
    1364    nil,   676,   nil,   nil,   677,   nil,   nil,   678,   nil,   nil,
    1365    nil,   679,   nil,   nil,   680,   nil,   nil,   707,   686,   nil,
    1366    709,   nil,   710,   685,   nil,   712,   nil,     1,   nil,   714,
    1367    715,   nil,   nil,   716,   nil,   757,   718,   nil,   693,   nil,
    1368    760,   nil,   nil,   733,   743,   nil,   699,   742,   220,   668,
    1369    724,   719,   726,   720,   728,   721,   nil,    12,   nil,    92,
    1370    nil,    47,   nil,    32,   nil,   644,   nil,   140,   736,   728,
     1360   nil,   526,   nil,   nil,   nil,   nil,   438,   720,   765,   nil,
     1361   nil,   234,   749,   274,   nil,   nil,   nil,   116,   471,   515,
     1362   497,   490,   556,   453,   429,   396,   380,   328,   212,   nil,
     1363   350,   139,   nil,   nil,   nil,   260,   305,   293,   281,   nil,
     1364   nil,   nil,   238,   189,   nil,   735,   734,   nil,   733,   732,
     1365   nil,   729,   726,   657,   638,   601,   596,   585,   558,   511,
     1366   509,   nil,   nil,   468,   nil,   nil,   -24,   nil,   795,   521,
     1367   nil,   555,   559,   nil,   579,   744,   nil,   nil,   nil,   nil,
     1368   nil,   687,   834,   nil,   840,    77,   867,   nil,   nil,   312,
     1369   nil,   201,   106,   nil,   172,   147,   nil,   nil,   164,   198,
     1370   nil,   632,   636,   509,   669,   673,   nil,   nil,   657,   412,
     1371   838,   627,   824,   305,   714,   612,   535,   246,   481,   630,
     1372   626,   595,   674,   644,   786,   -32,   781,    91,   nil,   729,
     1373   317,   -40,   245,   535,   518,   448,   350,   113,   390,   162,
     1374   213,   nil,   193,   nil,   173,   nil,   235,   255,   nil,   nil,
     1375   254,   311,   279,   nil,   nil,   299,   nil,   nil,   nil,   332,
     1376   nil,   nil,   357,   nil,   397,   nil,   377,   nil,   nil,   416,
     1377   394,   nil,   nil,   418,   nil,   446,   nil,   428,   nil,   nil,
     1378   464,   nil,   -19,   nil,   nil,   480,   498,   501,   457,    12,
     1379   nil,   nil,   nil,   508,   511,   nil,   nil,   nil,   nil,   nil,
     1380   nil,   nil,   287,   712,   710,   708,   706,   704,   702,   nil,
     1381   104,   nil,   115,   nil,    86,   600,   610,   613,   617,   624,
     1382   628,   nil,    66,   642,   655,   657,   662,   679,   716,   717,
     1383   718,   719,   720,   721,   722,   nil,   322,   nil,   nil,   nil,
    13711384   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1372    nil,   nil,   738,   410,   740,   263,   nil,   nil,   nil,   nil,
    1373    nil,   nil,   nil,    14,     8,     6,     3,     1,   743,   748,
    1374    315,   747,   107,   808,   549,   nil,   147,   nil,   nil,   248,
    1375    780,   735,   nil,   757,   nil,   883,   nil,   nil,   nil,   760,
    1376    nil,   761,   nil,   762,   763,   758,   765,   759,   767,   760,
    1377    769,   761,   771,   476,   773,   288,   nil,   775,   nil,   776,
    1378    nil,   777,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1379    nil,   nil,   nil,   105,   nil,   nil,   nil,   nil,   nil,   nil,
    1380    nil,   nil,   nil,   801,    -1,   826,   nil,   806,   458,   nil,
    1381    nil,   nil,   nil,   nil,   784,   nil,   785,   nil,   786,   nil,
    1382    787,   nil,   788,   nil,   789,   nil,   nil,   nil,   781,   782,
    1383    783,   784,   815,   nil,   309,   543,   825,   841,   307,   nil,
    1384    nil,   nil,   nil,   nil,    -6,    40,   nil,   nil,   nil,   nil,
    1385    nil,   nil,   nil,   769,   827,   nil,   777,   nil,   nil,   806,
    1386    851,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   797,
    1387     10,   nil,   nil,   837,   866,   195,   305,   nil,   nil,   nil,
    1388    366,   nil,    19,   nil,   814,   859,   371,   nil,   nil,   799,
    1389    nil,   nil,   nil,   819,   nil,   nil,   nil,   834,   822,   nil,
    1390    865,   800,   nil,   837,   313,   nil,   nil,   496,   545,   871,
    1391    466,   nil,   842,   403,   809,   810,   811,   498,   nil,   nil,
    1392    137,   811,   812,   536,   nil,   677,   nil,   nil,   nil,   nil ]
     1385   nil,   nil,   725,   726,   nil,   nil,   nil,   nil,   nil,   nil,
     1386   181,   nil,   nil,   752,   706,   nil,   nil,   nil,   117,    14,
     1387     7,     8,   729,     6,   732,     1,   737,   389,   108,   797,
     1388   674,   786,   nil,   742,   nil,   nil,   744,   222,   nil,   267,
     1389   nil,    93,   nil,    65,   nil,    45,   nil,    -9,   nil,   647,
     1390   752,   747,   754,   748,   756,   749,   nil,   nil,   nil,   nil,
     1391   nil,   nil,   758,   750,   nil,   nil,   nil,   nil,   nil,   nil,
     1392   nil,   nil,   nil,   nil,   nil,   nil,   228,   761,   785,    40,
     1393   810,   790,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1394   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    32,   nil,
     1395   nil,   nil,   nil,   nil,   nil,   554,   nil,   768,   769,   232,
     1396   771,   766,   773,   767,   775,   768,   777,   769,   250,   780,
     1397   nil,   781,   nil,   782,   nil,   783,   nil,   784,   785,   nil,
     1398   808,   569,   nil,   832,   680,   819,   231,   nil,   491,   nil,
     1399   nil,   nil,   nil,   nil,   nil,   nil,   nil,   -11,   nil,    -1,
     1400   nil,   nil,   762,   nil,   821,   nil,   nil,   770,   799,   845,
     1401   791,   792,   793,   835,   nil,   nil,   nil,   804,   nil,   805,
     1402   nil,   806,   nil,   807,   nil,   808,   809,   nil,   nil,   nil,
     1403   nil,   nil,   nil,   nil,   829,   nil,   nil,    10,   nil,   841,
     1404   803,   463,   872,   289,   nil,   nil,   nil,   nil,   601,   864,
     1405   nil,   818,   864,   659,   nil,   nil,   nil,   nil,   nil,   nil,
     1406   nil,   nil,   803,   nil,   nil,   nil,   823,   nil,   nil,   nil,
     1407   nil,   838,   826,   nil,   803,   871,   nil,   481,   842,   nil,
     1408   521,   nil,   455,   nil,   844,   677,   371,   879,   813,   814,
     1409   815,   nil,   115,   338,   nil,   815,   816,   676,   nil,   681,
     1410   nil,   nil,   nil,   nil ]
    13931411
    13941412racc_action_default = [
    1395   -375,    -2,  -375,  -375,  -375,   -13,    -6,    -4,  -375,    -1,
    1396   -375,  -375,    -5,    -7,  -375,   630,   -15,   -14,  -375,   -18,
    1397   -375,   -12,  -375,    -9,   -17,   -16,  -375,   -21,  -375,    -8,
    1398   -375,  -111,   -97,   -20,   -98,   -99,  -375,  -375,   -86,   -87,
    1399   -145,   -88,  -146,   -89,   -19,  -107,   -93,  -375,  -375,  -375,
    1400   -375,   -11,   -10,  -375,  -375,  -103,  -375,  -100,  -108,  -375,
    1401    -90,   -94,  -375,  -109,  -375,   -81,  -375,   -23,   -22,  -229,
    1402   -125,  -151,  -126,  -246,  -127,  -128,  -166,  -129,  -181,  -182,
    1403   -375,  -120,  -186,  -375,  -121,  -190,  -122,  -375,  -203,  -147,
    1404   -123,  -216,  -124,  -101,  -104,  -375,   -91,  -112,  -111,   -96,
    1405   -375,   -95,   -92,  -110,  -375,  -375,  -253,   -27,  -375,  -375,
    1406    -25,  -375,  -272,  -375,  -375,  -304,  -282,  -273,  -375,  -250,
    1407   -285,  -270,   -31,  -271,  -280,  -281,  -288,  -247,   -24,  -283,
    1408   -375,  -252,   -26,  -152,  -167,  -153,  -168,  -106,  -105,  -136,
    1409   -125,  -242,  -137,  -126,  -375,  -375,  -138,  -127,  -116,  -139,
    1410   -128,  -117,  -140,  -118,  -141,  -130,  -119,  -142,  -131,  -143,
    1411   -132,  -121,  -144,  -133,  -122,  -115,  -147,  -134,  -123,  -135,
    1412   -124,  -113,   -83,   -82,    -3,  -375,  -372,  -248,  -375,  -375,
    1413   -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,
    1414   -375,  -375,  -255,  -254,  -375,   -30,  -375,  -375,  -258,  -375,
    1415   -375,  -375,  -375,   -32,  -287,  -284,  -288,  -375,  -375,  -375,
    1416   -375,  -375,  -375,  -114,  -375,  -375,  -375,  -375,  -375,  -375,
    1417   -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,
    1418   -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,
    1419    -85,   -84,  -375,  -375,  -286,  -375,  -375,  -278,  -375,  -262,
    1420   -263,  -259,  -274,  -264,  -275,  -276,  -260,  -277,  -261,  -251,
    1421   -249,  -375,  -306,  -265,  -266,  -267,  -268,  -279,  -269,  -205,
    1422   -193,  -191,  -218,  -206,  -204,  -202,  -375,  -215,  -375,  -228,
    1423   -375,  -375,  -375,  -375,  -375,  -375,  -375,  -241,  -375,  -375,
    1424   -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,  -375,
    1425   -375,  -165,  -375,  -180,  -375,  -375,  -375,  -375,  -375,  -375,
    1426   -375,  -231,  -219,  -217,  -232,  -230,  -245,  -243,  -149,  -244,
    1427   -375,  -155,  -375,  -375,  -375,  -170,  -156,  -154,  -184,  -171,
    1428   -169,  -150,  -148,  -188,  -185,  -183,  -192,  -189,  -187,  -375,
    1429   -322,  -318,   -54,  -328,  -324,   -55,  -334,  -330,   -56,  -374,
    1430   -341,  -336,  -311,   -57,  -343,  -317,   -58,  -352,  -339,  -323,
    1431   -347,   -59,  -353,  -349,  -329,  -310,   -60,  -356,  -335,  -316,
    1432   -309,  -342,  -321,  -315,  -327,  -375,  -346,  -333,  -312,   -53,
    1433   -375,   -33,   -62,   -34,  -375,   -61,  -289,  -375,  -375,  -375,
    1434   -375,  -375,  -375,  -375,  -375,  -375,  -200,  -375,  -213,  -375,
    1435   -226,  -375,  -239,  -375,  -163,  -375,  -178,  -375,  -375,  -375,
    1436   -199,  -212,  -225,  -238,  -162,  -177,  -201,  -214,  -227,  -240,
    1437   -164,  -179,  -375,  -375,  -375,  -375,  -198,  -211,  -224,  -237,
    1438   -161,  -176,  -257,  -375,  -375,  -375,  -375,  -375,  -375,  -375,
    1439   -375,  -375,  -375,  -375,  -375,  -256,  -375,   -29,   -63,  -375,
    1440   -375,   -67,   -28,  -151,  -302,  -375,  -303,  -307,  -194,  -375,
    1441   -207,  -375,  -220,  -375,  -375,  -375,  -375,  -375,  -375,  -375,
    1442   -375,  -375,  -375,  -375,  -375,  -375,  -233,  -375,  -157,  -375,
    1443   -172,  -375,  -320,  -319,  -325,  -326,  -332,  -331,  -338,  -337,
    1444   -345,  -344,  -354,  -375,  -340,  -348,  -355,  -351,  -350,  -358,
    1445   -357,  -314,  -313,  -375,  -375,  -375,   -68,  -375,  -375,  -305,
    1446   -196,  -209,  -222,  -195,  -375,  -208,  -375,  -221,  -375,  -234,
    1447   -375,  -158,  -375,  -173,  -375,  -235,  -159,  -174,  -375,  -375,
    1448   -375,  -375,  -375,   -43,  -309,  -375,   -31,   -44,  -375,   -71,
    1449    -69,   -36,   -37,   -38,  -359,  -375,   -39,  -362,   -40,  -371,
    1450   -366,  -365,   -41,  -368,  -375,   -35,  -304,   -52,   -42,  -375,
    1451   -375,  -308,  -197,  -210,  -223,  -236,  -160,  -175,   -65,  -375,
    1452   -304,   -66,   -51,   -49,  -375,  -375,  -375,   -44,   -70,   -64,
    1453   -375,  -369,  -375,   -48,  -291,  -375,  -375,  -364,   -46,  -375,
    1454    -50,  -361,  -360,  -375,  -363,  -367,  -370,   -72,  -375,  -290,
    1455   -375,  -294,   -45,   -74,  -375,  -292,  -293,  -375,  -375,  -375,
    1456    -73,   -76,  -375,   -79,  -295,  -296,  -297,   -75,   -47,   -77,
    1457   -375,  -375,  -375,  -375,   -80,   -78,  -298,  -299,  -300,  -301 ]
     1413  -377,    -2,  -377,  -377,  -377,   -13,    -6,    -4,  -377,    -1,
     1414  -377,  -377,    -5,    -7,  -377,   634,   -15,   -14,  -377,   -18,
     1415  -377,   -12,  -377,    -9,   -17,   -16,   -21,  -377,  -377,    -8,
     1416  -377,  -377,  -377,  -113,   -91,  -109,  -377,   -20,  -377,   -99,
     1417  -100,  -377,  -101,  -377,  -147,   -88,  -148,   -89,   -19,   -95,
     1418   -90,   -11,   -10,   -83,  -377,   -23,   -22,  -377,  -111,  -377,
     1419  -110,  -102,  -377,  -377,  -105,  -377,   -92,  -377,   -96,  -377,
     1420  -377,  -285,  -283,   -26,  -249,   -27,   -25,  -254,  -153,  -377,
     1421  -255,  -377,  -377,  -306,  -377,  -377,  -168,  -274,  -272,  -377,
     1422  -377,   -31,  -284,  -275,  -273,  -252,  -377,  -287,  -290,  -282,
     1423  -377,   -24,  -113,   -94,  -114,   -98,  -377,   -97,  -112,  -218,
     1424  -124,  -377,  -231,  -125,  -126,  -248,  -127,  -128,  -129,  -183,
     1425  -130,  -184,  -131,  -188,  -192,  -122,  -205,  -149,  -123,  -103,
     1426  -106,  -377,   -93,   -85,   -84,    -3,  -377,  -286,  -290,  -250,
     1427  -374,  -377,  -377,  -377,  -257,  -256,   -30,  -377,  -377,  -377,
     1428  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -260,
     1429  -377,  -377,  -154,  -169,   -32,  -377,  -377,  -377,  -377,  -155,
     1430  -170,  -289,  -377,  -377,  -146,  -135,  -124,  -117,  -136,  -125,
     1431  -244,  -137,  -126,  -377,  -138,  -127,  -139,  -128,  -377,  -140,
     1432  -129,  -118,  -141,  -130,  -119,  -142,  -120,  -143,  -132,  -121,
     1433  -144,  -133,  -149,  -145,  -134,  -123,  -115,  -108,  -107,   -87,
     1434   -86,  -377,  -377,  -288,  -377,  -377,  -377,  -308,  -279,  -377,
     1435  -280,  -264,  -265,  -276,  -266,  -261,  -277,  -278,  -262,  -263,
     1436  -253,  -251,  -267,  -268,  -269,  -270,  -281,  -271,  -377,  -377,
     1437  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
     1438  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -116,  -377,
     1439  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
     1440  -377,   -33,   -34,   -63,  -291,   -64,  -377,  -377,  -344,  -335,
     1441  -317,  -377,  -314,   -55,  -324,  -320,   -56,  -376,  -330,  -326,
     1442   -57,  -336,  -332,   -58,  -354,  -343,  -338,  -313,   -59,  -355,
     1443  -345,  -319,   -60,  -341,  -325,  -349,   -61,  -351,  -331,  -323,
     1444  -312,   -62,  -358,  -337,  -329,  -318,  -311,  -348,  -377,  -377,
     1445  -186,  -171,  -173,  -377,  -377,  -190,  -187,  -185,  -194,  -191,
     1446  -189,  -182,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -204,
     1447  -377,  -217,  -377,  -230,  -377,  -377,  -377,  -377,  -377,  -377,
     1448  -377,  -243,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
     1449  -377,  -377,  -377,  -377,  -377,  -167,  -377,  -207,  -195,  -193,
     1450  -220,  -208,  -206,  -233,  -221,  -219,  -234,  -232,  -247,  -245,
     1451  -151,  -246,  -377,  -377,  -157,  -152,  -150,  -172,  -158,  -156,
     1452  -377,   -29,   -65,  -377,   -69,   -28,  -259,  -258,  -377,  -377,
     1453  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
     1454  -377,  -377,  -309,  -153,  -305,  -304,  -377,  -377,  -180,  -377,
     1455  -202,  -377,  -215,  -377,  -228,  -377,  -241,  -377,  -165,  -377,
     1456  -377,  -377,  -377,  -377,  -377,  -377,  -179,  -201,  -214,  -227,
     1457  -240,  -164,  -377,  -377,  -181,  -203,  -216,  -229,  -242,  -166,
     1458  -178,  -200,  -213,  -226,  -239,  -163,  -377,  -377,  -377,  -377,
     1459  -377,  -377,   -70,  -316,  -315,  -321,  -322,  -328,  -327,  -334,
     1460  -333,  -356,  -340,  -339,  -357,  -347,  -346,  -342,  -377,  -350,
     1461  -353,  -352,  -360,  -359,  -307,  -377,  -174,  -377,  -377,  -377,
     1462  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
     1463  -196,  -377,  -209,  -377,  -222,  -377,  -235,  -377,  -377,  -159,
     1464  -377,  -377,   -54,   -44,  -377,   -31,  -377,   -73,  -311,   -71,
     1465   -36,   -37,   -38,   -39,  -373,   -40,  -368,  -361,   -41,  -377,
     1466  -364,   -42,  -370,  -367,  -377,   -35,   -43,  -306,  -377,  -377,
     1467  -377,  -377,  -377,  -377,  -310,  -176,  -175,  -377,  -197,  -377,
     1468  -210,  -377,  -223,  -377,  -236,  -377,  -377,  -160,  -198,  -211,
     1469  -224,  -237,  -161,   -67,  -377,   -46,   -68,  -306,   -53,   -51,
     1470  -377,  -377,  -377,  -377,   -44,   -72,   -66,  -371,  -377,  -377,
     1471   -50,  -293,  -377,  -377,  -177,  -199,  -212,  -225,  -238,  -162,
     1472   -45,   -48,  -377,   -52,  -366,  -365,  -377,  -363,  -362,  -369,
     1473  -372,   -74,  -377,  -292,  -296,  -377,   -47,  -377,   -76,  -294,
     1474  -377,  -295,   -75,   -78,  -377,   -81,  -377,  -377,  -297,  -298,
     1475  -299,   -79,  -377,   -77,   -49,  -377,  -377,  -377,   -82,   -80,
     1476  -300,  -301,  -302,  -303 ]
    14581477
    14591478racc_goto_table = [
    1460    119,    84,    37,   193,   195,   162,    86,   382,   381,    90,
    1461    455,    44,   153,    87,   207,    57,    58,    92,   127,   540,
    1462    102,    55,   114,    60,   101,   619,    37,     3,    23,   610,
    1463    451,    75,   619,   617,   545,    68,    64,   375,   100,    94,
    1464    609,   119,   122,    96,    52,   603,   161,    74,    60,   383,
    1465     54,   164,   380,   138,   168,   506,    72,   101,   165,   177,
    1466    578,    70,   170,   114,   208,   107,   249,   250,   251,   171,
    1467    253,   100,   144,   256,   148,   258,   150,   247,    57,    58,
    1468    151,   252,   132,   254,   255,   156,   257,   498,   128,    22,
    1469     13,     2,   147,   221,   174,   105,    65,    49,   222,   155,
    1470    158,   143,   160,   163,   167,   169,   140,   139,   142,   146,
    1471    149,   152,   154,   157,   159,    27,    19,   198,   205,    11,
    1472      5,   244,   585,   218,   600,     4,   561,   594,   260,   580,
    1473    nil,   208,   388,   263,   264,   265,   266,   nil,   nil,   216,
    1474    nil,   317,   nil,   319,   nil,   448,   nil,   nil,   215,   nil,
    1475    nil,    37,   nil,   214,   nil,   nil,   nil,   nil,   nil,   nil,
    1476    241,   nil,   nil,   nil,   nil,   285,   nil,   293,   299,   nil,
    1477    286,   309,   294,   300,   nil,   nil,   310,   nil,   321,   nil,
    1478    327,   nil,   nil,   nil,   325,   nil,   nil,   330,   nil,   328,
    1479    nil,   370,   nil,   335,   nil,   284,   373,   292,   298,   nil,
    1480    333,   308,   311,   338,   315,   272,   nil,   601,   nil,   nil,
    1481    nil,   283,   269,   291,   297,   274,   nil,   307,   271,   313,
    1482    282,   nil,   290,   296,   nil,   281,   306,   289,   295,   nil,
    1483    nil,   305,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1484    nil,   nil,   nil,   nil,   nil,   nil,   336,   nil,   nil,   nil,
    1485    422,   nil,   nil,   nil,   nil,   nil,   nil,   424,   nil,   nil,
    1486    nil,   nil,   nil,   nil,   nil,   nil,   408,   539,   nil,   nil,
    1487    nil,   nil,   nil,   nil,   394,   nil,   nil,   nil,   nil,   nil,
    1488    nil,   392,   nil,   nil,   390,   nil,   nil,   nil,   nil,   nil,
     1479    95,   128,   146,   145,   113,   411,    41,    48,   271,   110,
     1480   174,    41,    56,   196,   172,   103,   114,   519,   107,   120,
     1481    61,    95,   275,    60,    74,   181,   111,    89,   621,   612,
     1482   118,   394,    64,    91,    23,    66,   106,   529,   623,   621,
     1483   117,   205,   281,    59,   179,   139,   173,    66,    89,   176,
     1484    52,   116,   130,   218,   220,   132,   182,   223,   617,   193,
     1485   226,   227,   608,   564,   221,   222,   177,   224,   225,   272,
     1486   190,   228,   229,    63,   270,    75,    73,   206,   188,   191,
     1487   187,   194,   101,   392,   199,    61,   481,   575,    60,   208,
     1488     3,   185,   107,    22,    13,     2,   135,    70,    53,    31,
     1489   198,   201,   204,   175,   178,   462,   173,   231,   184,   186,
     1490   106,   232,   233,   234,   235,    41,   210,   189,   192,   195,
     1491   197,   200,   253,   203,    26,    19,   159,   137,    11,     5,
     1492   244,   213,   582,   319,   605,     4,   544,   595,   578,   nil,
     1493   250,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1494   nil,   248,   nil,   nil,   316,   nil,   nil,   nil,   nil,   nil,
     1495   nil,   247,   280,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1496   nil,   nil,   246,   379,   nil,   381,   nil,   nil,   nil,   nil,
     1497   320,   nil,   nil,   327,   338,   nil,   321,   nil,   350,   nil,
     1498   358,   364,   333,   nil,   325,   nil,   345,   330,   353,   359,
     1499   nil,   nil,   337,   nil,   384,   nil,   349,   389,   357,   363,
     1500   nil,   nil,   nil,   336,   387,   nil,   373,   348,   377,   356,
     1501   362,   nil,   nil,   335,   370,   nil,   nil,   347,   375,   355,
     1502   361,   328,   367,   nil,   334,   372,   nil,   nil,   346,   nil,
     1503   354,   360,   nil,   nil,   369,   nil,   nil,   nil,   nil,   nil,
     1504   nil,   nil,   nil,   nil,   nil,   nil,   517,   415,   nil,   nil,
     1505   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1506   604,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   416,
     1507   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1508   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1509   nil,   nil,   nil,   nil,   nil,   457,   nil,   nil,   nil,   442,
     1510   nil,   nil,   434,   nil,   477,   nil,   nil,   nil,   nil,   nil,
     1511   432,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   430,
     1512   nil,   nil,   nil,   nil,   nil,   nil,   nil,   464,   nil,   nil,
     1513   nil,   nil,   nil,   nil,   nil,   nil,   465,   nil,   nil,   nil,
     1514   nil,   nil,   483,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1515   nil,   nil,   476,   nil,   487,   nil,   488,   nil,   499,   nil,
     1516   nil,   473,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   470,
     1517   nil,   nil,   nil,   nil,   496,   nil,   nil,   nil,   nil,   468,
     1518   nil,   nil,   nil,   494,   nil,   508,   nil,   nil,   518,   nil,
     1519   507,   492,   nil,   505,   nil,   nil,   280,   nil,   nil,   nil,
     1520   490,   503,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1521   501,   nil,   nil,   nil,   415,   nil,   nil,   nil,   nil,   nil,
     1522   nil,   nil,   nil,   nil,   nil,   250,   547,   556,   515,   nil,
     1523   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1524   nil,   nil,   nil,   nil,   555,   nil,   580,   nil,   nil,   nil,
     1525   nil,   nil,   nil,   553,   nil,   nil,   nil,   nil,   518,   nil,
     1526   nil,   551,   nil,   nil,   nil,   nil,   280,   nil,   nil,   nil,
     1527   549,   nil,   nil,   nil,   nil,   nil,   592,   nil,   nil,   nil,
     1528    41,   565,   nil,   567,   nil,   569,   nil,   337,   349,   357,
     1529   363,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   515,   nil,
     1530   596,   nil,   598,   606,   nil,   nil,   nil,   nil,   nil,   nil,
     1531   nil,   nil,   415,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    14891532   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    14901533   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    14911534   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1535   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   629 ]
     1536
     1537racc_goto_check = [
     1538    57,    82,    22,    35,    84,   116,    23,    15,    24,    83,
     1539   105,    23,    15,    79,   110,    63,    85,    26,    60,    89,
     1540    67,    57,    49,    73,   106,    96,    72,    56,    55,    54,
     1541    88,    52,    70,    23,    14,    61,    23,    51,    54,    55,
     1542    87,    82,    40,    59,    84,   106,    57,    61,    56,    83,
     1543    14,    86,    70,   111,   111,    61,    85,   111,    38,    89,
     1544   111,   111,    37,    34,   110,   110,    72,   110,   110,    25,
     1545    88,   110,   110,    69,    20,    18,    17,    75,    76,    77,
     1546    87,    78,    16,    49,    80,    67,    81,    26,    73,    63,
     1547     1,    86,    60,    13,    12,    11,    10,     9,     8,     7,
     1548    91,    92,    93,    94,    95,    53,    57,    57,    97,    98,
     1549    23,    57,    57,    57,    57,    23,    15,    99,   100,   101,
     1550   102,   103,    82,   104,     6,     5,   107,   109,     4,     3,
     1551    83,   113,   114,   110,   115,     2,   117,   128,   130,   nil,
     1552    89,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1553   nil,    88,   nil,   nil,    82,   nil,   nil,   nil,   nil,   nil,
     1554   nil,    87,    83,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1555   nil,   nil,    86,    79,   nil,    79,   nil,   nil,   nil,   nil,
     1556    84,   nil,   nil,    84,    82,   nil,    83,   nil,    82,   nil,
     1557    82,    82,    83,   nil,    85,   nil,    83,    85,    83,    83,
     1558   nil,   nil,    89,   nil,    82,   nil,    89,    82,    89,    89,
     1559   nil,   nil,   nil,    88,    83,   nil,    89,    88,    89,    88,
     1560    88,   nil,   nil,    87,    88,   nil,   nil,    87,    88,    87,
     1561    87,    86,    87,   nil,    86,    87,   nil,   nil,    86,   nil,
     1562    86,    86,   nil,   nil,    86,   nil,   nil,   nil,   nil,   nil,
     1563   nil,   nil,   nil,   nil,   nil,   nil,    24,    82,   nil,   nil,
    14921564   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1493    nil,   nil,   nil,   nil,   nil,   nil,   nil,   454,   nil,   nil,
    1494    nil,   nil,   nil,   nil,   nil,   nil,   494,   nil,   nil,   nil,
    1495    nil,   nil,   nil,   472,   nil,   nil,   nil,   nil,   nil,   nil,
    1496    474,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1497    nil,   479,   nil,   nil,   nil,   nil,   nil,   nil,   481,   nil,
    1498    nil,   470,   nil,   nil,   nil,   nil,   483,   477,   nil,   463,
    1499    nil,   nil,   nil,   nil,   502,   468,   461,   nil,   nil,   459,
    1500    500,   nil,   466,   nil,   nil,   464,   nil,   nil,   nil,   nil,
    1501    nil,   nil,   nil,   nil,   nil,   491,   nil,   nil,   nil,   nil,
    1502    nil,   522,   nil,   nil,   nil,   nil,   nil,   nil,   524,   nil,
    1503    489,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   487,   nil,
    1504    nil,   nil,   484,   nil,   nil,   583,   nil,   nil,   nil,   520,
    1505    nil,   nil,   534,   nil,   nil,   nil,   454,   373,   nil,   589,
    1506    nil,   nil,   nil,   518,   nil,   nil,   nil,   nil,   nil,   nil,
    1507    516,   218,   nil,   514,   nil,   nil,   nil,   nil,   nil,   602,
    1508    536,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1509    nil,   nil,   nil,   534,   nil,   nil,   nil,   nil,   373,   nil,
    1510    nil,   nil,   nil,   nil,   nil,   nil,   284,   292,   298,   308,
    1511    nil,   570,   nil,   nil,   573,   nil,   nil,   nil,   nil,   nil,
    1512    nil,   536,   nil,   592,   593,   nil,   nil,   nil,   nil,   nil,
    1513    nil,   nil,   nil,   nil,   454,   nil,   nil,   nil,   nil,   nil,
     1565   116,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    83,
    15141566   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1515    nil,   nil,   nil,   nil,   625 ]
    1516 
    1517 racc_goto_check = [
    1518     55,    80,    23,    33,    22,   103,    81,    47,    24,    82,
    1519    114,    15,    77,    70,   108,    65,    71,    83,   104,    26,
    1520     61,    68,    54,    59,    58,    53,    23,     1,    14,    52,
    1521     50,    87,    53,    52,    49,    15,    57,    38,    23,    68,
    1522     36,    55,    23,    59,    14,    35,    80,    86,    59,    25,
    1523     67,    81,    20,    61,    82,    51,    85,    58,    70,   104,
    1524     26,    84,    83,    54,    55,    18,   108,   108,   108,    73,
    1525    108,    23,    74,   108,    75,   108,    87,   109,    65,    71,
    1526     76,   109,    17,   109,   109,    78,   109,    79,    16,    13,
    1527     12,    11,    86,    80,    10,     9,     8,     7,    81,    89,
    1528     90,    85,    91,    92,    93,    94,    84,    95,    96,    97,
    1529     98,    99,   100,   101,   102,     6,     5,   105,   107,     4,
    1530      3,   111,   112,    87,   113,     2,   115,   126,    55,   128,
    1531    nil,    55,   108,    55,    55,    55,    55,   nil,   nil,    86,
    1532    nil,    77,   nil,    77,   nil,    47,   nil,   nil,    85,   nil,
    1533    nil,    23,   nil,    84,   nil,   nil,   nil,   nil,   nil,   nil,
    1534     15,   nil,   nil,   nil,   nil,    80,   nil,    80,    80,   nil,
    1535     81,    80,    81,    81,   nil,   nil,    81,   nil,    80,   nil,
    1536     80,   nil,   nil,   nil,    81,   nil,   nil,    81,   nil,    82,
    1537    nil,    80,   nil,    82,   nil,    87,    81,    87,    87,   nil,
    1538     83,    87,    87,    83,    87,    86,   nil,   114,   nil,   nil,
    1539    nil,    86,    85,    86,    86,    85,   nil,    86,    84,    86,
    1540     85,   nil,    85,    85,   nil,    84,    85,    84,    84,   nil,
    1541    nil,    84,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1542    nil,   nil,   nil,   nil,   nil,   nil,    84,   nil,   nil,   nil,
    1543     80,   nil,   nil,   nil,   nil,   nil,   nil,    81,   nil,   nil,
    1544    nil,   nil,   nil,   nil,   nil,   nil,    87,    24,   nil,   nil,
    1545    nil,   nil,   nil,   nil,    86,   nil,   nil,   nil,   nil,   nil,
    1546    nil,    85,   nil,   nil,    84,   nil,   nil,   nil,   nil,   nil,
     1567   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1568   nil,   nil,   nil,   nil,   nil,    82,   nil,   nil,   nil,    89,
     1569   nil,   nil,    88,   nil,   105,   nil,   nil,   nil,   nil,   nil,
     1570    87,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    86,
     1571   nil,   nil,   nil,   nil,   nil,   nil,   nil,    82,   nil,   nil,
     1572   nil,   nil,   nil,   nil,   nil,   nil,    83,   nil,   nil,   nil,
     1573   nil,   nil,    84,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1574   nil,   nil,    89,   nil,    83,   nil,    83,   nil,    82,   nil,
     1575   nil,    88,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    87,
     1576   nil,   nil,   nil,   nil,    89,   nil,   nil,   nil,   nil,    86,
     1577   nil,   nil,   nil,    88,   nil,    82,   nil,   nil,    82,   nil,
     1578    89,    87,   nil,    88,   nil,   nil,    83,   nil,   nil,   nil,
     1579    86,    87,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1580    86,   nil,   nil,   nil,    82,   nil,   nil,   nil,   nil,   nil,
     1581   nil,   nil,   nil,   nil,   nil,    89,    83,    82,    23,   nil,
     1582   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     1583   nil,   nil,   nil,   nil,    89,   nil,    22,   nil,   nil,   nil,
     1584   nil,   nil,   nil,    88,   nil,   nil,   nil,   nil,    82,   nil,
     1585   nil,    87,   nil,   nil,   nil,   nil,    83,   nil,   nil,   nil,
     1586    86,   nil,   nil,   nil,   nil,   nil,    22,   nil,   nil,   nil,
     1587    23,    15,   nil,    23,   nil,    23,   nil,    89,    89,    89,
     1588    89,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    23,   nil,
     1589    82,   nil,    82,    35,   nil,   nil,   nil,   nil,   nil,   nil,
     1590   nil,   nil,    82,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    15471591   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    15481592   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    15491593   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1550    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1551    nil,   nil,   nil,   nil,   nil,   nil,   nil,    80,   nil,   nil,
    1552    nil,   nil,   nil,   nil,   nil,   nil,   103,   nil,   nil,   nil,
    1553    nil,   nil,   nil,    80,   nil,   nil,   nil,   nil,   nil,   nil,
    1554     81,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1555    nil,    80,   nil,   nil,   nil,   nil,   nil,   nil,    81,   nil,
    1556    nil,    87,   nil,   nil,   nil,   nil,    81,    87,   nil,    86,
    1557    nil,   nil,   nil,   nil,    80,    86,    85,   nil,   nil,    84,
    1558     82,   nil,    85,   nil,   nil,    84,   nil,   nil,   nil,   nil,
    1559    nil,   nil,   nil,   nil,   nil,    87,   nil,   nil,   nil,   nil,
    1560    nil,    80,   nil,   nil,   nil,   nil,   nil,   nil,    81,   nil,
    1561     86,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    85,   nil,
    1562    nil,   nil,    84,   nil,   nil,    22,   nil,   nil,   nil,    87,
    1563    nil,   nil,    80,   nil,   nil,   nil,    80,    81,   nil,    22,
    1564    nil,   nil,   nil,    86,   nil,   nil,   nil,   nil,   nil,   nil,
    1565     85,    87,   nil,    84,   nil,   nil,   nil,   nil,   nil,    33,
    1566     23,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1567    nil,   nil,   nil,    80,   nil,   nil,   nil,   nil,    81,   nil,
    1568    nil,   nil,   nil,   nil,   nil,   nil,    87,    87,    87,    87,
    1569    nil,    23,   nil,   nil,    23,   nil,   nil,   nil,   nil,   nil,
    1570    nil,    23,   nil,    80,    80,   nil,   nil,   nil,   nil,   nil,
    1571    nil,   nil,   nil,   nil,    80,   nil,   nil,   nil,   nil,   nil,
    1572    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1573    nil,   nil,   nil,   nil,    55 ]
     1594   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    57 ]
    15741595
    15751596racc_goto_pointer = [
    1576    nil,    27,   125,   120,   114,   105,    96,    70,    47,    30,
    1577    -11,    91,    84,    75,    14,   -15,    22,    16,    -1,   nil,
    1578   -193,   nil,  -111,   -24,  -237,  -196,  -485,   nil,   nil,   nil,
    1579    nil,   nil,   nil,  -110,   nil,  -552,  -563,   nil,  -206,   nil,
    1580    nil,   nil,   nil,   nil,   nil,   nil,   nil,  -238,   nil,  -470,
    1581   -356,  -396,  -575,  -585,   -44,   -66,   nil,   -12,   -38,   -16,
    1582    nil,   -42,   nil,   nil,   nil,   -22,   nil,    14,   -15,   nil,
    1583    -40,   -21,   nil,   -31,   -26,   -24,   -18,   -86,   -13,  -355,
    1584    -52,   -47,   -44,   -36,     8,     3,    -6,   -22,   nil,     1,
    1585      2,     4,     5,     6,     7,     9,    10,    11,    12,    13,
    1586     14,    15,    16,   -93,   -48,    -1,   nil,   -11,  -116,  -104,
    1587    nil,   -58,  -437,  -462,  -379,  -382,   nil,   nil,   nil,   nil,
    1588    nil,   nil,   nil,   nil,   nil,   nil,  -449,   nil,  -424 ]
     1597   nil,    90,   135,   129,   123,   114,   105,    73,    67,    44,
     1598    26,    95,    88,    79,    20,   -20,    28,    22,    21,   nil,
     1599  -137,   nil,   -81,   -21,  -203,  -142,  -442,   nil,   nil,   nil,
     1600   nil,   nil,   nil,   nil,  -448,   -79,   nil,  -539,  -550,   nil,
     1601  -173,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -189,
     1602   nil,  -422,  -243,  -289,  -578,  -584,   -27,   -54,   nil,     5,
     1603   -39,   -12,   nil,   -42,   nil,   nil,   nil,   -21,   nil,    30,
     1604   -11,   nil,   -36,   -18,   nil,   -29,   -24,   -23,   -21,   -89,
     1605   -18,  -322,   -61,   -53,   -58,   -46,   -11,   -22,   -32,   -43,
     1606   nil,    -2,    -1,     0,     1,     2,   -77,     6,     7,    15,
     1607    16,    17,    18,    19,    21,   -92,   -30,    41,   nil,    56,
     1608   -86,   -95,   nil,   -11,  -406,  -449,  -313,  -349,   nil,   nil,
     1609   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -434,   nil,
     1610  -394 ]
    15891611
    15901612racc_goto_default = [
    15911613   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    1592    nil,   nil,   nil,   nil,   nil,   nil,   nil,   555,   nil,   109,
    1593    nil,   115,   nil,   176,   nil,   nil,   nil,   541,   542,   543,
    1594    546,   548,   552,   116,   554,   nil,   nil,   556,   557,   379,
    1595    342,   345,   348,   353,   356,   361,   366,   nil,   384,   nil,
    1596    nil,   nil,   nil,   611,   612,   613,    38,    39,    41,    43,
    1597     47,   nil,    99,    32,    34,    35,    36,   nil,   nil,    56,
    1598    nil,    45,    48,    97,   nil,   nil,   nil,   nil,   nil,    81,
    1599    124,   125,   nil,   nil,   340,   343,   346,   350,    77,   360,
    1600    365,   369,   nil,   nil,   nil,   nil,   nil,   nil,   352,   355,
    1601    359,   364,   368,   371,   nil,   131,   106,   108,   111,   112,
    1602    117,   120,   nil,   nil,   nil,   457,   378,   341,   344,   347,
    1603    351,   354,   358,   363,   367,   544,   547,   551,   nil ]
     1614   nil,   nil,   nil,   nil,   nil,   nil,   nil,   535,   nil,    79,
     1615   nil,    83,   nil,   140,   nil,   nil,   nil,   520,   521,   522,
     1616   523,   525,   528,   531,   nil,    92,   534,   nil,   nil,   537,
     1617   512,   283,   286,   290,   293,   298,   302,   306,   311,   nil,
     1618   269,   nil,   nil,   nil,   nil,   613,   614,   615,    45,    47,
     1619    50,    34,    36,   nil,   105,    39,    40,    42,    43,   nil,
     1620   nil,    65,   nil,    35,    38,   104,   nil,   nil,   nil,   nil,
     1621   nil,   125,    99,    72,   nil,   nil,   284,   288,   291,   295,
     1622   122,   305,   310,   315,   nil,   nil,   nil,   nil,   nil,   nil,
     1623   297,   301,   304,   308,   313,   278,   nil,    77,    80,    81,
     1624    84,    87,    93,    97,   nil,   nil,   nil,   412,   282,   285,
     1625   289,   292,   296,   300,   303,   307,   312,   527,   530,   533,
     1626   nil ]
    16041627
    16051628racc_token_table = {
     
    16411664 :REGEXP_BODY => 35,
    16421665 :END_REGEXP_BLOCK => 36,
    1643  :V_C_DOMAIN_TYPE => 37,
    1644  :ERR_C_DOMAIN_TYPE => 38,
    1645  :SYM_USE_NODE => 39,
    1646  :SYM_ALLOW_ARCHETYPE => 40,
    1647  :Star_code => 41,
    1648  :V_ATTRIBUTE_IDENTIFIER => 42,
    1649  :SYM_INCLUDE => 43,
    1650  :SYM_EXCLUDE => 44,
    1651  ":" => 45,
    1652  :SYM_INVARIANT => 46,
    1653  :V_ASSERTION_TEXT => 47,
    1654  :SYM_ONTOLOGY => 48,
    1655  :Left_bracket_code => 49,
    1656  :Right_bracket_code => 50,
    1657  :V_TYPE_IDENTIFIER => 51,
    1658  :V_GENERIC_TYPE_IDENTIFIER => 52,
    1659  :V_STRING => 53,
    1660  :Comma_code => 54,
    1661  :SYM_LIST_CONTINUE => 55,
    1662  :V_INTEGER => 56,
    1663  :SYM_INTERVAL_DELIM => 57,
    1664  :SYM_ELLIPSIS => 58,
    1665  :V_REAL => 59,
    1666  :SYM_TRUE => 60,
    1667  :SYM_FALSE => 61,
    1668  :V_CHARACTER => 62,
    1669  :V_ISO8601_EXTENDED_DATE => 63,
    1670  :V_ISO8601_EXTENDED_TIME => 64,
    1671  :V_ISO8601_EXTENDED_DATE_TIME => 65,
    1672  :V_ISO8601_DURATION => 66,
    1673  :V_QUALIFIED_TERM_CODE_REF => 67,
    1674  :V_URI => 68,
    1675  :SYM_EXISTS => 69,
    1676  :SYM_NOT => 70,
    1677  "=" => 71,
    1678  :SYM_AND => 72,
    1679  :SYM_OR => 73,
    1680  :SYM_XOR => 74,
    1681  :SYM_IMPLIES => 75,
    1682  :Slash_code => 76,
    1683  "^" => 77,
    1684  :SYM_EXISTENCE => 78,
    1685  :SYM_CARDINALITY => 79,
    1686  :Semicolon_code => 80,
    1687  :SYM_ORDERED => 81,
    1688  :SYM_UNORDERED => 82,
    1689  :SYM_UNIQUE => 83,
    1690  :SYM_OCCURRENCES => 84,
    1691  :V_ISO8601_DATE_CONSTRAINT_PATTERN => 85,
    1692  :V_ISO8601_TIME_CONSTRAINT_PATTERN => 86,
    1693  :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN => 87,
    1694  :START_TERM_CODE_CONSTRAINT => 88,
    1695  :END_TERM_CODE_CONSTRAINT => 89,
    1696  :TERM_CODE => 90,
    1697  :V_ISO8601_DURATION_CONSTRAINT_PATTERN => 91 }
     1666 :ERR_C_DOMAIN_TYPE => 37,
     1667 :START_V_C_DOMAIN_TYPE => 38,
     1668 :END_V_C_DOMAIN_TYPE => 39,
     1669 :SYM_USE_NODE => 40,
     1670 :SYM_ALLOW_ARCHETYPE => 41,
     1671 :Star_code => 42,
     1672 :V_ATTRIBUTE_IDENTIFIER => 43,
     1673 :SYM_INCLUDE => 44,
     1674 :SYM_EXCLUDE => 45,
     1675 ":" => 46,
     1676 :SYM_INVARIANT => 47,
     1677 :V_ASSERTION_TEXT => 48,
     1678 :SYM_ONTOLOGY => 49,
     1679 :Left_bracket_code => 50,
     1680 :Right_bracket_code => 51,
     1681 :V_TYPE_IDENTIFIER => 52,
     1682 :V_GENERIC_TYPE_IDENTIFIER => 53,
     1683 :V_STRING => 54,
     1684 :Comma_code => 55,
     1685 :SYM_LIST_CONTINUE => 56,
     1686 :V_INTEGER => 57,
     1687 :SYM_INTERVAL_DELIM => 58,
     1688 :SYM_ELLIPSIS => 59,
     1689 :V_REAL => 60,
     1690 :SYM_TRUE => 61,
     1691 :SYM_FALSE => 62,
     1692 :V_CHARACTER => 63,
     1693 :V_ISO8601_EXTENDED_DATE => 64,
     1694 :V_ISO8601_EXTENDED_TIME => 65,
     1695 :V_ISO8601_EXTENDED_DATE_TIME => 66,
     1696 :V_ISO8601_DURATION => 67,
     1697 :V_QUALIFIED_TERM_CODE_REF => 68,
     1698 :V_URI => 69,
     1699 :SYM_EXISTS => 70,
     1700 :SYM_NOT => 71,
     1701 "=" => 72,
     1702 :SYM_AND => 73,
     1703 :SYM_OR => 74,
     1704 :SYM_XOR => 75,
     1705 :SYM_IMPLIES => 76,
     1706 :Slash_code => 77,
     1707 "^" => 78,
     1708 :SYM_EXISTENCE => 79,
     1709 :SYM_CARDINALITY => 80,
     1710 :Semicolon_code => 81,
     1711 :SYM_ORDERED => 82,
     1712 :SYM_UNORDERED => 83,
     1713 :SYM_UNIQUE => 84,
     1714 :SYM_OCCURRENCES => 85,
     1715 :V_ISO8601_DATE_CONSTRAINT_PATTERN => 86,
     1716 :V_ISO8601_TIME_CONSTRAINT_PATTERN => 87,
     1717 :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN => 88,
     1718 :START_TERM_CODE_CONSTRAINT => 89,
     1719 :END_TERM_CODE_CONSTRAINT => 90,
     1720 :TERM_CODE => 91,
     1721 :V_ISO8601_DURATION_CONSTRAINT_PATTERN => 92 }
    16981722
    16991723racc_use_result_var = true
    17001724
    1701 racc_nt_base = 92
     1725racc_nt_base = 93
    17021726
    17031727Racc_arg = [
     
    17551779'REGEXP_BODY',
    17561780'END_REGEXP_BLOCK',
    1757 'V_C_DOMAIN_TYPE',
    17581781'ERR_C_DOMAIN_TYPE',
     1782'START_V_C_DOMAIN_TYPE',
     1783'END_V_C_DOMAIN_TYPE',
    17591784'SYM_USE_NODE',
    17601785'SYM_ALLOW_ARCHETYPE',
     
    18431868'c_ordinal',
    18441869'c_primitive_object',
     1870'v_c_domain_type',
     1871'v_c_domain_type_body',
    18451872'absolute_path',
    18461873'c_archetype_slot_head',
     
    26942721 # reduce 374 omitted
    26952722
     2723 # reduce 375 omitted
     2724
     2725 # reduce 376 omitted
     2726
    26962727 def _reduce_none( val, _values, result )
    26972728  result
  • ruby/trunk/adl_parser/lib/parser.y

    r4 r14  
    119119  | c_ordinal
    120120  | c_primitive_object
    121   | V_C_DOMAIN_TYPE
     121  | v_c_domain_type
     122#  | V_C_DOMAIN_TYPE
     123  #   this is an attempt to match a dADL section inside cADL. It will
     124  #   probably never work 100% properly since there can be '>' inside "||"
     125  #   ranges, and also strings containing any character, e.g. units string
     126  #   contining "{}" chars. The real solution is to use the dADL parser on
     127  #   the buffer from the current point on and be able to fast-forward the
     128  #   cursor to the last character matched by the dADL scanner
    122129  | ERR_C_DOMAIN_TYPE
    123130  | error
     131
     132v_c_domain_type: START_V_C_DOMAIN_TYPE v_c_domain_type_body END_V_C_DOMAIN_TYPE
     133v_c_domain_type_body: dadl_section
    124134
    125135# 'archetype_internal_ref' is a node that refers to a previously defined object node in the same archetype.
     
    904914      when /\A\<=/   # <=
    905915        yield :SYM_LE, :SYM_LE
     916      when /\A[A-Z][a-zA-Z0-9_]*[ \n]*\</   # V_C_DOMAIN_TYPE
     917        @in_c_domain_type = true
     918        @adl_type.push(:dadl)
     919          yield :START_V_C_DOMAIN_TYPE_BLOCK, :START_V_C_DOMAIN_TYPE_BLOCK
     920###         else
     921###           raise
     922###         end
    906923      when /\A\</   # <
    907924        if @in_interval
     
    11011118          @in_interval = false
    11021119          yield :SYM_GT, :SYM_GT
     1120        elsif @in_c_domain_type
     1121          @in_c_domain_type = false
     1122          adl_type = @adl_type.pop
     1123          assert_at(__FILE__,__LINE__){adl_type == :dadl}
     1124          yield :END_V_C_DOMAIN_TYPE_BLOCK, :END_V_C_DOMAIN_TYPE_BLOCK
    11031125        else
    11041126          adl_type = @adl_type.pop
     
    13341356  @in_regexp = false
    13351357  @in_interval = false
     1358  @in_c_domain_type = false
    13361359  yyparse self, :scan
    13371360end
  • ruby/trunk/adl_parser/tests/parser_test.rb

    r4 r14  
    8484    end
    8585
    86 #     dimensions_circumference = File.read('tests/openEHR-EHR-CLUSTER.dimensions.v1.adl')
    87 #     assert_nothing_raised do
    88 #       @parser.parse(dimensions_circumference, 'openEHR-EHR-CLUSTER.dimensions.v1.adl')
    89 #     end
     86     dimensions_circumference = File.read('tests/openEHR-EHR-CLUSTER.dimensions.v1.adl')
     87     assert_nothing_raised do
     88       @parser.parse(dimensions_circumference, 'openEHR-EHR-CLUSTER.dimensions.v1.adl')
     89     end
    9090#     medication = File.read('tests/openEHR-EHR-ITEM_TREE.medication.v1.adl')
    9191#     assert_nothing_raised do
  • ruby/trunk/adl_parser/tests/validator_test.rb

    r4 r14  
    1717    end
    1818
    19     exam_uterine_cervix = File.read('tests/openEHR-EHR-CLUSTER.exam-uterine_cervix.v1.adl')
    20     assert_raise(Racc::ParseError) do
    21       @validator.validate(exam_uterine_cervix, 'openEHR-EHR-CLUSTER.exam-uterine_cervix.v1.adl')
    22     end
     19#     exam_uterine_cervix = File.read('tests/openEHR-EHR-CLUSTER.exam-uterine_cervix.v1.adl')
     20# #    assert_raise(Racc::ParseError) do
     21#    @validator.validate(exam_uterine_cervix, 'openEHR-EHR-CLUSTER.exam-uterine_cervix.v1.adl')
     22# #    end
    2323
    2424  end
Note: See TracChangeset for help on using the changeset viewer.