Index: ruby/trunk/lib/adl_parser/lib/parser.rb
===================================================================
--- ruby/trunk/lib/adl_parser/lib/parser.rb	(revision 307)
+++ ruby/trunk/lib/adl_parser/lib/parser.rb	(revision 317)
@@ -27,5 +27,5 @@
     class Parser < Racc::Parser
 
-module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1245)
+module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1282)
 
 def assert_at(file,line, message = "")
@@ -750,13 +750,13 @@
   1, 165, :_reduce_128,
   1, 165, :_reduce_129,
-  1, 170, :_reduce_none,
-  1, 170, :_reduce_none,
-  1, 170, :_reduce_none,
-  1, 170, :_reduce_none,
-  1, 170, :_reduce_none,
-  1, 170, :_reduce_none,
-  1, 170, :_reduce_none,
-  1, 170, :_reduce_none,
-  1, 170, :_reduce_none,
+  1, 170, :_reduce_130,
+  1, 170, :_reduce_131,
+  1, 170, :_reduce_132,
+  1, 170, :_reduce_133,
+  1, 170, :_reduce_134,
+  1, 170, :_reduce_135,
+  1, 170, :_reduce_136,
+  1, 170, :_reduce_137,
+  1, 170, :_reduce_138,
   1, 171, :_reduce_none,
   1, 171, :_reduce_none,
@@ -768,7 +768,7 @@
   1, 118, :_reduce_146,
   1, 174, :_reduce_147,
-  3, 184, :_reduce_none,
-  3, 184, :_reduce_none,
-  3, 184, :_reduce_none,
+  3, 184, :_reduce_148,
+  3, 184, :_reduce_149,
+  3, 184, :_reduce_150,
   1, 175, :_reduce_151,
   2, 175, :_reduce_152,
@@ -1959,5 +1959,5 @@
 module_eval(<<'.,.,', 'parser.y', 484)
   def _reduce_87(val, _values, result)
-        @@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section\n attr_vals = #{val[0]}")
+        @@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section attr_vals = \n#{val[0].to_yaml}")
     result = val[0]
   
@@ -1968,5 +1968,5 @@
 module_eval(<<'.,.,', 'parser.y', 489)
   def _reduce_88(val, _values, result)
-        @@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section\n complex_object_block = #{val[0]}")
+        @@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section complex_object_block = \n#{val[0].to_yaml}")
     result = val[0]
   
@@ -2310,21 +2310,76 @@
 .,.,
 
-# reduce 130 omitted
-
-# reduce 131 omitted
-
-# reduce 132 omitted
-
-# reduce 133 omitted
-
-# reduce 134 omitted
-
-# reduce 135 omitted
-
-# reduce 136 omitted
-
-# reduce 137 omitted
-
-# reduce 138 omitted
+module_eval(<<'.,.,', 'parser.y', 686)
+  def _reduce_130(val, _values, result)
+        @@logger.debug("string_list_value: #{val[0]} at #{@filename}:#{@lineno}")
+    result = val[0]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 691)
+  def _reduce_131(val, _values, result)
+        result = val[0]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 695)
+  def _reduce_132(val, _values, result)
+        result = val[0]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 699)
+  def _reduce_133(val, _values, result)
+        result = val[0]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 703)
+  def _reduce_134(val, _values, result)
+        result = val[0]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 707)
+  def _reduce_135(val, _values, result)
+        result = val[0]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 711)
+  def _reduce_136(val, _values, result)
+        result = val[0]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 715)
+  def _reduce_137(val, _values, result)
+        result = val[0]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 719)
+  def _reduce_138(val, _values, result)
+        result = val[0]
+  
+    result
+  end
+.,.,
 
 # reduce 139 omitted
@@ -2340,5 +2395,5 @@
 # reduce 144 omitted
 
-module_eval(<<'.,.,', 'parser.y', 703)
+module_eval(<<'.,.,', 'parser.y', 731)
   def _reduce_145(val, _values, result)
         @@logger.debug("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2349,5 +2404,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 708)
+module_eval(<<'.,.,', 'parser.y', 736)
   def _reduce_146(val, _values, result)
         @@logger.debug("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2358,5 +2413,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 714)
+module_eval(<<'.,.,', 'parser.y', 742)
   def _reduce_147(val, _values, result)
         @@logger.debug("V_STRING: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2367,11 +2422,29 @@
 .,.,
 
-# reduce 148 omitted
-
-# reduce 149 omitted
-
-# reduce 150 omitted
-
-module_eval(<<'.,.,', 'parser.y', 724)
+module_eval(<<'.,.,', 'parser.y', 748)
+  def _reduce_148(val, _values, result)
+        result = [val[0],val[2]]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 752)
+  def _reduce_149(val, _values, result)
+        result = val[0] << val[2]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 756)
+  def _reduce_150(val, _values, result)
+        result = val[0]
+  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 761)
   def _reduce_151(val, _values, result)
         begin
@@ -2386,5 +2459,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 733)
+module_eval(<<'.,.,', 'parser.y', 770)
   def _reduce_152(val, _values, result)
         begin
@@ -2399,5 +2472,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 742)
+module_eval(<<'.,.,', 'parser.y', 779)
   def _reduce_153(val, _values, result)
         begin
@@ -2436,5 +2509,5 @@
 # reduce 165 omitted
 
-module_eval(<<'.,.,', 'parser.y', 768)
+module_eval(<<'.,.,', 'parser.y', 805)
   def _reduce_166(val, _values, result)
         begin
@@ -2449,5 +2522,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 777)
+module_eval(<<'.,.,', 'parser.y', 814)
   def _reduce_167(val, _values, result)
         begin
@@ -2462,5 +2535,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 786)
+module_eval(<<'.,.,', 'parser.y', 823)
   def _reduce_168(val, _values, result)
         begin
@@ -2499,5 +2572,5 @@
 # reduce 180 omitted
 
-module_eval(<<'.,.,', 'parser.y', 811)
+module_eval(<<'.,.,', 'parser.y', 848)
   def _reduce_181(val, _values, result)
         result = true
@@ -2507,5 +2580,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 815)
+module_eval(<<'.,.,', 'parser.y', 852)
   def _reduce_182(val, _values, result)
         result = false
@@ -2529,5 +2602,5 @@
 # reduce 189 omitted
 
-module_eval(<<'.,.,', 'parser.y', 830)
+module_eval(<<'.,.,', 'parser.y', 867)
   def _reduce_190(val, _values, result)
         result = val[0]
@@ -2613,5 +2686,5 @@
 # reduce 228 omitted
 
-module_eval(<<'.,.,', 'parser.y', 881)
+module_eval(<<'.,.,', 'parser.y', 918)
   def _reduce_229(val, _values, result)
         @@logger.debug("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}")
@@ -2646,5 +2719,5 @@
 # reduce 241 omitted
 
-module_eval(<<'.,.,', 'parser.y', 901)
+module_eval(<<'.,.,', 'parser.y', 938)
   def _reduce_242(val, _values, result)
         @@logger.debug("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2661,5 +2734,5 @@
 # reduce 245 omitted
 
-module_eval(<<'.,.,', 'parser.y', 911)
+module_eval(<<'.,.,', 'parser.y', 948)
   def _reduce_246(val, _values, result)
         @@logger.debug("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}")
@@ -2750,5 +2823,5 @@
 # reduce 286 omitted
 
-module_eval(<<'.,.,', 'parser.y', 981)
+module_eval(<<'.,.,', 'parser.y', 1018)
   def _reduce_287(val, _values, result)
         @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") 
@@ -2758,5 +2831,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 985)
+module_eval(<<'.,.,', 'parser.y', 1022)
   def _reduce_288(val, _values, result)
         @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") 
@@ -2766,5 +2839,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 996)
+module_eval(<<'.,.,', 'parser.y', 1033)
   def _reduce_289(val, _values, result)
         result = Range.new(1,1)
@@ -2774,5 +2847,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1000)
+module_eval(<<'.,.,', 'parser.y', 1037)
   def _reduce_290(val, _values, result)
         result = val[3]
@@ -2782,5 +2855,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1005)
+module_eval(<<'.,.,', 'parser.y', 1042)
   def _reduce_291(val, _values, result)
         begin
@@ -2795,5 +2868,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1014)
+module_eval(<<'.,.,', 'parser.y', 1051)
   def _reduce_292(val, _values, result)
         begin
@@ -2809,5 +2882,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1025)
+module_eval(<<'.,.,', 'parser.y', 1062)
   def _reduce_293(val, _values, result)
         result = OpenEhr::AM::Archetype::Constraint_Model::CARDINALITY.new
@@ -2833,5 +2906,5 @@
 # reduce 301 omitted
 
-module_eval(<<'.,.,', 'parser.y', 1039)
+module_eval(<<'.,.,', 'parser.y', 1076)
   def _reduce_302(val, _values, result)
         result = val[0]
@@ -2841,5 +2914,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1043)
+module_eval(<<'.,.,', 'parser.y', 1080)
   def _reduce_303(val, _values, result)
         result = val[0]
@@ -2851,5 +2924,5 @@
 # reduce 304 omitted
 
-module_eval(<<'.,.,', 'parser.y', 1050)
+module_eval(<<'.,.,', 'parser.y', 1087)
   def _reduce_305(val, _values, result)
         case val[3]
@@ -2866,5 +2939,5 @@
 # reduce 306 omitted
 
-module_eval(<<'.,.,', 'parser.y', 1061)
+module_eval(<<'.,.,', 'parser.y', 1098)
   def _reduce_307(val, _values, result)
         result = val[0]
@@ -2874,5 +2947,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1065)
+module_eval(<<'.,.,', 'parser.y', 1102)
   def _reduce_308(val, _values, result)
         result = OpenEhr::RM::Support::AssumedTypes::Interval.new(val[0], val[2])
@@ -2968,5 +3041,5 @@
 # reduce 351 omitted
 
-module_eval(<<'.,.,', 'parser.y', 1131)
+module_eval(<<'.,.,', 'parser.y', 1168)
   def _reduce_352(val, _values, result)
         result = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true)
@@ -2976,5 +3049,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1135)
+module_eval(<<'.,.,', 'parser.y', 1172)
   def _reduce_353(val, _values, result)
         result = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false)
@@ -2984,5 +3057,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1139)
+module_eval(<<'.,.,', 'parser.y', 1176)
   def _reduce_354(val, _values, result)
         result = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false)
@@ -2992,5 +3065,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1143)
+module_eval(<<'.,.,', 'parser.y', 1180)
   def _reduce_355(val, _values, result)
         result = OpenEhr::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true)
@@ -3000,5 +3073,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1148)
+module_eval(<<'.,.,', 'parser.y', 1185)
   def _reduce_356(val, _values, result)
         result = val[0]
@@ -3008,5 +3081,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1152)
+module_eval(<<'.,.,', 'parser.y', 1189)
   def _reduce_357(val, _values, result)
         raise 'Not implemented yet'
@@ -3016,5 +3089,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1156)
+module_eval(<<'.,.,', 'parser.y', 1193)
   def _reduce_358(val, _values, result)
         raise 'Not implemented yet'
@@ -3034,5 +3107,5 @@
 # reduce 363 omitted
 
-module_eval(<<'.,.,', 'parser.y', 1168)
+module_eval(<<'.,.,', 'parser.y', 1205)
   def _reduce_364(val, _values, result)
         @in_interval = false
@@ -3043,5 +3116,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1175)
+module_eval(<<'.,.,', 'parser.y', 1212)
   def _reduce_365(val, _values, result)
           result = val[0]
@@ -3051,5 +3124,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1179)
+module_eval(<<'.,.,', 'parser.y', 1216)
   def _reduce_366(val, _values, result)
           result = val[0]
@@ -3059,5 +3132,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1185)
+module_eval(<<'.,.,', 'parser.y', 1222)
   def _reduce_367(val, _values, result)
         @@logger.debug("#{__FILE__}:#{__LINE__}, START_TERM_CODE_CONSTRAINT = #{val[0]} at #{@filename}")
@@ -3076,5 +3149,5 @@
 # reduce 370 omitted
 
-module_eval(<<'.,.,', 'parser.y', 1201)
+module_eval(<<'.,.,', 'parser.y', 1238)
   def _reduce_371(val, _values, result)
           result = val[0]
@@ -3084,5 +3157,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1206)
+module_eval(<<'.,.,', 'parser.y', 1243)
   def _reduce_372(val, _values, result)
           result = val[0]
@@ -3092,5 +3165,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1210)
+module_eval(<<'.,.,', 'parser.y', 1247)
   def _reduce_373(val, _values, result)
         @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}")
@@ -3101,5 +3174,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 1221)
+module_eval(<<'.,.,', 'parser.y', 1258)
   def _reduce_374(val, _values, result)
         result = val[0]
