Changeset 26
- Timestamp:
- May 2, 2008, 1:47:51 AM (15 years ago)
- Location:
- ruby/trunk
- Files:
-
- 1 deleted
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/adl_parser/Rakefile
r21 r26 92 92 s.extra_rdoc_files = ["README"] 93 93 s.add_dependency("yaparc", ">= 0.2.0") 94 s.add_dependency("openehr_models", ">= 0.0.1") 94 95 end 95 96 -
ruby/trunk/adl_parser/lib/parser.rb
r25 r26 13 13 require 'lib/util.rb' 14 14 require 'lib/scanner.rb' 15 #require 'lib/model.rb'16 15 require 'rubygems' 17 16 require 'am.rb' … … 27 26 class Parser < Racc::Parser 28 27 29 module_eval <<'..end lib/parser.y modeval..id db76fb97bf', 'lib/parser.y', 110628 module_eval <<'..end lib/parser.y modeval..id3b9eed63e6', 'lib/parser.y', 1127 30 29 31 30 def assert_at(file,line, message = "") … … 820 819 821 820 822 ..end lib/parser.y modeval..id db76fb97bf821 ..end lib/parser.y modeval..id3b9eed63e6 823 822 824 823 ##### racc 1.4.5 generates ### … … 841 840 2, 98, :_reduce_none, 842 841 2, 98, :_reduce_none, 842 2, 99, :_reduce_16, 843 843 2, 99, :_reduce_none, 844 2, 99, :_reduce_none, 845 0, 100, :_reduce_none, 844 0, 100, :_reduce_18, 846 845 2, 100, :_reduce_19, 847 846 2, 100, :_reduce_none, … … 1200 1199 1, 149, :_reduce_none, 1201 1200 1, 149, :_reduce_374, 1202 1, 217, :_reduce_ none]1201 1, 217, :_reduce_375 ] 1203 1202 1204 1203 racc_reduce_n = 376 … … 2029 2028 # reduce 2 omitted 2030 2029 2031 module_eval <<'.,.,', 'lib/parser.y', 462030 module_eval <<'.,.,', 'lib/parser.y', 57 2032 2031 def _reduce_3( val, _values, result ) 2033 2032 assert_at(__FILE__,__LINE__) do … … 2035 2034 end 2036 2035 2037 result = OpenEHR::AM::Archetype::ARCHETYPE.new( 2038 :description => val[4], 2039 :definition => val[5], 2040 :ontology => val[7] 2041 ) 2042 result 2043 end 2044 .,., 2045 2046 module_eval <<'.,.,', 'lib/parser.y', 52 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 2047 2057 def _reduce_4( val, _values, result ) 2048 2058 result = {:arch_head => val[0], :archetype_id => val[1] } … … 2051 2061 .,., 2052 2062 2053 module_eval <<'.,.,', 'lib/parser.y', 562063 module_eval <<'.,.,', 'lib/parser.y', 67 2054 2064 def _reduce_5( val, _values, result ) 2055 2065 raise … … 2058 2068 .,., 2059 2069 2060 module_eval <<'.,.,', 'lib/parser.y', 612070 module_eval <<'.,.,', 'lib/parser.y', 72 2061 2071 def _reduce_6( val, _values, result ) 2062 2072 result = {:arch_meta_data => nil } … … 2065 2075 .,., 2066 2076 2067 module_eval <<'.,.,', 'lib/parser.y', 652077 module_eval <<'.,.,', 'lib/parser.y', 76 2068 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 ) 2069 2086 result = {:arch_meta_data => val[1] } 2070 2087 result … … 2072 2089 .,., 2073 2090 2074 module_eval <<'.,.,', 'lib/parser.y', 70 2075 def _reduce_8( val, _values, result ) 2076 result = {:arch_meta_data_items => val[1] } 2077 result 2078 end 2079 .,., 2080 2081 module_eval <<'.,.,', 'lib/parser.y', 75 2091 module_eval <<'.,.,', 'lib/parser.y', 86 2082 2092 def _reduce_9( val, _values, result ) 2083 result = Array[val[0]]2084 result 2085 end 2086 .,., 2087 2088 module_eval <<'.,.,', 'lib/parser.y', 792093 result = val[0] 2094 result 2095 end 2096 .,., 2097 2098 module_eval <<'.,.,', 'lib/parser.y', 90 2089 2099 def _reduce_10( val, _values, result ) 2090 result = (val[0] <<val[2])2091 result 2092 end 2093 .,., 2094 2095 module_eval <<'.,.,', 'lib/parser.y', 852100 result = val[0].merge(val[2]) 2101 result 2102 end 2103 .,., 2104 2105 module_eval <<'.,.,', 'lib/parser.y', 96 2096 2106 def _reduce_11( val, _values, result ) 2097 result = {:adl_version => val[2] }2098 result 2099 end 2100 .,., 2101 2102 module_eval <<'.,.,', 'lib/parser.y', 892107 result = {:adl_version => val[2], :is_controlled => false } 2108 result 2109 end 2110 .,., 2111 2112 module_eval <<'.,.,', 'lib/parser.y', 100 2103 2113 def _reduce_12( val, _values, result ) 2104 result = val[0]2114 result = {:is_controlled => true } 2105 2115 result 2106 2116 end … … 2113 2123 # reduce 15 omitted 2114 2124 2115 # reduce 16 omitted 2125 module_eval <<'.,.,', 'lib/parser.y', 111 2126 def _reduce_16( val, _values, result ) 2127 result = {:arch_concept => val[1] } 2128 result 2129 end 2130 .,., 2116 2131 2117 2132 # reduce 17 omitted 2118 2133 2119 # reduce 18 omitted 2120 2121 module_eval <<'.,.,', 'lib/parser.y', 108 2134 module_eval <<'.,.,', 'lib/parser.y', 121 2135 def _reduce_18( val, _values, result ) 2136 result = {:arch_language => nil} 2137 result 2138 end 2139 .,., 2140 2141 module_eval <<'.,.,', 'lib/parser.y', 125 2122 2142 def _reduce_19( val, _values, result ) 2123 result = {: language => val[1]}2143 result = {:arch_language => val[1]} 2124 2144 result 2125 2145 end … … 2130 2150 # reduce 21 omitted 2131 2151 2132 module_eval <<'.,.,', 'lib/parser.y', 1 192152 module_eval <<'.,.,', 'lib/parser.y', 136 2133 2153 def _reduce_22( val, _values, result ) 2134 2154 result = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new(:details => val[1]) … … 2139 2159 # reduce 23 omitted 2140 2160 2141 module_eval <<'.,.,', 'lib/parser.y', 1 272161 module_eval <<'.,.,', 'lib/parser.y', 144 2142 2162 def _reduce_24( val, _values, result ) 2143 2163 result = val[1] … … 2148 2168 # reduce 25 omitted 2149 2169 2150 module_eval <<'.,.,', 'lib/parser.y', 1 372170 module_eval <<'.,.,', 'lib/parser.y', 154 2151 2171 def _reduce_26( val, _values, result ) 2152 2172 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT)} … … 2157 2177 .,., 2158 2178 2159 module_eval <<'.,.,', 'lib/parser.y', 1 412179 module_eval <<'.,.,', 'lib/parser.y', 158 2160 2180 def _reduce_27( val, _values, result ) 2161 2181 result = val[0] … … 2164 2184 .,., 2165 2185 2166 module_eval <<'.,.,', 'lib/parser.y', 1 522186 module_eval <<'.,.,', 'lib/parser.y', 169 2167 2187 def _reduce_28( val, _values, result ) 2168 2188 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object| … … 2175 2195 .,., 2176 2196 2177 module_eval <<'.,.,', 'lib/parser.y', 1 602197 module_eval <<'.,.,', 'lib/parser.y', 177 2178 2198 def _reduce_29( val, _values, result ) 2179 2199 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object| … … 2186 2206 .,., 2187 2207 2188 module_eval <<'.,.,', 'lib/parser.y', 1 672208 module_eval <<'.,.,', 'lib/parser.y', 184 2189 2209 def _reduce_30( val, _values, result ) 2190 2210 result = {:c_complex_object_id => val[0], :c_occurrences => val[1]} … … 2193 2213 .,., 2194 2214 2195 module_eval <<'.,.,', 'lib/parser.y', 1 722215 module_eval <<'.,.,', 'lib/parser.y', 189 2196 2216 def _reduce_31( val, _values, result ) 2197 2217 result = {:type_identifier => val[0]} … … 2200 2220 .,., 2201 2221 2202 module_eval <<'.,.,', 'lib/parser.y', 1 762222 module_eval <<'.,.,', 'lib/parser.y', 193 2203 2223 def _reduce_32( val, _values, result ) 2204 2224 result = {:type_identifier => val[0], :local_term_code_ref => val[1]} … … 2209 2229 # reduce 33 omitted 2210 2230 2211 module_eval <<'.,.,', 'lib/parser.y', 1 822231 module_eval <<'.,.,', 'lib/parser.y', 199 2212 2232 def _reduce_34( val, _values, result ) 2213 2233 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => val[0]) … … 2216 2236 .,., 2217 2237 2218 module_eval <<'.,.,', 'lib/parser.y', 1902238 module_eval <<'.,.,', 'lib/parser.y', 207 2219 2239 def _reduce_35( val, _values, result ) 2220 2240 result = val[0] … … 2223 2243 .,., 2224 2244 2225 module_eval <<'.,.,', 'lib/parser.y', 1942245 module_eval <<'.,.,', 'lib/parser.y', 211 2226 2246 def _reduce_36( val, _values, result ) 2227 2247 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new … … 2230 2250 .,., 2231 2251 2232 module_eval <<'.,.,', 'lib/parser.y', 1982252 module_eval <<'.,.,', 'lib/parser.y', 215 2233 2253 def _reduce_37( val, _values, result ) 2234 2254 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new … … 2237 2257 .,., 2238 2258 2239 module_eval <<'.,.,', 'lib/parser.y', 2 022259 module_eval <<'.,.,', 'lib/parser.y', 219 2240 2260 def _reduce_38( val, _values, result ) 2241 2261 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new … … 2244 2264 .,., 2245 2265 2246 module_eval <<'.,.,', 'lib/parser.y', 2 062266 module_eval <<'.,.,', 'lib/parser.y', 223 2247 2267 def _reduce_39( val, _values, result ) 2248 2268 result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new … … 2251 2271 .,., 2252 2272 2253 module_eval <<'.,.,', 'lib/parser.y', 2 102273 module_eval <<'.,.,', 'lib/parser.y', 227 2254 2274 def _reduce_40( val, _values, result ) 2255 2275 result = val[0] … … 2258 2278 .,., 2259 2279 2260 module_eval <<'.,.,', 'lib/parser.y', 2 142280 module_eval <<'.,.,', 'lib/parser.y', 231 2261 2281 def _reduce_41( val, _values, result ) 2262 2282 result = val[0] … … 2265 2285 .,., 2266 2286 2267 module_eval <<'.,.,', 'lib/parser.y', 2 182287 module_eval <<'.,.,', 'lib/parser.y', 235 2268 2288 def _reduce_42( val, _values, result ) 2269 2289 result = val[0] … … 2276 2296 # reduce 44 omitted 2277 2297 2278 module_eval <<'.,.,', 'lib/parser.y', 2 332298 module_eval <<'.,.,', 'lib/parser.y', 250 2279 2299 def _reduce_45( val, _values, result ) 2280 2300 result = val[1] … … 2297 2317 # reduce 52 omitted 2298 2318 2299 module_eval <<'.,.,', 'lib/parser.y', 2 532319 module_eval <<'.,.,', 'lib/parser.y', 270 2300 2320 def _reduce_53( val, _values, result ) 2301 2321 assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE)} … … 2305 2325 .,., 2306 2326 2307 module_eval <<'.,.,', 'lib/parser.y', 2 592327 module_eval <<'.,.,', 'lib/parser.y', 276 2308 2328 def _reduce_54( val, _values, result ) 2309 2329 @@log.info("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}") … … 2313 2333 .,., 2314 2334 2315 module_eval <<'.,.,', 'lib/parser.y', 2 642335 module_eval <<'.,.,', 'lib/parser.y', 281 2316 2336 def _reduce_55( val, _values, result ) 2317 2337 @@log.info("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}") … … 2321 2341 .,., 2322 2342 2323 module_eval <<'.,.,', 'lib/parser.y', 2 692343 module_eval <<'.,.,', 'lib/parser.y', 286 2324 2344 def _reduce_56( val, _values, result ) 2325 2345 @@log.info("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}") … … 2329 2349 .,., 2330 2350 2331 module_eval <<'.,.,', 'lib/parser.y', 2 742351 module_eval <<'.,.,', 'lib/parser.y', 291 2332 2352 def _reduce_57( val, _values, result ) 2333 2353 @@log.info("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}") … … 2337 2357 .,., 2338 2358 2339 module_eval <<'.,.,', 'lib/parser.y', 2 792359 module_eval <<'.,.,', 'lib/parser.y', 296 2340 2360 def _reduce_58( val, _values, result ) 2341 2361 @@log.info("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}") … … 2345 2365 .,., 2346 2366 2347 module_eval <<'.,.,', 'lib/parser.y', 2842367 module_eval <<'.,.,', 'lib/parser.y', 301 2348 2368 def _reduce_59( val, _values, result ) 2349 2369 @@log.info("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}") … … 2353 2373 .,., 2354 2374 2355 module_eval <<'.,.,', 'lib/parser.y', 2892375 module_eval <<'.,.,', 'lib/parser.y', 306 2356 2376 def _reduce_60( val, _values, result ) 2357 2377 @@log.info("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}") … … 2361 2381 .,., 2362 2382 2363 module_eval <<'.,.,', 'lib/parser.y', 2952383 module_eval <<'.,.,', 'lib/parser.y', 312 2364 2384 def _reduce_61( val, _values, result ) 2365 2385 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN)} … … 2372 2392 # reduce 62 omitted 2373 2393 2374 module_eval <<'.,.,', 'lib/parser.y', 3 052394 module_eval <<'.,.,', 'lib/parser.y', 322 2375 2395 def _reduce_63( val, _values, result ) 2376 2396 result = [val[0]] … … 2379 2399 .,., 2380 2400 2381 module_eval <<'.,.,', 'lib/parser.y', 3 092401 module_eval <<'.,.,', 'lib/parser.y', 326 2382 2402 def _reduce_64( val, _values, result ) 2383 2403 result = (val[0] << val[1]) … … 2386 2406 .,., 2387 2407 2388 module_eval <<'.,.,', 'lib/parser.y', 3 182408 module_eval <<'.,.,', 'lib/parser.y', 335 2389 2409 def _reduce_65( val, _values, result ) 2390 2410 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)} … … 2396 2416 .,., 2397 2417 2398 module_eval <<'.,.,', 'lib/parser.y', 3 232418 module_eval <<'.,.,', 'lib/parser.y', 340 2399 2419 def _reduce_66( val, _values, result ) 2400 2420 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)} … … 2404 2424 .,., 2405 2425 2406 module_eval <<'.,.,', 'lib/parser.y', 3 282426 module_eval <<'.,.,', 'lib/parser.y', 345 2407 2427 def _reduce_67( val, _values, result ) 2408 2428 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)} … … 2412 2432 .,., 2413 2433 2414 module_eval <<'.,.,', 'lib/parser.y', 3 392434 module_eval <<'.,.,', 'lib/parser.y', 356 2415 2435 def _reduce_68( val, _values, result ) 2416 2436 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}") … … 2423 2443 .,., 2424 2444 2425 module_eval <<'.,.,', 'lib/parser.y', 3 492445 module_eval <<'.,.,', 'lib/parser.y', 366 2426 2446 def _reduce_69( val, _values, result ) 2427 2447 assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY) } … … 2436 2456 .,., 2437 2457 2438 module_eval <<'.,.,', 'lib/parser.y', 3 542458 module_eval <<'.,.,', 'lib/parser.y', 371 2439 2459 def _reduce_70( val, _values, result ) 2440 2460 result = Array[val[0]] … … 2443 2463 .,., 2444 2464 2445 module_eval <<'.,.,', 'lib/parser.y', 3 582465 module_eval <<'.,.,', 'lib/parser.y', 375 2446 2466 def _reduce_71( val, _values, result ) 2447 2467 result = (val[0] << val[1]) … … 2450 2470 .,., 2451 2471 2452 module_eval <<'.,.,', 'lib/parser.y', 3 622472 module_eval <<'.,.,', 'lib/parser.y', 379 2453 2473 def _reduce_72( val, _values, result ) 2454 2474 result = Array[val[0]] … … 2481 2501 # reduce 84 omitted 2482 2502 2483 module_eval <<'.,.,', 'lib/parser.y', 3932503 module_eval <<'.,.,', 'lib/parser.y', 410 2484 2504 def _reduce_85( val, _values, result ) 2485 dadl_section s= val[1]2505 dadl_section = val[1] 2486 2506 result = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new 2487 2507 result … … 2497 2517 # reduce 89 omitted 2498 2518 2499 module_eval <<'.,.,', 'lib/parser.y', 4 072519 module_eval <<'.,.,', 'lib/parser.y', 424 2500 2520 def _reduce_90( val, _values, result ) 2501 2521 result = Array[val[0]] … … 2504 2524 .,., 2505 2525 2506 module_eval <<'.,.,', 'lib/parser.y', 4 112526 module_eval <<'.,.,', 'lib/parser.y', 428 2507 2527 def _reduce_91( val, _values, result ) 2508 2528 result = (val[0] << val[1]) … … 2511 2531 .,., 2512 2532 2513 module_eval <<'.,.,', 'lib/parser.y', 4 152533 module_eval <<'.,.,', 'lib/parser.y', 432 2514 2534 def _reduce_92( val, _values, result ) 2515 2535 result = (val[0] << val[2]) … … 2518 2538 .,., 2519 2539 2520 module_eval <<'.,.,', 'lib/parser.y', 4 212540 module_eval <<'.,.,', 'lib/parser.y', 438 2521 2541 def _reduce_93( val, _values, result ) 2522 2542 @@log.info("#{__FILE__}:#{__LINE__}: attr_id = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}") … … 2526 2546 .,., 2527 2547 2528 module_eval <<'.,.,', 'lib/parser.y', 4 272548 module_eval <<'.,.,', 'lib/parser.y', 444 2529 2549 def _reduce_94( val, _values, result ) 2530 2550 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}") … … 2536 2556 # reduce 95 omitted 2537 2557 2538 module_eval <<'.,.,', 'lib/parser.y', 4 332558 module_eval <<'.,.,', 'lib/parser.y', 450 2539 2559 def _reduce_96( val, _values, result ) 2540 2560 result = val[0] … … 2543 2563 .,., 2544 2564 2545 module_eval <<'.,.,', 'lib/parser.y', 4 372565 module_eval <<'.,.,', 'lib/parser.y', 454 2546 2566 def _reduce_97( val, _values, result ) 2547 2567 result = val[0] … … 2550 2570 .,., 2551 2571 2552 module_eval <<'.,.,', 'lib/parser.y', 4 422572 module_eval <<'.,.,', 'lib/parser.y', 459 2553 2573 def _reduce_98( val, _values, result ) 2554 2574 result = val[0] … … 2557 2577 .,., 2558 2578 2559 module_eval <<'.,.,', 'lib/parser.y', 4 462579 module_eval <<'.,.,', 'lib/parser.y', 463 2560 2580 def _reduce_99( val, _values, result ) 2561 2581 result = val[0] … … 2564 2584 .,., 2565 2585 2566 module_eval <<'.,.,', 'lib/parser.y', 4 512586 module_eval <<'.,.,', 'lib/parser.y', 468 2567 2587 def _reduce_100( val, _values, result ) 2568 2588 result = {:untyped_multiple_attr_object_block => val[0]} … … 2571 2591 .,., 2572 2592 2573 module_eval <<'.,.,', 'lib/parser.y', 4 552593 module_eval <<'.,.,', 'lib/parser.y', 472 2574 2594 def _reduce_101( val, _values, result ) 2575 2595 result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]} … … 2578 2598 .,., 2579 2599 2580 module_eval <<'.,.,', 'lib/parser.y', 4 602600 module_eval <<'.,.,', 'lib/parser.y', 477 2581 2601 def _reduce_102( val, _values, result ) 2582 2602 result = {:multiple_attr_object_block_head => val[0], :keyed_objects => val[1]} … … 2585 2605 .,., 2586 2606 2587 module_eval <<'.,.,', 'lib/parser.y', 4 662607 module_eval <<'.,.,', 'lib/parser.y', 483 2588 2608 def _reduce_103( val, _values, result ) 2589 2609 @@log.info("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}") … … 2593 2613 .,., 2594 2614 2595 module_eval <<'.,.,', 'lib/parser.y', 4 712615 module_eval <<'.,.,', 'lib/parser.y', 488 2596 2616 def _reduce_104( val, _values, result ) 2597 2617 result = Array[val[0]] … … 2600 2620 .,., 2601 2621 2602 module_eval <<'.,.,', 'lib/parser.y', 4 752622 module_eval <<'.,.,', 'lib/parser.y', 492 2603 2623 def _reduce_105( val, _values, result ) 2604 2624 result = (val[0] << val[1]) … … 2607 2627 .,., 2608 2628 2609 module_eval <<'.,.,', 'lib/parser.y', 4 812629 module_eval <<'.,.,', 'lib/parser.y', 498 2610 2630 def _reduce_106( val, _values, result ) 2611 2631 @@log.info("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}") … … 2615 2635 .,., 2616 2636 2617 module_eval <<'.,.,', 'lib/parser.y', 4872637 module_eval <<'.,.,', 'lib/parser.y', 504 2618 2638 def _reduce_107( val, _values, result ) 2619 2639 @@log.info("object_key: [#{val[1]}] at #{@filename}:#{@lineno}") … … 2623 2643 .,., 2624 2644 2625 module_eval <<'.,.,', 'lib/parser.y', 4922645 module_eval <<'.,.,', 'lib/parser.y', 509 2626 2646 def _reduce_108( val, _values, result ) 2627 2647 result = {:untyped_single_attr_object_block => val[0]} … … 2630 2650 .,., 2631 2651 2632 module_eval <<'.,.,', 'lib/parser.y', 4962652 module_eval <<'.,.,', 'lib/parser.y', 513 2633 2653 def _reduce_109( val, _values, result ) 2634 2654 result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]} … … 2637 2657 .,., 2638 2658 2639 module_eval <<'.,.,', 'lib/parser.y', 5 022659 module_eval <<'.,.,', 'lib/parser.y', 519 2640 2660 def _reduce_110( val, _values, result ) 2641 2661 @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}") … … 2645 2665 .,., 2646 2666 2647 module_eval <<'.,.,', 'lib/parser.y', 5 072667 module_eval <<'.,.,', 'lib/parser.y', 524 2648 2668 def _reduce_111( val, _values, result ) 2649 2669 @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]}, attr_vals = #{val[1]} at #{@filename}:#{@lineno}") … … 2655 2675 # reduce 112 omitted 2656 2676 2657 module_eval <<'.,.,', 'lib/parser.y', 5 132677 module_eval <<'.,.,', 'lib/parser.y', 530 2658 2678 def _reduce_113( val, _values, result ) 2659 2679 @@log.info("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}") … … 2663 2683 .,., 2664 2684 2665 module_eval <<'.,.,', 'lib/parser.y', 5 182685 module_eval <<'.,.,', 'lib/parser.y', 535 2666 2686 def _reduce_114( val, _values, result ) 2667 2687 @@log.info("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}") … … 2671 2691 .,., 2672 2692 2673 module_eval <<'.,.,', 'lib/parser.y', 5 232693 module_eval <<'.,.,', 'lib/parser.y', 540 2674 2694 def _reduce_115( val, _values, result ) 2675 2695 @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}") … … 2679 2699 .,., 2680 2700 2681 module_eval <<'.,.,', 'lib/parser.y', 5 272701 module_eval <<'.,.,', 'lib/parser.y', 544 2682 2702 def _reduce_116( val, _values, result ) 2683 2703 result = val[0] … … 2686 2706 .,., 2687 2707 2688 module_eval <<'.,.,', 'lib/parser.y', 5 312708 module_eval <<'.,.,', 'lib/parser.y', 548 2689 2709 def _reduce_117( val, _values, result ) 2690 2710 result = val[0] … … 2693 2713 .,., 2694 2714 2695 module_eval <<'.,.,', 'lib/parser.y', 5 352715 module_eval <<'.,.,', 'lib/parser.y', 552 2696 2716 def _reduce_118( val, _values, result ) 2697 2717 result = val[0] … … 2700 2720 .,., 2701 2721 2702 module_eval <<'.,.,', 'lib/parser.y', 5 392722 module_eval <<'.,.,', 'lib/parser.y', 556 2703 2723 def _reduce_119( val, _values, result ) 2704 2724 result = val[0] … … 2707 2727 .,., 2708 2728 2709 module_eval <<'.,.,', 'lib/parser.y', 5 432729 module_eval <<'.,.,', 'lib/parser.y', 560 2710 2730 def _reduce_120( val, _values, result ) 2711 2731 result = val[0] … … 2714 2734 .,., 2715 2735 2716 module_eval <<'.,.,', 'lib/parser.y', 5 482736 module_eval <<'.,.,', 'lib/parser.y', 565 2717 2737 def _reduce_121( val, _values, result ) 2718 2738 @@log.info("string_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2722 2742 .,., 2723 2743 2724 module_eval <<'.,.,', 'lib/parser.y', 5 532744 module_eval <<'.,.,', 'lib/parser.y', 570 2725 2745 def _reduce_122( val, _values, result ) 2726 2746 @@log.info("integer_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2730 2750 .,., 2731 2751 2732 module_eval <<'.,.,', 'lib/parser.y', 5 582752 module_eval <<'.,.,', 'lib/parser.y', 575 2733 2753 def _reduce_123( val, _values, result ) 2734 2754 @@log.info("real_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2738 2758 .,., 2739 2759 2740 module_eval <<'.,.,', 'lib/parser.y', 5 632760 module_eval <<'.,.,', 'lib/parser.y', 580 2741 2761 def _reduce_124( val, _values, result ) 2742 2762 @@log.info("boolean_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2746 2766 .,., 2747 2767 2748 module_eval <<'.,.,', 'lib/parser.y', 5 682768 module_eval <<'.,.,', 'lib/parser.y', 585 2749 2769 def _reduce_125( val, _values, result ) 2750 2770 @@log.info("character_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2754 2774 .,., 2755 2775 2756 module_eval <<'.,.,', 'lib/parser.y', 5 732776 module_eval <<'.,.,', 'lib/parser.y', 590 2757 2777 def _reduce_126( val, _values, result ) 2758 2778 @@log.info("date_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2762 2782 .,., 2763 2783 2764 module_eval <<'.,.,', 'lib/parser.y', 5 782784 module_eval <<'.,.,', 'lib/parser.y', 595 2765 2785 def _reduce_127( val, _values, result ) 2766 2786 @@log.info("time_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2770 2790 .,., 2771 2791 2772 module_eval <<'.,.,', 'lib/parser.y', 5832792 module_eval <<'.,.,', 'lib/parser.y', 600 2773 2793 def _reduce_128( val, _values, result ) 2774 2794 @@log.info("date_time_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2778 2798 .,., 2779 2799 2780 module_eval <<'.,.,', 'lib/parser.y', 5882800 module_eval <<'.,.,', 'lib/parser.y', 605 2781 2801 def _reduce_129( val, _values, result ) 2782 2802 @@log.info("duration_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2786 2806 .,., 2787 2807 2788 module_eval <<'.,.,', 'lib/parser.y', 5932808 module_eval <<'.,.,', 'lib/parser.y', 610 2789 2809 def _reduce_130( val, _values, result ) 2790 2810 @@log.info("uri_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2824 2844 # reduce 145 omitted 2825 2845 2826 module_eval <<'.,.,', 'lib/parser.y', 6 162846 module_eval <<'.,.,', 'lib/parser.y', 633 2827 2847 def _reduce_146( val, _values, result ) 2828 2848 @@log.info("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") … … 2832 2852 .,., 2833 2853 2834 module_eval <<'.,.,', 'lib/parser.y', 6 212854 module_eval <<'.,.,', 'lib/parser.y', 638 2835 2855 def _reduce_147( val, _values, result ) 2836 2856 @@log.info("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") … … 2840 2860 .,., 2841 2861 2842 module_eval <<'.,.,', 'lib/parser.y', 6 272862 module_eval <<'.,.,', 'lib/parser.y', 644 2843 2863 def _reduce_148( val, _values, result ) 2844 2864 @@log.info("V_STRING: #{val[0]} at #{@filename}:#{@lineno}") … … 2854 2874 # reduce 151 omitted 2855 2875 2856 module_eval <<'.,.,', 'lib/parser.y', 6 412876 module_eval <<'.,.,', 'lib/parser.y', 658 2857 2877 def _reduce_152( val, _values, result ) 2858 2878 begin … … 2866 2886 .,., 2867 2887 2868 module_eval <<'.,.,', 'lib/parser.y', 6 502888 module_eval <<'.,.,', 'lib/parser.y', 667 2869 2889 def _reduce_153( val, _values, result ) 2870 2890 begin … … 2878 2898 .,., 2879 2899 2880 module_eval <<'.,.,', 'lib/parser.y', 6 592900 module_eval <<'.,.,', 'lib/parser.y', 676 2881 2901 def _reduce_154( val, _values, result ) 2882 2902 begin … … 2914 2934 # reduce 166 omitted 2915 2935 2916 module_eval <<'.,.,', 'lib/parser.y', 6852936 module_eval <<'.,.,', 'lib/parser.y', 702 2917 2937 def _reduce_167( val, _values, result ) 2918 2938 begin … … 2926 2946 .,., 2927 2947 2928 module_eval <<'.,.,', 'lib/parser.y', 6942948 module_eval <<'.,.,', 'lib/parser.y', 711 2929 2949 def _reduce_168( val, _values, result ) 2930 2950 begin … … 2938 2958 .,., 2939 2959 2940 module_eval <<'.,.,', 'lib/parser.y', 7 032960 module_eval <<'.,.,', 'lib/parser.y', 720 2941 2961 def _reduce_169( val, _values, result ) 2942 2962 begin … … 2974 2994 # reduce 181 omitted 2975 2995 2976 module_eval <<'.,.,', 'lib/parser.y', 7 232996 module_eval <<'.,.,', 'lib/parser.y', 740 2977 2997 def _reduce_182( val, _values, result ) 2978 2998 result = true … … 2981 3001 .,., 2982 3002 2983 module_eval <<'.,.,', 'lib/parser.y', 7 273003 module_eval <<'.,.,', 'lib/parser.y', 744 2984 3004 def _reduce_183( val, _values, result ) 2985 3005 result = false … … 3080 3100 # reduce 229 omitted 3081 3101 3082 module_eval <<'.,.,', 'lib/parser.y', 7913102 module_eval <<'.,.,', 'lib/parser.y', 808 3083 3103 def _reduce_230( val, _values, result ) 3084 3104 @@log.info("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}") … … 3112 3132 # reduce 242 omitted 3113 3133 3114 module_eval <<'.,.,', 'lib/parser.y', 8 103134 module_eval <<'.,.,', 'lib/parser.y', 828 3115 3135 def _reduce_243( val, _values, result ) 3116 3136 @@log.info("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}") 3137 result = val[0] 3117 3138 result 3118 3139 end … … 3125 3146 # reduce 246 omitted 3126 3147 3127 module_eval <<'.,.,', 'lib/parser.y', 8 193148 module_eval <<'.,.,', 'lib/parser.y', 838 3128 3149 def _reduce_247( val, _values, result ) 3129 3150 @@log.info("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}") 3151 result = val[0] 3130 3152 result 3131 3153 end … … 3212 3234 # reduce 287 omitted 3213 3235 3214 module_eval <<'.,.,', 'lib/parser.y', 8883236 module_eval <<'.,.,', 'lib/parser.y', 907 3215 3237 def _reduce_288( val, _values, result ) 3216 3238 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") … … 3219 3241 .,., 3220 3242 3221 module_eval <<'.,.,', 'lib/parser.y', 8923243 module_eval <<'.,.,', 'lib/parser.y', 911 3222 3244 def _reduce_289( val, _values, result ) 3223 3245 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") … … 3226 3248 .,., 3227 3249 3228 module_eval <<'.,.,', 'lib/parser.y', 9 033250 module_eval <<'.,.,', 'lib/parser.y', 922 3229 3251 def _reduce_290( val, _values, result ) 3230 3252 result = Range.new(1,1) … … 3233 3255 .,., 3234 3256 3235 module_eval <<'.,.,', 'lib/parser.y', 9 073257 module_eval <<'.,.,', 'lib/parser.y', 926 3236 3258 def _reduce_291( val, _values, result ) 3237 3259 result = val[3] … … 3240 3262 .,., 3241 3263 3242 module_eval <<'.,.,', 'lib/parser.y', 9 173264 module_eval <<'.,.,', 'lib/parser.y', 936 3243 3265 def _reduce_292( val, _values, result ) 3244 3266 begin … … 3252 3274 .,., 3253 3275 3254 module_eval <<'.,.,', 'lib/parser.y', 9 273276 module_eval <<'.,.,', 'lib/parser.y', 946 3255 3277 def _reduce_293( val, _values, result ) 3256 3278 begin … … 3265 3287 .,., 3266 3288 3267 module_eval <<'.,.,', 'lib/parser.y', 9 323289 module_eval <<'.,.,', 'lib/parser.y', 951 3268 3290 def _reduce_294( val, _values, result ) 3269 3291 result = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new … … 3294 3316 # reduce 305 omitted 3295 3317 3296 module_eval <<'.,.,', 'lib/parser.y', 9 513318 module_eval <<'.,.,', 'lib/parser.y', 970 3297 3319 def _reduce_306( val, _values, result ) 3298 3320 result = val[3] … … 3393 3415 # reduce 352 omitted 3394 3416 3395 module_eval <<'.,.,', 'lib/parser.y', 10 213417 module_eval <<'.,.,', 'lib/parser.y', 1040 3396 3418 def _reduce_353( val, _values, result ) 3397 3419 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true) … … 3400 3422 .,., 3401 3423 3402 module_eval <<'.,.,', 'lib/parser.y', 10 253424 module_eval <<'.,.,', 'lib/parser.y', 1044 3403 3425 def _reduce_354( val, _values, result ) 3404 3426 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false) … … 3407 3429 .,., 3408 3430 3409 module_eval <<'.,.,', 'lib/parser.y', 10 293431 module_eval <<'.,.,', 'lib/parser.y', 1048 3410 3432 def _reduce_355( val, _values, result ) 3411 3433 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false) … … 3414 3436 .,., 3415 3437 3416 module_eval <<'.,.,', 'lib/parser.y', 10 333438 module_eval <<'.,.,', 'lib/parser.y', 1052 3417 3439 def _reduce_356( val, _values, result ) 3418 3440 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true) … … 3421 3443 .,., 3422 3444 3423 module_eval <<'.,.,', 'lib/parser.y', 10 383445 module_eval <<'.,.,', 'lib/parser.y', 1057 3424 3446 def _reduce_357( val, _values, result ) 3425 3447 result = val[0] … … 3428 3450 .,., 3429 3451 3430 module_eval <<'.,.,', 'lib/parser.y', 10 423452 module_eval <<'.,.,', 'lib/parser.y', 1061 3431 3453 def _reduce_358( val, _values, result ) 3432 3454 raise 'Not implemented yet' … … 3435 3457 .,., 3436 3458 3437 module_eval <<'.,.,', 'lib/parser.y', 10 463459 module_eval <<'.,.,', 'lib/parser.y', 1065 3438 3460 def _reduce_359( val, _values, result ) 3439 3461 raise 'Not implemented yet' … … 3452 3474 # reduce 364 omitted 3453 3475 3454 module_eval <<'.,.,', 'lib/parser.y', 10 593476 module_eval <<'.,.,', 'lib/parser.y', 1078 3455 3477 def _reduce_365( val, _values, result ) 3456 3478 @in_interval = false … … 3476 3498 # reduce 373 omitted 3477 3499 3478 module_eval <<'.,.,', 'lib/parser.y', 1 0813500 module_eval <<'.,.,', 'lib/parser.y', 1100 3479 3501 def _reduce_374( val, _values, result ) 3480 3502 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}") … … 3483 3505 .,., 3484 3506 3485 # reduce 375 omitted 3507 module_eval <<'.,.,', 'lib/parser.y', 1110 3508 def _reduce_375( val, _values, result ) 3509 result = val[0] 3510 result 3511 end 3512 .,., 3486 3513 3487 3514 def _reduce_none( val, _values, result ) -
ruby/trunk/adl_parser/lib/parser.y
r25 r26 39 39 end 40 40 41 result = OpenEHR::AM::Archetype::ARCHETYPE.new( 42 :description => val[4], 43 :definition => val[5], 44 :ontology => val[7] 45 ) 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 46 57 } 47 58 … … 62 73 | SYM_ARCHETYPE arch_meta_data 63 74 { 75 result = val[1] 76 } 77 78 arch_meta_data: Left_parenthesis_code arch_meta_data_items Right_parenthesis_code 79 { 64 80 result = {:arch_meta_data => val[1] } 65 81 } 66 82 67 arch_meta_data: Left_parenthesis_code arch_meta_data_items Right_parenthesis_code68 {69 result = {:arch_meta_data_items => val[1] }70 }71 72 83 arch_meta_data_items: arch_meta_data_item 73 84 { 74 result = Array[val[0]]85 result = val[0] 75 86 } 76 87 | arch_meta_data_items Semicolon_code arch_meta_data_item 77 88 { 78 result = (val[0] <<val[2])89 result = val[0].merge(val[2]) 79 90 } 80 91 … … 82 93 arch_meta_data_item: SYM_ADL_VERSION SYM_EQ V_VERSION_STRING 83 94 { 84 result = {:adl_version => val[2] }95 result = {:adl_version => val[2], :is_controlled => false } 85 96 } 86 97 | SYM_IS_CONTROLLED 87 98 { 88 result = val[0]99 result = {:is_controlled => true } 89 100 } 90 101 … … 96 107 97 108 arch_concept: SYM_CONCEPT V_LOCAL_TERM_CODE_REF 109 { 110 result = {:arch_concept => val[1] } 111 } 98 112 | SYM_CONCEPT error 99 113 … … 103 117 104 118 arch_language: #-- empty is ok for ADL 1.4 tools 119 { 120 result = {:arch_language => nil} 121 } 105 122 | SYM_LANGUAGE dadl_section 106 123 { 107 result = {: language => val[1]}124 result = {:arch_language => val[1]} 108 125 } 109 126 | SYM_LANGUAGE error … … 389 406 arch_ontology: SYM_ONTOLOGY dadl_section 390 407 { 391 dadl_section s= val[1]408 dadl_section = val[1] 392 409 result = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new 393 410 } … … 808 825 { 809 826 @@log.info("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}") 827 result = val[0] 810 828 } 811 829 … … 817 835 { 818 836 @@log.info("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}") 837 result = val[0] 819 838 } 820 839 … … 1087 1106 1088 1107 duration_pattern: V_ISO8601_DURATION_CONSTRAINT_PATTERN 1108 { 1109 result = val[0] 1110 } 1089 1111 1090 1112 … … 1096 1118 require 'lib/util.rb' 1097 1119 require 'lib/scanner.rb' 1098 #require 'lib/model.rb'1099 1120 require 'rubygems' 1100 1121 require 'am.rb' -
ruby/trunk/adl_parser/lib/scanner.rb
r25 r26 115 115 Yaparc::Apply.new( 116 116 Yaparc::Alt.new(Yaparc::Regex.new(/\AP([0-9]+|[yY])?([0-9]+|[mM])?([0-9]+|[wW])?([0-9]+|[dD])?T([0-9]+|[hH])?([0-9]+|[mM])?([0-9]+|[sS])?/), 117 Yaparc::Regex.new(/AP([0-9]+|[yY])?([0-9]+|[mM])?([0-9]+|[wW])?([0-9]+|[dD])?/))) do |match| 118 # Yaparc::Alt.new(Yaparc::Regex.new(/\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?T([0-9]+[hH])?([0-9]+[mM])?([0-9]+[sS])?/), 119 # Yaparc::Regex.new(/AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?/))) do |match| 117 Yaparc::Regex.new(/\AP([0-9]+|[yY])?([0-9]+|[mM])?([0-9]+|[wW])?([0-9]+|[dD])?/))) do |match| 120 118 LOG.info("V_ISO8601_DURATION: #{match}") 121 119 [:V_ISO8601_DURATION, match] … … 250 248 end 251 249 250 #V_ISO8601_DURATION_CONSTRAINT_PATTERN 251 class V_ISO8601_DURATION_CONSTRAINT_PATTERN 252 include Yaparc::Parsable 253 def initialize 254 @parser = lambda do |input| 255 Yaparc::Apply.new(Yaparc::Alt.new(Yaparc::Regex.new(/\AP[yY]?[mM]?[wW]?[dD]?T[hH]?[mM]?[sS]?/), 256 Yaparc::Regex.new(/\AP[yY]?[mM]?[wW]?[dD]?/))) do |match| 257 OpenEHR::ADL::Scanner::Common::LOG.info("V_ISO8601_DURATION_CONSTRAINT_PATTERN: #{match}") 258 [:V_ISO8601_DURATION_CONSTRAINT_PATTERN, match] 259 end 260 end 261 end 262 end 263 252 264 #V_C_DOMAIN_TYPE /\A[A-Z][a-zA-Z0-9_]*[ \n]*\</ 253 265 class V_C_DOMAIN_TYPE … … 272 284 OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new, 273 285 V_C_DOMAIN_TYPE.new, 286 V_ISO8601_DURATION_CONSTRAINT_PATTERN.new, 274 287 Reserved.new, 275 288 OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new, -
ruby/trunk/models/am/archetype/archetype.rb
r24 r26 14 14 attr_accessor :archetype_id, :concept_code, :is_controlled, :original_language, :parent_archtype_id, :uid 15 15 16 attr_reader : id, :parent_id,:concept, :definition, :ontology16 attr_reader :parent_id,:concept, :definition, :ontology 17 17 attr_accessor :adl_version,:description,:original_language 18 18 attr_accessor :revision_history, :translation … … 20 20 def initialize(args = {}) 21 21 @adl_version = args[:adl_version] if args[:adl_version] 22 @ id = args[:id] ? args[:id] : nil22 @archetype_id = args[:archetype_id] ? args[:archetype_id] : nil 23 23 @parent_id = args[:parent_id] if args[:parent_id] 24 24 @concept = args[:concept] if args[:concept] 25 # @original_language = args[:original_language] ? args[:original_language] : nil26 # @translation = args[:translation] ? args[:translation] : nil27 # @description = args[:description] if args[:description]28 # @revision_history = args[:revision_history] if args[:revision_history]29 25 @is_controled = args[:is_controled] if args[:is_controled] 30 @definition = args[:definition] if args[:definition] 26 @definition = args[:definition] if args[:definition] 31 27 @ontology = args[:ontology] if args[:ontology] 32 28 # loadMaps(definition) -
ruby/trunk/models/am/archetype/constraint_model/primitive.rb
r23 r26 87 87 88 88 class C_DURATION < C_PRIMITIVE 89 89 attr_accessor :years_allowed, :months_allowed, :weeks_allowed, :days_allowed, :hours_allowed, :minutes_allowed, :seconds_allowed, :fractional_seconds_allowed, :range, :assumed_value 90 90 end 91 91 -
ruby/trunk/models/rm.rb
r7 r26 13 13 module RM 14 14 autoload :Demographic, "rm/demographic.rb" 15 15 16 module Common 16 17 autoload :Resource, "rm/common/resource.rb" 17 18 end 19 18 20 module Support 19 21 autoload :Definition, "rm/support/definition.rb" 22 23 module Identification 24 autoload :OBJECT_ID, "rm/support/identification.rb" 25 end 26 20 27 module Terminology 21 28 autoload :Terminology, "rm/support/terminology.rb" 22 29 end 23 30 end 31 24 32 module Data_Types 25 33 autoload :Basic, "rm/data_types/basic.rb" -
ruby/trunk/models/rm/support/identification.rb
r4 r26 2 2 module RM 3 3 module Support 4 module Definition 5 class Object_ID 4 module Identification 5 6 class OBJECT_ID 6 7 attr_accessor :value 8 7 9 def initiallize(value) 8 if value == nil 9 raise Exception.new("empty value") 10 end 10 raise "empty value" unless value 11 11 @value = value 12 12 end 13 13 end # of ObjectID 14 class Terminology_ID < Object_ID 14 15 class ARCHETYPE_ID < OBJECT_ID 16 end 17 18 class TERMINOLOGY_ID < OBJECT_ID 15 19 attr_reader :name 16 def initialize(arg0, arg1=nil) 17 if arg1 == nil 18 super(arg0) 19 else 20 super(toValue(arg0, arg1)) 21 @name = arg0 22 @version = arg1 23 end 20 21 def initialize(name , version_id) 22 @name , @version_id = name , version_id 23 # if arg1 == nil 24 # super(arg0) 25 # else 26 # super(toValue(arg0, arg1)) 27 # @name = arg0 28 # @version = arg1 29 # end 24 30 end 31 25 32 def setValue(value) 26 33 loadValue(value) 27 34 super.value = value 28 35 end 36 29 37 def version_id 30 38 @version 31 39 end 40 32 41 private 42 33 43 def loadValue(value) 34 44 if /\(.*\)$/ =~ value 35 @name, @version = value.split(\())45 # @name, @version = value.split(\()) 36 46 @version.chop! 37 47 else … … 40 50 end 41 51 end 52 42 53 def toValue(name, version) 43 54 if name == "" -
ruby/trunk/models/tests/test_reference_model.rb
r24 r26 31 31 assert_instance_of OpenEHR::RM::Data_Types::Text::DV_Coded_Text, @dv_coded_text 32 32 end 33 33 34 def test_constant 34 35 assert_equal("\r", OpenEHR::RM::Support::Definition::OpenEHR_Definitions::CR) … … 37 38 assert_equal("\n", OpenEHR::RM::Data_Types::Basic::Data_Value::LF) 38 39 end 40 39 41 def test_dv_boolean 40 42 assert @dv_boolean.value? … … 45 47 assert_raise(ArgumentError){OpenEHR::RM::Data_Types::Basic::DV_Boolean.new(nil)} 46 48 end 49 47 50 def test_dv_state 48 51 assert_equal("code1", @dv_state.value) … … 54 57 assert_raise(ArgumentError) {OpenEHR::RM::Data_Types::Basic::DV_State.new(nil,nil)} 55 58 end 59 56 60 def test_dv_identifier 57 61 assert_equal("Ruby Hospital", @dv_identifier.assigner) … … 69 73 assert_raise(ArgumentError) {OpenEHR::RM::Data_Types::Basic::DV_Identifier.new(nil, nil, nil, nil)} 70 74 end 75 71 76 def test_dv_uri 72 77 assert_equal("file0", @dv_uri.fragment_id) … … 79 84 assert_equal("/openehr-jp/", @dv_uri.path) 80 85 end 86 81 87 def test_dv_ehr_uri 82 88 assert_equal("ehr", @dv_ehr_uri.scheme) … … 84 90 @dv_ehr_uri.value="svn://www.openehr.jp/openehr-jp/" } 85 91 end 92 86 93 def test_dv_text 87 94 assert_equal("valid value", @dv_text.value) 88 assert_raise(ArgumentError){ 89 @dv_text.value = "not valid value\n"} 90 assert_raise(ArgumentError){ 91 @dv_text.value = nil } 92 assert_raise(ArgumentError){ 93 @dv_text.value = "" } 94 assert_raise(ArgumentError){ 95 @dv_text.formatting = "" } 96 assert_raise(ArgumentError){ 97 @dv_text.encoding = ""} 98 assert_raise(ArgumentError){ 99 @dv_text.language = ""} 100 assert_raise(ArgumentError){ 101 @dv_text.mappings = Set.new} 102 assert_raise(ArgumentError){ 103 @dv_text.mappings = ""} 104 assert_raise(ArgumentError){ 105 @dv_text.language = ""} 95 assert_raise(ArgumentError){@dv_text.value = "not valid value\n"} 96 assert_raise(ArgumentError){@dv_text.value = nil } 97 assert_raise(ArgumentError){@dv_text.value = "" } 98 assert_raise(ArgumentError){@dv_text.formatting = "" } 99 assert_raise(ArgumentError){@dv_text.encoding = ""} 100 assert_raise(ArgumentError){@dv_text.language = ""} 101 assert_raise(ArgumentError){@dv_text.mappings = Set.new} 102 assert_raise(ArgumentError){@dv_text.mappings = ""} 103 assert_raise(ArgumentError){@dv_text.language = ""} 106 104 end 105 107 106 def test_dv_coded_text 108 107 assert_equal("valid value", @dv_coded_text.value) 109 108 assert_equal("AT1000", @dv_coded_text.defining_code) 110 assert_raise(ArgumentError){ 111 @dv_coded_text.defining_code=nil} 109 assert_raise(ArgumentError){@dv_coded_text.defining_code=nil} 112 110 end 111 113 112 def test_dv_paragraph 114 113 assert_equal((Set.new ["test1", "test2"]), @dv_paragraph.items) 115 assert_raise(ArgumentError){ 116 @dv_paragraph.items=Set.new} 114 assert_raise(ArgumentError){@dv_paragraph.items=Set.new} 117 115 end 116 118 117 def test_terminology_mapping 119 118 … … 121 120 end 122 121 122 123 class ReferenceModelSupportIdentificationTest < Test::Unit::TestCase 124 def setup 125 @object_id = OpenEHR::RM::Support::Identification::OBJECT_ID.new 126 @terminology_id = OpenEHR::RM::Support::Identification::TERMINOLOGY_ID.new('terminology','version') 127 @archetype_id = OpenEHR::RM::Support::Identification::ARCHETYPE_ID.new 128 end 129 130 def test_init 131 assert_instance_of OpenEHR::RM::Support::Identification::OBJECT_ID, @object_id 132 assert_instance_of OpenEHR::RM::Support::Identification::TERMINOLOGY_ID, @terminology_id 133 assert_instance_of OpenEHR::RM::Support::Identification::ARCHETYPE_ID, @archetype_id 134 135 end 136 end
Note:
See TracChangeset
for help on using the changeset viewer.