- Files:
-
- 2 added
- 8 deleted
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
/haskell/trunk/ADLParser.hs
r30 r20 24 24 return ontology 25 25 26 adlVersion :: Parser Version 26 27 adlVersion :: Parser String 27 28 adlVersion = do dec1 <- string "archetype (adl_version=" 28 29 ver <- many anyChar … … 51 52 52 53 adlLanguage :: Parser Language 53 adlLanguage = do spaces54 head <- string "language"55 56 54 57 58 parseAtoms :: Parser [Atom]59 parseAtoms = many atom60 where61 atom :: Parser Atom62 atom = do spaces63 name <- string64 spaces65 equal <- char '='66 spaces67 <|> return []68 69 70 data Language = Original_Laguage String71 | Translaions [Transpation]72 deriving Show73 74 data Translation = Symbol String75 | Language String76 | Author Author77 78 data Author = Name String79 | Organisation String80 81 data Atom = Name String82 | Description String83 84 type Version :: String -
/ruby/trunk/adl_parser/Rakefile
r30 r20 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 s.files =FileList['README', 'COPYING', 'Rakefile']89 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")95 94 end 96 95 -
/ruby/trunk/adl_parser/lib/parser.rb
r30 r20 13 13 require 'lib/util.rb' 14 14 require 'lib/scanner.rb' 15 require 'rubygems' 16 require 'am.rb' 15 require 'lib/model.rb' 17 16 $DEBUG = true 18 17 … … 26 25 class Parser < Racc::Parser 27 26 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 27 module_eval <<'..end lib/parser.y modeval..id134a7f5a66', 'lib/parser.y', 739 35 28 36 29 @@log = Logger.new('log/parser.log','daily') … … 819 812 820 813 821 ..end lib/parser.y modeval..id 3b9eed63e6814 ..end lib/parser.y modeval..id134a7f5a66 822 815 823 816 ##### racc 1.4.5 generates ### … … 825 818 racc_reduce_table = [ 826 819 0, 0, :racc_error, 827 2, 95, :_reduce_ 1,820 2, 95, :_reduce_none, 828 821 1, 95, :_reduce_none, 829 8, 96, :_reduce_ 3,830 2, 97, :_reduce_ 4,831 2, 97, :_reduce_ 5,832 1, 105, :_reduce_ 6,833 2, 105, :_reduce_ 7,834 3, 106, :_reduce_ 8,835 1, 107, :_reduce_ 9,836 3, 107, :_reduce_ 10,837 3, 108, :_reduce_ 11,838 1, 108, :_reduce_ 12,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, 839 832 0, 98, :_reduce_none, 840 833 2, 98, :_reduce_none, 841 834 2, 98, :_reduce_none, 842 2, 99, :_reduce_16,843 835 2, 99, :_reduce_none, 844 0, 100, :_reduce_18, 836 2, 99, :_reduce_none, 837 0, 100, :_reduce_none, 845 838 2, 100, :_reduce_19, 846 839 2, 100, :_reduce_none, 847 840 0, 101, :_reduce_none, 848 2, 101, :_reduce_22,849 841 2, 101, :_reduce_none, 850 2, 10 2, :_reduce_24,842 2, 101, :_reduce_none, 851 843 2, 102, :_reduce_none, 852 1, 110, :_reduce_26, 853 1, 110, :_reduce_27, 854 5, 111, :_reduce_28, 855 5, 111, :_reduce_29, 856 2, 113, :_reduce_30, 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, 857 850 1, 115, :_reduce_31, 858 851 2, 115, :_reduce_32, 859 852 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, 853 1, 114, :_reduce_none, 869 854 1, 120, :_reduce_none, 870 855 1, 120, :_reduce_none, 871 3, 121, :_reduce_45, 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, 872 865 4, 122, :_reduce_none, 873 866 3, 122, :_reduce_none, … … 877 870 3, 132, :_reduce_none, 878 871 2, 132, :_reduce_none, 879 1, 127, :_reduce_ 53,880 1, 133, :_reduce_ 54,881 1, 133, :_reduce_ 55,882 1, 133, :_reduce_ 56,883 1, 133, :_reduce_ 57,884 1, 133, :_reduce_ 58,885 1, 133, :_reduce_ 59,886 1, 133, :_reduce_ 60,887 1, 133, :_reduce_ 61,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, 888 881 1, 118, :_reduce_none, 889 1, 119, :_reduce_ 63,890 2, 119, :_reduce_ 64,891 5, 142, :_reduce_ 65,892 5, 142, :_reduce_ 66,893 5, 142, :_reduce_ 67,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, 894 887 2, 143, :_reduce_68, 895 888 3, 143, :_reduce_69, 896 1, 144, :_reduce_ 70,897 2, 144, :_reduce_ 71,898 1, 144, :_reduce_ 72,889 1, 144, :_reduce_none, 890 2, 144, :_reduce_none, 891 1, 144, :_reduce_none, 899 892 0, 130, :_reduce_none, 900 893 2, 130, :_reduce_none, … … 909 902 2, 103, :_reduce_none, 910 903 2, 103, :_reduce_none, 911 2, 104, :_reduce_ 85,904 2, 104, :_reduce_none, 912 905 2, 104, :_reduce_none, 913 906 1, 109, :_reduce_none, 914 907 1, 151, :_reduce_none, 915 908 1, 151, :_reduce_none, 916 1, 152, :_reduce_ 90,917 2, 152, :_reduce_ 91,918 3, 152, :_reduce_ 92,909 1, 152, :_reduce_none, 910 2, 152, :_reduce_none, 911 3, 152, :_reduce_none, 919 912 3, 154, :_reduce_93, 920 913 1, 155, :_reduce_94, 921 914 2, 155, :_reduce_none, 922 1, 156, :_reduce_ 96,923 1, 156, :_reduce_ 97,924 1, 153, :_reduce_ 98,925 1, 153, :_reduce_ 99,926 1, 159, :_reduce_ 100,927 2, 159, :_reduce_ 101,928 3, 160, :_reduce_ 102,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, 929 922 1, 161, :_reduce_103, 930 1, 162, :_reduce_ 104,931 2, 162, :_reduce_ 105,923 1, 162, :_reduce_none, 924 2, 162, :_reduce_none, 932 925 3, 163, :_reduce_106, 933 926 3, 164, :_reduce_107, 934 1, 158, :_reduce_ 108,935 2, 158, :_reduce_ 109,936 2, 166, :_reduce_ 110,937 3, 166, :_reduce_ 111,927 1, 158, :_reduce_none, 928 2, 158, :_reduce_none, 929 2, 166, :_reduce_none, 930 3, 166, :_reduce_none, 938 931 1, 167, :_reduce_none, 939 1, 157, :_reduce_ 113,940 2, 157, :_reduce_ 114,932 1, 157, :_reduce_none, 933 2, 157, :_reduce_none, 941 934 3, 168, :_reduce_115, 942 1, 169, :_reduce_ 116,943 1, 169, :_reduce_ 117,944 1, 169, :_reduce_ 118,945 1, 169, :_reduce_ 119,946 1, 169, :_reduce_ 120,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, 947 940 1, 165, :_reduce_121, 948 941 1, 165, :_reduce_122, … … 976 969 3, 184, :_reduce_none, 977 970 3, 184, :_reduce_none, 978 1, 175, :_reduce_ 152,979 2, 175, :_reduce_ 153,980 2, 175, :_reduce_ 154,971 1, 175, :_reduce_none, 972 2, 175, :_reduce_none, 973 2, 175, :_reduce_none, 981 974 3, 185, :_reduce_none, 982 975 3, 185, :_reduce_none, … … 991 984 4, 193, :_reduce_none, 992 985 3, 193, :_reduce_none, 993 1, 176, :_reduce_ 167,994 2, 176, :_reduce_ 168,995 2, 176, :_reduce_ 169,986 1, 176, :_reduce_none, 987 2, 176, :_reduce_none, 988 2, 176, :_reduce_none, 996 989 3, 186, :_reduce_none, 997 990 3, 186, :_reduce_none, … … 1006 999 4, 194, :_reduce_none, 1007 1000 3, 194, :_reduce_none, 1008 1, 177, :_reduce_ 182,1009 1, 177, :_reduce_ 183,1001 1, 177, :_reduce_none, 1002 1, 177, :_reduce_none, 1010 1003 3, 187, :_reduce_none, 1011 1004 3, 187, :_reduce_none, … … 1114 1107 2, 206, :_reduce_288, 1115 1108 1, 206, :_reduce_289, 1116 0, 145, :_reduce_ 290,1117 5, 145, :_reduce_ 291,1118 1, 207, :_reduce_ 292,1119 3, 207, :_reduce_ 293,1120 5, 146, :_reduce_ 294,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, 1121 1114 1, 208, :_reduce_none, 1122 1115 3, 208, :_reduce_none, … … 1130 1123 1, 210, :_reduce_none, 1131 1124 0, 116, :_reduce_none, 1132 5, 116, :_reduce_ 306,1125 5, 116, :_reduce_none, 1133 1126 2, 116, :_reduce_none, 1134 1127 1, 209, :_reduce_none, … … 1177 1170 3, 140, :_reduce_none, 1178 1171 3, 140, :_reduce_none, 1179 1, 219, :_reduce_ 353,1180 1, 219, :_reduce_ 354,1181 3, 219, :_reduce_ 355,1182 3, 219, :_reduce_ 356,1183 1, 141, :_reduce_ 357,1184 3, 141, :_reduce_ 358,1185 3, 141, :_reduce_ 359,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, 1186 1179 1, 126, :_reduce_none, 1187 1180 3, 126, :_reduce_none, … … 1199 1192 1, 149, :_reduce_none, 1200 1193 1, 149, :_reduce_374, 1201 1, 217, :_reduce_ 375]1194 1, 217, :_reduce_none ] 1202 1195 1203 1196 racc_reduce_n = 376 … … 2019 2012 # reduce 0 omitted 2020 2013 2021 module_eval <<'.,.,', 'lib/parser.y', 32 2022 def _reduce_1( val, _values, result ) 2023 result = val[0] 2024 result 2025 end 2026 .,., 2014 # reduce 1 omitted 2027 2015 2028 2016 # reduce 2 omitted 2029 2017 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 .,., 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 2118 2037 2119 2038 # reduce 13 omitted … … 2123 2042 # reduce 15 omitted 2124 2043 2044 # reduce 16 omitted 2045 2046 # reduce 17 omitted 2047 2048 # reduce 18 omitted 2049 2050 module_eval <<'.,.,', 'lib/parser.y', 74 2051 def _reduce_19( val, _values, result ) 2052 result = {:language => val[1]} 2053 result 2054 end 2055 .,., 2056 2057 # reduce 20 omitted 2058 2059 # reduce 21 omitted 2060 2061 # reduce 22 omitted 2062 2063 # reduce 23 omitted 2064 2065 # reduce 24 omitted 2066 2067 # reduce 25 omitted 2068 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 2125 2079 module_eval <<'.,.,', 'lib/parser.y', 111 2126 def _reduce_16( val, _values, result )2127 result = {:arch_concept => val[1] }2128 result2129 end2130 .,.,2131 2132 # reduce 17 omitted2133 2134 module_eval <<'.,.,', 'lib/parser.y', 1212135 def _reduce_18( val, _values, result )2136 result = {:arch_language => nil}2137 result2138 end2139 .,.,2140 2141 module_eval <<'.,.,', 'lib/parser.y', 1252142 def _reduce_19( val, _values, result )2143 result = {:arch_language => val[1]}2144 result2145 end2146 .,.,2147 2148 # reduce 20 omitted2149 2150 # reduce 21 omitted2151 2152 module_eval <<'.,.,', 'lib/parser.y', 1362153 def _reduce_22( val, _values, result )2154 result = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new(:details => val[1])2155 result2156 end2157 .,.,2158 2159 # reduce 23 omitted2160 2161 module_eval <<'.,.,', 'lib/parser.y', 1442162 def _reduce_24( val, _values, result )2163 result = val[1]2164 result2165 end2166 .,.,2167 2168 # reduce 25 omitted2169 2170 module_eval <<'.,.,', 'lib/parser.y', 1542171 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 result2176 end2177 .,.,2178 2179 module_eval <<'.,.,', 'lib/parser.y', 1582180 def _reduce_27( val, _values, result )2181 result = val[0]2182 result2183 end2184 .,.,2185 2186 module_eval <<'.,.,', 'lib/parser.y', 1692187 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 end2193 result2194 end2195 .,.,2196 2197 module_eval <<'.,.,', 'lib/parser.y', 1772198 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 end2204 result2205 end2206 .,.,2207 2208 module_eval <<'.,.,', 'lib/parser.y', 1842209 def _reduce_30( val, _values, result )2210 result = {:c_complex_object_id => val[0], :c_occurrences => val[1]}2211 result2212 end2213 .,.,2214 2215 module_eval <<'.,.,', 'lib/parser.y', 1892216 2080 def _reduce_31( val, _values, result ) 2217 result = {: type_identifier => val[0]}2218 result 2219 end 2220 .,., 2221 2222 module_eval <<'.,.,', 'lib/parser.y', 1 932081 result = {:c_complex_object_id => {:type_identifier => val[0]}} 2082 result 2083 end 2084 .,., 2085 2086 module_eval <<'.,.,', 'lib/parser.y', 115 2223 2087 def _reduce_32( val, _values, result ) 2224 result = {: type_identifier => val[0], :local_term_code_ref => val[1]}2088 result = {:c_complex_object_id => {:type_identifier => val[0], :V_LOCAL_TERM_CODE_REF => val[1]}} 2225 2089 result 2226 2090 end … … 2229 2093 # reduce 33 omitted 2230 2094 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 .,., 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 2293 2112 2294 2113 # reduce 43 omitted … … 2296 2115 # reduce 44 omitted 2297 2116 2298 module_eval <<'.,.,', 'lib/parser.y', 250 2299 def _reduce_45( val, _values, result ) 2300 result = val[1] 2301 result 2302 end 2303 .,., 2117 # reduce 45 omitted 2304 2118 2305 2119 # reduce 46 omitted … … 2317 2131 # reduce 52 omitted 2318 2132 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 .,., 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 2391 2150 2392 2151 # reduce 62 omitted 2393 2152 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 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 2435 2164 def _reduce_68( val, _values, result ) 2436 2165 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}") 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 2166 result 2167 end 2168 .,., 2169 2170 module_eval <<'.,.,', 'lib/parser.y', 190 2446 2171 def _reduce_69( val, _values, result ) 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 .,., 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 2478 2182 2479 2183 # reduce 73 omitted … … 2501 2205 # reduce 84 omitted 2502 2206 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 .,., 2207 # reduce 85 omitted 2510 2208 2511 2209 # reduce 86 omitted … … 2517 2215 # reduce 89 omitted 2518 2216 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 2217 # reduce 90 omitted 2218 2219 # reduce 91 omitted 2220 2221 # reduce 92 omitted 2222 2223 module_eval <<'.,.,', 'lib/parser.y', 240 2541 2224 def _reduce_93( val, _values, result ) 2542 2225 @@log.info("#{__FILE__}:#{__LINE__}: attr_id = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}") 2543 result = {:attr_id => val[0], :object_block => val[2]} 2544 result 2545 end 2546 .,., 2547 2548 module_eval <<'.,.,', 'lib/parser.y', 444 2226 result 2227 end 2228 .,., 2229 2230 module_eval <<'.,.,', 'lib/parser.y', 245 2549 2231 def _reduce_94( val, _values, result ) 2550 2232 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}") 2551 result = val[0]2552 2233 result 2553 2234 end … … 2556 2237 # reduce 95 omitted 2557 2238 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 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 2608 2254 def _reduce_103( val, _values, result ) 2609 2255 @@log.info("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}") 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 2256 result 2257 end 2258 .,., 2259 2260 # reduce 104 omitted 2261 2262 # reduce 105 omitted 2263 2264 module_eval <<'.,.,', 'lib/parser.y', 270 2630 2265 def _reduce_106( val, _values, result ) 2631 2266 @@log.info("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}") 2632 result = {:object_key => val[0], :object_block => val[1]} 2633 result 2634 end 2635 .,., 2636 2637 module_eval <<'.,.,', 'lib/parser.y', 504 2267 result 2268 end 2269 .,., 2270 2271 module_eval <<'.,.,', 'lib/parser.y', 275 2638 2272 def _reduce_107( val, _values, result ) 2639 2273 @@log.info("object_key: [#{val[1]}] at #{@filename}:#{@lineno}") 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 .,., 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 2674 2285 2675 2286 # reduce 112 omitted 2676 2287 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 2288 # reduce 113 omitted 2289 2290 # reduce 114 omitted 2291 2292 module_eval <<'.,.,', 'lib/parser.y', 287 2694 2293 def _reduce_115( val, _values, result ) 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 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 2737 2310 def _reduce_121( val, _values, result ) 2738 2311 @@log.info("string_value: #{val[0]} at #{@filename}:#{@lineno}") 2739 result = val[0] 2740 result 2741 end 2742 .,., 2743 2744 module_eval <<'.,.,', 'lib/parser.y', 570 2312 result 2313 end 2314 .,., 2315 2316 module_eval <<'.,.,', 'lib/parser.y', 300 2745 2317 def _reduce_122( val, _values, result ) 2746 2318 @@log.info("integer_value: #{val[0]} at #{@filename}:#{@lineno}") 2747 result = val[0] 2748 result 2749 end 2750 .,., 2751 2752 module_eval <<'.,.,', 'lib/parser.y', 575 2319 result 2320 end 2321 .,., 2322 2323 module_eval <<'.,.,', 'lib/parser.y', 304 2753 2324 def _reduce_123( val, _values, result ) 2754 2325 @@log.info("real_value: #{val[0]} at #{@filename}:#{@lineno}") 2755 result = val[0] 2756 result 2757 end 2758 .,., 2759 2760 module_eval <<'.,.,', 'lib/parser.y', 580 2326 result 2327 end 2328 .,., 2329 2330 module_eval <<'.,.,', 'lib/parser.y', 308 2761 2331 def _reduce_124( val, _values, result ) 2762 2332 @@log.info("boolean_value: #{val[0]} at #{@filename}:#{@lineno}") 2763 result = val[0] 2764 result 2765 end 2766 .,., 2767 2768 module_eval <<'.,.,', 'lib/parser.y', 585 2333 result 2334 end 2335 .,., 2336 2337 module_eval <<'.,.,', 'lib/parser.y', 312 2769 2338 def _reduce_125( val, _values, result ) 2770 2339 @@log.info("character_value: #{val[0]} at #{@filename}:#{@lineno}") 2771 result = val[0] 2772 result 2773 end 2774 .,., 2775 2776 module_eval <<'.,.,', 'lib/parser.y', 590 2340 result 2341 end 2342 .,., 2343 2344 module_eval <<'.,.,', 'lib/parser.y', 316 2777 2345 def _reduce_126( val, _values, result ) 2778 2346 @@log.info("date_value: #{val[0]} at #{@filename}:#{@lineno}") 2779 result = val[0] 2780 result 2781 end 2782 .,., 2783 2784 module_eval <<'.,.,', 'lib/parser.y', 595 2347 result 2348 end 2349 .,., 2350 2351 module_eval <<'.,.,', 'lib/parser.y', 320 2785 2352 def _reduce_127( val, _values, result ) 2786 2353 @@log.info("time_value: #{val[0]} at #{@filename}:#{@lineno}") 2787 result = val[0] 2788 result 2789 end 2790 .,., 2791 2792 module_eval <<'.,.,', 'lib/parser.y', 600 2354 result 2355 end 2356 .,., 2357 2358 module_eval <<'.,.,', 'lib/parser.y', 324 2793 2359 def _reduce_128( val, _values, result ) 2794 2360 @@log.info("date_time_value: #{val[0]} at #{@filename}:#{@lineno}") 2795 result = val[0] 2796 result 2797 end 2798 .,., 2799 2800 module_eval <<'.,.,', 'lib/parser.y', 605 2361 result 2362 end 2363 .,., 2364 2365 module_eval <<'.,.,', 'lib/parser.y', 328 2801 2366 def _reduce_129( val, _values, result ) 2802 2367 @@log.info("duration_value: #{val[0]} at #{@filename}:#{@lineno}") 2803 result = val[0] 2804 result 2805 end 2806 .,., 2807 2808 module_eval <<'.,.,', 'lib/parser.y', 610 2368 result 2369 end 2370 .,., 2371 2372 module_eval <<'.,.,', 'lib/parser.y', 332 2809 2373 def _reduce_130( val, _values, result ) 2810 2374 @@log.info("uri_value: #{val[0]} at #{@filename}:#{@lineno}") 2811 result = val[0]2812 2375 result 2813 2376 end … … 2844 2407 # reduce 145 omitted 2845 2408 2846 module_eval <<'.,.,', 'lib/parser.y', 6332409 module_eval <<'.,.,', 'lib/parser.y', 353 2847 2410 def _reduce_146( val, _values, result ) 2848 2411 @@log.info("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") 2849 result = val[0] 2850 result 2851 end 2852 .,., 2853 2854 module_eval <<'.,.,', 'lib/parser.y', 638 2412 result 2413 end 2414 .,., 2415 2416 module_eval <<'.,.,', 'lib/parser.y', 357 2855 2417 def _reduce_147( val, _values, result ) 2856 2418 @@log.info("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") 2857 result = val[0] 2858 result 2859 end 2860 .,., 2861 2862 module_eval <<'.,.,', 'lib/parser.y', 644 2419 result 2420 end 2421 .,., 2422 2423 module_eval <<'.,.,', 'lib/parser.y', 362 2863 2424 def _reduce_148( val, _values, result ) 2864 2425 @@log.info("V_STRING: #{val[0]} at #{@filename}:#{@lineno}") 2865 result = val[0]2866 2426 result 2867 2427 end … … 2874 2434 # reduce 151 omitted 2875 2435 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 .,., 2436 # reduce 152 omitted 2437 2438 # reduce 153 omitted 2439 2440 # reduce 154 omitted 2911 2441 2912 2442 # reduce 155 omitted … … 2934 2464 # reduce 166 omitted 2935 2465 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 .,., 2466 # reduce 167 omitted 2467 2468 # reduce 168 omitted 2469 2470 # reduce 169 omitted 2971 2471 2972 2472 # reduce 170 omitted … … 2994 2494 # reduce 181 omitted 2995 2495 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 .,., 2496 # reduce 182 omitted 2497 2498 # reduce 183 omitted 3009 2499 3010 2500 # reduce 184 omitted … … 3100 2590 # reduce 229 omitted 3101 2591 3102 module_eval <<'.,.,', 'lib/parser.y', 8082592 module_eval <<'.,.,', 'lib/parser.y', 473 3103 2593 def _reduce_230( val, _values, result ) 3104 2594 @@log.info("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}") 3105 result = val[0]3106 2595 result 3107 2596 end … … 3132 2621 # reduce 242 omitted 3133 2622 3134 module_eval <<'.,.,', 'lib/parser.y', 8282623 module_eval <<'.,.,', 'lib/parser.y', 492 3135 2624 def _reduce_243( val, _values, result ) 3136 2625 @@log.info("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}") 3137 result = val[0]3138 2626 result 3139 2627 end … … 3146 2634 # reduce 246 omitted 3147 2635 3148 module_eval <<'.,.,', 'lib/parser.y', 8382636 module_eval <<'.,.,', 'lib/parser.y', 501 3149 2637 def _reduce_247( val, _values, result ) 3150 2638 @@log.info("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}") 3151 result = val[0]3152 2639 result 3153 2640 end … … 3234 2721 # reduce 287 omitted 3235 2722 3236 module_eval <<'.,.,', 'lib/parser.y', 9072723 module_eval <<'.,.,', 'lib/parser.y', 570 3237 2724 def _reduce_288( val, _values, result ) 3238 2725 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") … … 3241 2728 .,., 3242 2729 3243 module_eval <<'.,.,', 'lib/parser.y', 9112730 module_eval <<'.,.,', 'lib/parser.y', 574 3244 2731 def _reduce_289( val, _values, result ) 3245 2732 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") … … 3248 2735 .,., 3249 2736 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 .,., 2737 # reduce 290 omitted 2738 2739 # reduce 291 omitted 2740 2741 # reduce 292 omitted 2742 2743 # reduce 293 omitted 2744 2745 # reduce 294 omitted 3295 2746 3296 2747 # reduce 295 omitted … … 3316 2767 # reduce 305 omitted 3317 2768 3318 module_eval <<'.,.,', 'lib/parser.y', 970 3319 def _reduce_306( val, _values, result ) 3320 result = val[3] 3321 result 3322 end 3323 .,., 2769 # reduce 306 omitted 3324 2770 3325 2771 # reduce 307 omitted … … 3415 2861 # reduce 352 omitted 3416 2862 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 .,., 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 3465 2876 3466 2877 # reduce 360 omitted … … 3474 2885 # reduce 364 omitted 3475 2886 3476 module_eval <<'.,.,', 'lib/parser.y', 10782887 module_eval <<'.,.,', 'lib/parser.y', 694 3477 2888 def _reduce_365( val, _values, result ) 3478 2889 @in_interval = false … … 3498 2909 # reduce 373 omitted 3499 2910 3500 module_eval <<'.,.,', 'lib/parser.y', 11002911 module_eval <<'.,.,', 'lib/parser.y', 716 3501 2912 def _reduce_374( val, _values, result ) 3502 2913 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}") … … 3505 2916 .,., 3506 2917 3507 module_eval <<'.,.,', 'lib/parser.y', 1110 3508 def _reduce_375( val, _values, result ) 3509 result = val[0] 3510 result 3511 end 3512 .,., 2918 # reduce 375 omitted 3513 2919 3514 2920 def _reduce_none( val, _values, result ) -
/ruby/trunk/adl_parser/lib/parser.y
r30 r20 28 28 29 29 input: archetype EOF 30 {31 result = val[0]32 }33 30 | error 34 31 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 } 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 58 40 59 41 60 42 arch_identification: arch_head V_ARCHETYPE_ID 61 {62 result = {:arch_head => val[0], :archetype_id => val[1] }63 }64 43 | SYM_ARCHETYPE error 65 {66 raise67 }68 44 69 45 arch_head: SYM_ARCHETYPE 70 {71 result = {:arch_meta_data => nil }72 }73 46 | SYM_ARCHETYPE arch_meta_data 74 {75 result = val[1]76 }77 47 78 48 arch_meta_data: Left_parenthesis_code arch_meta_data_items Right_parenthesis_code 79 {80 result = {:arch_meta_data => val[1] }81 }82 49 83 50 arch_meta_data_items: arch_meta_data_item 84 {85 result = val[0]86 }87 51 | arch_meta_data_items Semicolon_code arch_meta_data_item 88 { 89 result = val[0].merge(val[2]) 90 } 91 52 # | arch_meta_data_items ';' arch_meta_data_item 92 53 93 54 arch_meta_data_item: SYM_ADL_VERSION SYM_EQ V_VERSION_STRING 94 {95 result = {:adl_version => val[2], :is_controlled => false }96 }97 55 | SYM_IS_CONTROLLED 98 {99 result = {:is_controlled => true }100 }101 56 102 57 # Define specialization in which its constraints are narrower than those of the parent. … … 107 62 108 63 arch_concept: SYM_CONCEPT V_LOCAL_TERM_CODE_REF 109 {110 result = {:arch_concept => val[1] }111 }112 64 | SYM_CONCEPT error 113 65 … … 117 69 118 70 arch_language: #-- empty is ok for ADL 1.4 tools 119 {120 result = {:arch_language => nil}121 }122 71 | SYM_LANGUAGE dadl_section 123 72 { 124 result = {: arch_language => val[1]}73 result = {:language => val[1]} 125 74 } 126 75 | SYM_LANGUAGE error … … 132 81 arch_description: #-- no meta-data ok 133 82 | SYM_DESCRIPTION dadl_section 134 { 135 result = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new(:details => val[1]) 136 } 137 | SYM_DESCRIPTION error 138 83 | SYM_DESCRIPTION error 84 139 85 #arch_definition: SYM_DEFINITION V_CADL_TEXT 140 86 # | SYM_DEFINITION error 141 87 arch_definition: SYM_DEFINITION cadl_section 142 {143 result = val[1]144 }145 88 | SYM_DEFINITION error 146 89 … … 148 91 ### cADL section 149 92 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 }155 93 | assertions 156 {157 result = val[0]158 }159 94 # | error 160 95 161 96 #c_complex_object: c_complex_object_head SYM_MATCHES SYM_START_CBLOCK c_complex_object_body SYM_END_CBLOCK 162 97 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 end169 }170 98 | c_complex_object_head SYM_MATCHES SYM_START_CBLOCK c_complex_object_body SYM_END_CBLOCK 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 99 # | c_complex_object_head error SYM_END_CBLOCK 100 # { 101 # @adl_type.push(:cadl) 102 # yyerror 103 # } 179 104 # | c_complex_object_head SYM_MATCHES SYM_START_CBLOCK c_complex_object_body c_invariants SYM_END_CBLOCK 180 105 181 106 c_complex_object_head: c_complex_object_id c_occurrences 182 {183 result = {:c_complex_object_id => val[0], :c_occurrences => val[1]}184 }185 107 186 108 c_complex_object_id: type_identifier 187 109 { 188 result = {: type_identifier => val[0]}110 result = {:c_complex_object_id => {:type_identifier => val[0]}} 189 111 } 190 112 | type_identifier V_LOCAL_TERM_CODE_REF 191 113 { 192 result = {: type_identifier => val[0], :local_term_code_ref => val[1]}114 result = {:c_complex_object_id => {:type_identifier => val[0], :V_LOCAL_TERM_CODE_REF => val[1]}} 193 115 } 194 116 195 117 c_complex_object_body: c_any #-- used to indicate that any value of a type is ok 196 118 | c_attributes 197 {198 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => val[0])199 }200 119 201 120 … … 203 122 204 123 c_object: v_c_domain_type 205 {206 result = val[0]207 }208 124 | c_complex_object 209 {210 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new211 }212 125 | archetype_internal_ref 213 {214 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new215 }216 126 | archetype_slot 217 {218 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new219 }220 127 | constraint_ref 221 {222 result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new223 }224 128 | c_code_phrase 225 {226 result = val[0]227 }228 129 | c_ordinal 229 {230 result = val[0]231 }232 130 | c_primitive_object 233 {234 result = val[0]235 }236 131 # | v_c_domain_type 237 132 # | V_C_DOMAIN_TYPE … … 246 141 247 142 v_c_domain_type: START_V_C_DOMAIN_TYPE_BLOCK dadl_section END_V_C_DOMAIN_TYPE_BLOCK 248 {249 result = val[1]250 }251 143 252 144 # 'archetype_internal_ref' is a node that refers to a previously defined object node in the same archetype. … … 265 157 # 'c_primitive_object' is an node representing a constraint on a primitive object type. 266 158 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 }271 159 272 160 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.new276 }277 161 | 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.new281 }282 162 | 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.new286 }287 163 | 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.new291 }292 164 | 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.new296 }297 165 | 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.new301 }302 166 | 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.new306 }307 167 | 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 }313 168 314 169 c_any: Star_code … … 318 173 319 174 c_attributes: c_attribute 320 {321 result = [val[0]]322 }323 175 | c_attributes c_attribute 324 {325 result = (val[0] << val[1])326 }327 176 328 177 # 'c_attribute' is a node representing a constraint on an attribute in an object model. 329 178 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_attribute335 }336 179 | 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 }341 180 | 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 }346 181 347 182 … … 349 184 { 350 185 @@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 356 186 } 357 187 | V_ATTRIBUTE_IDENTIFIER c_existence c_cardinality 358 188 { 359 assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY) }360 189 @@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 )366 190 } 367 191 368 192 c_attr_values: c_object 369 {370 result = Array[val[0]]371 }372 193 | c_attr_values c_object 373 {374 result = (val[0] << val[1])375 }376 194 | c_any # -- to allow a property to have any value 377 {378 result = Array[val[0]]379 }380 195 381 196 ### c_includes: #-- Empty … … 405 220 406 221 arch_ontology: SYM_ONTOLOGY dadl_section 407 {408 dadl_section = val[1]409 result = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new410 }411 222 | SYM_ONTOLOGY error 412 223 … … 420 231 421 232 attr_vals: attr_val 422 {423 result = Array[val[0]]424 }425 233 | attr_vals attr_val 426 {427 result = (val[0] << val[1])428 }429 234 | attr_vals Semicolon_code attr_val 430 { 431 result = (val[0] << val[2]) 432 } 235 # | attr_vals ';' attr_val 433 236 434 237 attr_val: attr_id SYM_EQ object_block 435 238 { 436 239 @@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]}438 240 } 439 241 … … 441 243 { 442 244 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}") 443 result = val[0]444 245 } 445 246 | V_ATTRIBUTE_IDENTIFIER error 446 247 447 248 object_block: complex_object_block 448 {449 result = val[0]450 }451 249 | primitive_object_block 452 {453 result = val[0]454 }455 250 456 251 complex_object_block: single_attr_object_block 457 {458 result = val[0]459 }460 252 | multiple_attr_object_block 461 {462 result = val[0]463 }464 253 465 254 multiple_attr_object_block: untyped_multiple_attr_object_block 466 {467 result = {:untyped_multiple_attr_object_block => val[0]}468 }469 255 | type_identifier untyped_multiple_attr_object_block 470 {471 result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]}472 }473 256 474 257 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 }478 258 479 259 multiple_attr_object_block_head: SYM_START_DBLOCK 480 { 260 { 481 261 @@log.info("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}") 482 result = val[0]483 262 } 484 263 485 264 keyed_objects: keyed_object 486 {487 result = Array[val[0]]488 }489 265 | keyed_objects keyed_object 490 {491 result = (val[0] << val[1])492 }493 266 494 267 keyed_object: object_key SYM_EQ object_block 495 268 { 496 269 @@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]}498 270 } 499 271 … … 501 273 { 502 274 @@log.info("object_key: [#{val[1]}] at #{@filename}:#{@lineno}") 503 result = val[1]504 275 } 505 276 506 277 single_attr_object_block: untyped_single_attr_object_block 507 {508 result = {:untyped_single_attr_object_block => val[0]}509 }510 278 | type_identifier untyped_single_attr_object_block 511 {512 result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]}513 }514 515 279 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 }520 280 | 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 }525 281 single_attr_object_complex_head: SYM_START_DBLOCK 526 282 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 }531 283 | 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 }536 284 untyped_primitive_object_block: SYM_START_DBLOCK primitive_object_value SYM_END_DBLOCK 537 285 { 538 @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}") 539 result = val[1] 286 @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[2]}> at #{@filename}:#{@lineno}") 540 287 } 541 288 primitive_object_value: simple_value 542 {543 result = val[0]544 }545 289 | simple_list_value 546 {547 result = val[0]548 }549 290 | simple_interval_value 550 {551 result = val[0]552 }553 291 | term_code 554 {555 result = val[0]556 }557 292 | term_code_list_value 558 {559 result = val[0]560 }561 293 simple_value: string_value 562 294 { 563 295 @@log.info("string_value: #{val[0]} at #{@filename}:#{@lineno}") 564 result = val[0]565 296 } 566 297 | integer_value 567 298 { 568 299 @@log.info("integer_value: #{val[0]} at #{@filename}:#{@lineno}") 569 result = val[0]570 300 } 571 301 | real_value 572 302 { 573 303 @@log.info("real_value: #{val[0]} at #{@filename}:#{@lineno}") 574 result = val[0]575 304 } 576 305 | boolean_value 577 306 { 578 307 @@log.info("boolean_value: #{val[0]} at #{@filename}:#{@lineno}") 579 result = val[0]580 308 } 581 309 | character_value 582 310 { 583 311 @@log.info("character_value: #{val[0]} at #{@filename}:#{@lineno}") 584 result = val[0]585 312 } 586 313 | date_value 587 314 { 588 315 @@log.info("date_value: #{val[0]} at #{@filename}:#{@lineno}") 589 result = val[0]590 316 } 591 317 | time_value 592 318 { 593 319 @@log.info("time_value: #{val[0]} at #{@filename}:#{@lineno}") 594 result = val[0]595 320 } 596 321 | date_time_value 597 322 { 598 323 @@log.info("date_time_value: #{val[0]} at #{@filename}:#{@lineno}") 599 result = val[0]600 324 } 601 325 | duration_value 602 326 { 603 327 @@log.info("duration_value: #{val[0]} at #{@filename}:#{@lineno}") 604 result = val[0]605 328 } 606 329 | uri_value 607 330 { 608 331 @@log.info("uri_value: #{val[0]} at #{@filename}:#{@lineno}") 609 result = val[0] 610 } 611 332 } 612 333 simple_list_value: string_list_value 613 334 | integer_list_value … … 630 351 { 631 352 @@log.info("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") 632 result = val[0]633 353 } 634 354 | V_GENERIC_TYPE_IDENTIFIER 635 355 { 636 356 @@log.info("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") 637 result = val[0]638 357 } 639 358 … … 641 360 { 642 361 @@log.info("V_STRING: #{val[0]} at #{@filename}:#{@lineno}") 643 result = val[0]644 362 } 645 363 … … 649 367 650 368 integer_value: V_INTEGER 651 {652 begin653 integer = Integer(val[0])654 rescue655 raise656 end657 result = integer658 }659 369 | Plus_code V_INTEGER 660 {661 begin662 integer = Integer(val[0])663 rescue664 raise665 end666 result = integer667 }668 370 | Minus_code V_INTEGER 669 {670 begin671 integer = Integer(val[0])672 rescue673 raise674 end675 result = - integer676 }677 371 ### | '+' V_INTEGER 678 372 ### | '-' V_INTEGER … … 693 387 694 388 real_value: V_REAL 695 {696 begin697 real = Float(val[0])698 rescue699 raise700 end701 result = real702 }703 389 | Plus_code V_REAL 704 {705 begin706 real = Float(val[1])707 rescue708 raise709 end710 result = real711 }712 390 | Minus_code V_REAL 713 { 714 begin 715 real = Float(val[1]) 716 rescue 717 raise 718 end 719 result = - real 720 } 391 # | '+' V_REAL 392 # | '-' V_REAL 721 393 722 394 real_list_value: real_value Comma_code real_value … … 736 408 737 409 boolean_value: SYM_TRUE 738 {739 result = true740 }741 410 | SYM_FALSE 742 {743 result = false744 }745 411 746 412 boolean_list_value: boolean_value Comma_code boolean_value … … 805 471 { 806 472 @@log.info("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}") 807 result = val[0]808 473 } 809 474 … … 825 490 { 826 491 @@log.info("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}") 827 result = val[0]828 492 } 829 493 … … 835 499 { 836 500 @@log.info("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}") 837 result = val[0]838 501 } 839 502 … … 918 581 919 582 c_existence: #-- default to 1..1 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 } 583 | SYM_EXISTENCE SYM_MATCHES SYM_START_CBLOCK existence_spec SYM_END_CBLOCK 927 584 928 585 existence_spec: V_INTEGER #-- can only be 0 or 1 929 {930 begin931 integer = Integer(val[0])932 rescue933 raise934 end935 result = integer936 }937 586 | V_INTEGER SYM_ELLIPSIS V_INTEGER #-- can only be 0..0, 0..1, 1..1 938 {939 begin940 from_integer = Integer(val[0])941 to_integer = Integer(val[2])942 rescue943 raise944 end945 result = Range.new(from_integer,to_integer)946 }947 587 948 588 c_cardinality: SYM_CARDINALITY SYM_MATCHES SYM_START_CBLOCK cardinality_spec SYM_END_CBLOCK 949 {950 result = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new951 }952 589 953 590 cardinality_spec: occurrence_spec … … 966 603 c_occurrences: #-- default to 1..1 967 604 | SYM_OCCURRENCES SYM_MATCHES SYM_START_CBLOCK occurrence_spec SYM_END_CBLOCK 968 {969 result = val[3]970 }971 605 | SYM_OCCURRENCES error 972 606 … … 1036 670 1037 671 c_boolean_spec: SYM_TRUE 1038 {1039 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true)1040 }1041 672 | SYM_FALSE 1042 {1043 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false)1044 }1045 673 | 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 }1049 674 | 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 }1053 675 1054 676 c_boolean: c_boolean_spec 1055 {1056 result = val[0]1057 }1058 677 | c_boolean_spec Semicolon_code boolean_value 1059 {1060 raise 'Not implemented yet'1061 }1062 678 | c_boolean_spec Semicolon_code error 1063 { 1064 raise 'Not implemented yet' 1065 } 679 # | c_boolean_spec ';' error 1066 680 1067 681 c_ordinal: c_ordinal_spec 1068 682 | c_ordinal_spec Semicolon_code integer_value 1069 683 | c_ordinal_spec Semicolon_code error 684 # | c_ordinal_spec ';' error 1070 685 1071 686 c_ordinal_spec: ordinal 1072 687 | c_ordinal_spec Comma_code ordinal 688 # | c_ordinal_spec ',' ordinal 1073 689 1074 690 ordinal: integer_value SYM_INTERVAL_DELIM V_QUALIFIED_TERM_CODE_REF … … 1106 722 1107 723 duration_pattern: V_ISO8601_DURATION_CONSTRAINT_PATTERN 1108 {1109 result = val[0]1110 }1111 724 1112 725 … … 1118 731 require 'lib/util.rb' 1119 732 require 'lib/scanner.rb' 1120 require 'rubygems' 1121 require 'am.rb' 733 require 'lib/model.rb' 1122 734 $DEBUG = true 1123 735 … … 1125 737 1126 738 ---- inner 1127 1128 def assert_at(file,line, message = "")1129 unless yield1130 raise "Assertion failed !: #{file}, #{line}: #{message}"1131 end1132 end1133 739 1134 740 @@log = Logger.new('log/parser.log','daily') -
/ruby/trunk/adl_parser/lib/scanner.rb
r30 r20 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| 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| 118 120 LOG.info("V_ISO8601_DURATION: #{match}") 119 121 [:V_ISO8601_DURATION, match] … … 158 160 @parser = lambda do |input| 159 161 reserved_parsers = OpenEHR::ADL::Scanner::DADL::RESERVED.map do |keyword| 160 Yaparc::Tokenize.new( 161 Yaparc::Literal.new(keyword[0], false) 162 ) 162 Yaparc::Tokenize.new(Yaparc::Literal.new(keyword[0], false)) 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_PATTERN251 class V_ISO8601_DURATION_CONSTRAINT_PATTERN252 include Yaparc::Parsable253 def initialize254 @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 end260 end261 end262 end263 264 250 #V_C_DOMAIN_TYPE /\A[A-Z][a-zA-Z0-9_]*[ \n]*\</ 265 251 class V_C_DOMAIN_TYPE … … 284 270 OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new, 285 271 V_C_DOMAIN_TYPE.new, 286 V_ISO8601_DURATION_CONSTRAINT_PATTERN.new,287 272 Reserved.new, 288 273 OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new, -
/ruby/trunk/adl_parser/tests/parser_test.rb
r30 r20 1 #$:.unshift File.join(File.dirname(__FILE__)) 2 1 3 require 'lib/parser.rb' 2 4 require 'test/unit' … … 14 16 laboratory_request = File.read('tests/openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl') 15 17 assert_nothing_raised do 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 18 @parser.parse(laboratory_request, 'openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl') 21 19 end 22 20 … … 24 22 assert_nothing_raised do 25 23 result = @parser.parse(apgar, 'openEHR-EHR-OBSERVATION.apgar.v1.adl') 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 24 # assert_equal "", result 29 25 end 30 26 … … 35 31 36 32 33 # medication = File.read('tests/openEHR-EHR-ITEM_TREE.medication.v1.adl') 34 # assert_nothing_raised do 35 # @parser.parse(medication, 'openEHR-EHR-ITEM_TREE.medication.v1.adl') 36 # end 37 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 do148 # @parser.parse(medication, 'openEHR-EHR-ITEM_TREE.medication.v1.adl')149 # end150 146 end 151 147 end -
/ruby/trunk/models/Rakefile
r30 r20 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 end47 # 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 = true51 # s.extra_rdoc_files = ["README"]52 end53 54 55 Rake::GemPackageTask.new(gem_spec) do |pkg|56 pkg.need_zip = false57 pkg.need_tar = false58 end59 60 #CLOBBER.include('rdoc')61 #CLEAN.include('lib/*.output', 'log/*.log')62 63 64 36 65 37 -
/ruby/trunk/models/am.rb
r30 r20 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 23 module Archetype_Description 24 autoload :ARCHETYPE_DESCRIPTION, "am/archetype/archetype_description/archetype_description.rb" 25 end 26 22 autoload :Archetype_Description, "am/archetype/archetype_description/archetype_description.rb" 27 23 module Constraint_Model 28 autoload :A RCHETYPE_CONSTRAINT, "am/archetype/constraint_model/archetype_constraint.rb"24 autoload :Assertion, "am/archetype/constraint_model/assertion.rb" 29 25 autoload :Primitive, "am/archetype/constraint_model/primitive.rb" 30 26 end #end of ConstraintModel 31 32 module Assertion33 autoload :ASSERTION, "am/archetype/constraint_model/assertion.rb"34 end35 36 27 end # of Archetype 37 38 module OpenEHR_Profile39 module Data_Types40 module Basic41 autoload :C_DV_STATE, "am/openehr_profile/data_types/basic.rb"42 end43 44 module Text45 autoload :C_CODE_PHASE, "am/openehr_profile/data_types/text.rb"46 end47 48 module Quantity49 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 end53 end54 end55 28 end # of AM 56 29 end # of OpenEHR -
/ruby/trunk/models/am/archetype/archetype.rb
r30 r20 7 7 # include OpenEHR::RM::Support::Terminology::OpenEHR_Code_Set_Identifier 8 8 include OpenEHR::RM::Support::Terminology 9 CURRENT_ADL_VERSION = " 1.4"9 CURRENT_ADL_VERSION = "2.0" 10 10 end 11 12 class ARCHETYPE < OpenEHR::RM::Common::Resource::AUTHORED_RESOURCE 11 class Archetype < OpenEHR::RM::Common::Resource::Authored_Resource 13 12 include ADL_Definition 14 13 attr_accessor :archetype_id, :concept_code, :is_controlled, :original_language, :parent_archtype_id, :uid 15 14 16 attr_reader :parent_id,:concept, :definition, :ontology 17 attr_accessor :adl_version,:description,:original_language 15 attr_reader :adl_version, :id, :parent_id 16 attr_reader :concept, :definition, :ontology 17 attr_accessor :description,:original_language 18 18 attr_accessor :revision_history, :translation 19 19 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] 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 26 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 28 39 # loadMaps(definition) 29 super30 end31 32 def self.create(args ={}, &block)33 archetype = new(args)34 if block_given?35 yield archetype36 end37 return archetype38 40 end 39 41 … … 73 75 def version 74 76 end 75 end # end of ARCHETYPE77 end 76 78 # original file: 77 79 # ref_imple_eiffel/components/adl_parser/src/interface/adl_definition.e 78 79 class VALIDITY_KIND 80 end 81 end 82 83 80 end # end of Archetype 84 81 end # end of AM 85 82 end # end of OpenEHR -
/ruby/trunk/models/am/archetype/archetype_description/archetype_description.rb
r30 r20 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, :details 8 def initialize(args ={ }) 9 @details = args[:details] ? args[:details] : [] 10 end 6 class Archetype_Description 7 attr_accessor :archetype_package_uri, :lifecycle_state, :original_author, :other_contributors, :other_details 11 8 end 12 9 13 class A RCHETYPE_DESCRIPTION_ITEM10 class Archetype_Description_Item 14 11 attr_accessor :archetype_package_uri, :lifecycle_state, :original_author, :other_contributors, :other_details 15 12 end -
/ruby/trunk/models/am/archetype/constraint_model/archetype_constraint.rb
r30 r20 4 4 module Archetype 5 5 module Constraint_Model 6 class A RCHETYPE_CONSTRAINT6 class Archetype_Constraint 7 7 8 end9 10 class CARDINALITY11 12 end13 14 class C_OBJECT < ARCHETYPE_CONSTRAINT15 attr_accessor :node_id, :occurrences, :rm_type_name16 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 end22 end23 24 class C_ATTRIBUTE < ARCHETYPE_CONSTRAINT25 attr_accessor :rm_attribute_name, :existence, :children26 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 end33 end34 35 class C_DEFINED_OBJECT < C_OBJECT36 attr_accessor :assumed_value37 38 def initialize(args = { })39 @assumed_value = args[:assumed_value] if args[:assumed_value]40 super41 end42 end43 44 class C_PRIMITIVE_OBJECT < C_DEFINED_OBJECT45 attr_accessor :item46 47 def initialize(args = { })48 @attributes = args[:item] if args[:item]49 super50 end51 end52 53 class C_COMPLEX_OBJECT < C_DEFINED_OBJECT54 attr_accessor :attributes, :attributes_valid55 56 def initialize(args = { })57 @attributes = args[:attributes] ? args[:attributes] : []58 super59 end60 61 def self.create(args = { }, &block)62 c_complex_object = new(args)63 if block_given?64 yield c_complex_object65 end66 return c_complex_object67 end68 end69 70 class C_DOMAIN_TYPE < C_DEFINED_OBJECT71 72 end73 74 class C_REFERENCE_OBJECT < C_OBJECT75 76 end77 78 class ARCHETYPE_INTERNAL_REF < C_REFERENCE_OBJECT79 80 end81 82 class ARCHETYPE_SLOT < C_REFERENCE_OBJECT83 84 end85 86 class CONSTRAINT_REF < C_REFERENCE_OBJECT87 88 end89 90 class C_SINGLE_ATTRIBUTE < C_ATTRIBUTE91 attr_accessor :alternatives92 93 def initialize(args = { })94 @alternatives = args[:alternatives] ? args[:alternatives] : []95 super96 end97 end98 99 class C_MULTIPLE_ATTRIBUTE < C_ATTRIBUTE100 attr_accessor :members, :cardinality101 102 def initialize(args = { })103 @members = args[:members] ? args[:members] : []104 @cardinality = args[:cardinality] if args[:cardinality]105 super106 end107 8 end 108 9 end -
/ruby/trunk/models/am/archetype/constraint_model/assertion.rb
r30 r20 2 2 module AM 3 3 module Archetype 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 4 module Constraint_Model 5 module Assertion 6 class Assertion 7 end 27 8 end 28 9 end -
/ruby/trunk/models/am/archetype/constraint_model/primitive.rb
r30 r20 3 3 module Archetype 4 4 module Constraint_Model 5 6 5 module Primitive 7 8 class C_PRIMITIVE 6 class C_Primitive 9 7 def assumed_value 10 8 raise NotImplementedError, "assumed_value should be implemented" … … 20 18 end 21 19 end 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) 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 31 27 end 32 33 def true_valid=(true_valid) 28 def set_true_valid(true_valid) 34 29 binary_consistency(true_valid, @false_valid) 35 30 @true_valid = true_valid 36 31 end 37 38 def false_valid=(false_valid) 32 def set_false_valid(false_valid) 39 33 binary_consistency(@true_valid,false_valid) 40 34 @false_valid = false_valid 41 35 end 42 36 def true_valid? 37 @true_valid 38 end 39 def false_valid? 40 @false_valid 41 end 43 42 def valid_value? 44 43 45 44 end 46 47 def default_value(a_value = nil) 45 def default_value(a_value=nil) 48 46 if a_value == nil 49 47 @true_valid … … 52 50 end 53 51 end 54 55 52 private 56 57 53 def binary_consistency(true_valid, false_valid) 58 54 if !true_valid && !false_valid … … 61 57 end 62 58 end # of C_Boolean 63 64 class C_STRING < C_PRIMITIVE 59 class C_Integer < C_Primitive 65 60 66 61 end 67 68 class C_INTEGER < C_PRIMITIVE69 70 end71 72 class C_REAL < C_PRIMITIVE73 74 end75 76 class C_TIME < C_PRIMITIVE77 78 end79 80 class C_DATE < C_PRIMITIVE81 82 end83 84 class C_DATE_TIME < C_PRIMITIVE85 86 end87 88 class C_DURATION < C_PRIMITIVE89 attr_accessor :years_allowed, :months_allowed, :weeks_allowed, :days_allowed, :hours_allowed, :minutes_allowed, :seconds_allowed, :fractional_seconds_allowed, :range, :assumed_value90 end91 92 93 94 62 end # of Primitive 95 63 end # of Constraint_Model -
/ruby/trunk/models/am/archetype/ontology.rb
r30 r20 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 10 9 def constraint_binding(a_terminology, a_code) 11 10 end 12 13 11 def constraint_definition(a_lang, a_code) 14 12 end 15 16 13 def has_language?(a_lang) 17 14 end 18 19 15 def has_terminology?(a_terminology) 20 16 end 21 22 17 def term_binding(a_terminology, a_code) 23 18 end 24 25 19 def term_definition(a_lang, a_code) 26 20 end 27 21 end 28 29 class ARCHETYPE_TERM 22 class Archetype_Term 30 23 attr_accessor :code, :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 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 44 33 end 45 46 34 def keys 47 @items.keys35 items.keys 48 36 end 49 37 end -
/ruby/trunk/models/am/openehr_profile/data_types/basic.rb
r30 r20 1 1 module OpenEHR 2 module AM2 module RM 3 3 module OpenEHR_Profile 4 4 module Data_Types 5 module Basic6 class C_DV_STATE7 end8 9 class STATE_MACHINE10 end11 12 class STATE13 end14 15 class TERMINAL_STATE < STATE16 end17 18 class NON_TERMINAL_STATE < STATE19 end20 21 class TRANSITION22 end23 end24 25 26 5 end # of Data_Types 27 6 end # of OpenEHR Profile -
/ruby/trunk/models/assumed_library_types.rb
r30 r20 10 10 set_upper_included(upper_included) 11 11 end 12 13 12 def set_lower(lower) 14 13 check_lower_upper(lower, @upper) 15 14 end 16 17 15 def set_upper(upper) 18 16 check_lower_upper(@lower, upper) 19 17 end 20 21 18 def set_lower_included(lower_included) 22 19 if (lower == nil) && (lower_included != nil) … … 25 22 @lower_included = lower_included 26 23 end 27 28 24 def set_upper_included(upper_included) 29 25 @upper_included = upper_included … … 32 28 end 33 29 end 34 35 30 def has?(value) 36 31 if ((@lower < value) && (value < @upper) || … … 42 37 end 43 38 end 44 45 39 private 46 47 40 def check_lower_upper(lower, upper) 48 41 if (lower == nil) && (upper == nil) -
/ruby/trunk/models/rm.rb
r30 r20 13 13 module RM 14 14 autoload :Demographic, "rm/demographic.rb" 15 16 15 module Common 17 16 autoload :Resource, "rm/common/resource.rb" 18 17 end 19 20 18 module Support 21 19 autoload :Definition, "rm/support/definition.rb" 22 23 module Identification24 autoload :OBJECT_ID, "rm/support/identification.rb"25 end26 27 20 module Terminology 28 21 autoload :Terminology, "rm/support/terminology.rb" 29 22 end 30 23 end 31 32 24 module Data_Types 33 25 autoload :Basic, "rm/data_types/basic.rb" -
/ruby/trunk/models/rm/common/resource.rb
r30 r20 4 4 module Common 5 5 module Resource 6 class AUTHORED_RESOURCE 7 attr_reader :is_controled,:revision_history, :translations 6 class Authored_Resource 7 attr_reader :is_controled 8 attr_reader :revision_history, :translations 8 9 attr_accessor :description, :original_language 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 10 def initialize(original_language, translations, 11 description, revision_history = nil) 12 if original_language == nil 13 raise Exception.new("original language nil") 14 end 15 if translations == nil 16 raise Exception.new("translation empty") 17 end 18 if revision_history == nil 19 is_controled = false 17 20 else 18 @is_controled = true21 is_controled = true 19 22 end 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]23 @original_language = original_language 24 @translations = translations 25 @description = description 26 @revision_history = revision_history 24 27 end 25 26 28 def current_version 27 29 @revision_history.most_recent_revision 28 30 end 29 30 31 def language_available 31 32 languages = Set.new 32 if @translations != nil33 languages << @translations.keys33 if translations != nil 34 languages << translations.keys 34 35 end 35 languages << @original_language.code_string36 languages << original_language.code_string 36 37 end 37 38 end 38 39 class TRANSLATION_DETAILS 39 class Translation_Details 40 40 attr_accessor :language, :author, :accreditation 41 41 attr_accessor :other_details, :terminology_service 42 43 42 def initialize(language, author, accreditation, other_details, 44 43 terminology_service) -
/ruby/trunk/models/rm/support/identification.rb
r30 r20 2 2 module RM 3 3 module Support 4 module Identification 5 6 class OBJECT_ID 4 module Definition 5 class Object_ID 7 6 attr_accessor :value 8 9 7 def initiallize(value) 10 raise "empty value" unless value 8 if value == nil 9 raise Exception.new("empty value") 10 end 11 11 @value = value 12 12 end 13 13 end # of ObjectID 14 15 class ARCHETYPE_ID < OBJECT_ID 16 end 17 18 class TERMINOLOGY_ID < OBJECT_ID 14 class Terminology_ID < Object_ID 19 15 attr_reader :name 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 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 30 24 end 31 32 25 def setValue(value) 33 26 loadValue(value) 34 27 super.value = value 35 28 end 36 37 29 def version_id 38 30 @version 39 31 end 40 41 32 private 42 43 33 def loadValue(value) 44 34 if /\(.*\)$/ =~ value 45 #@name, @version = value.split(\())35 @name, @version = value.split(\()) 46 36 @version.chop! 47 37 else … … 50 40 end 51 41 end 52 53 42 def toValue(name, version) 54 43 if name == "" -
/ruby/trunk/models/tests/test_archetype_model.rb
r30 r20 5 5 class ArchetypeModelTest < Test::Unit::TestCase 6 6 def setup 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 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 12 15 end 13 16 14 17 def test_init 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 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 20 25 end 21 22 def test_create23 archetype_instance = OpenEHR::AM::Archetype::ARCHETYPE.create() do |archetype|24 archetype.adl_version = '1.4'25 end26 27 assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, archetype_instance28 end29 end30 31 class ArchetypeModelConstraintTest < Test::Unit::TestCase32 def setup33 @archetype_constraint = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new34 @cardinality = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new35 36 @archetype_constraint = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT.new37 @c_object = OpenEHR::AM::Archetype::Constraint_Model::C_OBJECT.new38 @c_defined_object = OpenEHR::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT.new39 @c_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE.new40 @c_single_attribute = OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new41 @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.new43 @c_reference_object = OpenEHR::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT.new44 @archetype_internal_ref = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new45 @archetype_slot = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new46 @constraint_ref = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new47 @c_domain_type = OpenEHR::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE.new48 @c_complex_object = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => [@c_single_attribute])49 end50 51 def test_init52 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint53 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_OBJECT, @c_object54 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_DEFINED_OBJECT, @c_defined_object55 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE, @c_attribute56 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE, @c_single_attribute57 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE, @c_multiple_attribute58 assert_equal 'attribute_name', @c_multiple_attribute.rm_attribute_name59 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY, @c_multiple_attribute.cardinality60 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT, @c_primitive_object61 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_REFERENCE_OBJECT, @c_reference_object62 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF, @archetype_internal_ref63 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT, @archetype_slot64 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF, @constraint_ref65 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_DOMAIN_TYPE, @c_domain_type66 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, @c_complex_object67 assert_instance_of Array, @c_complex_object.attributes68 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_CONSTRAINT, @archetype_constraint69 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY, @cardinality70 end71 72 def test_create73 c_complex_object = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:node_id => 'test_node',74 :attributes => [1,2],75 :assumed_value => Array76 )77 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, c_complex_object78 assert_equal 'test_node', c_complex_object.node_id79 end80 end81 82 class ArchetypeModelPrimitiveTest < Test::Unit::TestCase83 def setup84 @c_primitive = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE.new85 @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.new89 @c_integer = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new90 @c_real = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL.new91 @c_time = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME.new92 @c_date = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE.new93 @c_date_time = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new94 @c_duration = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new95 end96 97 def test_init98 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE, @c_primitive99 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN, @c_boolean100 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING, @c_string101 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER, @c_integer102 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL, @c_real103 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME, @c_time104 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE, @c_date105 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME, @c_date_time106 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION, @c_duration107 end108 109 26 def test_primitive 110 assert @c_boolean.true_valid 111 assert @c_boolean.false_valid 27 assert @c_boolean.true_valid? 28 assert @c_boolean.false_valid? 112 29 assert @c_boolean.assumed_value 113 30 assert @c_boolean.has_assumed_value? 114 31 assert @c_boolean.default_value 115 32 assert @c_boolean.default_value(true) 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 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)} 162 35 end 163 36 end 164 37 165 class ArchetypeModelProfileTest < Test::Unit::TestCase166 def setup167 @c_dv_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::C_DV_STATE.new168 @state_machine = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE_MACHINE.new169 @state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE.new170 @terminal_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TERMINAL_STATE.new171 @non_terminal_state = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::NON_TERMINAL_STATE.new172 @transition = OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TRANSITION.new173 174 @c_code_phase = OpenEHR::AM::OpenEHR_Profile::Data_Types::Text::C_CODE_PHASE.new175 176 @c_dv_quantity = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_QUANTITY.new177 @c_dv_ordinal = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_ORDINAL.new178 @c_quantity_item = OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_QUANTITY_ITEM.new179 end180 181 def test_init182 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::C_DV_STATE, @c_dv_state183 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE_MACHINE, @state_machine184 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::STATE, @state185 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TERMINAL_STATE, @terminal_state186 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::NON_TERMINAL_STATE, @non_terminal_state187 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Basic::TRANSITION, @transition188 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Text::C_CODE_PHASE, @c_code_phase189 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_QUANTITY, @c_dv_quantity190 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_DV_ORDINAL, @c_dv_ordinal191 assert_instance_of OpenEHR::AM::OpenEHR_Profile::Data_Types::Quantity::C_QUANTITY_ITEM, @c_quantity_item192 end193 end -
/ruby/trunk/models/tests/test_reference_model.rb
r30 r20 5 5 class ReferenceModelTest < Test::Unit::TestCase 6 6 def setup 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) 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) 11 9 # @openehr_definitions = OpenEHR::RM::Support::Definition::OpenEHR_Definitions.new 12 10 @dv_boolean = OpenEHR::RM::Data_Types::Basic::DV_Boolean.new("TRUE") … … 21 19 22 20 def test_init 23 assert_instance_of OpenEHR::RM::Common::Resource::A UTHORED_RESOURCE, @authored_resource24 assert_instance_of OpenEHR::RM::Common::Resource::T RANSLATION_DETAILS, @translation_details21 assert_instance_of OpenEHR::RM::Common::Resource::Authored_Resource, @authored_resource 22 assert_instance_of OpenEHR::RM::Common::Resource::Translation_Details, @translation_details 25 23 assert_instance_of OpenEHR::RM::Data_Types::Basic::DV_Boolean, @dv_boolean 26 24 assert_instance_of OpenEHR::RM::Data_Types::Basic::DV_State, @dv_state … … 31 29 assert_instance_of OpenEHR::RM::Data_Types::Text::DV_Coded_Text, @dv_coded_text 32 30 end 33 34 31 def test_constant 35 32 assert_equal("\r", OpenEHR::RM::Support::Definition::OpenEHR_Definitions::CR) … … 38 35 assert_equal("\n", OpenEHR::RM::Data_Types::Basic::Data_Value::LF) 39 36 end 40 41 37 def test_dv_boolean 42 38 assert @dv_boolean.value? … … 47 43 assert_raise(ArgumentError){OpenEHR::RM::Data_Types::Basic::DV_Boolean.new(nil)} 48 44 end 49 50 45 def test_dv_state 51 46 assert_equal("code1", @dv_state.value) … … 57 52 assert_raise(ArgumentError) {OpenEHR::RM::Data_Types::Basic::DV_State.new(nil,nil)} 58 53 end 59 60 54 def test_dv_identifier 61 55 assert_equal("Ruby Hospital", @dv_identifier.assigner) … … 73 67 assert_raise(ArgumentError) {OpenEHR::RM::Data_Types::Basic::DV_Identifier.new(nil, nil, nil, nil)} 74 68 end 75 76 69 def test_dv_uri 77 70 assert_equal("file0", @dv_uri.fragment_id) … … 84 77 assert_equal("/openehr-jp/", @dv_uri.path) 85 78 end 86 87 79 def test_dv_ehr_uri 88 80 assert_equal("ehr", @dv_ehr_uri.scheme) … … 90 82 @dv_ehr_uri.value="svn://www.openehr.jp/openehr-jp/" } 91 83 end 92 93 84 def test_dv_text 94 85 assert_equal("valid value", @dv_text.value) 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 = ""} 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 = ""} 104 104 end 105 106 105 def test_dv_coded_text 107 106 assert_equal("valid value", @dv_coded_text.value) 108 107 assert_equal("AT1000", @dv_coded_text.defining_code) 109 assert_raise(ArgumentError){@dv_coded_text.defining_code=nil} 108 assert_raise(ArgumentError){ 109 @dv_coded_text.defining_code=nil} 110 110 end 111 112 111 def test_dv_paragraph 113 112 assert_equal((Set.new ["test1", "test2"]), @dv_paragraph.items) 114 assert_raise(ArgumentError){@dv_paragraph.items=Set.new} 113 assert_raise(ArgumentError){ 114 @dv_paragraph.items=Set.new} 115 115 end 116 117 116 def test_terminology_mapping 118 117 … … 120 119 end 121 120 122 123 class ReferenceModelSupportIdentificationTest < Test::Unit::TestCase124 def setup125 @object_id = OpenEHR::RM::Support::Identification::OBJECT_ID.new126 @terminology_id = OpenEHR::RM::Support::Identification::TERMINOLOGY_ID.new('terminology','version')127 @archetype_id = OpenEHR::RM::Support::Identification::ARCHETYPE_ID.new128 end129 130 def test_init131 assert_instance_of OpenEHR::RM::Support::Identification::OBJECT_ID, @object_id132 assert_instance_of OpenEHR::RM::Support::Identification::TERMINOLOGY_ID, @terminology_id133 assert_instance_of OpenEHR::RM::Support::Identification::ARCHETYPE_ID, @archetype_id134 135 end136 end
Note:
See TracChangeset
for help on using the changeset viewer.