Index: ruby/trunk/adl_parser/lib/parser.rb
===================================================================
--- ruby/trunk/adl_parser/lib/parser.rb	(revision 23)
+++ ruby/trunk/adl_parser/lib/parser.rb	(revision 25)
@@ -27,5 +27,5 @@
     class Parser < Racc::Parser
 
-module_eval <<'..end lib/parser.y modeval..id4cf2f1104b', 'lib/parser.y', 1079
+module_eval <<'..end lib/parser.y modeval..iddb76fb97bf', 'lib/parser.y', 1106
 
 def assert_at(file,line, message = "")
@@ -820,5 +820,5 @@
 
 
-..end lib/parser.y modeval..id4cf2f1104b
+..end lib/parser.y modeval..iddb76fb97bf
 
 ##### racc 1.4.5 generates ###
@@ -829,13 +829,13 @@
  1, 95, :_reduce_none,
  8, 96, :_reduce_3,
- 2, 97, :_reduce_none,
- 2, 97, :_reduce_none,
- 1, 105, :_reduce_none,
- 2, 105, :_reduce_none,
- 3, 106, :_reduce_none,
- 1, 107, :_reduce_none,
- 3, 107, :_reduce_none,
- 3, 108, :_reduce_none,
- 1, 108, :_reduce_none,
+ 2, 97, :_reduce_4,
+ 2, 97, :_reduce_5,
+ 1, 105, :_reduce_6,
+ 2, 105, :_reduce_7,
+ 3, 106, :_reduce_8,
+ 1, 107, :_reduce_9,
+ 3, 107, :_reduce_10,
+ 3, 108, :_reduce_11,
+ 1, 108, :_reduce_12,
  0, 98, :_reduce_none,
  2, 98, :_reduce_none,
@@ -2044,21 +2044,66 @@
 .,.,
 
- # reduce 4 omitted
-
- # reduce 5 omitted
-
- # reduce 6 omitted
-
- # reduce 7 omitted
-
- # reduce 8 omitted
-
- # reduce 9 omitted
-
- # reduce 10 omitted
-
- # reduce 11 omitted
-
- # reduce 12 omitted
+module_eval <<'.,.,', 'lib/parser.y', 52
+  def _reduce_4( val, _values, result )
+    result = {:arch_head => val[0], :archetype_id => val[1] }
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'lib/parser.y', 56
+  def _reduce_5( val, _values, result )
+    raise
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'lib/parser.y', 61
+  def _reduce_6( val, _values, result )
+    result = {:arch_meta_data => nil }
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'lib/parser.y', 65
+  def _reduce_7( val, _values, result )
+    result = {:arch_meta_data => val[1] }
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'lib/parser.y', 70
+  def _reduce_8( val, _values, result )
+    result = {:arch_meta_data_items => val[1] }
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'lib/parser.y', 75
+  def _reduce_9( val, _values, result )
+    result = Array[val[0]]
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'lib/parser.y', 79
+  def _reduce_10( val, _values, result )
+    result = (val[0] << val[2])
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'lib/parser.y', 85
+  def _reduce_11( val, _values, result )
+    result = {:adl_version => val[2] }
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'lib/parser.y', 89
+  def _reduce_12( val, _values, result )
+    result = val[0]
+   result
+  end
+.,.,
 
  # reduce 13 omitted
@@ -2074,5 +2119,5 @@
  # reduce 18 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 81
+module_eval <<'.,.,', 'lib/parser.y', 108
   def _reduce_19( val, _values, result )
     result = {:language => val[1]}
@@ -2085,5 +2130,5 @@
  # reduce 21 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 92
+module_eval <<'.,.,', 'lib/parser.y', 119
   def _reduce_22( val, _values, result )
     result = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new(:details => val[1])
@@ -2094,5 +2139,5 @@
  # reduce 23 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 100
+module_eval <<'.,.,', 'lib/parser.y', 127
   def _reduce_24( val, _values, result )
     result = val[1]
@@ -2103,5 +2148,5 @@
  # reduce 25 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 110
+module_eval <<'.,.,', 'lib/parser.y', 137
   def _reduce_26( val, _values, result )
     assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT)}
@@ -2112,5 +2157,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 114
+module_eval <<'.,.,', 'lib/parser.y', 141
   def _reduce_27( val, _values, result )
     result = val[0]
@@ -2119,5 +2164,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 125
+module_eval <<'.,.,', 'lib/parser.y', 152
   def _reduce_28( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object|
@@ -2130,5 +2175,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 133
+module_eval <<'.,.,', 'lib/parser.y', 160
   def _reduce_29( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object|
@@ -2141,5 +2186,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 140
+module_eval <<'.,.,', 'lib/parser.y', 167
   def _reduce_30( val, _values, result )
     result = {:c_complex_object_id => val[0], :c_occurrences => val[1]}
@@ -2148,5 +2193,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 145
+module_eval <<'.,.,', 'lib/parser.y', 172
   def _reduce_31( val, _values, result )
     result = {:type_identifier => val[0]}
@@ -2155,5 +2200,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 149
+module_eval <<'.,.,', 'lib/parser.y', 176
   def _reduce_32( val, _values, result )
     result = {:type_identifier => val[0], :local_term_code_ref => val[1]}
@@ -2164,5 +2209,5 @@
  # reduce 33 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 155
+module_eval <<'.,.,', 'lib/parser.y', 182
   def _reduce_34( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => val[0])
@@ -2171,5 +2216,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 163
+module_eval <<'.,.,', 'lib/parser.y', 190
   def _reduce_35( val, _values, result )
     result = val[0]
@@ -2178,5 +2223,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 167
+module_eval <<'.,.,', 'lib/parser.y', 194
   def _reduce_36( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new
@@ -2185,5 +2230,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 171
+module_eval <<'.,.,', 'lib/parser.y', 198
   def _reduce_37( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new
@@ -2192,5 +2237,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 175
+module_eval <<'.,.,', 'lib/parser.y', 202
   def _reduce_38( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new
@@ -2199,5 +2244,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 179
+module_eval <<'.,.,', 'lib/parser.y', 206
   def _reduce_39( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new
@@ -2206,5 +2251,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 183
+module_eval <<'.,.,', 'lib/parser.y', 210
   def _reduce_40( val, _values, result )
     result = val[0]
@@ -2213,5 +2258,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 187
+module_eval <<'.,.,', 'lib/parser.y', 214
   def _reduce_41( val, _values, result )
     result = val[0]
@@ -2220,5 +2265,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 191
+module_eval <<'.,.,', 'lib/parser.y', 218
   def _reduce_42( val, _values, result )
     result = val[0]
@@ -2231,5 +2276,5 @@
  # reduce 44 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 206
+module_eval <<'.,.,', 'lib/parser.y', 233
   def _reduce_45( val, _values, result )
     result = val[1]
@@ -2252,5 +2297,5 @@
  # reduce 52 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 226
+module_eval <<'.,.,', 'lib/parser.y', 253
   def _reduce_53( val, _values, result )
     assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE)}
@@ -2260,5 +2305,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 232
+module_eval <<'.,.,', 'lib/parser.y', 259
   def _reduce_54( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2268,5 +2313,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 237
+module_eval <<'.,.,', 'lib/parser.y', 264
   def _reduce_55( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2276,5 +2321,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 242
+module_eval <<'.,.,', 'lib/parser.y', 269
   def _reduce_56( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2284,5 +2329,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 247
+module_eval <<'.,.,', 'lib/parser.y', 274
   def _reduce_57( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2292,5 +2337,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 252
+module_eval <<'.,.,', 'lib/parser.y', 279
   def _reduce_58( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2300,5 +2345,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 257
+module_eval <<'.,.,', 'lib/parser.y', 284
   def _reduce_59( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2308,5 +2353,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 262
+module_eval <<'.,.,', 'lib/parser.y', 289
   def _reduce_60( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2316,5 +2361,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 268
+module_eval <<'.,.,', 'lib/parser.y', 295
   def _reduce_61( val, _values, result )
     assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN)}
@@ -2327,5 +2372,5 @@
  # reduce 62 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 278
+module_eval <<'.,.,', 'lib/parser.y', 305
   def _reduce_63( val, _values, result )
     result = [val[0]]
@@ -2334,5 +2379,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 282
+module_eval <<'.,.,', 'lib/parser.y', 309
   def _reduce_64( val, _values, result )
     result = (val[0] << val[1])
@@ -2341,5 +2386,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 291
+module_eval <<'.,.,', 'lib/parser.y', 318
   def _reduce_65( val, _values, result )
     assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
@@ -2351,5 +2396,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 296
+module_eval <<'.,.,', 'lib/parser.y', 323
   def _reduce_66( val, _values, result )
     assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
@@ -2359,5 +2404,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 301
+module_eval <<'.,.,', 'lib/parser.y', 328
   def _reduce_67( val, _values, result )
     assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
@@ -2367,5 +2412,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 312
+module_eval <<'.,.,', 'lib/parser.y', 339
   def _reduce_68( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}")
@@ -2378,5 +2423,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 322
+module_eval <<'.,.,', 'lib/parser.y', 349
   def _reduce_69( val, _values, result )
     assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY) }
@@ -2391,5 +2436,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 327
+module_eval <<'.,.,', 'lib/parser.y', 354
   def _reduce_70( val, _values, result )
     result = Array[val[0]]
@@ -2398,5 +2443,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 331
+module_eval <<'.,.,', 'lib/parser.y', 358
   def _reduce_71( val, _values, result )
     result = (val[0] << val[1])
@@ -2405,5 +2450,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 335
+module_eval <<'.,.,', 'lib/parser.y', 362
   def _reduce_72( val, _values, result )
     result = Array[val[0]]
@@ -2436,5 +2481,5 @@
  # reduce 84 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 366
+module_eval <<'.,.,', 'lib/parser.y', 393
   def _reduce_85( val, _values, result )
     dadl_sections = val[1]
@@ -2452,5 +2497,5 @@
  # reduce 89 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 380
+module_eval <<'.,.,', 'lib/parser.y', 407
   def _reduce_90( val, _values, result )
     result = Array[val[0]]
@@ -2459,5 +2504,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 384
+module_eval <<'.,.,', 'lib/parser.y', 411
   def _reduce_91( val, _values, result )
     result = (val[0] << val[1])
@@ -2466,5 +2511,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 388
+module_eval <<'.,.,', 'lib/parser.y', 415
   def _reduce_92( val, _values, result )
     result = (val[0] << val[2])
@@ -2473,5 +2518,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 394
+module_eval <<'.,.,', 'lib/parser.y', 421
   def _reduce_93( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: attr_id = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}")
@@ -2481,5 +2526,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 400
+module_eval <<'.,.,', 'lib/parser.y', 427
   def _reduce_94( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2491,5 +2536,5 @@
  # reduce 95 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 406
+module_eval <<'.,.,', 'lib/parser.y', 433
   def _reduce_96( val, _values, result )
     result = val[0]
@@ -2498,5 +2543,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 410
+module_eval <<'.,.,', 'lib/parser.y', 437
   def _reduce_97( val, _values, result )
     result = val[0]
@@ -2505,5 +2550,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 415
+module_eval <<'.,.,', 'lib/parser.y', 442
   def _reduce_98( val, _values, result )
     result = val[0]
@@ -2512,5 +2557,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 419
+module_eval <<'.,.,', 'lib/parser.y', 446
   def _reduce_99( val, _values, result )
     result = val[0]
@@ -2519,5 +2564,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 424
+module_eval <<'.,.,', 'lib/parser.y', 451
   def _reduce_100( val, _values, result )
     result = {:untyped_multiple_attr_object_block => val[0]}
@@ -2526,5 +2571,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 428
+module_eval <<'.,.,', 'lib/parser.y', 455
   def _reduce_101( val, _values, result )
     result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]}
@@ -2533,5 +2578,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 433
+module_eval <<'.,.,', 'lib/parser.y', 460
   def _reduce_102( val, _values, result )
     result = {:multiple_attr_object_block_head => val[0], :keyed_objects => val[1]}
@@ -2540,5 +2585,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 439
+module_eval <<'.,.,', 'lib/parser.y', 466
   def _reduce_103( val, _values, result )
     @@log.info("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2548,5 +2593,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 444
+module_eval <<'.,.,', 'lib/parser.y', 471
   def _reduce_104( val, _values, result )
     result = Array[val[0]]
@@ -2555,5 +2600,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 448
+module_eval <<'.,.,', 'lib/parser.y', 475
   def _reduce_105( val, _values, result )
     result = (val[0] << val[1])
@@ -2562,5 +2607,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 454
+module_eval <<'.,.,', 'lib/parser.y', 481
   def _reduce_106( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}")
@@ -2570,5 +2615,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 460
+module_eval <<'.,.,', 'lib/parser.y', 487
   def _reduce_107( val, _values, result )
     @@log.info("object_key: [#{val[1]}] at #{@filename}:#{@lineno}")
@@ -2578,5 +2623,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 465
+module_eval <<'.,.,', 'lib/parser.y', 492
   def _reduce_108( val, _values, result )
     result = {:untyped_single_attr_object_block => val[0]}
@@ -2585,5 +2630,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 469
+module_eval <<'.,.,', 'lib/parser.y', 496
   def _reduce_109( val, _values, result )
     result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]}
@@ -2592,5 +2637,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 475
+module_eval <<'.,.,', 'lib/parser.y', 502
   def _reduce_110( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2600,5 +2645,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 480
+module_eval <<'.,.,', 'lib/parser.y', 507
   def _reduce_111( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]}, attr_vals = #{val[1]} at #{@filename}:#{@lineno}")
@@ -2610,5 +2655,5 @@
  # reduce 112 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 486
+module_eval <<'.,.,', 'lib/parser.y', 513
   def _reduce_113( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2618,5 +2663,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 491
+module_eval <<'.,.,', 'lib/parser.y', 518
   def _reduce_114( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}")
@@ -2626,5 +2671,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 496
+module_eval <<'.,.,', 'lib/parser.y', 523
   def _reduce_115( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}")
@@ -2634,5 +2679,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 500
+module_eval <<'.,.,', 'lib/parser.y', 527
   def _reduce_116( val, _values, result )
     result = val[0]
@@ -2641,5 +2686,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 504
+module_eval <<'.,.,', 'lib/parser.y', 531
   def _reduce_117( val, _values, result )
     result = val[0]
@@ -2648,5 +2693,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 508
+module_eval <<'.,.,', 'lib/parser.y', 535
   def _reduce_118( val, _values, result )
     result = val[0]
@@ -2655,5 +2700,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 512
+module_eval <<'.,.,', 'lib/parser.y', 539
   def _reduce_119( val, _values, result )
     result = val[0]
@@ -2662,5 +2707,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 516
+module_eval <<'.,.,', 'lib/parser.y', 543
   def _reduce_120( val, _values, result )
     result = val[0]
@@ -2669,5 +2714,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 521
+module_eval <<'.,.,', 'lib/parser.y', 548
   def _reduce_121( val, _values, result )
     @@log.info("string_value: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2677,5 +2722,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 526
+module_eval <<'.,.,', 'lib/parser.y', 553
   def _reduce_122( val, _values, result )
     @@log.info("integer_value: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2685,5 +2730,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 531
+module_eval <<'.,.,', 'lib/parser.y', 558
   def _reduce_123( val, _values, result )
     @@log.info("real_value: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2693,5 +2738,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 536
+module_eval <<'.,.,', 'lib/parser.y', 563
   def _reduce_124( val, _values, result )
     @@log.info("boolean_value: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2701,5 +2746,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 541
+module_eval <<'.,.,', 'lib/parser.y', 568
   def _reduce_125( val, _values, result )
     @@log.info("character_value: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2709,5 +2754,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 546
+module_eval <<'.,.,', 'lib/parser.y', 573
   def _reduce_126( val, _values, result )
     @@log.info("date_value: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2717,5 +2762,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 551
+module_eval <<'.,.,', 'lib/parser.y', 578
   def _reduce_127( val, _values, result )
     @@log.info("time_value: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2725,5 +2770,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 556
+module_eval <<'.,.,', 'lib/parser.y', 583
   def _reduce_128( val, _values, result )
     @@log.info("date_time_value: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2733,5 +2778,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 561
+module_eval <<'.,.,', 'lib/parser.y', 588
   def _reduce_129( val, _values, result )
     @@log.info("duration_value: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2741,5 +2786,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 566
+module_eval <<'.,.,', 'lib/parser.y', 593
   def _reduce_130( val, _values, result )
     @@log.info("uri_value: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2779,5 +2824,5 @@
  # reduce 145 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 589
+module_eval <<'.,.,', 'lib/parser.y', 616
   def _reduce_146( val, _values, result )
     @@log.info("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2787,5 +2832,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 594
+module_eval <<'.,.,', 'lib/parser.y', 621
   def _reduce_147( val, _values, result )
     @@log.info("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2795,5 +2840,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 600
+module_eval <<'.,.,', 'lib/parser.y', 627
   def _reduce_148( val, _values, result )
     @@log.info("V_STRING: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2809,5 +2854,5 @@
  # reduce 151 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 614
+module_eval <<'.,.,', 'lib/parser.y', 641
   def _reduce_152( val, _values, result )
     begin
@@ -2821,5 +2866,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 623
+module_eval <<'.,.,', 'lib/parser.y', 650
   def _reduce_153( val, _values, result )
     begin
@@ -2833,5 +2878,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 632
+module_eval <<'.,.,', 'lib/parser.y', 659
   def _reduce_154( val, _values, result )
     begin
@@ -2869,5 +2914,5 @@
  # reduce 166 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 658
+module_eval <<'.,.,', 'lib/parser.y', 685
   def _reduce_167( val, _values, result )
     begin
@@ -2881,8 +2926,8 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 667
+module_eval <<'.,.,', 'lib/parser.y', 694
   def _reduce_168( val, _values, result )
     begin
-      real = Float(val[0])
+      real = Float(val[1])
     rescue
       raise
@@ -2893,8 +2938,8 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 676
+module_eval <<'.,.,', 'lib/parser.y', 703
   def _reduce_169( val, _values, result )
     begin
-      real = Float(val[0])
+      real = Float(val[1])
     rescue
       raise
@@ -2929,5 +2974,5 @@
  # reduce 181 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 696
+module_eval <<'.,.,', 'lib/parser.y', 723
   def _reduce_182( val, _values, result )
     result = true
@@ -2936,5 +2981,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 700
+module_eval <<'.,.,', 'lib/parser.y', 727
   def _reduce_183( val, _values, result )
     result = false
@@ -3035,5 +3080,5 @@
  # reduce 229 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 764
+module_eval <<'.,.,', 'lib/parser.y', 791
   def _reduce_230( val, _values, result )
     @@log.info("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}")
@@ -3067,5 +3112,5 @@
  # reduce 242 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 783
+module_eval <<'.,.,', 'lib/parser.y', 810
   def _reduce_243( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}")
@@ -3080,5 +3125,5 @@
  # reduce 246 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 792
+module_eval <<'.,.,', 'lib/parser.y', 819
   def _reduce_247( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}")
@@ -3167,5 +3212,5 @@
  # reduce 287 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 861
+module_eval <<'.,.,', 'lib/parser.y', 888
   def _reduce_288( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
@@ -3174,5 +3219,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 865
+module_eval <<'.,.,', 'lib/parser.y', 892
   def _reduce_289( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
@@ -3181,5 +3226,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 876
+module_eval <<'.,.,', 'lib/parser.y', 903
   def _reduce_290( val, _values, result )
     result = Range.new(1,1)
@@ -3188,5 +3233,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 880
+module_eval <<'.,.,', 'lib/parser.y', 907
   def _reduce_291( val, _values, result )
     result = val[3]
@@ -3195,5 +3240,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 890
+module_eval <<'.,.,', 'lib/parser.y', 917
   def _reduce_292( val, _values, result )
     begin
@@ -3207,5 +3252,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 900
+module_eval <<'.,.,', 'lib/parser.y', 927
   def _reduce_293( val, _values, result )
     begin
@@ -3220,5 +3265,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 905
+module_eval <<'.,.,', 'lib/parser.y', 932
   def _reduce_294( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new
@@ -3249,5 +3294,5 @@
  # reduce 305 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 924
+module_eval <<'.,.,', 'lib/parser.y', 951
   def _reduce_306( val, _values, result )
     result = val[3]
@@ -3348,5 +3393,5 @@
  # reduce 352 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 994
+module_eval <<'.,.,', 'lib/parser.y', 1021
   def _reduce_353( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true)
@@ -3355,5 +3400,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 998
+module_eval <<'.,.,', 'lib/parser.y', 1025
   def _reduce_354( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false)
@@ -3362,5 +3407,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 1002
+module_eval <<'.,.,', 'lib/parser.y', 1029
   def _reduce_355( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false)
@@ -3369,5 +3414,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 1006
+module_eval <<'.,.,', 'lib/parser.y', 1033
   def _reduce_356( val, _values, result )
     result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true)
@@ -3376,5 +3421,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 1011
+module_eval <<'.,.,', 'lib/parser.y', 1038
   def _reduce_357( val, _values, result )
     result = val[0]
@@ -3383,5 +3428,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 1015
+module_eval <<'.,.,', 'lib/parser.y', 1042
   def _reduce_358( val, _values, result )
     raise 'Not implemented yet'
@@ -3390,5 +3435,5 @@
 .,.,
 
-module_eval <<'.,.,', 'lib/parser.y', 1019
+module_eval <<'.,.,', 'lib/parser.y', 1046
   def _reduce_359( val, _values, result )
     raise 'Not implemented yet'
@@ -3407,5 +3452,5 @@
  # reduce 364 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 1032
+module_eval <<'.,.,', 'lib/parser.y', 1059
   def _reduce_365( val, _values, result )
     @in_interval = false
@@ -3431,5 +3476,5 @@
  # reduce 373 omitted
 
-module_eval <<'.,.,', 'lib/parser.y', 1054
+module_eval <<'.,.,', 'lib/parser.y', 1081
   def _reduce_374( val, _values, result )
     @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}")
