- Files:
-
- 228 added
- 2 deleted
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
/haskell/trunk/ADLParser.hs
r20 r30 24 24 return ontology 25 25 26 27 adlVersion :: Parser String 26 adlVersion :: Parser Version 28 27 adlVersion = do dec1 <- string "archetype (adl_version=" 29 28 ver <- many anyChar … … 52 51 53 52 adlLanguage :: Parser Language 53 adlLanguage = do spaces 54 head <- string "language" 55 54 56 57 58 parseAtoms :: Parser [Atom] 59 parseAtoms = many atom 60 where 61 atom :: Parser Atom 62 atom = do spaces 63 name <- string 64 spaces 65 equal <- char '=' 66 spaces 67 <|> return [] 68 69 70 data Language = Original_Laguage String 71 | Translaions [Transpation] 72 deriving Show 73 74 data Translation = Symbol String 75 | Language String 76 | Author Author 77 78 data Author = Name String 79 | Organisation String 80 81 data Atom = Name String 82 | Description String 83 84 type Version :: String -
/ruby/trunk/adl_parser/Rakefile
r20 r30 83 83 s.email = 'akimichi_tatsukawa@nifty.com' 84 84 s.test_files = FileList['tests/*_test.rb', '*.adl'] 85 candidates = Dir.glob("{bin, docs, lib, tests,ext}/**/*")85 candidates = Dir.glob("{bin,docs,lib,tests,ext}/**/*") 86 86 s.files = candidates.delete_if do |item| 87 87 item.include?(".svn") || item.include?("rdoc") 88 88 end 89 FileList['README', 'COPYING', 'Rakefile']89 s.files = FileList['README', 'COPYING', 'Rakefile'] 90 90 s.require_path = "lib" 91 91 s.has_rdoc = true 92 92 s.extra_rdoc_files = ["README"] 93 93 s.add_dependency("yaparc", ">= 0.2.0") 94 s.add_dependency("openehr_models", ">= 0.0.1") 94 95 end 95 96 -
/ruby/trunk/adl_parser/lib/parser.rb
r20 r30 13 13 require 'lib/util.rb' 14 14 require 'lib/scanner.rb' 15 require 'lib/model.rb' 15 require 'rubygems' 16 require 'am.rb' 16 17 $DEBUG = true 17 18 … … 25 26 class Parser < Racc::Parser 26 27 27 module_eval <<'..end lib/parser.y modeval..id134a7f5a66', 'lib/parser.y', 739 28 module_eval <<'..end lib/parser.y modeval..id3b9eed63e6', 'lib/parser.y', 1127 29 30 def assert_at(file,line, message = "") 31 unless yield 32 raise "Assertion failed !: #{file}, #{line}: #{message}" 33 end 34 end 28 35 29 36 @@log = Logger.new('log/parser.log','daily') … … 812 819 813 820 814 ..end lib/parser.y modeval..id 134a7f5a66821 ..end lib/parser.y modeval..id3b9eed63e6 815 822 816 823 ##### racc 1.4.5 generates ### … … 818 825 racc_reduce_table = [ 819 826 0, 0, :racc_error, 820 2, 95, :_reduce_ none,827 2, 95, :_reduce_1, 821 828 1, 95, :_reduce_none, 822 8, 96, :_reduce_ none,823 2, 97, :_reduce_ none,824 2, 97, :_reduce_ none,825 1, 105, :_reduce_ none,826 2, 105, :_reduce_ none,827 3, 106, :_reduce_ none,828 1, 107, :_reduce_ none,829 3, 107, :_reduce_ none,830 3, 108, :_reduce_ none,831 1, 108, :_reduce_ none,829 8, 96, :_reduce_3, 830 2, 97, :_reduce_4, 831 2, 97, :_reduce_5, 832 1, 105, :_reduce_6, 833 2, 105, :_reduce_7, 834 3, 106, :_reduce_8, 835 1, 107, :_reduce_9, 836 3, 107, :_reduce_10, 837 3, 108, :_reduce_11, 838 1, 108, :_reduce_12, 832 839 0, 98, :_reduce_none, 833 840 2, 98, :_reduce_none, 834 841 2, 98, :_reduce_none, 842 2, 99, :_reduce_16, 835 843 2, 99, :_reduce_none, 836 2, 99, :_reduce_none, 837 0, 100, :_reduce_none, 844 0, 100, :_reduce_18, 838 845 2, 100, :_reduce_19, 839 846 2, 100, :_reduce_none, 840 847 0, 101, :_reduce_none, 848 2, 101, :_reduce_22, 841 849 2, 101, :_reduce_none, 842 2, 10 1, :_reduce_none,850 2, 102, :_reduce_24, 843 851 2, 102, :_reduce_none, 844 2, 102, :_reduce_none, 845 1, 110, :_reduce_none, 846 1, 110, :_reduce_none, 847 5, 111, :_reduce_none, 848 5, 111, :_reduce_none, 849 2, 113, :_reduce_none, 852 1, 110, :_reduce_26, 853 1, 110, :_reduce_27, 854 5, 111, :_reduce_28, 855 5, 111, :_reduce_29, 856 2, 113, :_reduce_30, 850 857 1, 115, :_reduce_31, 851 858 2, 115, :_reduce_32, 852 859 1, 114, :_reduce_none, 853 1, 114, :_reduce_none, 860 1, 114, :_reduce_34, 861 1, 120, :_reduce_35, 862 1, 120, :_reduce_36, 863 1, 120, :_reduce_37, 864 1, 120, :_reduce_38, 865 1, 120, :_reduce_39, 866 1, 120, :_reduce_40, 867 1, 120, :_reduce_41, 868 1, 120, :_reduce_42, 854 869 1, 120, :_reduce_none, 855 870 1, 120, :_reduce_none, 856 1, 120, :_reduce_none, 857 1, 120, :_reduce_none, 858 1, 120, :_reduce_none, 859 1, 120, :_reduce_none, 860 1, 120, :_reduce_none, 861 1, 120, :_reduce_none, 862 1, 120, :_reduce_none, 863 1, 120, :_reduce_none, 864 3, 121, :_reduce_none, 871 3, 121, :_reduce_45, 865 872 4, 122, :_reduce_none, 866 873 3, 122, :_reduce_none, … … 870 877 3, 132, :_reduce_none, 871 878 2, 132, :_reduce_none, 872 1, 127, :_reduce_ none,873 1, 133, :_reduce_ none,874 1, 133, :_reduce_ none,875 1, 133, :_reduce_ none,876 1, 133, :_reduce_ none,877 1, 133, :_reduce_ none,878 1, 133, :_reduce_ none,879 1, 133, :_reduce_ none,880 1, 133, :_reduce_ none,879 1, 127, :_reduce_53, 880 1, 133, :_reduce_54, 881 1, 133, :_reduce_55, 882 1, 133, :_reduce_56, 883 1, 133, :_reduce_57, 884 1, 133, :_reduce_58, 885 1, 133, :_reduce_59, 886 1, 133, :_reduce_60, 887 1, 133, :_reduce_61, 881 888 1, 118, :_reduce_none, 882 1, 119, :_reduce_ none,883 2, 119, :_reduce_ none,884 5, 142, :_reduce_ none,885 5, 142, :_reduce_ none,886 5, 142, :_reduce_ none,889 1, 119, :_reduce_63, 890 2, 119, :_reduce_64, 891 5, 142, :_reduce_65, 892 5, 142, :_reduce_66, 893 5, 142, :_reduce_67, 887 894 2, 143, :_reduce_68, 888 895 3, 143, :_reduce_69, 889 1, 144, :_reduce_ none,890 2, 144, :_reduce_ none,891 1, 144, :_reduce_ none,896 1, 144, :_reduce_70, 897 2, 144, :_reduce_71, 898 1, 144, :_reduce_72, 892 899 0, 130, :_reduce_none, 893 900 2, 130, :_reduce_none, … … 902 909 2, 103, :_reduce_none, 903 910 2, 103, :_reduce_none, 904 2, 104, :_reduce_ none,911 2, 104, :_reduce_85, 905 912 2, 104, :_reduce_none, 906 913 1, 109, :_reduce_none, 907 914 1, 151, :_reduce_none, 908 915 1, 151, :_reduce_none, 909 1, 152, :_reduce_ none,910 2, 152, :_reduce_ none,911 3, 152, :_reduce_ none,916 1, 152, :_reduce_90, 917 2, 152, :_reduce_91, 918 3, 152, :_reduce_92, 912 919 3, 154, :_reduce_93, 913 920 1, 155, :_reduce_94, 914 921 2, 155, :_reduce_none, 915 1, 156, :_reduce_ none,916 1, 156, :_reduce_ none,917 1, 153, :_reduce_ none,918 1, 153, :_reduce_ none,919 1, 159, :_reduce_ none,920 2, 159, :_reduce_ none,921 3, 160, :_reduce_ none,922 1, 156, :_reduce_96, 923 1, 156, :_reduce_97, 924 1, 153, :_reduce_98, 925 1, 153, :_reduce_99, 926 1, 159, :_reduce_100, 927 2, 159, :_reduce_101, 928 3, 160, :_reduce_102, 922 929 1, 161, :_reduce_103, 923 1, 162, :_reduce_ none,924 2, 162, :_reduce_ none,930 1, 162, :_reduce_104, 931 2, 162, :_reduce_105, 925 932 3, 163, :_reduce_106, 926 933 3, 164, :_reduce_107, 927 1, 158, :_reduce_ none,928 2, 158, :_reduce_ none,929 2, 166, :_reduce_ none,930 3, 166, :_reduce_ none,934 1, 158, :_reduce_108, 935 2, 158, :_reduce_109, 936 2, 166, :_reduce_110, 937 3, 166, :_reduce_111, 931 938 1, 167, :_reduce_none, 932 1, 157, :_reduce_ none,933 2, 157, :_reduce_ none,939 1, 157, :_reduce_113, 940 2, 157, :_reduce_114, 934 941 3, 168, :_reduce_115, 935 1, 169, :_reduce_ none,936 1, 169, :_reduce_ none,937 1, 169, :_reduce_ none,938 1, 169, :_reduce_ none,939 1, 169, :_reduce_ none,942 1, 169, :_reduce_116, 943 1, 169, :_reduce_117, 944 1, 169, :_reduce_118, 945 1, 169, :_reduce_119, 946 1, 169, :_reduce_120, 940 947 1, 165, :_reduce_121, 941 948 1, 165, :_reduce_122, … … 969 976 3, 184, :_reduce_none, 970 977 3, 184, :_reduce_none, 971 1, 175, :_reduce_ none,972 2, 175, :_reduce_ none,973 2, 175, :_reduce_ none,978 1, 175, :_reduce_152, 979 2, 175, :_reduce_153, 980 2, 175, :_reduce_154, 974 981 3, 185, :_reduce_none, 975 982 3, 185, :_reduce_none, … … 984 991 4, 193, :_reduce_none, 985 992 3, 193, :_reduce_none, 986 1, 176, :_reduce_ none,987 2, 176, :_reduce_ none,988 2, 176, :_reduce_ none,993 1, 176, :_reduce_167, 994 2, 176, :_reduce_168, 995 2, 176, :_reduce_169, 989 996 3, 186, :_reduce_none, 990 997 3, 186, :_reduce_none, … … 999 1006 4, 194, :_reduce_none, 1000 1007 3, 194, :_reduce_none, 1001 1, 177, :_reduce_ none,1002 1, 177, :_reduce_ none,1008 1, 177, :_reduce_182, 1009 1, 177, :_reduce_183, 1003 1010 3, 187, :_reduce_none, 1004 1011 3, 187, :_reduce_none, … … 1107 1114 2, 206, :_reduce_288, 1108 1115 1, 206, :_reduce_289, 1109 0, 145, :_reduce_ none,1110 5, 145, :_reduce_ none,1111 1, 207, :_reduce_ none,1112 3, 207, :_reduce_ none,1113 5, 146, :_reduce_ none,1116 0, 145, :_reduce_290, 1117 5, 145, :_reduce_291, 1118 1, 207, :_reduce_292, 1119 3, 207, :_reduce_293, 1120 5, 146, :_reduce_294, 1114 1121 1, 208, :_reduce_none, 1115 1122 3, 208, :_reduce_none, … … 1123 1130 1, 210, :_reduce_none, 1124 1131 0, 116, :_reduce_none, 1125 5, 116, :_reduce_ none,1132 5, 116, :_reduce_306, 1126 1133 2, 116, :_reduce_none, 1127 1134 1, 209, :_reduce_none, … … 1170 1177 3, 140, :_reduce_none, 1171 1178 3, 140, :_reduce_none, 1172 1, 219, :_reduce_ none,1173 1, 219, :_reduce_ none,1174 3, 219, :_reduce_ none,1175 3, 219, :_reduce_ none,1176 1, 141, :_reduce_ none,1177 3, 141, :_reduce_ none,1178 3, 141, :_reduce_ none,1179 1, 219, :_reduce_353, 1180 1, 219, :_reduce_354, 1181 3, 219, :_reduce_355, 1182 3, 219, :_reduce_356, 1183 1, 141, :_reduce_357, 1184 3, 141, :_reduce_358, 1185 3, 141, :_reduce_359, 1179 1186 1, 126, :_reduce_none, 1180 1187 3, 126, :_reduce_none, … … 1192 1199 1, 149, :_reduce_none, 1193 1200 1, 149, :_reduce_374, 1194 1, 217, :_reduce_ none]1201 1, 217, :_reduce_375 ] 1195 1202 1196 1203 racc_reduce_n = 376 … … 2012 2019 # reduce 0 omitted 2013 2020 2014 # reduce 1 omitted 2021 module_eval <<'.,.,', 'lib/parser.y', 32 2022 def _reduce_1( val, _values, result ) 2023 result = val[0] 2024 result 2025 end 2026 .,., 2015 2027 2016 2028 # reduce 2 omitted 2017 2029 2018 # reduce 3 omitted 2019 2020 # reduce 4 omitted 2021 2022 # reduce 5 omitted 2023 2024 # reduce 6 omitted 2025 2026 # reduce 7 omitted 2027 2028 # reduce 8 omitted 2029 2030 # reduce 9 omitted 2031 2032 # reduce 10 omitted 2033 2034 # reduce 11 omitted 2035 2036 # reduce 12 omitted 2030 module_eval <<'.,.,', 'lib/parser.y', 57 2031 def _reduce_3( val, _values, result ) 2032 assert_at(__FILE__,__LINE__) do 2033 val[4].instance_of?(OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION) and val[5].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT) and val[7].instance_of?(OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY) 2034 end 2035 2036 archetype_id = val[0][:archetype_id] 2037 adl_version = val[0][:arch_head][:arch_meta_data][:adl_version] 2038 concept = val[2] 2039 language = val[3][:arch_language] 2040 archetype = OpenEHR::AM::Archetype::ARCHETYPE.create( 2041 :archetype_id => archetype_id, 2042 :adl_version => adl_version, 2043 :concept => concept, 2044 :description => val[4], 2045 :definition => val[5], 2046 :ontology => val[7] 2047 ) do |archetype| 2048 archetype.original_language = language 2049 end 2050 @@log.info("#{__FILE__}:#{__LINE__}: archetype = #{archetype} at #{@filename}:#{@lineno}") 2051 result = archetype 2052 result 2053 end 2054 .,., 2055 2056 module_eval <<'.,.,', 'lib/parser.y', 63 2057 def _reduce_4( val, _values, result ) 2058 result = {:arch_head => val[0], :archetype_id => val[1] } 2059 result 2060 end 2061 .,., 2062 2063 module_eval <<'.,.,', 'lib/parser.y', 67 2064 def _reduce_5( val, _values, result ) 2065 raise 2066 result 2067 end 2068 .,., 2069 2070 module_eval <<'.,.,', 'lib/parser.y', 72 2071 def _reduce_6( val, _values, result ) 2072 result = {:arch_meta_data => nil } 2073 result 2074 end 2075 .,., 2076 2077 module_eval <<'.,.,', 'lib/parser.y', 76 2078 def _reduce_7( val, _values, result ) 2079 result = val[1] 2080 result 2081 end 2082 .,., 2083 2084 module_eval <<'.,.,', 'lib/parser.y', 81 2085 def _reduce_8( val, _values, result ) 2086 result = {:arch_meta_data => val[1] } 2087 result 2088 end 2089 .,., 2090 2091 module_eval <<'.,.,', 'lib/parser.y', 86 2092 def _reduce_9( val, _values, result ) 2093 result = val[0] 2094 result 2095 end 2096 .,., 2097 2098 module_eval <<'.,.,', 'lib/parser.y', 90 2099 def _reduce_10( val, _values, result ) 2100 result = val[0].merge(val[2]) 2101 result 2102 end 2103 .,., 2104 2105 module_eval <<'.,.,', 'lib/parser.y', 96 2106 def _reduce_11( val, _values, result ) 2107 result = {:adl_version => val[2], :is_controlled => false } 2108 result 2109 end 2110 .,., 2111 2112 module_eval <<'.,.,', 'lib/parser.y', 100 2113 def _reduce_12( val, _values, result ) 2114 result = {:is_controlled => true } 2115 result 2116 end 2117 .,., 2037 2118 2038 2119 # reduce 13 omitted … … 2042 2123 # reduce 15 omitted 2043 2124 2044 # reduce 16 omitted 2125 module_eval <<'.,.,', 'lib/parser.y', 111 2126 def _reduce_16( val, _values, result ) 2127 result = {:arch_concept => val[1] } 2128 result 2129 end 2130 .,., 2045 2131 2046 2132 # reduce 17 omitted 2047 2133 2048 # reduce 18 omitted 2049 2050 module_eval <<'.,.,', 'lib/parser.y', 74 2134 module_eval <<'.,.,', 'lib/parser.y', 121 2135 def _reduce_18( val, _values, result ) 2136 result = {:arch_language => nil} 2137 result 2138 end 2139 .,., 2140 2141 module_eval <<'.,.,', 'lib/parser.y', 125 2051 2142 def _reduce_19( val, _values, result ) 2052 result = {: language => val[1]}2143 result = {:arch_language => val[1]} 2053 2144 result 2054 2145 end … … 2059 2150 # reduce 21 omitted 2060 2151 2061 # reduce 22 omitted 2152 module_eval <<'.,.,', 'lib/parser.y', 136 2153 def _reduce_22( val, _values, result ) 2154 result = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new(:details => val[1]) 2155 result 2156 end 2157 .,., 2062 2158 2063 2159 # reduce 23 omitted 2064 2160 2065 # reduce 24 omitted 2161 module_eval <<'.,.,', 'lib/parser.y', 144 2162 def _reduce_24( val, _values, result ) 2163 result = val[1] 2164 result 2165 end 2166 .,., 2066 2167 2067 2168 # reduce 25 omitted 2068 2169 2069 # reduce 26 omitted 2070 2071 # reduce 27 omitted 2072 2073 # reduce 28 omitted 2074 2075 # reduce 29 omitted 2076 2077 # reduce 30 omitted 2078 2079 module_eval <<'.,.,', 'lib/parser.y', 111 2170 module_eval <<'.,.,', 'lib/parser.y', 154 2171 def _reduce_26( val, _values, result ) 2172 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT)} 2173 @@log.info("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0]} at #{@filename}:#{@lineno}") 2174 result = val[0] 2175 result 2176 end 2177 .,., 2178 2179 module_eval <<'.,.,', 'lib/parser.y', 158 2180 def _reduce_27( val, _values, result ) 2181 result = val[0] 2182 result 2183 end 2184 .,., 2185 2186 module_eval <<'.,.,', 'lib/parser.y', 169 2187 def _reduce_28( val, _values, result ) 2188 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object| 2189 c_complex_object.node_id = val[0][:c_complex_object_id][:local_term_code_ref] 2190 c_complex_object.rm_type_name = val[0][:c_complex_object_id][:type_identifier] 2191 c_complex_object.occurrences = val[0][:c_occurrences] 2192 end 2193 result 2194 end 2195 .,., 2196 2197 module_eval <<'.,.,', 'lib/parser.y', 177 2198 def _reduce_29( val, _values, result ) 2199 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object| 2200 c_complex_object.node_id = val[0][:c_complex_object_id][:local_term_code_ref] 2201 c_complex_object.rm_type_name = val[0][:c_complex_object_id][:type_identifier] 2202 c_complex_object.occurrences = val[0][:c_occurrences] 2203 end 2204 result 2205 end 2206 .,., 2207 2208 module_eval <<'.,.,', 'lib/parser.y', 184 2209 def _reduce_30( val, _values, result ) 2210 result = {:c_complex_object_id => val[0], :c_occurrences => val[1]} 2211 result 2212 end 2213 .,., 2214 2215 module_eval <<'.,.,', 'lib/parser.y', 189 2080 2216 def _reduce_31( val, _values, result ) 2081 result = {: c_complex_object_id => {:type_identifier => val[0]}}2082 result 2083 end 2084 .,., 2085 2086 module_eval <<'.,.,', 'lib/parser.y', 1 152217 result = {:type_identifier => val[0]} 2218 result 2219 end 2220 .,., 2221 2222 module_eval <<'.,.,', 'lib/parser.y', 193 2087 2223 def _reduce_32( val, _values, result ) 2088 result = {: c_complex_object_id => {:type_identifier => val[0], :V_LOCAL_TERM_CODE_REF => val[1]}}2224 result = {:type_identifier => val[0], :local_term_code_ref => val[1]} 2089 2225 result 2090 2226 end … … 2093 2229 # reduce 33 omitted 2094 2230 2095 # reduce 34 omitted 2096 2097 # reduce 35 omitted 2098 2099 # reduce 36 omitted 2100 2101 # reduce 37 omitted 2102 2103 # reduce 38 omitted 2104 2105 # reduce 39 omitted 2106 2107 # reduce 40 omitted 2108 2109 # reduce 41 omitted 2110 2111 # reduce 42 omitted 2231 module_eval <<'.,.,', 'lib/parser.y', 199 2232 def _reduce_34( val, _values, result ) 2233 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => val[0]) 2234 result 2235 end 2236 .,., 2237 2238 module_eval <<'.,.,', 'lib/parser.y', 207 2239 def _reduce_35( val, _values, result ) 2240 result = val[0] 2241 result 2242 end 2243 .,., 2244 2245 module_eval <<'.,.,', 'lib/parser.y', 211 2246 def _reduce_36( val, _values, result ) 2247 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new 2248 result 2249 end 2250 .,., 2251 2252 module_eval <<'.,.,', 'lib/parser.y', 215 2253 def _reduce_37( val, _values, result ) 2254 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new 2255 result 2256 end 2257 .,., 2258 2259 module_eval <<'.,.,', 'lib/parser.y', 219 2260 def _reduce_38( val, _values, result ) 2261 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new 2262 result 2263 end 2264 .,., 2265 2266 module_eval <<'.,.,', 'lib/parser.y', 223 2267 def _reduce_39( val, _values, result ) 2268 result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new 2269 result 2270 end 2271 .,., 2272 2273 module_eval <<'.,.,', 'lib/parser.y', 227 2274 def _reduce_40( val, _values, result ) 2275 result = val[0] 2276 result 2277 end 2278 .,., 2279 2280 module_eval <<'.,.,', 'lib/parser.y', 231 2281 def _reduce_41( val, _values, result ) 2282 result = val[0] 2283 result 2284 end 2285 .,., 2286 2287 module_eval <<'.,.,', 'lib/parser.y', 235 2288 def _reduce_42( val, _values, result ) 2289 result = val[0] 2290 result 2291 end 2292 .,., 2112 2293 2113 2294 # reduce 43 omitted … … 2115 2296 # reduce 44 omitted 2116 2297 2117 # reduce 45 omitted 2298 module_eval <<'.,.,', 'lib/parser.y', 250 2299 def _reduce_45( val, _values, result ) 2300 result = val[1] 2301 result 2302 end 2303 .,., 2118 2304 2119 2305 # reduce 46 omitted … … 2131 2317 # reduce 52 omitted 2132 2318 2133 # reduce 53 omitted 2134 2135 # reduce 54 omitted 2136 2137 # reduce 55 omitted 2138 2139 # reduce 56 omitted 2140 2141 # reduce 57 omitted 2142 2143 # reduce 58 omitted 2144 2145 # reduce 59 omitted 2146 2147 # reduce 60 omitted 2148 2149 # reduce 61 omitted 2319 module_eval <<'.,.,', 'lib/parser.y', 270 2320 def _reduce_53( val, _values, result ) 2321 assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE)} 2322 result = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new(:item => val[0]) 2323 result 2324 end 2325 .,., 2326 2327 module_eval <<'.,.,', 'lib/parser.y', 276 2328 def _reduce_54( val, _values, result ) 2329 @@log.info("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}") 2330 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new 2331 result 2332 end 2333 .,., 2334 2335 module_eval <<'.,.,', 'lib/parser.y', 281 2336 def _reduce_55( val, _values, result ) 2337 @@log.info("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}") 2338 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL.new 2339 result 2340 end 2341 .,., 2342 2343 module_eval <<'.,.,', 'lib/parser.y', 286 2344 def _reduce_56( val, _values, result ) 2345 @@log.info("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}") 2346 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE.new 2347 result 2348 end 2349 .,., 2350 2351 module_eval <<'.,.,', 'lib/parser.y', 291 2352 def _reduce_57( val, _values, result ) 2353 @@log.info("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}") 2354 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME.new 2355 result 2356 end 2357 .,., 2358 2359 module_eval <<'.,.,', 'lib/parser.y', 296 2360 def _reduce_58( val, _values, result ) 2361 @@log.info("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}") 2362 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new 2363 result 2364 end 2365 .,., 2366 2367 module_eval <<'.,.,', 'lib/parser.y', 301 2368 def _reduce_59( val, _values, result ) 2369 @@log.info("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}") 2370 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new 2371 result 2372 end 2373 .,., 2374 2375 module_eval <<'.,.,', 'lib/parser.y', 306 2376 def _reduce_60( val, _values, result ) 2377 @@log.info("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}") 2378 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING.new 2379 result 2380 end 2381 .,., 2382 2383 module_eval <<'.,.,', 'lib/parser.y', 312 2384 def _reduce_61( val, _values, result ) 2385 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN)} 2386 @@log.info("#{__FILE__}:#{__LINE__}: c_boolean = #{val[0]} at #{@filename}:#{@lineno}") 2387 result = val[0] 2388 result 2389 end 2390 .,., 2150 2391 2151 2392 # reduce 62 omitted 2152 2393 2153 # reduce 63 omitted 2154 2155 # reduce 64 omitted 2156 2157 # reduce 65 omitted 2158 2159 # reduce 66 omitted 2160 2161 # reduce 67 omitted 2162 2163 module_eval <<'.,.,', 'lib/parser.y', 186 2394 module_eval <<'.,.,', 'lib/parser.y', 322 2395 def _reduce_63( val, _values, result ) 2396 result = [val[0]] 2397 result 2398 end 2399 .,., 2400 2401 module_eval <<'.,.,', 'lib/parser.y', 326 2402 def _reduce_64( val, _values, result ) 2403 result = (val[0] << val[1]) 2404 result 2405 end 2406 .,., 2407 2408 module_eval <<'.,.,', 'lib/parser.y', 335 2409 def _reduce_65( val, _values, result ) 2410 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)} 2411 c_attribute = val[0] 2412 c_attribute.children = val[3] 2413 result = c_attribute 2414 result 2415 end 2416 .,., 2417 2418 module_eval <<'.,.,', 'lib/parser.y', 340 2419 def _reduce_66( val, _values, result ) 2420 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)} 2421 result = val[0] 2422 result 2423 end 2424 .,., 2425 2426 module_eval <<'.,.,', 'lib/parser.y', 345 2427 def _reduce_67( val, _values, result ) 2428 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)} 2429 result = val[0] 2430 result 2431 end 2432 .,., 2433 2434 module_eval <<'.,.,', 'lib/parser.y', 356 2164 2435 def _reduce_68( val, _values, result ) 2165 2436 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}") 2166 result 2167 end 2168 .,., 2169 2170 module_eval <<'.,.,', 'lib/parser.y', 190 2437 result = OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new( 2438 :rm_attribute_name => val[0], 2439 :existence => val[1] 2440 ) 2441 result 2442 end 2443 .,., 2444 2445 module_eval <<'.,.,', 'lib/parser.y', 366 2171 2446 def _reduce_69( val, _values, result ) 2172 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER: #{val[0]}, c_existence = #{val[1]}, c_cardinality = #{val[2]} at #{@filename}") 2173 result 2174 end 2175 .,., 2176 2177 # reduce 70 omitted 2178 2179 # reduce 71 omitted 2180 2181 # reduce 72 omitted 2447 assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY) } 2448 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER: #{val[0]}, c_existence = #{val[1]}, c_cardinality = #{val[2]} at #{@filename}") 2449 result = OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE.new( 2450 :rm_attribute_name => val[0], 2451 :existence => val[1], 2452 :cardinality => val[2] 2453 ) 2454 result 2455 end 2456 .,., 2457 2458 module_eval <<'.,.,', 'lib/parser.y', 371 2459 def _reduce_70( val, _values, result ) 2460 result = Array[val[0]] 2461 result 2462 end 2463 .,., 2464 2465 module_eval <<'.,.,', 'lib/parser.y', 375 2466 def _reduce_71( val, _values, result ) 2467 result = (val[0] << val[1]) 2468 result 2469 end 2470 .,., 2471 2472 module_eval <<'.,.,', 'lib/parser.y', 379 2473 def _reduce_72( val, _values, result ) 2474 result = Array[val[0]] 2475 result 2476 end 2477 .,., 2182 2478 2183 2479 # reduce 73 omitted … … 2205 2501 # reduce 84 omitted 2206 2502 2207 # reduce 85 omitted 2503 module_eval <<'.,.,', 'lib/parser.y', 410 2504 def _reduce_85( val, _values, result ) 2505 dadl_section = val[1] 2506 result = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new 2507 result 2508 end 2509 .,., 2208 2510 2209 2511 # reduce 86 omitted … … 2215 2517 # reduce 89 omitted 2216 2518 2217 # reduce 90 omitted 2218 2219 # reduce 91 omitted 2220 2221 # reduce 92 omitted 2222 2223 module_eval <<'.,.,', 'lib/parser.y', 240 2519 module_eval <<'.,.,', 'lib/parser.y', 424 2520 def _reduce_90( val, _values, result ) 2521 result = Array[val[0]] 2522 result 2523 end 2524 .,., 2525 2526 module_eval <<'.,.,', 'lib/parser.y', 428 2527 def _reduce_91( val, _values, result ) 2528 result = (val[0] << val[1]) 2529 result 2530 end 2531 .,., 2532 2533 module_eval <<'.,.,', 'lib/parser.y', 432 2534 def _reduce_92( val, _values, result ) 2535 result = (val[0] << val[2]) 2536 result 2537 end 2538 .,., 2539 2540 module_eval <<'.,.,', 'lib/parser.y', 438 2224 2541 def _reduce_93( val, _values, result ) 2225 2542 @@log.info("#{__FILE__}:#{__LINE__}: attr_id = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}") 2226 result 2227 end 2228 .,., 2229 2230 module_eval <<'.,.,', 'lib/parser.y', 245 2543 result = {:attr_id => val[0], :object_block => val[2]} 2544 result 2545 end 2546 .,., 2547 2548 module_eval <<'.,.,', 'lib/parser.y', 444 2231 2549 def _reduce_94( val, _values, result ) 2232 2550 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}") 2551 result = val[0] 2233 2552 result 2234 2553 end … … 2237 2556 # reduce 95 omitted 2238 2557 2239 # reduce 96 omitted 2240 2241 # reduce 97 omitted 2242 2243 # reduce 98 omitted 2244 2245 # reduce 99 omitted 2246 2247 # reduce 100 omitted 2248 2249 # reduce 101 omitted 2250 2251 # reduce 102 omitted 2252 2253 module_eval <<'.,.,', 'lib/parser.y', 262 2558 module_eval <<'.,.,', 'lib/parser.y', 450 2559 def _reduce_96( val, _values, result ) 2560 result = val[0] 2561 result 2562 end 2563 .,., 2564 2565 module_eval <<'.,.,', 'lib/parser.y', 454 2566 def _reduce_97( val, _values, result ) 2567 result = val[0] 2568 result 2569 end 2570 .,., 2571 2572 module_eval <<'.,.,', 'lib/parser.y', 459 2573 def _reduce_98( val, _values, result ) 2574 result = val[0] 2575 result 2576 end 2577 .,., 2578 2579 module_eval <<'.,.,', 'lib/parser.y', 463 2580 def _reduce_99( val, _values, result ) 2581 result = val[0] 2582 result 2583 end 2584 .,., 2585 2586 module_eval <<'.,.,', 'lib/parser.y', 468 2587 def _reduce_100( val, _values, result ) 2588 result = {:untyped_multiple_attr_object_block => val[0]} 2589 result 2590 end 2591 .,., 2592 2593 module_eval <<'.,.,', 'lib/parser.y', 472 2594 def _reduce_101( val, _values, result ) 2595 result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]} 2596 result 2597 end 2598 .,., 2599 2600 module_eval <<'.,.,', 'lib/parser.y', 477 2601 def _reduce_102( val, _values, result ) 2602 result = {:multiple_attr_object_block_head => val[0], :keyed_objects => val[1]} 2603 result 2604 end 2605 .,., 2606 2607 module_eval <<'.,.,', 'lib/parser.y', 483 2254 2608 def _reduce_103( val, _values, result ) 2255 2609 @@log.info("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}") 2256 result 2257 end 2258 .,., 2259 2260 # reduce 104 omitted 2261 2262 # reduce 105 omitted 2263 2264 module_eval <<'.,.,', 'lib/parser.y', 270 2610 result = val[0] 2611 result 2612 end 2613 .,., 2614 2615 module_eval <<'.,.,', 'lib/parser.y', 488 2616 def _reduce_104( val, _values, result ) 2617 result = Array[val[0]] 2618 result 2619 end 2620 .,., 2621 2622 module_eval <<'.,.,', 'lib/parser.y', 492 2623 def _reduce_105( val, _values, result ) 2624 result = (val[0] << val[1]) 2625 result 2626 end 2627 .,., 2628 2629 module_eval <<'.,.,', 'lib/parser.y', 498 2265 2630 def _reduce_106( val, _values, result ) 2266 2631 @@log.info("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}") 2267 result 2268 end 2269 .,., 2270 2271 module_eval <<'.,.,', 'lib/parser.y', 275 2632 result = {:object_key => val[0], :object_block => val[1]} 2633 result 2634 end 2635 .,., 2636 2637 module_eval <<'.,.,', 'lib/parser.y', 504 2272 2638 def _reduce_107( val, _values, result ) 2273 2639 @@log.info("object_key: [#{val[1]}] at #{@filename}:#{@lineno}") 2274 result 2275 end 2276 .,., 2277 2278 # reduce 108 omitted 2279 2280 # reduce 109 omitted 2281 2282 # reduce 110 omitted 2283 2284 # reduce 111 omitted 2640 result = val[1] 2641 result 2642 end 2643 .,., 2644 2645 module_eval <<'.,.,', 'lib/parser.y', 509 2646 def _reduce_108( val, _values, result ) 2647 result = {:untyped_single_attr_object_block => val[0]} 2648 result 2649 end 2650 .,., 2651 2652 module_eval <<'.,.,', 'lib/parser.y', 513 2653 def _reduce_109( val, _values, result ) 2654 result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]} 2655 result 2656 end 2657 .,., 2658 2659 module_eval <<'.,.,', 'lib/parser.y', 519 2660 def _reduce_110( val, _values, result ) 2661 @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}") 2662 result = {:single_attr_object_complex_head => val[0]} 2663 result 2664 end 2665 .,., 2666 2667 module_eval <<'.,.,', 'lib/parser.y', 524 2668 def _reduce_111( val, _values, result ) 2669 @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]}, attr_vals = #{val[1]} at #{@filename}:#{@lineno}") 2670 result = {:single_attr_object_complex_head => val[0], :attr_vals => val[1]} 2671 result 2672 end 2673 .,., 2285 2674 2286 2675 # reduce 112 omitted 2287 2676 2288 # reduce 113 omitted 2289 2290 # reduce 114 omitted 2291 2292 module_eval <<'.,.,', 'lib/parser.y', 287 2677 module_eval <<'.,.,', 'lib/parser.y', 530 2678 def _reduce_113( val, _values, result ) 2679 @@log.info("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}") 2680 result = {:untyped_primitive_object_block => val[0]} 2681 result 2682 end 2683 .,., 2684 2685 module_eval <<'.,.,', 'lib/parser.y', 535 2686 def _reduce_114( val, _values, result ) 2687 @@log.info("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}") 2688 result = {:type_identifier => val[0], :untyped_primitive_object_block => val[1]} 2689 result 2690 end 2691 .,., 2692 2693 module_eval <<'.,.,', 'lib/parser.y', 540 2293 2694 def _reduce_115( val, _values, result ) 2294 @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[2]}> at #{@filename}:#{@lineno}") 2295 result 2296 end 2297 .,., 2298 2299 # reduce 116 omitted 2300 2301 # reduce 117 omitted 2302 2303 # reduce 118 omitted 2304 2305 # reduce 119 omitted 2306 2307 # reduce 120 omitted 2308 2309 module_eval <<'.,.,', 'lib/parser.y', 296 2695 @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}") 2696 result = val[1] 2697 result 2698 end 2699 .,., 2700 2701 module_eval <<'.,.,', 'lib/parser.y', 544 2702 def _reduce_116( val, _values, result ) 2703 result = val[0] 2704 result 2705 end 2706 .,., 2707 2708 module_eval <<'.,.,', 'lib/parser.y', 548 2709 def _reduce_117( val, _values, result ) 2710 result = val[0] 2711 result 2712 end 2713 .,., 2714 2715 module_eval <<'.,.,', 'lib/parser.y', 552 2716 def _reduce_118( val, _values, result ) 2717 result = val[0] 2718 result 2719 end 2720 .,., 2721 2722 module_eval <<'.,.,', 'lib/parser.y', 556 2723 def _reduce_119( val, _values, result ) 2724 result = val[0] 2725 result 2726 end 2727 .,., 2728 2729 module_eval <<'.,.,', 'lib/parser.y', 560 2730 def _reduce_120( val, _values, result ) 2731 result = val[0] 2732 result 2733 end 2734 .,., 2735 2736 module_eval <<'.,.,', 'lib/parser.y', 565 2310 2737 def _reduce_121( val, _values, result ) 2311 2738 @@log.info("string_value: #{val[0]} at #{@filename}:#{@lineno}") 2312 result 2313 end 2314 .,., 2315 2316 module_eval <<'.,.,', 'lib/parser.y', 300 2739 result = val[0] 2740 result 2741 end 2742 .,., 2743 2744 module_eval <<'.,.,', 'lib/parser.y', 570 2317 2745 def _reduce_122( val, _values, result ) 2318 2746 @@log.info("integer_value: #{val[0]} at #{@filename}:#{@lineno}") 2319 result 2320 end 2321 .,., 2322 2323 module_eval <<'.,.,', 'lib/parser.y', 304 2747 result = val[0] 2748 result 2749 end 2750 .,., 2751 2752 module_eval <<'.,.,', 'lib/parser.y', 575 2324 2753 def _reduce_123( val, _values, result ) 2325 2754 @@log.info("real_value: #{val[0]} at #{@filename}:#{@lineno}") 2326 result 2327 end 2328 .,., 2329 2330 module_eval <<'.,.,', 'lib/parser.y', 308 2755 result = val[0] 2756 result 2757 end 2758 .,., 2759 2760 module_eval <<'.,.,', 'lib/parser.y', 580 2331 2761 def _reduce_124( val, _values, result ) 2332 2762 @@log.info("boolean_value: #{val[0]} at #{@filename}:#{@lineno}") 2333 result 2334 end 2335 .,., 2336 2337 module_eval <<'.,.,', 'lib/parser.y', 312 2763 result = val[0] 2764 result 2765 end 2766 .,., 2767 2768 module_eval <<'.,.,', 'lib/parser.y', 585 2338 2769 def _reduce_125( val, _values, result ) 2339 2770 @@log.info("character_value: #{val[0]} at #{@filename}:#{@lineno}") 2340 result 2341 end 2342 .,., 2343 2344 module_eval <<'.,.,', 'lib/parser.y', 316 2771 result = val[0] 2772 result 2773 end 2774 .,., 2775 2776 module_eval <<'.,.,', 'lib/parser.y', 590 2345 2777 def _reduce_126( val, _values, result ) 2346 2778 @@log.info("date_value: #{val[0]} at #{@filename}:#{@lineno}") 2347 result 2348 end 2349 .,., 2350 2351 module_eval <<'.,.,', 'lib/parser.y', 320 2779 result = val[0] 2780 result 2781 end 2782 .,., 2783 2784 module_eval <<'.,.,', 'lib/parser.y', 595 2352 2785 def _reduce_127( val, _values, result ) 2353 2786 @@log.info("time_value: #{val[0]} at #{@filename}:#{@lineno}") 2354 result 2355 end 2356 .,., 2357 2358 module_eval <<'.,.,', 'lib/parser.y', 324 2787 result = val[0] 2788 result 2789 end 2790 .,., 2791 2792 module_eval <<'.,.,', 'lib/parser.y', 600 2359 2793 def _reduce_128( val, _values, result ) 2360 2794 @@log.info("date_time_value: #{val[0]} at #{@filename}:#{@lineno}") 2361 result 2362 end 2363 .,., 2364 2365 module_eval <<'.,.,', 'lib/parser.y', 328 2795 result = val[0] 2796 result 2797 end 2798 .,., 2799 2800 module_eval <<'.,.,', 'lib/parser.y', 605 2366 2801 def _reduce_129( val, _values, result ) 2367 2802 @@log.info("duration_value: #{val[0]} at #{@filename}:#{@lineno}") 2368 result 2369 end 2370 .,., 2371 2372 module_eval <<'.,.,', 'lib/parser.y', 332 2803 result = val[0] 2804 result 2805 end 2806 .,., 2807 2808 module_eval <<'.,.,', 'lib/parser.y', 610 2373 2809 def _reduce_130( val, _values, result ) 2374 2810 @@log.info("uri_value: #{val[0]} at #{@filename}:#{@lineno}") 2811 result = val[0] 2375 2812 result 2376 2813 end … … 2407 2844 # reduce 145 omitted 2408 2845 2409 module_eval <<'.,.,', 'lib/parser.y', 3532846 module_eval <<'.,.,', 'lib/parser.y', 633 2410 2847 def _reduce_146( val, _values, result ) 2411 2848 @@log.info("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") 2412 result 2413 end 2414 .,., 2415 2416 module_eval <<'.,.,', 'lib/parser.y', 357 2849 result = val[0] 2850 result 2851 end 2852 .,., 2853 2854 module_eval <<'.,.,', 'lib/parser.y', 638 2417 2855 def _reduce_147( val, _values, result ) 2418 2856 @@log.info("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") 2419 result 2420 end 2421 .,., 2422 2423 module_eval <<'.,.,', 'lib/parser.y', 362 2857 result = val[0] 2858 result 2859 end 2860 .,., 2861 2862 module_eval <<'.,.,', 'lib/parser.y', 644 2424 2863 def _reduce_148( val, _values, result ) 2425 2864 @@log.info("V_STRING: #{val[0]} at #{@filename}:#{@lineno}") 2865 result = val[0] 2426 2866 result 2427 2867 end … … 2434 2874 # reduce 151 omitted 2435 2875 2436 # reduce 152 omitted 2437 2438 # reduce 153 omitted 2439 2440 # reduce 154 omitted 2876 module_eval <<'.,.,', 'lib/parser.y', 658 2877 def _reduce_152( val, _values, result ) 2878 begin 2879 integer = Integer(val[0]) 2880 rescue 2881 raise 2882 end 2883 result = integer 2884 result 2885 end 2886 .,., 2887 2888 module_eval <<'.,.,', 'lib/parser.y', 667 2889 def _reduce_153( val, _values, result ) 2890 begin 2891 integer = Integer(val[0]) 2892 rescue 2893 raise 2894 end 2895 result = integer 2896 result 2897 end 2898 .,., 2899 2900 module_eval <<'.,.,', 'lib/parser.y', 676 2901 def _reduce_154( val, _values, result ) 2902 begin 2903 integer = Integer(val[0]) 2904 rescue 2905 raise 2906 end 2907 result = - integer 2908 result 2909 end 2910 .,., 2441 2911 2442 2912 # reduce 155 omitted … … 2464 2934 # reduce 166 omitted 2465 2935 2466 # reduce 167 omitted 2467 2468 # reduce 168 omitted 2469 2470 # reduce 169 omitted 2936 module_eval <<'.,.,', 'lib/parser.y', 702 2937 def _reduce_167( val, _values, result ) 2938 begin 2939 real = Float(val[0]) 2940 rescue 2941 raise 2942 end 2943 result = real 2944 result 2945 end 2946 .,., 2947 2948 module_eval <<'.,.,', 'lib/parser.y', 711 2949 def _reduce_168( val, _values, result ) 2950 begin 2951 real = Float(val[1]) 2952 rescue 2953 raise 2954 end 2955 result = real 2956 result 2957 end 2958 .,., 2959 2960 module_eval <<'.,.,', 'lib/parser.y', 720 2961 def _reduce_169( val, _values, result ) 2962 begin 2963 real = Float(val[1]) 2964 rescue 2965 raise 2966 end 2967 result = - real 2968 result 2969 end 2970 .,., 2471 2971 2472 2972 # reduce 170 omitted … … 2494 2994 # reduce 181 omitted 2495 2995 2496 # reduce 182 omitted 2497 2498 # reduce 183 omitted 2996 module_eval <<'.,.,', 'lib/parser.y', 740 2997 def _reduce_182( val, _values, result ) 2998 result = true 2999 result 3000 end 3001 .,., 3002 3003 module_eval <<'.,.,', 'lib/parser.y', 744 3004 def _reduce_183( val, _values, result ) 3005 result = false 3006 result 3007 end 3008 .,., 2499 3009 2500 3010 # reduce 184 omitted … … 2590 3100 # reduce 229 omitted 2591 3101 2592 module_eval <<'.,.,', 'lib/parser.y', 4733102 module_eval <<'.,.,', 'lib/parser.y', 808 2593 3103 def _reduce_230( val, _values, result ) 2594 3104 @@log.info("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}") 3105 result = val[0] 2595 3106 result 2596 3107 end … … 2621 3132 # reduce 242 omitted 2622 3133 2623 module_eval <<'.,.,', 'lib/parser.y', 4923134 module_eval <<'.,.,', 'lib/parser.y', 828 2624 3135 def _reduce_243( val, _values, result ) 2625 3136 @@log.info("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}") 3137 result = val[0] 2626 3138 result 2627 3139 end … … 2634 3146 # reduce 246 omitted 2635 3147 2636 module_eval <<'.,.,', 'lib/parser.y', 5013148 module_eval <<'.,.,', 'lib/parser.y', 838 2637 3149 def _reduce_247( val, _values, result ) 2638 3150 @@log.info("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}") 3151 result = val[0] 2639 3152 result 2640 3153 end … … 2721 3234 # reduce 287 omitted 2722 3235 2723 module_eval <<'.,.,', 'lib/parser.y', 5703236 module_eval <<'.,.,', 'lib/parser.y', 907 2724 3237 def _reduce_288( val, _values, result ) 2725 3238 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") … … 2728 3241 .,., 2729 3242 2730 module_eval <<'.,.,', 'lib/parser.y', 5743243 module_eval <<'.,.,', 'lib/parser.y', 911 2731 3244 def _reduce_289( val, _values, result ) 2732 3245 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") … … 2735 3248 .,., 2736 3249 2737 # reduce 290 omitted 2738 2739 # reduce 291 omitted 2740 2741 # reduce 292 omitted 2742 2743 # reduce 293 omitted 2744 2745 # reduce 294 omitted 3250 module_eval <<'.,.,', 'lib/parser.y', 922 3251 def _reduce_290( val, _values, result ) 3252 result = Range.new(1,1) 3253 result 3254 end 3255 .,., 3256 3257 module_eval <<'.,.,', 'lib/parser.y', 926 3258 def _reduce_291( val, _values, result ) 3259 result = val[3] 3260 result 3261 end 3262 .,., 3263 3264 module_eval <<'.,.,', 'lib/parser.y', 936 3265 def _reduce_292( val, _values, result ) 3266 begin 3267 integer = Integer(val[0]) 3268 rescue 3269 raise 3270 end 3271 result = integer 3272 result 3273 end 3274 .,., 3275 3276 module_eval <<'.,.,', 'lib/parser.y', 946 3277 def _reduce_293( val, _values, result ) 3278 begin 3279 from_integer = Integer(val[0]) 3280 to_integer = Integer(val[2]) 3281 rescue 3282 raise 3283 end 3284 result = Range.new(from_integer,to_integer) 3285 result 3286 end 3287 .,., 3288 3289 module_eval <<'.,.,', 'lib/parser.y', 951 3290 def _reduce_294( val, _values, result ) 3291 result = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new 3292 result 3293 end 3294 .,., 2746 3295 2747 3296 # reduce 295 omitted … … 2767 3316 # reduce 305 omitted 2768 3317 2769 # reduce 306 omitted 3318 module_eval <<'.,.,', 'lib/parser.y', 970 3319 def _reduce_306( val, _values, result ) 3320 result = val[3] 3321 result 3322 end 3323 .,., 2770 3324 2771 3325 # reduce 307 omitted … … 2861 3415 # reduce 352 omitted 2862 3416 2863 # reduce 353 omitted 2864 2865 # reduce 354 omitted 2866 2867 # reduce 355 omitted 2868 2869 # reduce 356 omitted 2870 2871 # reduce 357 omitted 2872 2873 # reduce 358 omitted 2874 2875 # reduce 359 omitted 3417 module_eval <<'.,.,', 'lib/parser.y', 1040 3418 def _reduce_353( val, _values, result ) 3419 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true) 3420 result 3421 end 3422 .,., 3423 3424 module_eval <<'.,.,', 'lib/parser.y', 1044 3425 def _reduce_354( val, _values, result ) 3426 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false) 3427 result 3428 end 3429 .,., 3430 3431 module_eval <<'.,.,', 'lib/parser.y', 1048 3432 def _reduce_355( val, _values, result ) 3433 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false) 3434 result 3435 end 3436 .,., 3437 3438 module_eval <<'.,.,', 'lib/parser.y', 1052 3439 def _reduce_356( val, _values, result ) 3440 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true) 3441 result 3442 end 3443 .,., 3444 3445 module_eval <<'.,.,', 'lib/parser.y', 1057 3446 def _reduce_357( val, _values, result ) 3447 result = val[0] 3448 result 3449 end 3450 .,., 3451 3452 module_eval <<'.,.,', 'lib/parser.y', 1061 3453 def _reduce_358( val, _values, result ) 3454 raise 'Not implemented yet' 3455 result 3456 end 3457 .,., 3458 3459 module_eval <<'.,.,', 'lib/parser.y', 1065 3460 def _reduce_359( val, _values, result ) 3461 raise 'Not implemented yet' 3462 result 3463 end 3464 .,., 2876 3465 2877 3466 # reduce 360 omitted … … 2885 3474 # reduce 364 omitted 2886 3475 2887 module_eval <<'.,.,', 'lib/parser.y', 6943476 module_eval <<'.,.,', 'lib/parser.y', 1078 2888 3477 def _reduce_365( val, _values, result ) 2889 3478 @in_interval = false … … 2909 3498 # reduce 373 omitted 2910 3499 2911 module_eval <<'.,.,', 'lib/parser.y', 7163500 module_eval <<'.,.,', 'lib/parser.y', 1100 2912 3501 def _reduce_374( val, _values, result ) 2913 3502 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}") … … 2916 3505 .,., 2917 3506 2918 # reduce 375 omitted 3507 module_eval <<'.,.,', 'lib/parser.y', 1110 3508 def _reduce_375( val, _values, result ) 3509 result = val[0] 3510 result 3511 end 3512 .,., 2919 3513 2920 3514 def _reduce_none( val, _values, result ) -
/ruby/trunk/adl_parser/lib/parser.y
r20 r30 28 28 29 29 input: archetype EOF 30 { 31 result = val[0] 32 } 30 33 | error 31 34 32 archetype: arch_identification 33 arch_specialisation 34 arch_concept 35 arch_language 36 arch_description 37 arch_definition 38 arch_invariant 39 arch_ontology 35 archetype: arch_identification arch_specialisation arch_concept arch_language arch_description arch_definition arch_invariant arch_ontology 36 { 37 assert_at(__FILE__,__LINE__) do 38 val[4].instance_of?(OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION) and val[5].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT) and val[7].instance_of?(OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY) 39 end 40 41 archetype_id = val[0][:archetype_id] 42 adl_version = val[0][:arch_head][:arch_meta_data][:adl_version] 43 concept = val[2] 44 language = val[3][:arch_language] 45 archetype = OpenEHR::AM::Archetype::ARCHETYPE.create( 46 :archetype_id => archetype_id, 47 :adl_version => adl_version, 48 :concept => concept, 49 :description => val[4], 50 :definition => val[5], 51 :ontology => val[7] 52 ) do |archetype| 53 archetype.original_language = language 54 end 55 @@log.info("#{__FILE__}:#{__LINE__}: archetype = #{archetype} at #{@filename}:#{@lineno}") 56 result = archetype 57 } 40 58 41 59 42 60 arch_identification: arch_head V_ARCHETYPE_ID 61 { 62 result = {:arch_head => val[0], :archetype_id => val[1] } 63 } 43 64 | SYM_ARCHETYPE error 65 { 66 raise 67 } 44 68 45 69 arch_head: SYM_ARCHETYPE 70 { 71 result = {:arch_meta_data => nil } 72 } 46 73 | SYM_ARCHETYPE arch_meta_data 74 { 75 result = val[1] 76 } 47 77 48 78 arch_meta_data: Left_parenthesis_code arch_meta_data_items Right_parenthesis_code 79 { 80 result = {:arch_meta_data => val[1] } 81 } 49 82 50 83 arch_meta_data_items: arch_meta_data_item 84 { 85 result = val[0] 86 } 51 87 | arch_meta_data_items Semicolon_code arch_meta_data_item 52 # | arch_meta_data_items ';' arch_meta_data_item 88 { 89 result = val[0].merge(val[2]) 90 } 91 53 92 54 93 arch_meta_data_item: SYM_ADL_VERSION SYM_EQ V_VERSION_STRING 94 { 95 result = {:adl_version => val[2], :is_controlled => false } 96 } 55 97 | SYM_IS_CONTROLLED 98 { 99 result = {:is_controlled => true } 100 } 56 101 57 102 # Define specialization in which its constraints are narrower than those of the parent. … … 62 107 63 108 arch_concept: SYM_CONCEPT V_LOCAL_TERM_CODE_REF 109 { 110 result = {:arch_concept => val[1] } 111 } 64 112 | SYM_CONCEPT error 65 113 … … 69 117 70 118 arch_language: #-- empty is ok for ADL 1.4 tools 119 { 120 result = {:arch_language => nil} 121 } 71 122 | SYM_LANGUAGE dadl_section 72 123 { 73 result = {: language => val[1]}124 result = {:arch_language => val[1]} 74 125 } 75 126 | SYM_LANGUAGE error … … 81 132 arch_description: #-- no meta-data ok 82 133 | SYM_DESCRIPTION dadl_section 83 | SYM_DESCRIPTION error 84 134 { 135 result = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new(:details => val[1]) 136 } 137 | SYM_DESCRIPTION error 138 85 139 #arch_definition: SYM_DEFINITION V_CADL_TEXT 86 140 # | SYM_DEFINITION error 87 141 arch_definition: SYM_DEFINITION cadl_section 142 { 143 result = val[1] 144 } 88 145 | SYM_DEFINITION error 89 146 … … 91 148 ### cADL section 92 149 cadl_section: c_complex_object 150 { 151 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT)} 152 @@log.info("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0]} at #{@filename}:#{@lineno}") 153 result = val[0] 154 } 93 155 | assertions 156 { 157 result = val[0] 158 } 94 159 # | error 95 160 96 161 #c_complex_object: c_complex_object_head SYM_MATCHES SYM_START_CBLOCK c_complex_object_body SYM_END_CBLOCK 97 162 c_complex_object: c_complex_object_head SYM_MATCHES START_REGEXP_BLOCK REGEXP_BODY END_REGEXP_BLOCK # added by akimichi 163 { 164 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object| 165 c_complex_object.node_id = val[0][:c_complex_object_id][:local_term_code_ref] 166 c_complex_object.rm_type_name = val[0][:c_complex_object_id][:type_identifier] 167 c_complex_object.occurrences = val[0][:c_occurrences] 168 end 169 } 98 170 | c_complex_object_head SYM_MATCHES SYM_START_CBLOCK c_complex_object_body SYM_END_CBLOCK 99 # | c_complex_object_head error SYM_END_CBLOCK 100 # { 101 # @adl_type.push(:cadl) 102 # yyerror 103 # } 171 { 172 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object| 173 c_complex_object.node_id = val[0][:c_complex_object_id][:local_term_code_ref] 174 c_complex_object.rm_type_name = val[0][:c_complex_object_id][:type_identifier] 175 c_complex_object.occurrences = val[0][:c_occurrences] 176 end 177 } 178 # | c_complex_object_head error SYM_END_CBLOCK 104 179 # | c_complex_object_head SYM_MATCHES SYM_START_CBLOCK c_complex_object_body c_invariants SYM_END_CBLOCK 105 180 106 181 c_complex_object_head: c_complex_object_id c_occurrences 182 { 183 result = {:c_complex_object_id => val[0], :c_occurrences => val[1]} 184 } 107 185 108 186 c_complex_object_id: type_identifier 109 187 { 110 result = {: c_complex_object_id => {:type_identifier => val[0]}}188 result = {:type_identifier => val[0]} 111 189 } 112 190 | type_identifier V_LOCAL_TERM_CODE_REF 113 191 { 114 result = {: c_complex_object_id => {:type_identifier => val[0], :V_LOCAL_TERM_CODE_REF => val[1]}}192 result = {:type_identifier => val[0], :local_term_code_ref => val[1]} 115 193 } 116 194 117 195 c_complex_object_body: c_any #-- used to indicate that any value of a type is ok 118 196 | c_attributes 197 { 198 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => val[0]) 199 } 119 200 120 201 … … 122 203 123 204 c_object: v_c_domain_type 205 { 206 result = val[0] 207 } 124 208 | c_complex_object 209 { 210 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new 211 } 125 212 | archetype_internal_ref 213 { 214 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new 215 } 126 216 | archetype_slot 217 { 218 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new 219 } 127 220 | constraint_ref 221 { 222 result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new 223 } 128 224 | c_code_phrase 225 { 226 result = val[0] 227 } 129 228 | c_ordinal 229 { 230 result = val[0] 231 } 130 232 | c_primitive_object 233 { 234 result = val[0] 235 } 131 236 # | v_c_domain_type 132 237 # | V_C_DOMAIN_TYPE … … 141 246 142 247 v_c_domain_type: START_V_C_DOMAIN_TYPE_BLOCK dadl_section END_V_C_DOMAIN_TYPE_BLOCK 248 { 249 result = val[1] 250 } 143 251 144 252 # 'archetype_internal_ref' is a node that refers to a previously defined object node in the same archetype. … … 157 265 # 'c_primitive_object' is an node representing a constraint on a primitive object type. 158 266 c_primitive_object: c_primitive 267 { 268 assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE)} 269 result = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new(:item => val[0]) 270 } 159 271 160 272 c_primitive: c_integer 273 { 274 @@log.info("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}") 275 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new 276 } 161 277 | c_real 278 { 279 @@log.info("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}") 280 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL.new 281 } 162 282 | c_date 283 { 284 @@log.info("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}") 285 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE.new 286 } 163 287 | c_time 288 { 289 @@log.info("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}") 290 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME.new 291 } 164 292 | c_date_time 293 { 294 @@log.info("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}") 295 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new 296 } 165 297 | c_duration 298 { 299 @@log.info("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}") 300 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new 301 } 166 302 | c_string 303 { 304 @@log.info("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}") 305 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING.new 306 } 167 307 | c_boolean 308 { 309 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN)} 310 @@log.info("#{__FILE__}:#{__LINE__}: c_boolean = #{val[0]} at #{@filename}:#{@lineno}") 311 result = val[0] 312 } 168 313 169 314 c_any: Star_code … … 173 318 174 319 c_attributes: c_attribute 320 { 321 result = [val[0]] 322 } 175 323 | c_attributes c_attribute 324 { 325 result = (val[0] << val[1]) 326 } 176 327 177 328 # 'c_attribute' is a node representing a constraint on an attribute in an object model. 178 329 c_attribute: c_attr_head SYM_MATCHES SYM_START_CBLOCK c_attr_values SYM_END_CBLOCK 330 { 331 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)} 332 c_attribute = val[0] 333 c_attribute.children = val[3] 334 result = c_attribute 335 } 179 336 | c_attr_head SYM_MATCHES START_REGEXP_BLOCK REGEXP_BODY END_REGEXP_BLOCK # added by akimichi 337 { 338 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)} 339 result = val[0] 340 } 180 341 | c_attr_head SYM_MATCHES SYM_START_CBLOCK error SYM_END_CBLOCK 342 { 343 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)} 344 result = val[0] 345 } 181 346 182 347 … … 184 349 { 185 350 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}") 351 result = OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new( 352 :rm_attribute_name => val[0], 353 :existence => val[1] 354 ) 355 186 356 } 187 357 | V_ATTRIBUTE_IDENTIFIER c_existence c_cardinality 188 358 { 359 assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY) } 189 360 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER: #{val[0]}, c_existence = #{val[1]}, c_cardinality = #{val[2]} at #{@filename}") 361 result = OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE.new( 362 :rm_attribute_name => val[0], 363 :existence => val[1], 364 :cardinality => val[2] 365 ) 190 366 } 191 367 192 368 c_attr_values: c_object 369 { 370 result = Array[val[0]] 371 } 193 372 | c_attr_values c_object 373 { 374 result = (val[0] << val[1]) 375 } 194 376 | c_any # -- to allow a property to have any value 377 { 378 result = Array[val[0]] 379 } 195 380 196 381 ### c_includes: #-- Empty … … 220 405 221 406 arch_ontology: SYM_ONTOLOGY dadl_section 407 { 408 dadl_section = val[1] 409 result = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new 410 } 222 411 | SYM_ONTOLOGY error 223 412 … … 231 420 232 421 attr_vals: attr_val 422 { 423 result = Array[val[0]] 424 } 233 425 | attr_vals attr_val 426 { 427 result = (val[0] << val[1]) 428 } 234 429 | attr_vals Semicolon_code attr_val 235 # | attr_vals ';' attr_val 430 { 431 result = (val[0] << val[2]) 432 } 236 433 237 434 attr_val: attr_id SYM_EQ object_block 238 435 { 239 436 @@log.info("#{__FILE__}:#{__LINE__}: attr_id = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}") 437 result = {:attr_id => val[0], :object_block => val[2]} 240 438 } 241 439 … … 243 441 { 244 442 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}") 443 result = val[0] 245 444 } 246 445 | V_ATTRIBUTE_IDENTIFIER error 247 446 248 447 object_block: complex_object_block 448 { 449 result = val[0] 450 } 249 451 | primitive_object_block 452 { 453 result = val[0] 454 } 250 455 251 456 complex_object_block: single_attr_object_block 457 { 458 result = val[0] 459 } 252 460 | multiple_attr_object_block 461 { 462 result = val[0] 463 } 253 464 254 465 multiple_attr_object_block: untyped_multiple_attr_object_block 466 { 467 result = {:untyped_multiple_attr_object_block => val[0]} 468 } 255 469 | type_identifier untyped_multiple_attr_object_block 470 { 471 result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]} 472 } 256 473 257 474 untyped_multiple_attr_object_block: multiple_attr_object_block_head keyed_objects SYM_END_DBLOCK 475 { 476 result = {:multiple_attr_object_block_head => val[0], :keyed_objects => val[1]} 477 } 258 478 259 479 multiple_attr_object_block_head: SYM_START_DBLOCK 260 { 480 { 261 481 @@log.info("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}") 482 result = val[0] 262 483 } 263 484 264 485 keyed_objects: keyed_object 486 { 487 result = Array[val[0]] 488 } 265 489 | keyed_objects keyed_object 490 { 491 result = (val[0] << val[1]) 492 } 266 493 267 494 keyed_object: object_key SYM_EQ object_block 268 495 { 269 496 @@log.info("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}") 497 result = {:object_key => val[0], :object_block => val[1]} 270 498 } 271 499 … … 273 501 { 274 502 @@log.info("object_key: [#{val[1]}] at #{@filename}:#{@lineno}") 503 result = val[1] 275 504 } 276 505 277 506 single_attr_object_block: untyped_single_attr_object_block 507 { 508 result = {:untyped_single_attr_object_block => val[0]} 509 } 278 510 | type_identifier untyped_single_attr_object_block 511 { 512 result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]} 513 } 514 279 515 untyped_single_attr_object_block: single_attr_object_complex_head SYM_END_DBLOCK # <> 516 { 517 @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}") 518 result = {:single_attr_object_complex_head => val[0]} 519 } 280 520 | single_attr_object_complex_head attr_vals SYM_END_DBLOCK 521 { 522 @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]}, attr_vals = #{val[1]} at #{@filename}:#{@lineno}") 523 result = {:single_attr_object_complex_head => val[0], :attr_vals => val[1]} 524 } 281 525 single_attr_object_complex_head: SYM_START_DBLOCK 282 526 primitive_object_block: untyped_primitive_object_block 527 { 528 @@log.info("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}") 529 result = {:untyped_primitive_object_block => val[0]} 530 } 283 531 | type_identifier untyped_primitive_object_block 532 { 533 @@log.info("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}") 534 result = {:type_identifier => val[0], :untyped_primitive_object_block => val[1]} 535 } 284 536 untyped_primitive_object_block: SYM_START_DBLOCK primitive_object_value SYM_END_DBLOCK 285 537 { 286 @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[2]}> at #{@filename}:#{@lineno}") 538 @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}") 539 result = val[1] 287 540 } 288 541 primitive_object_value: simple_value 542 { 543 result = val[0] 544 } 289 545 | simple_list_value 546 { 547 result = val[0] 548 } 290 549 | simple_interval_value 550 { 551 result = val[0] 552 } 291 553 | term_code 554 { 555 result = val[0] 556 } 292 557 | term_code_list_value 558 { 559 result = val[0] 560 } 293 561 simple_value: string_value 294 562 { 295 563 @@log.info("string_value: #{val[0]} at #{@filename}:#{@lineno}") 564 result = val[0] 296 565 } 297 566 | integer_value 298 567 { 299 568 @@log.info("integer_value: #{val[0]} at #{@filename}:#{@lineno}") 569 result = val[0] 300 570 } 301 571 | real_value 302 572 { 303 573 @@log.info("real_value: #{val[0]} at #{@filename}:#{@lineno}") 574 result = val[0] 304 575 } 305 576 | boolean_value 306 577 { 307 578 @@log.info("boolean_value: #{val[0]} at #{@filename}:#{@lineno}") 579 result = val[0] 308 580 } 309 581 | character_value 310 582 { 311 583 @@log.info("character_value: #{val[0]} at #{@filename}:#{@lineno}") 584 result = val[0] 312 585 } 313 586 | date_value 314 587 { 315 588 @@log.info("date_value: #{val[0]} at #{@filename}:#{@lineno}") 589 result = val[0] 316 590 } 317 591 | time_value 318 592 { 319 593 @@log.info("time_value: #{val[0]} at #{@filename}:#{@lineno}") 594 result = val[0] 320 595 } 321 596 | date_time_value 322 597 { 323 598 @@log.info("date_time_value: #{val[0]} at #{@filename}:#{@lineno}") 599 result = val[0] 324 600 } 325 601 | duration_value 326 602 { 327 603 @@log.info("duration_value: #{val[0]} at #{@filename}:#{@lineno}") 604 result = val[0] 328 605 } 329 606 | uri_value 330 607 { 331 608 @@log.info("uri_value: #{val[0]} at #{@filename}:#{@lineno}") 332 } 609 result = val[0] 610 } 611 333 612 simple_list_value: string_list_value 334 613 | integer_list_value … … 351 630 { 352 631 @@log.info("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") 632 result = val[0] 353 633 } 354 634 | V_GENERIC_TYPE_IDENTIFIER 355 635 { 356 636 @@log.info("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") 637 result = val[0] 357 638 } 358 639 … … 360 641 { 361 642 @@log.info("V_STRING: #{val[0]} at #{@filename}:#{@lineno}") 643 result = val[0] 362 644 } 363 645 … … 367 649 368 650 integer_value: V_INTEGER 651 { 652 begin 653 integer = Integer(val[0]) 654 rescue 655 raise 656 end 657 result = integer 658 } 369 659 | Plus_code V_INTEGER 660 { 661 begin 662 integer = Integer(val[0]) 663 rescue 664 raise 665 end 666 result = integer 667 } 370 668 | Minus_code V_INTEGER 669 { 670 begin 671 integer = Integer(val[0]) 672 rescue 673 raise 674 end 675 result = - integer 676 } 371 677 ### | '+' V_INTEGER 372 678 ### | '-' V_INTEGER … … 387 693 388 694 real_value: V_REAL 695 { 696 begin 697 real = Float(val[0]) 698 rescue 699 raise 700 end 701 result = real 702 } 389 703 | Plus_code V_REAL 704 { 705 begin 706 real = Float(val[1]) 707 rescue 708 raise 709 end 710 result = real 711 } 390 712 | Minus_code V_REAL 391 # | '+' V_REAL 392 # | '-' V_REAL 713 { 714 begin 715 real = Float(val[1]) 716 rescue 717 raise 718 end 719 result = - real 720 } 393 721 394 722 real_list_value: real_value Comma_code real_value … … 408 736 409 737 boolean_value: SYM_TRUE 738 { 739 result = true 740 } 410 741 | SYM_FALSE 742 { 743 result = false 744 } 411 745 412 746 boolean_list_value: boolean_value Comma_code boolean_value … … 471 805 { 472 806 @@log.info("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}") 807 result = val[0] 473 808 } 474 809 … … 490 825 { 491 826 @@log.info("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}") 827 result = val[0] 492 828 } 493 829 … … 499 835 { 500 836 @@log.info("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}") 837 result = val[0] 501 838 } 502 839 … … 581 918 582 919 c_existence: #-- default to 1..1 583 | SYM_EXISTENCE SYM_MATCHES SYM_START_CBLOCK existence_spec SYM_END_CBLOCK 920 { 921 result = Range.new(1,1) 922 } 923 | SYM_EXISTENCE SYM_MATCHES SYM_START_CBLOCK existence_spec SYM_END_CBLOCK 924 { 925 result = val[3] 926 } 584 927 585 928 existence_spec: V_INTEGER #-- can only be 0 or 1 929 { 930 begin 931 integer = Integer(val[0]) 932 rescue 933 raise 934 end 935 result = integer 936 } 586 937 | V_INTEGER SYM_ELLIPSIS V_INTEGER #-- can only be 0..0, 0..1, 1..1 938 { 939 begin 940 from_integer = Integer(val[0]) 941 to_integer = Integer(val[2]) 942 rescue 943 raise 944 end 945 result = Range.new(from_integer,to_integer) 946 } 587 947 588 948 c_cardinality: SYM_CARDINALITY SYM_MATCHES SYM_START_CBLOCK cardinality_spec SYM_END_CBLOCK 949 { 950 result = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new 951 } 589 952 590 953 cardinality_spec: occurrence_spec … … 603 966 c_occurrences: #-- default to 1..1 604 967 | SYM_OCCURRENCES SYM_MATCHES SYM_START_CBLOCK occurrence_spec SYM_END_CBLOCK 968 { 969 result = val[3] 970 } 605 971 | SYM_OCCURRENCES error 606 972 … … 670 1036 671 1037 c_boolean_spec: SYM_TRUE 1038 { 1039 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true) 1040 } 672 1041 | SYM_FALSE 1042 { 1043 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false) 1044 } 673 1045 | SYM_TRUE Comma_code SYM_FALSE 1046 { 1047 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false) 1048 } 674 1049 | SYM_FALSE Comma_code SYM_TRUE 1050 { 1051 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true) 1052 } 675 1053 676 1054 c_boolean: c_boolean_spec 1055 { 1056 result = val[0] 1057 } 677 1058 | c_boolean_spec Semicolon_code boolean_value 1059 { 1060 raise 'Not implemented yet' 1061 } 678 1062 | c_boolean_spec Semicolon_code error 679 # | c_boolean_spec ';' error 1063 { 1064 raise 'Not implemented yet' 1065 } 680 1066 681 1067 c_ordinal: c_ordinal_spec 682 1068 | c_ordinal_spec Semicolon_code integer_value 683 1069 | c_ordinal_spec Semicolon_code error 684 # | c_ordinal_spec ';' error685 1070 686 1071 c_ordinal_spec: ordinal 687 1072 | c_ordinal_spec Comma_code ordinal 688 # | c_ordinal_spec ',' ordinal689 1073 690 1074 ordinal: integer_value SYM_INTERVAL_DELIM V_QUALIFIED_TERM_CODE_REF … … 722 1106 723 1107 duration_pattern: V_ISO8601_DURATION_CONSTRAINT_PATTERN 1108 { 1109 result = val[0] 1110 } 724 1111 725 1112 … … 731 1118 require 'lib/util.rb' 732 1119 require 'lib/scanner.rb' 733 require 'lib/model.rb' 1120 require 'rubygems' 1121 require 'am.rb' 734 1122 $DEBUG = true 735 1123 … … 737 1125 738 1126 ---- inner 1127 1128 def assert_at(file,line, message = "") 1129 unless yield 1130 raise "Assertion failed !: #{file}, #{line}: #{message}" 1131 end 1132 end 739 1133 740 1134 @@log = Logger.new('log/parser.log','daily') -
/ruby/trunk/adl_parser/lib/scanner.rb
r20 r30 115 115 Yaparc::Apply.new( 116 116 Yaparc::Alt.new(Yaparc::Regex.new(/\AP([0-9]+|[yY])?([0-9]+|[mM])?([0-9]+|[wW])?([0-9]+|[dD])?T([0-9]+|[hH])?([0-9]+|[mM])?([0-9]+|[sS])?/), 117 Yaparc::Regex.new(/AP([0-9]+|[yY])?([0-9]+|[mM])?([0-9]+|[wW])?([0-9]+|[dD])?/))) do |match| 118 # Yaparc::Alt.new(Yaparc::Regex.new(/\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?T([0-9]+[hH])?([0-9]+[mM])?([0-9]+[sS])?/), 119 # Yaparc::Regex.new(/AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?/))) do |match| 117 Yaparc::Regex.new(/\AP([0-9]+|[yY])?([0-9]+|[mM])?([0-9]+|[wW])?([0-9]+|[dD])?/))) do |match| 120 118 LOG.info("V_ISO8601_DURATION: #{match}") 121 119 [:V_ISO8601_DURATION, match] … … 160 158 @parser = lambda do |input| 161 159 reserved_parsers = OpenEHR::ADL::Scanner::DADL::RESERVED.map do |keyword| 162 Yaparc::Tokenize.new(Yaparc::Literal.new(keyword[0], false)) 160 Yaparc::Tokenize.new( 161 Yaparc::Literal.new(keyword[0], false) 162 ) 163 163 end 164 164 Yaparc::Alt.new(Yaparc::Apply.new(Yaparc::Alt.new(*reserved_parsers)) do |match| … … 248 248 end 249 249 250 #V_ISO8601_DURATION_CONSTRAINT_PATTERN 251 class V_ISO8601_DURATION_CONSTRAINT_PATTERN 252 include Yaparc::Parsable 253 def initialize 254 @parser = lambda do |input| 255 Yaparc::Apply.new(Yaparc::Alt.new(Yaparc::Regex.new(/\AP[yY]?[mM]?[wW]?[dD]?T[hH]?[mM]?[sS]?/), 256 Yaparc::Regex.new(/\AP[yY]?[mM]?[wW]?[dD]?/))) do |match| 257 OpenEHR::ADL::Scanner::Common::LOG.info("V_ISO8601_DURATION_CONSTRAINT_PATTERN: #{match}") 258 [:V_ISO8601_DURATION_CONSTRAINT_PATTERN, match] 259 end 260 end 261 end 262 end 263 250 264 #V_C_DOMAIN_TYPE /\A[A-Z][a-zA-Z0-9_]*[ \n]*\</ 251 265 class V_C_DOMAIN_TYPE … … 270 284 OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new, 271 285 V_C_DOMAIN_TYPE.new, 286 V_ISO8601_DURATION_CONSTRAINT_PATTERN.new, 272 287 Reserved.new, 273 288 OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new, -
/ruby/trunk/adl_parser/tests/parser_test.rb
r20 r30 1 #$:.unshift File.join(File.dirname(__FILE__))2 3 1 require 'lib/parser.rb' 4 2 require 'test/unit' … … 16 14 laboratory_request = File.read('tests/openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl') 17 15 assert_nothing_raised do 18 @parser.parse(laboratory_request, 'openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl') 16 result = @parser.parse(laboratory_request, 'openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl') 17 assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, result 18 assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, result.description 19 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, result.definition 20 # assert_equal '', result.definition 19 21 end 20 22 … … 22 24 assert_nothing_raised do 23 25 result = @parser.parse(apgar, 'openEHR-EHR-OBSERVATION.apgar.v1.adl') 24 # assert_equal "", result 26 assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, result 27 assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, result.description 28 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, result.definition 25 29 end 26 30 … … 31 35 32 36 33 # medication = File.read('tests/openEHR-EHR-ITEM_TREE.medication.v1.adl')34 # assert_nothing_raised do35 # @parser.parse(medication, 'openEHR-EHR-ITEM_TREE.medication.v1.adl')36 # end37 37 38 38 referral = File.read('tests/openEHR-EHR-ITEM_TREE.referral.v1.adl') … … 144 144 145 145 146 # medication = File.read('tests/openEHR-EHR-ITEM_TREE.medication.v1.adl') 147 # assert_nothing_raised do 148 # @parser.parse(medication, 'openEHR-EHR-ITEM_TREE.medication.v1.adl') 149 # end 146 150 end 147 151 end -
/ruby/trunk/models/Rakefile
r20 r30 34 34 35 35 36 gem_spec = Gem::Specification.new do |s| 37 s.name = 'openehr_models' 38 s.author = 'Shinji KOBAYASHI, Akimichi TATSUKAWA' 39 s.version = '0.0.1' 40 s.summary = 'OpenEHR models' 41 s.email = 'openehr-jp@openehr.jp' 42 s.test_files = FileList['tests/test_*.rb', '*.adl'] 43 candidates = Dir.glob("{am,rm,docs,tests}/**/*") + FileList['COPYING', 'Rakefile','am.rb','assumed_library_types.rb','rm.rb'] 44 s.files = candidates.delete_if do |item| 45 item.include?(".svn") || item.include?("rdoc") 46 end 47 # s.files << FileList['COPYING', 'Rakefile','am.rb','assumed_library_types.rb','rm.rb'] 48 # s.require_paths += [".","am","rm"] 49 s.require_path = "." 50 s.has_rdoc = true 51 # s.extra_rdoc_files = ["README"] 52 end 53 54 55 Rake::GemPackageTask.new(gem_spec) do |pkg| 56 pkg.need_zip = false 57 pkg.need_tar = false 58 end 59 60 #CLOBBER.include('rdoc') 61 #CLEAN.include('lib/*.output', 'log/*.log') 62 63 36 64 37 65 -
/ruby/trunk/models/am.rb
r20 r30 17 17 module AM 18 18 module Archetype 19 autoload :A rchetype, "am/archetype/archetype.rb"19 autoload :ARCHETYPE, "am/archetype/archetype.rb" 20 20 autoload :Constraint_Model, "am/archetype/constraint_model/archetype_constraint.rb" 21 21 autoload :Ontology, "am/archetype/ontology.rb" 22 autoload :Archetype_Description, "am/archetype/archetype_description/archetype_description.rb" 22 23 module Archetype_Description 24 autoload :ARCHETYPE_DESCRIPTION, "am/archetype/archetype_description/archetype_description.rb" 25 end 26 23 27 module Constraint_Model 24 autoload :A ssertion, "am/archetype/constraint_model/assertion.rb"28 autoload :ARCHETYPE_CONSTRAINT, "am/archetype/constraint_model/archetype_constraint.rb" 25 29 autoload :Primitive, "am/archetype/constraint_model/primitive.rb" 26 30 end #end of ConstraintModel 31 32 module Assertion 33 autoload :ASSERTION, "am/archetype/constraint_model/assertion.rb" 34 end 35 27 36 end # of Archetype 37 38 module OpenEHR_Profile 39 module Data_Types 40 module Basic 41 autoload :C_DV_STATE, "am/openehr_profile/data_types/basic.rb" 42 end 43 44 module Text 45 autoload :C_CODE_PHASE, "am/openehr_profile/data_types/text.rb" 46 end 47 48 module Quantity 49 autoload :C_DV_QUANTITY, "am/openehr_profile/data_types/quantity.rb" 50 autoload :C_DV_ORDINAL, "am/openehr_profile/data_types/quantity.rb" 51 autoload :C_QUANTITY_ITEM, "am/openehr_profile/data_types/quantity.rb" 52 end 53 end 54 end 28 55 end # of AM 29 56 end # of OpenEHR -
/ruby/trunk/models/am/archetype/archetype.rb
r20 r30 7 7 # include OpenEHR::RM::Support::Terminology::OpenEHR_Code_Set_Identifier 8 8 include OpenEHR::RM::Support::Terminology 9 CURRENT_ADL_VERSION = " 2.0"9 CURRENT_ADL_VERSION = "1.4" 10 10 end 11 class Archetype < OpenEHR::RM::Common::Resource::Authored_Resource 11 12 class ARCHETYPE < OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE 12 13 include ADL_Definition 13 14 attr_accessor :archetype_id, :concept_code, :is_controlled, :original_language, :parent_archtype_id, :uid 14 15 15 attr_reader :adl_version, :id, :parent_id 16 attr_reader :concept, :definition, :ontology 17 attr_accessor :description,:original_language 16 attr_reader :parent_id,:concept, :definition, :ontology 17 attr_accessor :adl_version,:description,:original_language 18 18 attr_accessor :revision_history, :translation 19 19 20 def initialize(parent_id, concept, 21 description, revision_history, is_controled, 22 definition, ontology, adl_version, 23 id = nil , original_language = nil, translation = nil) 24 # raise Exception.new("illegal argument error, id == nil") unless id 25 # raise Exception.new("illegal argument error, originalLanguage == nil") unless origina_language 20 def initialize(args = {}) 21 @adl_version = args[:adl_version] if args[:adl_version] 22 @archetype_id = args[:archetype_id] ? args[:archetype_id] : nil 23 @parent_id = args[:parent_id] if args[:parent_id] 24 @concept = args[:concept] if args[:concept] 25 @is_controled = args[:is_controled] if args[:is_controled] 26 @definition = args[:definition] if args[:definition] 27 @ontology = args[:ontology] if args[:ontology] 28 # loadMaps(definition) 29 super 30 end 26 31 27 # raise Exception.new("illegal argument error, translation == nil") unless translation 28 @adl_version = adl_version 29 @id = id 30 @parent_id = parent_id 31 @concept = concept 32 @original_language = original_language 33 @translation = translation 34 @description = description 35 @revision_history = revision_history 36 @is_controled = is_controled 37 @definition = definition 38 @ontology = ontology 39 # loadMaps(definition) 32 def self.create(args ={}, &block) 33 archetype = new(args) 34 if block_given? 35 yield archetype 36 end 37 return archetype 40 38 end 41 39 … … 75 73 def version 76 74 end 77 end 75 end # end of ARCHETYPE 78 76 # original file: 79 77 # ref_imple_eiffel/components/adl_parser/src/interface/adl_definition.e 80 end # end of Archetype 78 79 class VALIDITY_KIND 80 end 81 end 82 83 81 84 end # end of AM 82 85 end # end of OpenEHR -
/ruby/trunk/models/am/archetype/archetype_description/archetype_description.rb
r20 r30 4 4 module Archetype 5 5 module Archetype_Description 6 class Archetype_Description 7 attr_accessor :archetype_package_uri, :lifecycle_state, :original_author, :other_contributors, :other_details 6 class ARCHETYPE_DESCRIPTION 7 attr_accessor :archetype_package_uri, :lifecycle_state, :original_author, :other_contributors, :other_details, :details 8 def initialize(args ={ }) 9 @details = args[:details] ? args[:details] : [] 10 end 8 11 end 9 12 10 class A rchetype_Description_Item13 class ARCHETYPE_DESCRIPTION_ITEM 11 14 attr_accessor :archetype_package_uri, :lifecycle_state, :original_author, :other_contributors, :other_details 12 15 end -
/ruby/trunk/models/am/archetype/constraint_model/archetype_constraint.rb
r20 r30 4 4 module Archetype 5 5 module Constraint_Model 6 class A rchetype_Constraint6 class ARCHETYPE_CONSTRAINT 7 7 8 end 9 10 class CARDINALITY 11 12 end 13 14 class C_OBJECT < ARCHETYPE_CONSTRAINT 15 attr_accessor :node_id, :occurrences, :rm_type_name 16 17 def initialize(args = { }) 18 @node_id = args[:node_id] if args[:node_id] 19 @occurrences = args[:occurrences] if args[:occurrences] 20 @rm_type_name = args[:rm_type_name] if args[:rm_type_name] 21 end 22 end 23 24 class C_ATTRIBUTE < ARCHETYPE_CONSTRAINT 25 attr_accessor :rm_attribute_name, :existence, :children 26 27 def initialize(args = { }) 28 @rm_attribute_name = args[:rm_attribute_name] if args[:rm_attribute_name] 29 @existence = args[:existence] if args[:existence] 30 @children = args[:children] ? args[:children] : [] 31 32 end 33 end 34 35 class C_DEFINED_OBJECT < C_OBJECT 36 attr_accessor :assumed_value 37 38 def initialize(args = { }) 39 @assumed_value = args[:assumed_value] if args[:assumed_value] 40 super 41 end 42 end 43 44 class C_PRIMITIVE_OBJECT < C_DEFINED_OBJECT 45 attr_accessor :item 46 47 def initialize(args = { }) 48 @attributes = args[:item] if args[:item] 49 super 50 end 51 end 52 53 class C_COMPLEX_OBJECT < C_DEFINED_OBJECT 54 attr_accessor :attributes, :attributes_valid 55 56 def initialize(args = { }) 57 @attributes = args[:attributes] ? args[:attributes] : [] 58 super 59 end 60 61 def self.create(args = { }, &block) 62 c_complex_object = new(args) 63 if block_given? 64 yield c_complex_object 65 end 66 return c_complex_object 67 end 68 end 69 70 class C_DOMAIN_TYPE < C_DEFINED_OBJECT 71 72 end 73 74 class C_REFERENCE_OBJECT < C_OBJECT 75 76 end 77 78 class ARCHETYPE_INTERNAL_REF < C_REFERENCE_OBJECT 79 80 end 81 82 class ARCHETYPE_SLOT < C_REFERENCE_OBJECT 83 84 end 85 86 class CONSTRAINT_REF < C_REFERENCE_OBJECT 87 88 end 89 90 class C_SINGLE_ATTRIBUTE < C_ATTRIBUTE 91 attr_accessor :alternatives 92 93 def initialize(args = { }) 94 @alternatives = args[:alternatives] ? args[:alternatives] : [] 95 super 96 end 97 end 98 99 class C_MULTIPLE_ATTRIBUTE < C_ATTRIBUTE 100 attr_accessor :members, :cardinality 101 102 def initialize(args = { }) 103 @members = args[:members] ? args[:members] : [] 104 @cardinality = args[:cardinality] if args[:cardinality] 105 super 106 end 8 107 end 9 108 end -
/ruby/trunk/models/am/archetype/constraint_model/assertion.rb
r20 r30 2 2 module AM 3 3 module Archetype 4 module Constraint_Model 5 module Assertion 6 class Assertion 7 end 4 module Assertion 5 class ASSERTION 6 end 7 8 class ASSERTION_VARIABLE 9 end 10 11 class OPERATOR_KIND 12 end 13 14 class EXPR_ITEM 15 end 16 17 class EXPR_LEAF < EXPR_ITEM 18 end 19 20 class EXPR_OPERATOR < EXPR_ITEM 21 end 22 23 class EXPR_UNARY_OPERATOR < EXPR_OPERATOR 24 end 25 26 class EXPR_BINARY_OPERATOR < EXPR_OPERATOR 8 27 end 9 28 end -
/ruby/trunk/models/am/archetype/constraint_model/primitive.rb
r20 r30 3 3 module Archetype 4 4 module Constraint_Model 5 5 6 module Primitive 6 class C_Primitive 7 8 class C_PRIMITIVE 7 9 def assumed_value 8 10 raise NotImplementedError, "assumed_value should be implemented" … … 18 20 end 19 21 end 20 class C_Boolean < C_Primitive 21 attr_accessor :assumed_value 22 def initialize(true_valid, false_valid, assumed_value) 23 binary_consistency(true_valid, false_valid) 24 @true_valid = true_valid 25 @false_valid = false_valid 26 @assumed_value = assumed_value 22 23 class C_BOOLEAN < C_PRIMITIVE 24 attr_reader :true_valid, :false_valid, :assumed_value 25 26 def initialize(args = { }) 27 @true_valid = args[:true_valid] ? args[:true_valid] : false 28 @false_valid = args[:false_valid] ? args[:false_valid] : false 29 @assumed_value = args[:assumed_value] ? args[:assumed_value] : false 30 binary_consistency(@true_valid, @false_valid) 27 31 end 28 def set_true_valid(true_valid) 32 33 def true_valid=(true_valid) 29 34 binary_consistency(true_valid, @false_valid) 30 35 @true_valid = true_valid 31 36 end 32 def set_false_valid(false_valid) 37 38 def false_valid=(false_valid) 33 39 binary_consistency(@true_valid,false_valid) 34 40 @false_valid = false_valid 35 41 end 36 def true_valid? 37 @true_valid 38 end 39 def false_valid? 40 @false_valid 41 end 42 42 43 def valid_value? 43 44 44 45 end 45 def default_value(a_value=nil) 46 47 def default_value(a_value = nil) 46 48 if a_value == nil 47 49 @true_valid … … 50 52 end 51 53 end 54 52 55 private 56 53 57 def binary_consistency(true_valid, false_valid) 54 58 if !true_valid && !false_valid … … 57 61 end 58 62 end # of C_Boolean 59 class C_Integer < C_Primitive 63 64 class C_STRING < C_PRIMITIVE 60 65 61 66 end 67 68 class C_INTEGER < C_PRIMITIVE 69 70 end 71 72 class C_REAL < C_PRIMITIVE 73 74 end 75 76 class C_TIME < C_PRIMITIVE 77 78 end 79 80 class C_DATE < C_PRIMITIVE 81 82 end 83 84 class C_DATE_TIME < C_PRIMITIVE 85 86 end 87 88 class C_DURATION < C_PRIMITIVE 89 attr_accessor :years_allowed, :months_allowed, :weeks_allowed, :days_allowed, :hours_allowed, :minutes_allowed, :seconds_allowed, :fractional_seconds_allowed, :range, :assumed_value 90 end 91 92 93 62 94 end # of Primitive 63 95 end # of Constraint_Model -
/ruby/trunk/models/am/archetype/ontology.rb
r20 r30 3 3 module Archetype 4 4 module Ontology 5 class A rchetype_Ontology5 class ARCHETYPE_ONTOLOGY 6 6 attr_accessor :constraint_codes, :specialisation_depth 7 7 attr_accessor :term_attribute_names, :term_codes 8 8 attr_accessor :terminologies_available 9 9 10 def constraint_binding(a_terminology, a_code) 10 11 end 12 11 13 def constraint_definition(a_lang, a_code) 12 14 end 15 13 16 def has_language?(a_lang) 14 17 end 18 15 19 def has_terminology?(a_terminology) 16 20 end 21 17 22 def term_binding(a_terminology, a_code) 18 23 end 24 19 25 def term_definition(a_lang, a_code) 20 26 end 21 27 end 22 class Archetype_Term 28 29 class ARCHETYPE_TERM 23 30 attr_accessor :code, :items 24 def initialize(code, items) 25 if code == nil 26 raise ArgumentError, "Code is empty" 27 end 28 if items.keys == nil 29 raise ArgumentError, "Items is empty" 30 end 31 @code = code 32 @items = items 31 32 def initialize(args = { }) 33 34 @code = if args[:code] 35 args[:code] 36 else 37 raise ArgumentError, "Code is empty" 38 end 39 @items = if args[:items] 40 args[:items] 41 else 42 raise ArgumentError, "Items is empty" 43 end 33 44 end 45 34 46 def keys 35 items.keys47 @items.keys 36 48 end 37 49 end -
/ruby/trunk/models/am/openehr_profile/data_types/basic.rb
r20 r30 1 1 module OpenEHR 2 module RM2 module AM 3 3 module OpenEHR_Profile 4 4 module Data_Types 5 module Basic 6 class C_DV_STATE 7 end 8 9 class STATE_MACHINE 10 end 11 12 class STATE 13 end 14 15 class TERMINAL_STATE < STATE 16 end 17 18 class NON_TERMINAL_STATE < STATE 19 end 20 21 class TRANSITION 22 end 23 end 24 25 5 26 end # of Data_Types 6 27 end # of OpenEHR Profile -
/ruby/trunk/models/assumed_library_types.rb
r20 r30 10 10 set_upper_included(upper_included) 11 11 end 12 12 13 def set_lower(lower) 13 14 check_lower_upper(lower, @upper) 14 15 end 16 15 17 def set_upper(upper) 16 18 check_lower_upper(@lower, upper) 17 19 end 20 18 21 def set_lower_included(lower_included) 19 22 if (lower == nil) && (lower_included != nil) … … 22 25 @lower_included = lower_included 23 26 end 27 24 28 def set_upper_included(upper_included) 25 29 @upper_included = upper_included … … 28 32 end 29 33 end 34 30 35 def has?(value) 31 36 if ((@lower < value) && (value < @upper) || … … 37 42 end 38 43 end 44 39 45 private 46 40 47 def check_lower_upper(lower, upper) 41 48 if (lower == nil) && (upper == nil) -
/ruby/trunk/models/rm.rb
r20 r30 13 13 module RM 14 14 autoload :Demographic, "rm/demographic.rb" 15 15 16 module Common 16 17 autoload :Resource, "rm/common/resource.rb" 17 18 end 19 18 20 module Support 19 21 autoload :Definition, "rm/support/definition.rb" 22 23 module Identification 24 autoload :OBJECT_ID, "rm/support/identification.rb" 25 end 26 20 27 module Terminology 21 28 autoload :Terminology, "rm/support/terminology.rb" 22 29 end 23 30 end 31 24 32 module Data_Types 25 33 autoload :Basic, "rm/data_types/basic.rb" -
/ruby/trunk/models/rm/common/resource.rb
r20 r30 4 4 module Common 5 5 module Resource 6 class Authored_Resource 7 attr_reader :is_controled 8 attr_reader :revision_history, :translations 6 class AUTHORED_RESOURCE 7 attr_reader :is_controled,:revision_history, :translations 9 8 attr_accessor :description, :original_language 10 def initialize(original_language, translations, 11 description, revision_history = nil) 12 if original_language == nil 13 raise Exception.new("original language nil") 9 10 def initialize(args = { }) 11 @original_language = args[:original_language] if args[:original_language] 12 @translations = args[:translations] if args[:translations] 13 @revision_history = args[:revision_history] ? args[:revision_history] : nil 14 15 unless @revision_history 16 @is_controled = false 17 else 18 @is_controled = true 14 19 end 15 if translations == nil 16 raise Exception.new("translation empty") 17 end 18 if revision_history == nil 19 is_controled = false 20 else 21 is_controled = true 22 end 23 @original_language = original_language 24 @translations = translations 25 @description = description 26 @revision_history = revision_history 20 21 @original_language = args[:original_language] if args[:original_language] 22 @translations = args[:translations] if args[:translations] 23 @description = args[:description] if args[:description] 27 24 end 25 28 26 def current_version 29 27 @revision_history.most_recent_revision 30 28 end 29 31 30 def language_available 32 31 languages = Set.new 33 if translations != nil34 languages << translations.keys32 if @translations != nil 33 languages << @translations.keys 35 34 end 36 languages << original_language.code_string35 languages << @original_language.code_string 37 36 end 38 37 end 39 class Translation_Details 38 39 class TRANSLATION_DETAILS 40 40 attr_accessor :language, :author, :accreditation 41 41 attr_accessor :other_details, :terminology_service 42 42 43 def initialize(language, author, accreditation, other_details, 43 44 terminology_service) -
/ruby/trunk/models/rm/support/identification.rb
r20 r30 2 2 module RM 3 3 module Support 4 module Definition 5 class Object_ID 4 module Identification 5 6 class OBJECT_ID 6 7 attr_accessor :value 8 7 9 def initiallize(value) 8 if value == nil 9 raise Exception.new("empty value") 10 end 10 raise "empty value" unless value 11 11 @value = value 12 12 end 13 13 end # of ObjectID 14 class Terminology_ID < Object_ID 14 15 class ARCHETYPE_ID < OBJECT_ID 16 end 17 18 class TERMINOLOGY_ID < OBJECT_ID 15 19 attr_reader :name 16 def initialize(arg0, arg1=nil) 17 if arg1 == nil 18 super(arg0) 19 else 20 super(toValue(arg0, arg1)) 21 @name = arg0 22 @version = arg1 23 end 20 21 def initialize(name , version_id) 22 @name , @version_id = name , version_id 23 # if arg1 == nil 24 # super(arg0) 25 # else 26 # super(toValue(arg0, arg1)) 27 # @name = arg0 28 # @version = arg1 29 # end 24 30 end 31 25 32 def setValue(value) 26 33 loadValue(value) 27 34 super.value = value 28 35 end 36 29 37 def version_id 30 38 @version 31 39 end 40 32 41 private 42 33 43 def loadValue(value) 34 44 if /\(.*\)$/ =~ value 35 @name, @version = value.split(\())45 # @name, @version = value.split(\()) 36 46 @version.chop! 37 47 else … … 40 50 end 41 51 end 52 42 53 def toValue(name, version) 43 54 if name == "" -
/ruby/trunk/models/tests/test_archetype_model.rb
r20 r30 5 5 class ArchetypeModelTest < Test::Unit::TestCase 6 6 def setup 7 @archetype = OpenEHR::AM::Archetype::Archetype.new(nil,nil,nil,nil,nil,nil,nil,nil) 8 @archetype_description = OpenEHR::AM::Archetype::Archetype_Description::Archetype_Description.new 9 @archetype_constraint = OpenEHR::AM::Archetype::Constraint_Model::Archetype_Constraint.new 10 @assertion = OpenEHR::AM::Archetype::Constraint_Model::Assertion::Assertion.new 11 @c_primitive = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_Primitive.new 12 @c_boolean = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_Boolean.new(true, true, true) 13 @c_integer = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_Integer.new 14 @archetype_ontology = OpenEHR::AM::Archetype::Ontology::Archetype_Ontology.new 7 @archetype = OpenEHR::AM::Archetype::ARCHETYPE.new 8 @validity_kind = OpenEHR::AM::Archetype::VALIDITY_KIND.new 9 10 @archetype_description = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new 11 @archetype_description_item = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION_ITEM.new 15 12 end 16 13 17 14 def test_init 18 assert_instance_of OpenEHR::AM::Archetype::Ontology::Archetype_Ontology, @archetype_ontology 19 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Archetype_Constraint, @archetype_constraint 20 assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::Archetype_Description, @archetype_description 21 assert_instance_of OpenEHR::AM::Archetype::Archetype, @archetype 22 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Assertion::Assertion, @assertion 23 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_Primitive, @c_primitive 24 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_Boolean, @c_boolean 15 assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, @archetype 16 assert_instance_of OpenEHR::AM::Archetype::VALIDITY_KIND, @validity_kind 17 assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, @archetype_description 18 assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION_ITEM, @archetype_description_item 19 assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, @archetype 25 20 end 21 22 def test_create 23 archetype_instance = OpenEHR::AM::Archetype::ARCHETYPE.create() do |archetype| 24 archetype.adl_version = '1.4' 25 end 26 27 assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, archetype_instance 28 end 29 end 30 31 class ArchetypeModelConstraintTest < Test::Unit::TestCase 32 def setup 33 @archetype_constraint = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new 34 @cardinality = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new 35 36 @archetype_constraint = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new 37 @c_object = OpenEHR::AM::Archetype::Constraint_Model::C_OBJECT.new 38 @c_defined_object = OpenEHR::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT.new 39 @c_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE.new 40 @c_single_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new 41 @c_multiple_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE.new(:rm_attribute_name => 'attribute_name', :cardinality => @cardinality) 42 @c_primitive_object = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new 43 @c_reference_object = OpenEHR::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT.new 44 @archetype_internal_ref = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new 45 @archetype_slot = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new 46 @constraint_ref = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new 47 @c_domain_type = OpenEHR::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE.new 48 @c_complex_object = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => [@c_single_attribute]) 49 end 50 51 def test_init 52 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint 53 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_OBJECT, @c_object 54 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT, @c_defined_object 55 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE, @c_attribute 56 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE, @c_single_attribute 57 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE, @c_multiple_attribute 58 assert_equal 'attribute_name', @c_multiple_attribute.rm_attribute_name 59 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY, @c_multiple_attribute.cardinality 60 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT, @c_primitive_object 61 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT, @c_reference_object 62 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF, @archetype_internal_ref 63 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT, @archetype_slot 64 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF, @constraint_ref 65 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE, @c_domain_type 66 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, @c_complex_object 67 assert_instance_of Array, @c_complex_object.attributes 68 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint 69 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY, @cardinality 70 end 71 72 def test_create 73 c_complex_object = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:node_id => 'test_node', 74 :attributes => [1,2], 75 :assumed_value => Array 76 ) 77 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, c_complex_object 78 assert_equal 'test_node', c_complex_object.node_id 79 end 80 end 81 82 class ArchetypeModelPrimitiveTest < Test::Unit::TestCase 83 def setup 84 @c_primitive = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE.new 85 @c_boolean = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true, 86 :false_valid => true, 87 :assumed_value => true) 88 @c_string = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING.new 89 @c_integer = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new 90 @c_real = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL.new 91 @c_time = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME.new 92 @c_date = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE.new 93 @c_date_time = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new 94 @c_duration = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new 95 end 96 97 def test_init 98 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE, @c_primitive 99 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN, @c_boolean 100 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING, @c_string 101 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER, @c_integer 102 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL, @c_real 103 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME, @c_time 104 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE, @c_date 105 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME, @c_date_time 106 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION, @c_duration 107 end 108 26 109 def test_primitive 27 assert @c_boolean.true_valid ?28 assert @c_boolean.false_valid ?110 assert @c_boolean.true_valid 111 assert @c_boolean.false_valid 29 112 assert @c_boolean.assumed_value 30 113 assert @c_boolean.has_assumed_value? 31 114 assert @c_boolean.default_value 32 115 assert @c_boolean.default_value(true) 33 assert_raise(ArgumentError) {@c_boolean.set_true_valid(false); @c_boolean.set_false_valid(false)} 34 assert_raise(ArgumentError) {OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_Boolean.new(false,false,false)} 116 assert_raise(ArgumentError) do 117 @c_boolean.true_valid = false 118 @c_boolean.false_valid = false 119 end 120 assert_raise(ArgumentError) do 121 OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid =>false, 122 :false_valid => false, 123 :assumed_value => false) 124 end 125 end 126 127 end 128 129 class ArchetypeModelOntologyTest < Test::Unit::TestCase 130 def setup 131 @archetype_ontology = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new 132 @archetype_term = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_TERM.new(:code => '', :items => '') 133 end 134 135 def test_init 136 assert_instance_of OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY, @archetype_ontology 137 assert_instance_of OpenEHR::AM::Archetype::Ontology::ARCHETYPE_TERM, @archetype_term 138 end 139 end 140 141 class ArchetypeModelAssertionTest < Test::Unit::TestCase 142 def setup 143 @assertion = OpenEHR::AM::Archetype::Assertion::ASSERTION.new 144 @assertion_variable = OpenEHR::AM::Archetype::Assertion::ASSERTION_VARIABLE.new 145 @operator_kind = OpenEHR::AM::Archetype::Assertion::OPERATOR_KIND.new 146 @expr_item = OpenEHR::AM::Archetype::Assertion::EXPR_ITEM.new 147 @expr_leaf = OpenEHR::AM::Archetype::Assertion::EXPR_LEAF.new 148 @expr_operator = OpenEHR::AM::Archetype::Assertion::EXPR_OPERATOR.new 149 @expr_unary_operator = OpenEHR::AM::Archetype::Assertion::EXPR_UNARY_OPERATOR.new 150 @expr_binary_operator = OpenEHR::AM::Archetype::Assertion::EXPR_BINARY_OPERATOR.new 151 end 152 153 def test_init 154 assert_instance_of OpenEHR::AM::Archetype::Assertion::ASSERTION, @assertion 155 assert_instance_of OpenEHR::AM::Archetype::Assertion::ASSERTION_VARIABLE, @assertion_variable 156 assert_instance_of OpenEHR::AM::Archetype::Assertion::OPERATOR_KIND, @operator_kind 157 assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_ITEM, @expr_item 158 assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_LEAF, @expr_leaf 159 assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_OPERATOR, @expr_operator 160 assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_UNARY_OPERATOR, @expr_unary_operator 161 assert_instance_of OpenEHR::AM::Archetype::Assertion::EXPR_BINARY_OPERATOR, @expr_binary_operator 35 162 end 36 163 end 37 164 165 class ArchetypeModelProfileTest < Test::Unit::TestCase 166 def setup 167 @c_dv_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::C_DV_STATE.new 168 @state_machine = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE_MACHINE.new 169 @state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE.new 170 @terminal_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TERMINAL_STATE.new 171 @non_terminal_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::NON_TERMINAL_STATE.new 172 @transition = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TRANSITION.new 173 174 @c_code_phase = OpenEHR::AM::OpenEHR_Profile::Data_Types::Text::C_CODE_PHASE.new 175 176 @c_dv_quantity = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_QUANTITY.new 177 @c_dv_ordinal = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_ORDINAL.new 178 @c_quantity_item = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_QUANTITY_ITEM.new 179 end 180 181 def test_init 182 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::C_DV_STATE, @c_dv_state 183 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE_MACHINE, @state_machine 184 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE, @state 185 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TERMINAL_STATE, @terminal_state 186 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::NON_TERMINAL_STATE, @non_terminal_state 187 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TRANSITION, @transition 188 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Text::C_CODE_PHASE, @c_code_phase 189 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_QUANTITY, @c_dv_quantity 190 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_ORDINAL, @c_dv_ordinal 191 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_QUANTITY_ITEM, @c_quantity_item 192 end 193 end -
/ruby/trunk/models/tests/test_reference_model.rb
r20 r30 5 5 class ReferenceModelTest < Test::Unit::TestCase 6 6 def setup 7 @authored_resource = OpenEHR::RM::Common::Resource::Authored_Resource.new("ja","en","test") 8 @translation_details = OpenEHR::RM::Common::Resource::Translation_Details.new(nil,nil,nil,nil,nil) 7 @authored_resource = OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE.new(:original_language => "ja", 8 :translations => "en", 9 :description => "test") 10 @translation_details = OpenEHR::RM::Common::Resource::TRANSLATION_DETAILS.new(nil,nil,nil,nil,nil) 9 11 # @openehr_definitions = OpenEHR::RM::Support::Definition::OpenEHR_Definitions.new 10 12 @dv_boolean = OpenEHR::RM::Data_Types::Basic::DV_Boolean.new("TRUE") … … 19 21 20 22 def test_init 21 assert_instance_of OpenEHR::RM::Common::Resource::A uthored_Resource, @authored_resource22 assert_instance_of OpenEHR::RM::Common::Resource::T ranslation_Details, @translation_details23 assert_instance_of OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE, @authored_resource 24 assert_instance_of OpenEHR::RM::Common::Resource::TRANSLATION_DETAILS, @translation_details 23 25 assert_instance_of OpenEHR::RM::Data_Types::Basic::DV_Boolean, @dv_boolean 24 26 assert_instance_of OpenEHR::RM::Data_Types::Basic::DV_State, @dv_state … … 29 31 assert_instance_of OpenEHR::RM::Data_Types::Text::DV_Coded_Text, @dv_coded_text 30 32 end 33 31 34 def test_constant 32 35 assert_equal("\r", OpenEHR::RM::Support::Definition::OpenEHR_Definitions::CR) … … 35 38 assert_equal("\n", OpenEHR::RM::Data_Types::Basic::Data_Value::LF) 36 39 end 40 37 41 def test_dv_boolean 38 42 assert @dv_boolean.value? … … 43 47 assert_raise(ArgumentError){OpenEHR::RM::Data_Types::Basic::DV_Boolean.new(nil)} 44 48 end 49 45 50 def test_dv_state 46 51 assert_equal("code1", @dv_state.value) … … 52 57 assert_raise(ArgumentError) {OpenEHR::RM::Data_Types::Basic::DV_State.new(nil,nil)} 53 58 end 59 54 60 def test_dv_identifier 55 61 assert_equal("Ruby Hospital", @dv_identifier.assigner) … … 67 73 assert_raise(ArgumentError) {OpenEHR::RM::Data_Types::Basic::DV_Identifier.new(nil, nil, nil, nil)} 68 74 end 75 69 76 def test_dv_uri 70 77 assert_equal("file0", @dv_uri.fragment_id) … … 77 84 assert_equal("/openehr-jp/", @dv_uri.path) 78 85 end 86 79 87 def test_dv_ehr_uri 80 88 assert_equal("ehr", @dv_ehr_uri.scheme) … … 82 90 @dv_ehr_uri.value="svn://www.openehr.jp/openehr-jp/" } 83 91 end 92 84 93 def test_dv_text 85 94 assert_equal("valid value", @dv_text.value) 86 assert_raise(ArgumentError){ 87 @dv_text.value = "not valid value\n"} 88 assert_raise(ArgumentError){ 89 @dv_text.value = nil } 90 assert_raise(ArgumentError){ 91 @dv_text.value = "" } 92 assert_raise(ArgumentError){ 93 @dv_text.formatting = "" } 94 assert_raise(ArgumentError){ 95 @dv_text.encoding = ""} 96 assert_raise(ArgumentError){ 97 @dv_text.language = ""} 98 assert_raise(ArgumentError){ 99 @dv_text.mappings = Set.new} 100 assert_raise(ArgumentError){ 101 @dv_text.mappings = ""} 102 assert_raise(ArgumentError){ 103 @dv_text.language = ""} 95 assert_raise(ArgumentError){@dv_text.value = "not valid value\n"} 96 assert_raise(ArgumentError){@dv_text.value = nil } 97 assert_raise(ArgumentError){@dv_text.value = "" } 98 assert_raise(ArgumentError){@dv_text.formatting = "" } 99 assert_raise(ArgumentError){@dv_text.encoding = ""} 100 assert_raise(ArgumentError){@dv_text.language = ""} 101 assert_raise(ArgumentError){@dv_text.mappings = Set.new} 102 assert_raise(ArgumentError){@dv_text.mappings = ""} 103 assert_raise(ArgumentError){@dv_text.language = ""} 104 104 end 105 105 106 def test_dv_coded_text 106 107 assert_equal("valid value", @dv_coded_text.value) 107 108 assert_equal("AT1000", @dv_coded_text.defining_code) 108 assert_raise(ArgumentError){ 109 @dv_coded_text.defining_code=nil} 109 assert_raise(ArgumentError){@dv_coded_text.defining_code=nil} 110 110 end 111 111 112 def test_dv_paragraph 112 113 assert_equal((Set.new ["test1", "test2"]), @dv_paragraph.items) 113 assert_raise(ArgumentError){ 114 @dv_paragraph.items=Set.new} 114 assert_raise(ArgumentError){@dv_paragraph.items=Set.new} 115 115 end 116 116 117 def test_terminology_mapping 117 118 … … 119 120 end 120 121 122 123 class ReferenceModelSupportIdentificationTest < Test::Unit::TestCase 124 def setup 125 @object_id = OpenEHR::RM::Support::Identification::OBJECT_ID.new 126 @terminology_id = OpenEHR::RM::Support::Identification::TERMINOLOGY_ID.new('terminology','version') 127 @archetype_id = OpenEHR::RM::Support::Identification::ARCHETYPE_ID.new 128 end 129 130 def test_init 131 assert_instance_of OpenEHR::RM::Support::Identification::OBJECT_ID, @object_id 132 assert_instance_of OpenEHR::RM::Support::Identification::TERMINOLOGY_ID, @terminology_id 133 assert_instance_of OpenEHR::RM::Support::Identification::ARCHETYPE_ID, @archetype_id 134 135 end 136 end
Note:
See TracChangeset
for help on using the changeset viewer.