source: ruby/trunk/lib/adl_parser/lib/parser.rb@ 263

Last change on this file since 263 was 263, checked in by Tatsukawa, Akimichi, 15 years ago

changed log level setting at parser.y

File size: 111.1 KB
RevLine 
[4]1#
2# DO NOT MODIFY!!!!
[116]3# This file is automatically generated by Racc 1.4.6
4# from Racc grammer file "".
[4]5#
6
[116]7require 'racc/parser.rb'
[4]8
9
10
11$:.unshift File.join(File.dirname(__FILE__))
[17]12require 'logger'
[257]13#require 'lib/adl_parser.rb'
[21]14require 'rubygems'
[257]15require 'adl_parser.rb'
[49]16require 'am.rb'
[257]17require 'rm.rb'
[258]18$DEBUG = true
[4]19
20
21
22module OpenEHR
23 module ADL
24 class Parser < Racc::Parser
25
[261]26module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1206)
[17]27
[22]28def assert_at(file,line, message = "")
29 unless yield
30 raise "Assertion failed !: #{file}, #{line}: #{message}"
31 end
32end
33
[49]34if $DEBUG
[261]35 @@logger = Logger.new('log/parser.log','daily')
[263]36 @@logger.level = Logger::DEBUG
[49]37else
[261]38 @@logger = Logger.new(STDOUT)
39 @@logger.level = Logger::WARN
[49]40end
41
[17]42@@dadl_scanner = OpenEHR::ADL::Scanner::DADL::RootScanner.new
[19]43@@cadl_scanner = OpenEHR::ADL::Scanner::CADL::RootScanner.new
[17]44
[4]45###----------/* keywords */ ---------------------------------------------
46@@adl_reserved = {
47 'archetype' => :SYM_ARCHETYPE,
48 'adl_version' => :SYM_ADL_VERSION,
49 'controlled' => :SYM_IS_CONTROLLED,
50 'specialize' => :SYM_SPECIALIZE,
51 'concept' => :SYM_CONCEPT,
52 'language' => :SYM_LANGUAGE,
53 'description' => :SYM_DESCRIPTION,
54 'definition' => :SYM_DEFINITION,
55 'invariant' => :SYM_INVARIANT,
56 'ontology' => :SYM_ONTOLOGY,
57 'matches' => :SYM_MATCHES,
58 'is_in' => :SYM_MATCHES,
59 'occurrences' => :SYM_OCCURRENCES,
60 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE
61 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE
62 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY
63}
64
65@@dadl_reserved = {
66 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE
67 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE
68 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY
69}
70
71@@cadl_reserved = {
72 'then' => :SYM_THEN, # [Tt][Hh][Ee][Nn]
73 'else' => :SYM_ELSE, # [Ee][Ll][Ss][Ee]
74 'and' => :SYM_AND, # [Aa][Nn][Dd]
75 'or' => :SYM_OR, # [Oo][Rr]
76 'xor' => :SYM_XOR, # [Xx][Oo][Rr]
77 'not' => :SYM_NOT, # [Nn][Oo][Tt]
78 'implies' => :SYM_IMPLIES, # [Ii][Mm][Pp][Ll][Ii][Ee][Ss]
79 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE
80 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE
81 'forall' => :SYM_FORALL, # [Ff][Oo][Rr][_][Aa][Ll][Ll]
82 'exists' => :SYM_EXISTS, # [Ee][Xx][Ii][Ss][Tt][Ss]
83 'existence' => :SYM_EXISTENCE, # [Ee][Xx][Iu][Ss][Tt][Ee][Nn][Cc][Ee]
84 'occurrences' => :SYM_OCCURRENCES, # [Oo][Cc][Cc][Uu][Rr][Rr][Ee][Nn][Cc][Ee][Ss]
85 'cardinality' => :SYM_CARDINALITY, # [Cc][Aa][Rr][Dd][Ii][Nn][Aa][Ll][Ii][Tt][Yy]
86 'ordered' => :SYM_ORDERED, # [Oo][Rr][Dd][Ee][Rr][Ee][Dd]
87 'unordered' => :SYM_UNORDERED, # [Uu][Nn][Oo][Rr][Dd][Ee][Rr][Ee][Dd]
88 'unique' => :SYM_UNIQUE, # [Uu][Nn][Ii][Qq][Uu][Ee]
89 'matches' => :SYM_MATCHES, # [Mm][Aa][Tt][Cc][Hh][Ee][Ss]
90 'is_in' => :SYM_MATCHES, # [Ii][Ss][_][Ii][Nn]
91 'invariant' => :SYM_INVARIANT, # [Ii][Nn][Vv][Aa][Rr][Ii][Aa][Nn][Tt]
92 'infinity' => :SYM_INFINITY, # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY
93 'use_node' => :SYM_USE_NODE, # [Uu][Ss][Ee][_][Nn][Oo][Dd][Ee]
94 'use_archetype' => :SYM_ALLOW_ARCHETYPE, # [Uu][Ss][Ee][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee]
95 'allow_archetype' => :SYM_ALLOW_ARCHETYPE, # [Aa][Ll][Ll][Oo][Ww][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee]
96 'include' => :SYM_INCLUDE, # [Ii][Nn][Cc][Ll][Uu][Dd][Ee]
97 'exclude' => :SYM_EXCLUDE # [Ee][Xx][Cc][Ll][Uu][Dd][Ee]
98}
99
100
101###----------/* Scanner */ -----------------------------------------------
102
103def scan
[261]104 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan at #{@filename}:#{@lineno}:")
[4]105 until @data.nil? do
106 case @adl_type.last
107 when :adl
108 @data = scan_adl(@data) do |sym, val|
109 yield sym, val
110 end
111 when :dadl
112 @data = scan_dadl(@data) do |sym, val|
113 yield sym, val
114 end
115 when :cadl
116 @data = scan_cadl(@data) do |sym, val|
117 yield sym, val
118 end
119 when :regexp
120 @data = scan_regexp(@data) do |sym, val|
121 yield sym, val
122 end
[261]123 when :term_constraint
124 @@logger.debug("#{__FILE__}:#{__LINE__}: scan: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
125 @data = scan_term_constraint(@data) do |sym, val|
126 yield sym, val
127 end
[4]128 else
129 raise
130 end
131 @data = $' # variable $' receives the string after the match
132 end
133 yield :EOF, nil
134 yield false, '$'
135end # of scan
136
137def scan_adl(data)
[261]138 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_adl at #{@filename}:#{@lineno}: data = #{data.inspect}")
[4]139 until data.nil? do
140 case @adl_type.last
141 when :adl
142 case data
143 when /\A\n/ # carriage return
144 @lineno += 1
145 ;
146 when /\A[ \t\r\f]+/ #just drop it
147 ;
148 when /\A--.*\n/ # single line comment
149 @lineno += 1
[261]150 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_adl: COMMENT = #{$&} at #{@filename}:#{@lineno}")
[4]151 ;
152 when /\Adescription/ # description
153 yield :SYM_DESCRIPTION, :SYM_DESCRIPTION
154 when /\Adefinition/ # definition
155 yield :SYM_DEFINITION, :SYM_DEFINITION
156 ###----------/* symbols */ -------------------------------------------------
157 when /\A[A-Z][a-zA-Z0-9_]*/
158 yield :V_TYPE_IDENTIFIER, $&
[257]159# when /\A[a-zA-Z][a-zA-Z0-9_-]+\.[a-zA-Z][a-zA-Z0-9_-]+\.[a-zA-Z0-9]+/ #V_ARCHETYPE_ID
[261]160 when /\A(\w+)-(\w+)-(\w+)\.(\w+)(-\w+)?\.(v\w+)/ #V_ARCHETYPE_ID
[257]161 object_id, rm_originator, rm_name, rm_entity, concept_name, specialisation, version_id = $&, $1, $2, $3, $4, $5, $6
162 archetype_id = OpenEHR::RM::Support::Identification::Archetype_ID.new(object_id, concept_name, rm_name, rm_entity, rm_originator, specialisation, version_id)
163# yield :V_ARCHETYPE_ID, $&
164 yield :V_ARCHETYPE_ID, archetype_id
[4]165 when /\A[a-z][a-zA-Z0-9_]*/
166# word = $&.downcase
167 word = $&
168 if @@adl_reserved[word]
[261]169 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_adl: @@adl_reserved = #{@@adl_reserved[word]} at #{@filename}:#{@lineno}")
[4]170 yield @@adl_reserved[word], @@adl_reserved[word]
171 elsif #/\A[A-Z][a-zA-Z0-9_]*/
[261]172 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_adl: V_ATTRIBUTE_IDENTIFIER = #{$&} at #{@filename}:#{@lineno}")
[4]173 yield :V_ATTRIBUTE_IDENTIFIER, $&
174 end
175 when /\A\=/ # =
176 yield :SYM_EQ, :SYM_EQ
177 when /\A\>=/ # >=
178 yield :SYM_GE, :SYM_GE
179 when /\A\<=/ # <=
180 yield :SYM_LE, :SYM_LE
181 when /\A\</ # <
182 if @in_interval
183# @start_block_received = false
184 yield :SYM_LT, :SYM_LT
185 else
186# @start_block_received = true
187 @adl_type.push(:dadl)
[16]188 yield :SYM_START_DBLOCK, $&
[4]189 end
190 when /\A\>/ # >
191 if @in_interval
192 yield :SYM_GT, :SYM_GT
193 else
194 adl_type = @adl_type.pop
195 assert_at(__FILE__,__LINE__){adl_type == :dadl}
196 yield :SYM_END_DBLOCK, :SYM_END_DBLOCK
197 end
198 when /\A\{/ # {
199 @adl_type.push(:cadl)
[261]200 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: entering cADL at #{@filename}:#{@lineno}")
[4]201 yield :SYM_START_CBLOCK, :SYM_START_CBLOCK
202 when /\A\}/ # }
203 adl_type = @adl_type.pop
204# puts "Escaping #{adl_type}"
205 assert_at(__FILE__,__LINE__){adl_type == :cadl}
[261]206 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: exiting cADL at #{@filename}:#{@lineno}")
[16]207 yield :SYM_END_CBLOCK, $&
[4]208 when /\A\-/ # -
209 yield :Minus_code, :Minus_code
210 when /\A\+/ # +
211 yield :Plus_code, :Plus_code
212 when /\A\*/ # *
213 yield :Star_code, :Star_code
214 when /\A\// # /
215 yield :Slash_code, :Slash_code
216 when /\A\^/ # ^
217 yield :Caret_code, :Caret_code
218 when /\A\=/ # =
219 yield :Equal_code, :Equal_code
220 when /\A\.\.\./ # ...
221 yield :SYM_LIST_CONTINUE, :SYM_LIST_CONTINUE
222 when /\A\.\./ # ..
223 yield :SYM_ELLIPSIS, :SYM_ELLIPSIS
224 when /\A\./ # .
225 yield :Dot_code, :Dot_code
226 when /\A\;/ # ;
227 yield :Semicolon_code, :Semicolon_code
228 when /\A\,/ # ,
229 yield :Comma_code, :Comma_code
230 when /\A\:/ # :
231 yield :Colon_code, :Colon_code
232 when /\A\!/ # !
233 yield :Exclamation_code, :Exclamation_code
234 when /\A\(/ # (
235 yield :Left_parenthesis_code, :Left_parenthesis_code
236 when /\A\)/ # )
237 yield :Right_parenthesis_code, :Right_parenthesis_code
238 when /\A\$/ # $
239 yield :Dollar_code, :Dollar_code
240 when /\A\?\?/ # ??
241 yield :SYM_DT_UNKNOWN, :SYM_DT_UNKNOWN
242 when /\A\?/ # ?
243 yield :Question_mark_code, :Question_mark_code
244 when /\A[0-9]+\.[0-9]+(\.[0-9]+)*/ # ?
[257]245 yield :V_VERSION_STRING, $&
[4]246 when /\A\|/ # |
247 if @in_interval
248 @in_interval = false
249 else
250 @in_interval = true
251 end
252 yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
253 when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/
254# when /\A\[[a-zA-Z0-9()\._-]+\:\:[a-zA-Z0-9\._-]+\]/ #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
255 yield :V_QUALIFIED_TERM_CODE_REF, $&
256 when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/ #V_LOCAL_TERM_CODE_REF
257 yield :V_LOCAL_TERM_CODE_REF, $&
258 when /\A\[/ # [
259 yield :Left_bracket_code, :Left_bracket_code
260 when /\A\]/ # ]
261 yield :Right_bracket_code, :Right_bracket_code
262
[257]263 when /\A"([^"]*)"/m #V_STRING
264 yield :V_STRING, $1
[4]265 when /\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/ #ERR_V_QUALIFIED_TERM_CODE_REF
266 yield :ERR_V_QUALIFIED_TERM_CODE_REF, $&
267 when /\Aa[ct][0-9.]+/ #V_LOCAL_CODE
268 yield :V_LOCAL_CODE, $&
269 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9]:[0-6][0-9](,[0-9]+)?(Z|[+-][0-9]{4})?|[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9](Z|[+-][0-9]{4})?|[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9](Z|[+-][0-9]{4})?/ #V_ISO8601_EXTENDED_DATE_TIME YYYY-MM-DDThh:mm:ss[,sss][Z|+/- -n-n-n-n-]-
270 yield :V_ISO8601_EXTENDED_DATE_TIME, $&
271 when /\A[0-2][0-9]:[0-6][0-9]:[0-6][0-9](,[0-9]+)?(Z|[+-][0-9]{4})?|[0-2][0-9]:[0-6][0-9](Z|[+-][0-9]{4})? / #V_ISO8601_EXTENDED_TIME hh:mm:ss[,sss][Z|+/-nnnn]
272 yield :V_ISO8601_EXTENDED_TIME, $&
273 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]|[0-9]{4}-[0-1][0-9]/ #V_ISO8601_EXTENDED_DATE YYYY-MM-DD
274 yield :V_ISO8601_EXTENDED_DATE, $&
275 when /\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/ #V_GENERIC_TYPE_IDENTIFIER
276 yield :V_GENERIC_TYPE_IDENTIFIER, $&
277 when /\A[0-9]+|[0-9]+[eE][+-]?[0-9]+/ #V_INTEGER
278 yield :V_INTEGER, $&
279 when /\A[0-9]+\.[0-9]+|[0-9]+\.[0-9]+[eE][+-]?[0-9]+ / #V_REAL
280 yield :V_REAL, $&
281 # when /\A"((?:[^"\\]+|\\.)*)"/ #V_STRING
282 when /\A[a-z]+:\/\/[^<>|\\{}^~"\[\] ]*/ #V_URI
283 yield :V_URI, $&
284 when /\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?T([0-9]+[hH])?([0-9]+[mM])?([0-9]+[sS])?|P([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?/ #V_ISO8601_DURATION PnYnMnWnDTnnHnnMnnS
285 yield :V_ISO8601_DURATION, $&
286 when /\A\S/ #UTF8CHAR
287 yield :UTF8CHAR, $&
288 end
289 data = $' # variable $' receives the string after the match
290 when :dadl
291 data = scan_dadl(data) do |sym, val|
292 yield sym, val
293 end
294 when :cadl
295 data = scan_cadl(data) do |sym, val|
296 yield sym, val
297 end
298 when :regexp
299 data = scan_regexp(data) do |sym, val|
300 yield sym, val
301 end
302 when :term_constraint
[261]303 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_adl: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
304
[4]305 data = scan_term_constraint(data) do |sym, val|
306 yield sym, val
307 end
308 else
309 raise
310 end
311 end
312end # scan_adl
313
314
315def scan_cadl(data)
[261]316 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_cadl at #{@filename}:#{@lineno}: data = #{data.inspect}")
[4]317 until data.nil? do
318 case @adl_type.last
319 when :cadl
[19]320 case scanned = @@cadl_scanner.parse(data)
321 when Yaparc::Result::OK
322 if scanned.value[0] == :START_V_C_DOMAIN_TYPE_BLOCK
323 @in_c_domain_type = true
324 @adl_type.push(:dadl)
325 yield scanned.value
326 else
327 yield scanned.value
328 end
329 data = scanned.input
330 end
331
[4]332 case data
333 when /\A\n/ # carriage return
334 @lineno += 1
335 ;
336 when /\A[ \t\r\f]+/ #just drop it
337 ;
338 when /\A--.*\n/ # single line comment
339 @lineno += 1
[261]340 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: COMMENT = #{$&} at #{@filename}:#{@lineno}")
[4]341 ;
342 ###----------/* symbols */ -------------------------------------------------
343 when /\A\=/ # =
344 yield :SYM_EQ, :SYM_EQ
345 when /\A\>=/ # >=
346 yield :SYM_GE, :SYM_GE
347 when /\A\<=/ # <=
348 yield :SYM_LE, :SYM_LE
[19]349### when /\A[A-Z][a-zA-Z0-9_]*[ \n]*\</ # V_C_DOMAIN_TYPE
350### @in_c_domain_type = true
351### @adl_type.push(:dadl)
352### yield :START_V_C_DOMAIN_TYPE_BLOCK, $&
[4]353 when /\A\</ # <
354 if @in_interval
355 yield :SYM_LT, :SYM_LT
356 else
357 @adl_type.push(:dadl)
[16]358 yield :SYM_START_DBLOCK, $&
[4]359 end
360 when /\A\>/ # >
361 if @in_interval
362 yield :SYM_GT, :SYM_GT
363 else
364 adl_type = @adl_type.pop
365# puts "Escaping #{adl_type}"
366 assert_at(__FILE__,__LINE__){adl_type == :dadl}
367 yield :SYM_END_DBLOCK, :SYM_END_DBLOCK
368 end
369 when /\A\-/ # -
370 yield :Minus_code, :Minus_code
371 when /\A\+/ # +
372 yield :Plus_code, :Plus_code
373 when /\A\*/ # *
374 yield :Star_code, :Star_code
375 when /\A\// # /
376 yield :Slash_code, :Slash_code
377 when /\A\^/ # ^
378 yield :Caret_code, :Caret_code
379 when /\A\.\.\./ # ...
380 yield :SYM_LIST_CONTINUE, :SYM_LIST_CONTINUE
381 when /\A\.\./ # ..
382 yield :SYM_ELLIPSIS, :SYM_ELLIPSIS
383 when /\A\./ # .
384 yield :Dot_code, :Dot_code
385 when /\A\;/ # ;
386 yield :Semicolon_code, :Semicolon_code
387 when /\A\,/ # ,
388 yield :Comma_code, :Comma_code
389 when /\A\:/ # :
390 yield :Colon_code, :Colon_code
391 when /\A\!/ # !
392 yield :Exclamation_code, :Exclamation_code
393 when /\A\(/ # (
394 yield :Left_parenthesis_code, :Left_parenthesis_code
395 when /\A\)/ # )
396 yield :Right_parenthesis_code, :Right_parenthesis_code
397 when /\A\{\// #V_REGEXP
398 if @adl_type.last != :regexp
399 @in_regexp = true
400 @adl_type.push(:regexp)
401 yield :START_REGEXP_BLOCK, :START_REGEXP_BLOCK
402 else
403 raise
404 end
405# yield :V_REGEXP, :V_REGEXP
406 when /\A\{/ # {
407 @adl_type.push(:cadl)
[261]408 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: entering cADL at #{@filename}:#{@lineno}")
[4]409 yield :SYM_START_CBLOCK, :SYM_START_CBLOCK
410 when /\A\}/ # }
411 adl_type = @adl_type.pop
412# puts "Escaping #{adl_type}"
413 assert_at(__FILE__,__LINE__){adl_type == :cadl}
[261]414 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: exiting cADL at #{@filename}:#{@lineno}")
[4]415 yield :SYM_END_CBLOCK, :SYM_END_CBLOCK
416 when /\A\$/ # $
417 yield :Dollar_code, :Dollar_code
418 when /\A\?\?/ # ??
419 yield :SYM_DT_UNKNOWN, :SYM_DT_UNKNOWN
420 when /\A\?/ # ?
421 yield :Question_mark_code, :Question_mark_code
422 when /\A\|/ # |
[261]423 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: @in_interval = #{@in_interval} at #{@filename}:#{@lineno}")
[4]424 if @in_interval
425 @in_interval = false
426 else
[20]427# @in_interval = false
428 @in_interval = true
[4]429 end
[261]430 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: SYM_INTERVAL_DELIM at #{@filename}:#{@lineno}")
[4]431 yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
[19]432
[261]433 when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/ #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
434# when /\A\[[a-zA-Z0-9._\-]+::[a-zA-Z0-9._\-]+\]/ #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
[4]435 yield :V_QUALIFIED_TERM_CODE_REF, $&
436 when /\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/ #ERR_V_QUALIFIED_TERM_CODE_REF
437 yield :ERR_V_QUALIFIED_TERM_CODE_REF, $&
[261]438 when /\A\[([a-zA-Z0-9\(\)\._\-]+)::[ \t\n]*/
[4]439 @adl_type.push(:term_constraint)
[261]440 yield :START_TERM_CODE_CONSTRAINT, $1
[4]441 when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/ #V_LOCAL_TERM_CODE_REF
442 yield :V_LOCAL_TERM_CODE_REF, $&
443 when /\A\[/ # [
444 yield :Left_bracket_code, :Left_bracket_code
445 when /\A\]/ # ]
446 yield :Right_bracket_code, :Right_bracket_code
447 when /\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/ #V_GENERIC_TYPE_IDENTIFIER
448 yield :V_GENERIC_TYPE_IDENTIFIER, $&
449 when /\A[yY][yY][yY][yY]-[mM?X][mM?X]-[dD?X][dD?X][T\t][hH?X][hH?X]:[mM?X][mM?X]:[sS?X][sS?X]/
450 yield :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN, $&
451 when /\A[yY][yY][yY][yY]-[mM?X][mM?X]-[dD?X][dD?X]/
452 yield :V_ISO8601_DATE_CONSTRAINT_PATTERN, $&
453 when /\A[hH][hH]:[mM?X][mM?X]:[sS?X][sS?X]/
454 yield :V_ISO8601_TIME_CONSTRAINT_PATTERN, $&
455 when /\A[a-z][a-zA-Z0-9_]*/
456 word = $&.dup
457 if @@cadl_reserved[word.downcase]
458 yield @@cadl_reserved[word.downcase], @@cadl_reserved[word.downcase]
459 else
[261]460 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}:#{@lineno}")
[4]461 yield :V_ATTRIBUTE_IDENTIFIER, word #V_ATTRIBUTE_IDENTIFIER /\A[a-z][a-zA-Z0-9_]*/
462 end
463 when /\A[A-Z][a-zA-Z0-9_]*/
464 word = $&.dup
465 if @@cadl_reserved[word.downcase]
466 yield @@cadl_reserved[word.downcase], @@cadl_reserved[word.downcase]
467 else
468 yield :V_TYPE_IDENTIFIER, $&
469 end
470 when /\Aa[ct][0-9.]+/ #V_LOCAL_CODE
471 yield :V_LOCAL_CODE, $&
472 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9]:[0-6][0-9](,[0-9]+)?(Z|[+-][0-9]{4})?|[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9](Z|[+-][0-9]{4})?|[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9](Z|[+-][0-9]{4})?/ #V_ISO8601_EXTENDED_DATE_TIME YYYY-MM-DDThh:mm:ss[,sss][Z|+/- -n-n-n-n-]-
473 yield :V_ISO8601_EXTENDED_DATE_TIME, $&
474 when /\A[0-2][0-9]:[0-6][0-9]:[0-6][0-9](,[0-9]+)?(Z|[+-][0-9]{4})?|[0-2][0-9]:[0-6][0-9](Z|[+-][0-9]{4})? / #V_ISO8601_EXTENDED_TIME hh:mm:ss[,sss][Z|+/-nnnn]
475 yield :V_ISO8601_EXTENDED_TIME, $&
476 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]|[0-9]{4}-[0-1][0-9]/ #V_ISO8601_EXTENDED_DATE YYYY-MM-DD
477 yield :V_ISO8601_EXTENDED_DATE, $&
478 when /\A[0-9]+|[0-9]+[eE][+-]?[0-9]+/ #V_INTEGER
479 yield :V_INTEGER, $&
480 when /\A[0-9]+\.[0-9]+|[0-9]+\.[0-9]+[eE][+-]?[0-9]+ / #V_REAL
481 yield :V_REAL, $&
[19]482 when /\A"((?:[^"\\]+|\\.)*)"/ #V_STRING
[4]483 when /\A"([^"]*)"/m #V_STRING
484 yield :V_STRING, $1
485 when /\A[a-z]+:\/\/[^<>|\\{}^~"\[\] ]*/ #V_URI
486 yield :V_URI, $&
[19]487### when /\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?T([0-9]+[hH])?([0-9]+[mM])?([0-9]+[sS])?|P([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?/ #V_ISO8601_DURATION PnYnMnWnDTnnHnnMnnS
488### yield :V_ISO8601_DURATION, $&
[4]489 when /\A\S/ #UTF8CHAR
490 yield :UTF8CHAR, $&
491 else
492 raise
493 end
494 data = $' # variable $' receives the string after the match
495 when :adl
496 data = scan_adl(data) do |sym, val|
497 yield sym, val
498 end
499 when :dadl
500 data = scan_dadl(data) do |sym, val|
501 yield sym, val
502 end
503 when :regexp
504 data = scan_regexp(data) do |sym, val|
505 yield sym, val
506 end
507 when :term_constraint
[261]508 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
509
[4]510 data = scan_term_constraint(data) do |sym, val|
511 yield sym, val
512 end
513 else
514 raise
515 end
516 end # of until
517end # of scan_cadl
518
519def scan_dadl(data)
[261]520 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_dadl at #{@filename}:#{@lineno}: data = #{data.inspect}")
[4]521 until data.nil? do
522 case @adl_type.last
523 when :dadl
[17]524 case scanned = @@dadl_scanner.parse(data)
525 when Yaparc::Result::OK
526 yield scanned.value
527 data = scanned.input
528 else
529 end
530
[4]531 case data
532 when /\A\n/ # carriage return
533 @lineno += 1
534 ;
535 when /\A[ \t\r\f]+/ #just drop it
536 ;
537 when /\A--.*\n/ # single line comment
538 @lineno += 1
[261]539 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_dadl: COMMENT = #{$&} at #{@filename}:#{@lineno}")
[4]540 ;
541 ###----------/* symbols */ -------------------------------------------------
542 when /\A\=/ # =
543 yield :SYM_EQ, :SYM_EQ
544 when /\A\>\=/ # >=
545 yield :SYM_GE, :SYM_GE
546 when /\A\<\=/ # <=
547 yield :SYM_LE, :SYM_LE
548 when /\A\</ # <
549 if @in_interval
550 yield :SYM_LT, :SYM_LT
551 else
552 @adl_type.push(:dadl)
553 yield :SYM_START_DBLOCK, :SYM_START_DBLOCK
554 end
555 when /\A\>/ # >
556 if @in_interval
[20]557# @in_interval = false
[4]558 yield :SYM_GT, :SYM_GT
[16]559 elsif @in_c_domain_type == true
560 assert_at(__FILE__,__LINE__){@adl_type.last == :dadl}
[14]561 adl_type = @adl_type.pop
[16]562 if @adl_type.last == :cadl
563 @in_c_domain_type = false
564 yield :END_V_C_DOMAIN_TYPE_BLOCK, $&
565 else
566 yield :SYM_END_DBLOCK, $&
567 end
568 elsif @in_c_domain_type == false
[4]569 adl_type = @adl_type.pop
570 assert_at(__FILE__,__LINE__){adl_type == :dadl}
[16]571 yield :SYM_END_DBLOCK, $&
572 else
573 raise
[4]574 end
575 when /\A\-/ # -
576 yield :Minus_code, :Minus_code
577 when /\A\+/ # +
578 yield :Plus_code, :Plus_code
579 when /\A\*/ # *
580 yield :Star_code, :Star_code
581 when /\A\// # /
582 yield :Slash_code, :Slash_code
583 when /\A\^/ # ^
584 yield :Caret_code, :Caret_code
585 when /\A\.\.\./ # ...
586 yield :SYM_LIST_CONTINUE, :SYM_LIST_CONTINUE
587 when /\A\.\./ # ..
588 yield :SYM_ELLIPSIS, :SYM_ELLIPSIS
589 when /\A\./ # .
590 yield :Dot_code, :Dot_code
591 when /\A\;/ # ;
592 yield :Semicolon_code, :Semicolon_code
593 when /\A\,/ # ,
594 yield :Comma_code, :Comma_code
595 when /\A\:/ # :
596 yield :Colon_code, :Colon_code
597 when /\A\!/ # !
598 yield :Exclamation_code, :Exclamation_code
599 when /\A\(/ # (
600 yield :Left_parenthesis_code, :Left_parenthesis_code
601 when /\A\)/ # )
602 yield :Right_parenthesis_code, :Right_parenthesis_code
603 when /\A\$/ # $
604 yield :Dollar_code, :Dollar_code
605 when /\A\?\?/ # ??
606 yield :SYM_DT_UNKNOWN, :SYM_DT_UNKNOWN
607 when /\A\?/ # ?
608 yield :Question_mark_code, :Question_mark_code
609 when /\A\|/ # |
[261]610 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_dadl: @in_interval = #{@in_interval} at #{@filename}:#{@lineno}")
[4]611 if @in_interval
612 @in_interval = false
613 else
[20]614# @in_interval = false
615 @in_interval = true
[4]616 end
[261]617 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_dadl: SYM_INTERVAL_DELIM at #{@filename}:#{@lineno}")
[4]618 yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
[17]619### when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/ #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
620### yield :V_QUALIFIED_TERM_CODE_REF, $&
621### when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/ #V_LOCAL_TERM_CODE_REF
622### yield :V_LOCAL_TERM_CODE_REF, $&
[18]623### when /\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/ #ERR_V_QUALIFIED_TERM_CODE_REF
624### yield :ERR_V_QUALIFIED_TERM_CODE_REF, $&
[4]625 when /\A\[/ # [
626 yield :Left_bracket_code, :Left_bracket_code
627 when /\A\]/ # ]
628 yield :Right_bracket_code, :Right_bracket_code
[18]629### when /\A[A-Z][a-zA-Z0-9_-]*/
630### yield :V_TYPE_IDENTIFIER, $&
631### when /\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/ #V_GENERIC_TYPE_IDENTIFIER
632### yield :V_GENERIC_TYPE_IDENTIFIER, $&
633### when /\A[a-z][a-zA-Z0-9_]*/
634### word = $&.downcase
635### if @@dadl_reserved[word]
636### yield @@dadl_reserved[word], @@dadl_reserved[word]
637### else
638### yield :V_ATTRIBUTE_IDENTIFIER, $&
639### end
640### when /\Aa[ct][0-9.]+/ #V_LOCAL_CODE
641### yield :V_LOCAL_CODE, $&
[4]642 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9]:[0-6][0-9](,[0-9]+)?(Z|[+-][0-9]{4})?|[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9](Z|[+-][0-9]{4})?|[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9](Z|[+-][0-9]{4})?/ #V_ISO8601_EXTENDED_DATE_TIME YYYY-MM-DDThh:mm:ss[,sss][Z|+/- -n-n-n-n-]-
643 yield :V_ISO8601_EXTENDED_DATE_TIME, $&
644 when /\A[0-2][0-9]:[0-6][0-9]:[0-6][0-9](,[0-9]+)?(Z|[+-][0-9]{4})?|[0-2][0-9]:[0-6][0-9](Z|[+-][0-9]{4})? / #V_ISO8601_EXTENDED_TIME hh:mm:ss[,sss][Z|+/-nnnn]
645 yield :V_ISO8601_EXTENDED_TIME, $&
646 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]|[0-9]{4}-[0-1][0-9]/ #V_ISO8601_EXTENDED_DATE YYYY-MM-DD
647 yield :V_ISO8601_EXTENDED_DATE, $&
648 when /\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/ #V_GENERIC_TYPE_IDENTIFIER
649 yield :V_GENERIC_TYPE_IDENTIFIER, $&
650 when /\A[0-9]+|[0-9]+[eE][+-]?[0-9]+/ #V_INTEGER
651 yield :V_INTEGER, $&
[18]652### when /\A[0-9]+\.[0-9]+|[0-9]+\.[0-9]+[eE][+-]?[0-9]+ / #V_REAL
653### yield :V_REAL, $&
[4]654 # when /\A"((?:[^"\\]+|\\.)*)"/ #V_STRING
[18]655### when /\A"([^"]*)"/m #V_STRING
656### yield :V_STRING, $1
[4]657 when /\A[a-z]+:\/\/[^<>|\\{}^~"\[\] ]*/ #V_URI
658 yield :V_URI, $&
[19]659### when /\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?T([0-9]+[hH])?([0-9]+[mM])?([0-9]+[sS])?|P([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?/ #V_ISO8601_DURATION PnYnMnWnDTnnHnnMnnS
660### yield :V_ISO8601_DURATION, $&
[4]661 when /\A\S/ #UTF8CHAR
662 yield :UTF8CHAR, $&
663 end
664 data = $' # variable $' receives the string after the match
665 when :adl
666 data = scan_adl(data) do |sym, val|
667 yield sym, val
668 end
669 when :cadl
670 data = scan_cadl(data) do |sym, val|
671 yield sym, val
672 end
673 when :regexp
674# puts "Entering scan_regexp"
675 data = scan_regexp(data) do |sym, val|
676 yield sym, val
677 end
678 when :term_constraint
[261]679 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_dadl: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
680
[4]681 data = scan_term_constraint(data) do |sym, val|
682 yield sym, val
683 end
684 else
685 raise
686 end
687 end
688end # of scan_dadl
689
690def scan_regexp(data)
[261]691 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_regexp at #{@filename}:#{@lineno}: data = #{data.inspect}")
[4]692 until data.nil? do
693 case @adl_type.last
694 when :regexp
695 case data
696 when /\A\/\}/ #V_REGEXP
697 if @adl_type.last == :regexp
698 @in_regexp = false
699 @adl_type.pop
700 yield :END_REGEXP_BLOCK, :END_REGEXP_BLOCK
701 else
702 raise
703 end
704 when /\A(.*)(\/\})/ #V_REGEXP
705 yield :REGEXP_BODY, $1
706 if @adl_type.last == :regexp
707 @in_regexp = false
708 @adl_type.pop
709 yield :END_REGEXP_BLOCK, :END_REGEXP_BLOCK
710 else
711 raise
712 end
713 else
714 raise data
715 end
716 data = $' # variable $' receives the string after the match
717 when :adl
718 data = scan_adl(data) do |sym, val|
719 yield sym, val
720 end
721 when :dadl
722 data = scan_dadl(data) do |sym, val|
723 yield sym, val
724 end
725 when :cadl
726 data = scan_cadl(data) do |sym, val|
727 yield sym, val
728 end
729 when :term_constraint
[261]730 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_regexp: Entering scan_term_constraint at #{@filename}:#{@lineno}")
[4]731 data = scan_term_constraint(data) do |sym, val|
732 yield sym, val
733 end
734 else
735 raise
736 end
737 end
738end # of scan_regexp
739
740def scan_term_constraint(data)
[261]741 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_term_constraint")
[4]742 until data.nil? do
743 case @adl_type.last
744 when :term_constraint
745 case data
746 when /\A\n/ # carriage return
747 @lineno += 1
748 ;
749 when /\A[ \t\r\f]+/ #just drop it
750 ;
751 when /\A--.*$/ # single line comment
752 @lineno += 1
[261]753 #@@logger.debug("#{__FILE__}:#{__LINE__}: scan_term_constraint: COMMENT = #{$&} at #{@filename}:#{@lineno}")
[4]754 ;
[261]755 when /\A([a-zA-Z0-9\._\-])+[ \t]*,/ # match any line, with ',' termination
756 yield :TERM_CODE, $1
757 when /\A([a-zA-Z0-9\._\-])+[ \t]*;/ # match second last line with ';' termination (assumed value)
758 yield :TERM_CODE, $1
759 when /\A([a-zA-Z0-9\._\-])*[ \t]*\]/ # match final line, terminating in ']'
[4]760 adl_type = @adl_type.pop
761 assert_at(__FILE__,__LINE__){adl_type == :term_constraint}
[261]762 yield :END_TERM_CODE_CONSTRAINT, $1
[4]763 else
764 raise "data = #{data}"
765 end
766 data = $' # variable $' receives the string after the match
767 when :adl
768 data = scan_adl(data) do |sym, val|
769 yield sym, val
770 end
771 when :dadl
772 data = scan_dadl(data) do |sym, val|
773 yield sym, val
774 end
775 when :cadl
776 data = scan_cadl(data) do |sym, val|
777 yield sym, val
778 end
779 else
780 raise
781 end
782 end
783end # of scan_term_constraint
784
785
786def parse(data, filename, lineno = 1, debug = false)
787 @yydebug = true
788 @parsestring = data
789 @data = data
790 @lineno = lineno
791 @filename = filename
792 @adl_type = [:adl] # {:adl, :cadl, :dadl}
793 @in_regexp = false
794 @in_interval = false
[14]795 @in_c_domain_type = false
[4]796 yyparse self, :scan
797end
798
799def on_error( t, v, values)
800 raise Racc::ParseError, "#{@filename}:#{@lineno}: Inline syntax error on #{v.inspect}"
801end
802
803
804
805
806
807
808
809### Local Variables:
810### mode:ruby
811### mode:font-lock
812### comment-column:0
813### comment-start: "### "
814### comment-end:""
815### End:
[116]816...end parser.y/module_eval...
817##### State transition tables begin ###
[4]818
819racc_action_table = [
[32]820 576, 483, 147, 164, 476, 594, 474, 59, 215, 472,
821 131, 470, 452, 578, 575, 464, 462, 29, 383, 341,
822 387, 67, 385, 321, 155, 157, 25, 26, 526, 114,
823 119, 216, 73, 500, 190, 121, 36, 513, 515, 463,
824 518, 519, 36, 517, 502, 30, 62, 574, 148, 155,
825 157, 434, 49, 51, 284, 112, 444, 81, 84, 87,
826 194, 160, 97, 309, 314, 238, 114, 117, 119, 121,
827 534, 526, 121, 121, 119, 73, 117, 114, 128, 129,
828 513, 515, 79, 518, 519, 277, 160, 281, 286, 288,
829 537, 163, 119, 298, 75, 49, 51, 284, 152, 153,
830 81, 84, 87, 194, 121, 97, 309, 314, 114, 114,
831 117, 119, 121, 534, 102, 119, 436, 230, 232, 494,
832 168, 498, 134, 152, 153, 9, 73, 496, 155, 157,
833 281, 286, 288, 537, 155, 157, 298, 71, 102, 338,
834 249, 322, 631, 323, 344, 11, 49, 51, 111, 248,
835 231, 81, 84, 87, 467, 117, 97, 100, 101, 155,
836 157, 140, 102, 100, 101, 160, 91, 95, 325, 326,
837 135, 160, 97, 79, 117, 81, 84, 87, 468, 117,
838 97, 100, 101, 389, 114, 140, 190, 155, 157, 138,
839 91, 95, 173, 155, 157, 121, 160, 79, 392, 81,
840 84, 87, 152, 153, 97, 100, 101, -374, 152, 153,
841 -373, 81, 329, 330, 91, 95, 155, 157, 219, 158,
842 161, 79, 571, 151, 160, 22, 154, 156, 155, 157,
843 160, 158, 161, 152, 153, 151, 325, 326, 154, 156,
844 97, 219, 242, 23, 238, 544, 103, 573, 541, 394,
845 601, 542, 543, 160, 1, 81, 84, 87, 602, 603,
846 97, 152, 153, 263, 109, 160, 256, 152, 153, 259,
847 261, 395, 67, 4, 49, 51, 103, 79, 81, 84,
848 87, 144, 16, 97, 17, 159, 145, 102, 49, 51,
849 152, 153, 333, 36, 325, 326, 219, 159, 97, 149,
850 79, 396, 152, 153, 150, 121, 219, 81, 329, 330,
851 140, 81, 84, 87, 102, 16, 97, 17, 49, 51,
852 114, 117, 119, 121, 81, 84, 87, 128, 129, 97,
853 100, 101, 219, 81, 84, 87, 420, 140, 97, 91,
854 95, 272, 219, 81, 84, 87, 79, 416, 97, 277,
855 272, 81, 84, 87, 398, 79, 97, 100, 101, 389,
856 102, 481, 415, 329, 330, 79, 91, 95, 335, 81,
857 84, 87, 102, 79, 97, 128, 129, 212, 241, 81,
858 84, 87, 242, 71, 97, 325, 326, 35, 240, 97,
859 244, 79, 49, 51, 399, 140, 400, 81, 84, 87,
860 102, 79, 97, 100, 101, 401, 418, 402, 219, 81,
861 84, 87, 91, 95, 97, 100, 101, 403, 40, 79,
862 36, 629, 630, 71, 91, 95, 404, 219, 35, 49,
863 51, 79, 49, 51, 81, 329, 330, 81, 84, 87,
864 102, 405, 97, 100, 101, 81, 84, 87, 431, 432,
865 97, 406, 91, 95, 81, 329, 330, 492, 102, 79,
866 407, 36, 408, 71, 81, 84, 87, 79, 409, 97,
867 49, 51, 49, 51, 429, 430, 219, 81, 84, 87,
868 410, 71, 97, 100, 101, 102, 79, 81, 329, 330,
869 49, 51, 91, 95, 270, 81, 84, 87, 411, 79,
870 97, 100, 101, 102, 239, 81, 329, 330, 140, 247,
871 91, 95, 246, 81, 84, 87, 145, 79, 97, 81,
872 329, 330, 81, 84, 87, 150, 140, 97, 100, 101,
873 144, 102, 611, 612, 613, 79, 416, 91, 95, 219,
874 81, 84, 87, 149, 79, 97, 100, 101, 245, 219,
875 244, 415, 329, 330, 71, 91, 95, 219, 172, 169,
876 170, 171, 79, 49, 51, 346, 347, 35, 81, 84,
877 87, 348, 349, 97, 100, 101, 81, 84, 87, 251,
878 102, 97, 56, 91, 95, 252, 81, 84, 87, 416,
879 79, 97, 35, 253, 81, 84, 87, 264, 79, 97,
880 36, 427, 428, 140, 81, 329, 330, 265, 79, 49,
881 51, 325, 326, 356, 357, 97, 79, 81, 84, 87,
882 358, 359, 97, 100, 101, 36, 325, 326, 425, 426,
883 97, 119, 91, 95, 49, 51, 243, 284, 242, 79,
884 81, 84, 87, 194, 437, 97, 309, 314, 438, 114,
885 117, 119, 121, 81, 84, 87, 325, 326, 97, 439,
886 97, 440, 114, 117, 119, 121, 172, 169, 170, 171,
887 281, 286, 288, -103, 366, 367, 298, 176, 423, 424,
888 81, 84, 87, 194, 441, 97, 128, 129, 111, 114,
889 117, 119, 121, 190, 124, 112, 374, 375, 81, 84,
890 87, 421, 422, 97, 128, 129, 111, 114, 117, 119,
891 121, 442, 124, 81, 84, 87, 49, 51, 97, 81,
892 329, 330, 114, 117, 119, 121, 81, 84, 87, 241,
893 445, 97, 446, 447, 448, 114, 117, 119, 121, 81,
894 84, 87, 449, 450, 97, 240, 453, 454, 114, 117,
895 119, 121, 172, 169, 170, 171, 172, 169, 170, 171,
896 328, 81, 329, 330, 172, 169, 170, 171, 172, 169,
897 170, 171, 172, 169, 170, 171, 172, 169, 170, 171,
898 172, 169, 170, 171, 455, 456, 457, 458, 460, 461,
899 140, 214, 148, 138, 213, 210, 103, 166, 478, 480,
900 266, 482, 163, 485, 486, 487, 117, 489, 146, 140,
901 139, 136, 36, 110, 69, 503, 114, 505, 117, 507,
902 119, 509, 121, 511, 512, 35, 540, 62, 58, 546,
903 547, 548, 267, 550, 57, 552, 114, 554, 117, 556,
904 119, 558, 121, 560, 561, 562, 563, 564, 565, 163,
905 -103, 569, 250, 54, 173, 34, 114, 31, 580, 581,
906 582, 121, 121, 28, 121, 583, 584, 585, 586, 587,
907 588, 268, 591, 592, 593, 24, 596, 597, 111, 21,
908 269, 604, 605, 606, 607, 79, 573, 609, 270, 271,
909 619, 620, 621, 622, 15, 624, 14, 625, 12, 627,
910 628, 319, 8, 7, 121 ]
[4]911
912racc_action_check = [
[32]913 531, 410, 86, 91, 405, 570, 404, 43, 147, 403,
914 63, 402, 375, 531, 529, 398, 395, 21, 265, 250,
915 267, 52, 266, 231, 222, 222, 18, 18, 531, 250,
916 265, 147, 531, 430, 267, 266, 43, 531, 531, 395,
917 531, 531, 52, 462, 432, 21, 63, 529, 86, 320,
918 320, 357, 531, 531, 531, 410, 367, 531, 531, 531,
919 531, 222, 531, 531, 531, 320, 531, 531, 531, 531,
920 531, 462, 375, 405, 404, 462, 403, 402, 398, 398,
921 462, 462, 91, 462, 462, 462, 320, 531, 531, 531,
922 531, 570, 430, 531, 54, 462, 462, 462, 222, 222,
923 462, 462, 462, 462, 432, 462, 462, 462, 357, 462,
924 462, 462, 462, 462, 54, 367, 359, 163, 166, 424,
925 95, 428, 69, 320, 320, 4, 54, 426, 227, 227,
926 462, 462, 462, 462, 229, 229, 462, 54, 166, 248,
927 188, 240, 624, 240, 252, 4, 54, 54, 248, 187,
928 163, 54, 54, 54, 400, 252, 54, 54, 54, 224,
929 224, 166, 624, 95, 95, 227, 54, 54, 424, 424,
930 69, 229, 424, 54, 359, 166, 166, 166, 401, 428,
931 166, 166, 166, 268, 426, 624, 269, 218, 218, 71,
932 166, 166, 98, 226, 226, 264, 224, 166, 271, 624,
933 624, 624, 227, 227, 624, 624, 624, 71, 229, 229,
934 98, 400, 400, 400, 624, 624, 88, 88, 157, 88,
935 88, 624, 519, 88, 218, 14, 88, 88, 174, 174,
936 226, 174, 174, 224, 224, 174, 401, 401, 174, 174,
937 401, 152, 522, 14, 174, 480, 110, 522, 480, 272,
938 575, 480, 480, 88, 0, 157, 157, 157, 579, 579,
939 157, 218, 218, 194, 60, 174, 194, 226, 226, 194,
940 194, 274, 60, 0, 519, 519, 58, 157, 152, 152,
941 152, 84, 11, 152, 11, 88, 84, 171, 110, 110,
942 88, 88, 244, 60, 244, 244, 153, 174, 244, 87,
943 152, 275, 174, 174, 87, 480, 161, 575, 575, 575,
944 171, 194, 194, 194, 168, 26, 194, 26, 58, 58,
945 194, 194, 194, 194, 171, 171, 171, 243, 243, 171,
946 171, 171, 160, 153, 153, 153, 349, 168, 153, 171,
947 171, 278, 159, 161, 161, 161, 171, 321, 161, 214,
948 214, 168, 168, 168, 279, 153, 168, 168, 168, 408,
949 626, 408, 321, 321, 321, 161, 168, 168, 246, 160,
950 160, 160, 170, 168, 160, 246, 246, 136, 282, 159,
951 159, 159, 283, 626, 159, 349, 349, 136, 284, 349,
952 287, 160, 626, 626, 289, 170, 290, 626, 626, 626,
953 619, 159, 626, 626, 626, 293, 347, 296, 158, 170,
954 170, 170, 626, 626, 170, 170, 170, 300, 28, 626,
955 136, 622, 622, 619, 170, 170, 303, 151, 28, 136,
956 136, 170, 619, 619, 270, 270, 270, 619, 619, 619,
957 82, 306, 619, 619, 619, 158, 158, 158, 355, 355,
958 158, 309, 619, 619, 347, 347, 347, 422, 614, 619,
959 310, 28, 312, 82, 151, 151, 151, 158, 314, 151,
960 28, 28, 82, 82, 354, 354, 154, 82, 82, 82,
961 315, 614, 82, 82, 82, 169, 151, 574, 574, 574,
962 614, 614, 82, 82, 317, 614, 614, 614, 319, 82,
963 614, 614, 614, 102, 175, 422, 422, 422, 169, 186,
964 614, 614, 185, 154, 154, 154, 325, 614, 154, 418,
965 418, 418, 169, 169, 169, 326, 102, 169, 169, 169,
966 329, 609, 606, 606, 606, 154, 564, 169, 169, 219,
967 102, 102, 102, 330, 169, 102, 102, 102, 184, 156,
968 182, 564, 564, 564, 609, 102, 102, 155, 175, 175,
969 175, 175, 102, 609, 609, 254, 254, 515, 609, 609,
970 609, 255, 255, 609, 609, 609, 219, 219, 219, 191,
971 172, 219, 34, 609, 609, 192, 156, 156, 156, 486,
972 609, 156, 34, 193, 155, 155, 155, 195, 219, 155,
973 515, 353, 353, 172, 486, 486, 486, 196, 156, 515,
974 515, 420, 420, 257, 257, 420, 155, 172, 172, 172,
975 258, 258, 172, 172, 172, 34, 494, 494, 352, 352,
976 494, 251, 172, 172, 34, 34, 181, 215, 179, 172,
977 215, 215, 215, 215, 360, 215, 215, 215, 361, 215,
978 215, 215, 215, 263, 263, 263, 241, 241, 263, 362,
979 241, 363, 263, 263, 263, 263, 96, 96, 96, 96,
980 215, 215, 215, 103, 260, 260, 215, 103, 351, 351,
981 103, 103, 103, 103, 364, 103, 103, 103, 103, 103,
982 103, 103, 103, 103, 103, 62, 262, 262, 62, 62,
983 62, 350, 350, 62, 62, 62, 62, 62, 62, 62,
984 62, 365, 62, 256, 256, 256, 518, 518, 256, 492,
985 492, 492, 256, 256, 256, 256, 261, 261, 261, 178,
986 368, 261, 369, 370, 371, 261, 261, 261, 261, 259,
987 259, 259, 372, 373, 259, 176, 376, 377, 259, 259,
988 259, 259, 237, 237, 237, 237, 234, 234, 234, 234,
989 242, 242, 242, 242, 236, 236, 236, 236, 617, 617,
990 617, 617, 235, 235, 235, 235, 233, 233, 233, 233,
991 632, 632, 632, 632, 378, 379, 380, 381, 393, 394,
992 148, 146, 141, 140, 139, 116, 108, 92, 406, 407,
993 199, 409, 89, 413, 415, 417, 249, 419, 85, 79,
994 73, 70, 67, 61, 53, 433, 434, 435, 436, 443,
995 444, 451, 452, 460, 461, 48, 463, 47, 42, 488,
996 490, 491, 202, 493, 36, 495, 496, 497, 498, 499,
997 500, 501, 502, 504, 506, 508, 510, 511, 512, 514,
998 35, 517, 189, 33, 520, 27, 247, 24, 537, 538,
999 540, 541, 542, 20, 544, 549, 551, 553, 555, 557,
1000 559, 204, 565, 566, 568, 16, 572, 573, 245, 13,
1001 205, 581, 589, 590, 591, 595, 598, 604, 207, 213,
1002 610, 611, 612, 613, 8, 616, 6, 618, 5, 620,
1003 621, 216, 3, 2, 543 ]
[4]1004
1005racc_action_pointer = [
[32]1006 253, nil, 884, 902, 124, 880, 869, nil, 894, nil,
1007 nil, 258, nil, 851, 224, nil, 867, nil, 4, nil,
1008 833, 16, nil, nil, 832, nil, 291, 824, 417, nil,
1009 nil, nil, nil, 821, 581, 799, 833, nil, nil, nil,
1010 nil, nil, 820, -8, nil, nil, nil, 776, 814, nil,
1011 nil, nil, -2, 766, 93, nil, nil, nil, 265, nil,
1012 249, 805, 640, -5, nil, nil, nil, 768, nil, 121,
1013 761, 160, nil, 776, nil, nil, nil, nil, nil, 765,
1014 nil, nil, 419, nil, 223, 774, -32, 241, 210, 715,
1015 nil, 2, 750, nil, nil, 99, 590, nil, 163, nil,
1016 nil, nil, 482, 622, nil, nil, nil, nil, 785, nil,
1017 235, nil, nil, nil, nil, nil, 743, nil, nil, nil,
[4]1018 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]1019 nil, nil, nil, nil, nil, nil, 376, nil, nil, 759,
1020 764, 712, nil, nil, nil, nil, 779, -4, 746, nil,
1021 nil, 406, 220, 275, 455, 536, 528, 197, 387, 321,
1022 311, 285, nil, 116, nil, nil, 117, nil, 293, 464,
1023 351, 266, 559, nil, 222, 482, 689, nil, 673, 582,
1024 nil, 580, 494, nil, 492, 456, 453, 93, 84, 796,
1025 nil, 523, 529, 578, 253, 541, 551, nil, nil, 744,
1026 nil, nil, 776, nil, 815, 824, nil, 832, nil, nil,
1027 nil, nil, nil, 853, 306, 582, 865, nil, 181, 518,
1028 nil, nil, 18, nil, 153, nil, 187, 122, nil, 128,
1029 nil, 11, nil, 700, 680, 696, 688, 676, nil, nil,
1030 86, 597, 703, 263, 235, 812, 311, 789, 82, 738,
1031 -38, 562, 87, nil, 504, 510, 655, 552, 559, 681,
1032 613, 668, 635, 595, 125, -39, -35, -37, 128, 115,
1033 376, 161, 167, nil, 237, 287, nil, nil, 297, 331,
1034 nil, nil, 322, 326, 332, nil, nil, 334, nil, 380,
1035 373, nil, nil, 382, nil, nil, 384, nil, nil, nil,
1036 394, nil, nil, 403, nil, nil, 418, nil, nil, 395,
1037 380, nil, 406, nil, 412, 457, nil, 438, nil, 461,
1038 43, 304, nil, nil, nil, 453, 462, nil, nil, 472,
1039 485, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1040 nil, nil, nil, nil, nil, nil, nil, 396, nil, 326,
1041 640, 617, 567, 540, 413, 387, nil, 41, nil, 106,
1042 583, 587, 598, 600, 623, 650, nil, 46, 669, 671,
1043 672, 673, 681, 682, nil, 2, 685, 686, 723, 724,
1044 725, 726, nil, nil, nil, nil, nil, nil, nil, nil,
1045 nil, nil, nil, 705, 755, 4, nil, nil, 14, nil,
1046 153, 177, 10, 8, 5, 3, 733, 738, 304, 737,
1047 0, nil, nil, 789, nil, 742, nil, 744, 461, 746,
1048 552, nil, 447, nil, 109, nil, 117, nil, 111, nil,
1049 23, nil, 34, 754, 749, 756, 750, nil, nil, nil,
1050 nil, nil, nil, 758, 751, nil, nil, nil, nil, nil,
1051 nil, 760, 752, nil, nil, nil, nil, nil, nil, nil,
1052 789, 812, 42, 790, nil, nil, nil, nil, nil, nil,
1053 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1054 235, nil, nil, nil, nil, nil, 546, nil, 768, nil,
1055 769, 770, 661, 772, 567, 774, 769, 776, 770, 778,
1056 771, 780, 772, nil, 782, nil, 783, nil, 784, nil,
1057 785, 835, 790, nil, 762, 556, nil, 837, 663, 221,
1058 825, nil, 186, nil, nil, nil, nil, nil, nil, -9,
1059 nil, -1, nil, nil, nil, nil, nil, 765, 825, nil,
1060 823, 791, 792, 834, 794, nil, nil, nil, nil, 804,
1061 nil, 805, nil, 806, nil, 807, nil, 808, nil, 809,
1062 nil, nil, nil, nil, 493, 810, 859, nil, 834, nil,
1063 4, nil, 847, 806, 429, 249, nil, nil, nil, 166,
1064 nil, 869, nil, nil, nil, nil, nil, nil, nil, 868,
1065 860, 826, nil, nil, nil, 805, nil, nil, 825, nil,
1066 nil, nil, nil, nil, 842, nil, 448, nil, nil, 510,
1067 844, 868, 869, 870, 437, nil, 848, 692, 883, 379,
1068 813, 814, 337, nil, 141, nil, 339, nil, nil, nil,
1069 nil, nil, 704 ]
[4]1070
1071racc_action_default = [
[32]1072 -376, -2, -376, -376, -6, -376, -13, -4, -376, -5,
1073 -7, -376, -1, -376, -376, 633, -376, -12, -376, -9,
1074 -18, -376, -15, -14, -376, -8, -376, -21, -376, -17,
1075 -16, -11, -10, -376, -376, -112, -94, -89, -19, -90,
1076 -20, -108, -376, -376, -98, -99, -100, -376, -376, -146,
1077 -87, -147, -88, -82, -376, -22, -23, -95, -376, -110,
1078 -376, -376, -376, -376, -104, -109, -101, -376, -91, -376,
1079 -376, -289, -281, -376, -282, -25, -24, -248, -26, -284,
1080 -253, -152, -27, -254, -376, -376, -376, -376, -376, -305,
1081 -273, -376, -376, -283, -274, -376, -251, -167, -31, -286,
1082 -271, -272, -376, -112, -96, -93, -113, -97, -376, -111,
1083 -376, -187, -148, -122, -191, -123, -376, -204, -124, -217,
1084 -125, -230, -126, -127, -247, -128, -129, -130, -182, -183,
1085 -121, -102, -105, -92, -84, -83, -376, -3, -288, -376,
1086 -289, -285, -249, -373, -153, -168, -376, -376, -376, -154,
1087 -169, -376, -376, -376, -376, -376, -376, -376, -376, -376,
1088 -376, -376, -30, -376, -256, -255, -376, -259, -376, -376,
1089 -376, -376, -376, -32, -376, -376, -148, -144, -133, -122,
1090 -145, -134, -123, -116, -135, -124, -136, -125, -137, -126,
1091 -243, -138, -127, -376, -376, -139, -128, -117, -140, -129,
1092 -118, -141, -119, -142, -131, -120, -143, -132, -114, -106,
1093 -107, -85, -86, -376, -376, -376, -376, -287, -263, -376,
1094 -278, -279, -264, -275, -265, -276, -261, -260, -277, -262,
1095 -307, -376, -252, -250, -267, -268, -269, -266, -280, -270,
[16]1096 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
[32]1097 -376, -376, -376, -115, -376, -376, -376, -376, -376, -376,
[16]1098 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
[32]1099 -376, -376, -290, -63, -376, -376, -33, -62, -34, -357,
1100 -336, -322, -317, -310, -347, -343, -328, -316, -334, -376,
1101 -313, -54, -323, -319, -55, -329, -325, -56, -375, -335,
1102 -331, -57, -342, -337, -312, -58, -344, -318, -59, -353,
1103 -340, -324, -348, -60, -354, -350, -330, -311, -61, -376,
1104 -376, -376, -149, -151, -171, -376, -376, -155, -157, -376,
1105 -376, -185, -170, -172, -189, -186, -184, -193, -190, -188,
1106 -206, -194, -192, -219, -207, -205, -166, -376, -181, -376,
1107 -376, -376, -376, -376, -376, -376, -203, -376, -216, -376,
1108 -376, -376, -376, -376, -376, -376, -229, -376, -376, -376,
1109 -376, -376, -376, -376, -242, -376, -376, -376, -376, -376,
1110 -376, -376, -232, -220, -218, -233, -231, -246, -244, -150,
1111 -245, -156, -28, -68, -376, -376, -29, -64, -376, -257,
[16]1112 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
[32]1113 -376, -258, -303, -376, -308, -152, -304, -376, -376, -376,
1114 -376, -164, -376, -179, -376, -201, -376, -214, -376, -227,
1115 -376, -240, -376, -376, -376, -376, -376, -163, -178, -200,
1116 -213, -226, -239, -376, -376, -165, -180, -202, -215, -228,
1117 -241, -376, -376, -162, -177, -199, -212, -225, -238, -69,
1118 -376, -376, -376, -376, -359, -358, -314, -315, -321, -320,
1119 -327, -326, -333, -332, -339, -338, -346, -345, -355, -341,
1120 -376, -349, -356, -352, -351, -306, -376, -158, -376, -173,
[16]1121 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
[32]1122 -376, -376, -376, -195, -376, -208, -376, -221, -376, -234,
1123 -376, -376, -376, -43, -305, -376, -53, -44, -376, -376,
[261]1124 -31, -72, -310, -70, -36, -37, -372, -38, -39, -360,
1125 -40, -376, -363, -41, -367, -366, -42, -369, -376, -35,
[32]1126 -376, -376, -376, -376, -376, -309, -160, -175, -159, -376,
1127 -174, -376, -196, -376, -209, -376, -222, -376, -235, -376,
1128 -197, -210, -223, -236, -376, -292, -376, -49, -376, -67,
1129 -305, -52, -50, -376, -376, -376, -44, -71, -65, -376,
1130 -370, -376, -66, -161, -176, -198, -211, -224, -237, -376,
1131 -295, -376, -291, -45, -47, -376, -51, -365, -376, -364,
1132 -361, -362, -368, -371, -73, -294, -376, -293, -46, -376,
1133 -75, -296, -297, -298, -74, -77, -376, -80, -376, -376,
1134 -376, -376, -376, -78, -376, -48, -76, -299, -300, -301,
1135 -302, -81, -79 ]
[4]1136
1137racc_goto_table = [
[32]1138 96, 113, 165, 38, 162, 48, 118, 180, 276, 55,
1139 413, 48, 202, 120, 523, 104, 65, 273, 105, 126,
1140 116, 92, 77, 174, 66, 125, 68, 64, 96, 19,
1141 614, 98, 3, 115, 68, 108, 393, 531, 60, 623,
1142 626, 133, 179, 132, 32, 289, 618, 185, 175, 92,
1143 142, 623, 610, 123, 187, 278, 63, 275, 459, 82,
1144 199, 183, 208, 193, 197, 200, 196, 104, 78, 205,
1145 209, 484, 218, 76, 182, 222, 65, 224, 122, 226,
1146 227, 397, 229, 577, 66, 220, 221, 108, 223, 18,
1147 225, 10, 2, 228, 192, 137, 70, 53, 33, 204,
1148 207, 178, 181, 184, 186, 188, 191, 195, 198, 201,
1149 203, 211, 233, 48, 175, 234, 235, 236, 237, 189,
1150 206, 177, 27, 20, 167, 141, 13, 6, 217, 566,
1151 589, 5, 545, 254, 599, 579, nil, nil, nil, nil,
1152 320, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1153 nil, 262, nil, nil, 283, nil, nil, 260, nil, nil,
1154 nil, nil, nil, nil, nil, 255, nil, nil, nil, nil,
1155 nil, nil, nil, nil, nil, nil, 388, nil, 390, nil,
1156 nil, 327, nil, nil, nil, 258, 287, 331, nil, nil,
1157 336, nil, nil, nil, nil, 350, 334, nil, 360, 339,
1158 368, nil, 376, nil, nil, nil, nil, nil, nil, 391,
1159 257, nil, 324, 355, 343, 332, 365, nil, 373, 354,
1160 381, 382, 364, 386, 372, nil, 380, 351, 384, nil,
1161 361, nil, 369, nil, 377, nil, nil, nil, nil, nil,
1162 340, nil, nil, 345, nil, nil, nil, 353, nil, nil,
1163 363, nil, 371, 590, 379, nil, 521, nil, nil, nil,
1164 412, nil, nil, 337, nil, nil, 342, nil, nil, nil,
1165 nil, nil, 352, nil, nil, 362, nil, 370, nil, 378,
1166 nil, nil, nil, nil, nil, nil, 417, nil, nil, nil,
[4]1167 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1168 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]1169 nil, 479, nil, nil, nil, nil, nil, nil, nil, nil,
1170 419, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1171 443, nil, 451, nil, nil, nil, nil, nil, nil, 466,
1172 nil, nil, 465, nil, nil, nil, nil, nil, nil, nil,
1173 435, nil, nil, nil, nil, nil, nil, 488, nil, nil,
1174 nil, 491, 477, nil, nil, nil, nil, 475, nil, nil,
1175 nil, nil, 469, 433, nil, nil, nil, nil, nil, nil,
1176 nil, nil, nil, nil, nil, nil, nil, nil, nil, 501,
1177 nil, 490, nil, 499, 473, 493, nil, nil, nil, nil,
1178 nil, 522, nil, nil, nil, nil, nil, 508, nil, 510,
1179 nil, nil, nil, nil, nil, nil, nil, nil, 471, 497,
1180 nil, nil, nil, nil, nil, 412, nil, 506, nil, 567,
1181 nil, 549, nil, 287, nil, nil, nil, 262, nil, 520,
1182 nil, nil, 495, nil, nil, nil, nil, nil, nil, nil,
1183 504, nil, nil, nil, nil, nil, nil, nil, nil, 559,
1184 nil, nil, nil, 557, nil, 551, nil, nil, nil, nil,
1185 522, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1186 nil, nil, nil, nil, nil, 595, nil, nil, nil, 555,
1187 568, nil, 48, nil, nil, 570, 572, nil, 355, 365,
1188 373, 381, 287, 412, nil, nil, 608, nil, 520, nil,
1189 nil, nil, 553, 598, 600, nil, nil, nil, nil, nil,
[4]1190 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1191 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1192 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[14]1193 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]1194 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1195 632 ]
[4]1196
1197racc_goto_check = [
[32]1198 56, 81, 34, 15, 22, 23, 83, 104, 24, 15,
1199 115, 23, 78, 84, 26, 59, 72, 48, 62, 88,
1200 71, 55, 105, 109, 66, 87, 60, 69, 56, 14,
1201 53, 23, 1, 82, 60, 23, 51, 50, 58, 54,
1202 53, 60, 81, 69, 14, 39, 37, 83, 56, 55,
1203 105, 54, 36, 86, 84, 25, 68, 20, 52, 18,
1204 88, 71, 74, 75, 76, 77, 87, 59, 17, 79,
1205 62, 80, 109, 16, 82, 109, 72, 109, 85, 109,
1206 109, 48, 109, 26, 66, 110, 110, 23, 110, 13,
1207 110, 12, 11, 110, 86, 10, 9, 8, 7, 90,
1208 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1209 101, 15, 56, 23, 56, 56, 56, 56, 56, 85,
1210 102, 103, 6, 5, 106, 108, 4, 3, 112, 113,
1211 114, 2, 116, 81, 127, 129, nil, nil, nil, nil,
1212 109, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1213 nil, 88, nil, nil, 81, nil, nil, 87, nil, nil,
1214 nil, nil, nil, nil, nil, 82, nil, nil, nil, nil,
1215 nil, nil, nil, nil, nil, nil, 78, nil, 78, nil,
1216 nil, 81, nil, nil, nil, 86, 82, 83, nil, nil,
1217 83, nil, nil, nil, nil, 81, 84, nil, 81, 84,
1218 81, nil, 81, nil, nil, nil, nil, nil, nil, 81,
1219 85, nil, 82, 88, 87, 82, 88, nil, 88, 87,
1220 88, 88, 87, 88, 87, nil, 87, 82, 87, nil,
1221 82, nil, 82, nil, 82, nil, nil, nil, nil, nil,
1222 86, nil, nil, 86, nil, nil, nil, 86, nil, nil,
1223 86, nil, 86, 115, 86, nil, 24, nil, nil, nil,
1224 81, nil, nil, 85, nil, nil, 85, nil, nil, nil,
1225 nil, nil, 85, nil, nil, 85, nil, 85, nil, 85,
1226 nil, nil, nil, nil, nil, nil, 81, nil, nil, nil,
[4]1227 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1228 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]1229 nil, 104, nil, nil, nil, nil, nil, nil, nil, nil,
1230 82, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1231 87, nil, 88, nil, nil, nil, nil, nil, nil, 81,
1232 nil, nil, 83, nil, nil, nil, nil, nil, nil, nil,
1233 86, nil, nil, nil, nil, nil, nil, 81, nil, nil,
1234 nil, 81, 88, nil, nil, nil, nil, 87, nil, nil,
1235 nil, nil, 82, 85, nil, nil, nil, nil, nil, nil,
1236 nil, nil, nil, nil, nil, nil, nil, nil, nil, 88,
1237 nil, 82, nil, 87, 86, 82, nil, nil, nil, nil,
1238 nil, 81, nil, nil, nil, nil, nil, 87, nil, 88,
1239 nil, nil, nil, nil, nil, nil, nil, nil, 85, 86,
1240 nil, nil, nil, nil, nil, 81, nil, 86, nil, 22,
1241 nil, 81, nil, 82, nil, nil, nil, 88, nil, 23,
1242 nil, nil, 85, nil, nil, nil, nil, nil, nil, nil,
1243 85, nil, nil, nil, nil, nil, nil, nil, nil, 88,
1244 nil, nil, nil, 87, nil, 82, nil, nil, nil, nil,
1245 81, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1246 nil, nil, nil, nil, nil, 22, nil, nil, nil, 86,
1247 15, nil, 23, nil, nil, 23, 23, nil, 88, 88,
1248 88, 88, 82, 81, nil, nil, 34, nil, 23, nil,
1249 nil, nil, 85, 81, 81, nil, nil, nil, nil, nil,
[4]1250 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1251 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[14]1252 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[19]1253 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]1254 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1255 56 ]
[4]1256
1257racc_goto_pointer = [
[32]1258 nil, 32, 131, 127, 120, 110, 102, 71, 64, 43,
1259 25, 92, 87, 78, 18, -25, 19, 14, 5, nil,
1260 -157, nil, -85, -23, -206, -159, -448, nil, nil, nil,
1261 nil, nil, nil, nil, -89, nil, -552, -564, nil, -170,
1262 nil, nil, nil, nil, nil, nil, nil, nil, -197, nil,
1263 -425, -236, -335, -579, -575, -33, -54, nil, -5, -43,
1264 -26, nil, -40, nil, nil, nil, -24, nil, 9, -20,
1265 nil, -42, -32, nil, -46, -40, -39, -38, -91, -34,
1266 -339, -61, -29, -56, -49, 16, -9, -37, -43, nil,
1267 -4, -3, -2, -1, 0, 1, 2, 3, 4, 5,
1268 6, 7, 17, 18, -96, -32, 29, nil, 46, -79,
1269 -67, nil, -20, -383, -434, -311, -354, nil, nil, nil,
1270 nil, nil, nil, nil, nil, nil, nil, -440, nil, -402 ]
[4]1271
1272racc_goto_default = [
1273 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]1274 nil, nil, nil, nil, nil, nil, nil, 539, nil, 85,
1275 nil, 89, nil, 143, nil, nil, nil, 524, 525, 527,
1276 528, 530, 533, 536, 93, 538, nil, nil, 514, 516,
1277 291, 294, 297, 301, 305, 308, 313, 318, nil, 274,
1278 nil, nil, nil, nil, 615, 616, 617, 50, 52, 37,
1279 39, 42, nil, 107, 44, 45, 46, 47, nil, nil,
1280 61, nil, 41, 43, 106, nil, nil, nil, nil, nil,
1281 130, 72, 74, nil, nil, 292, 295, 299, 302, 127,
1282 312, 317, 282, nil, nil, nil, nil, nil, nil, 304,
1283 307, 311, 316, 280, 285, nil, 80, 83, 86, 88,
1284 90, 94, 99, nil, nil, nil, 414, 290, 293, 296,
1285 300, 303, 306, 310, 315, 279, 529, 532, 535, nil ]
[4]1286
[116]1287racc_reduce_table = [
1288 0, 0, :racc_error,
1289 2, 96, :_reduce_1,
1290 1, 96, :_reduce_none,
1291 8, 97, :_reduce_3,
1292 2, 98, :_reduce_4,
1293 2, 98, :_reduce_5,
1294 1, 106, :_reduce_6,
1295 2, 106, :_reduce_7,
1296 3, 107, :_reduce_8,
1297 1, 108, :_reduce_9,
1298 3, 108, :_reduce_10,
1299 3, 109, :_reduce_11,
1300 1, 109, :_reduce_12,
1301 0, 99, :_reduce_none,
[257]1302 2, 99, :_reduce_14,
[116]1303 2, 99, :_reduce_none,
1304 2, 100, :_reduce_16,
1305 2, 100, :_reduce_none,
1306 0, 101, :_reduce_18,
1307 2, 101, :_reduce_19,
1308 2, 101, :_reduce_none,
1309 0, 102, :_reduce_none,
1310 2, 102, :_reduce_22,
1311 2, 102, :_reduce_none,
1312 2, 103, :_reduce_24,
1313 2, 103, :_reduce_none,
1314 1, 111, :_reduce_26,
1315 1, 111, :_reduce_27,
1316 5, 112, :_reduce_28,
1317 5, 112, :_reduce_29,
1318 2, 114, :_reduce_30,
1319 1, 116, :_reduce_31,
1320 2, 116, :_reduce_32,
1321 1, 115, :_reduce_none,
1322 1, 115, :_reduce_34,
1323 1, 121, :_reduce_35,
1324 1, 121, :_reduce_36,
1325 1, 121, :_reduce_37,
1326 1, 121, :_reduce_38,
1327 1, 121, :_reduce_39,
1328 1, 121, :_reduce_40,
1329 1, 121, :_reduce_41,
1330 1, 121, :_reduce_42,
1331 1, 121, :_reduce_none,
1332 1, 121, :_reduce_none,
[261]1333 3, 128, :_reduce_45,
1334 4, 122, :_reduce_46,
1335 3, 122, :_reduce_none,
1336 6, 123, :_reduce_48,
[116]1337 2, 130, :_reduce_49,
1338 2, 133, :_reduce_50,
1339 3, 133, :_reduce_none,
1340 2, 133, :_reduce_none,
[261]1341 1, 127, :_reduce_53,
[116]1342 1, 134, :_reduce_54,
1343 1, 134, :_reduce_55,
1344 1, 134, :_reduce_56,
1345 1, 134, :_reduce_57,
1346 1, 134, :_reduce_58,
1347 1, 134, :_reduce_59,
1348 1, 134, :_reduce_60,
1349 1, 134, :_reduce_61,
1350 1, 119, :_reduce_none,
1351 1, 120, :_reduce_63,
1352 2, 120, :_reduce_64,
1353 5, 143, :_reduce_65,
1354 5, 143, :_reduce_66,
1355 5, 143, :_reduce_67,
1356 2, 144, :_reduce_68,
1357 3, 144, :_reduce_69,
1358 1, 145, :_reduce_70,
1359 2, 145, :_reduce_71,
1360 1, 145, :_reduce_72,
1361 0, 131, :_reduce_none,
1362 2, 131, :_reduce_74,
1363 0, 132, :_reduce_none,
1364 2, 132, :_reduce_76,
1365 1, 148, :_reduce_none,
1366 2, 148, :_reduce_none,
1367 3, 149, :_reduce_none,
1368 1, 149, :_reduce_none,
1369 3, 149, :_reduce_none,
1370 0, 104, :_reduce_none,
1371 2, 104, :_reduce_none,
1372 2, 104, :_reduce_none,
1373 2, 105, :_reduce_85,
1374 2, 105, :_reduce_none,
1375 1, 110, :_reduce_none,
1376 1, 152, :_reduce_none,
1377 1, 152, :_reduce_none,
1378 1, 153, :_reduce_90,
1379 2, 153, :_reduce_91,
1380 3, 153, :_reduce_92,
1381 3, 155, :_reduce_93,
1382 1, 156, :_reduce_94,
1383 2, 156, :_reduce_none,
1384 1, 157, :_reduce_96,
1385 1, 157, :_reduce_97,
1386 1, 154, :_reduce_98,
1387 1, 154, :_reduce_99,
1388 1, 160, :_reduce_100,
1389 2, 160, :_reduce_101,
1390 3, 161, :_reduce_102,
1391 1, 162, :_reduce_103,
1392 1, 163, :_reduce_104,
1393 2, 163, :_reduce_105,
1394 3, 164, :_reduce_106,
1395 3, 165, :_reduce_107,
1396 1, 159, :_reduce_108,
1397 2, 159, :_reduce_109,
1398 2, 167, :_reduce_110,
1399 3, 167, :_reduce_111,
1400 1, 168, :_reduce_none,
1401 1, 158, :_reduce_113,
1402 2, 158, :_reduce_114,
1403 3, 169, :_reduce_115,
1404 1, 170, :_reduce_116,
1405 1, 170, :_reduce_117,
1406 1, 170, :_reduce_118,
1407 1, 170, :_reduce_119,
1408 1, 170, :_reduce_120,
1409 1, 166, :_reduce_121,
1410 1, 166, :_reduce_122,
1411 1, 166, :_reduce_123,
1412 1, 166, :_reduce_124,
1413 1, 166, :_reduce_125,
1414 1, 166, :_reduce_126,
1415 1, 166, :_reduce_127,
1416 1, 166, :_reduce_128,
1417 1, 166, :_reduce_129,
1418 1, 166, :_reduce_130,
1419 1, 171, :_reduce_none,
1420 1, 171, :_reduce_none,
1421 1, 171, :_reduce_none,
1422 1, 171, :_reduce_none,
1423 1, 171, :_reduce_none,
1424 1, 171, :_reduce_none,
1425 1, 171, :_reduce_none,
1426 1, 171, :_reduce_none,
1427 1, 171, :_reduce_none,
1428 1, 172, :_reduce_none,
1429 1, 172, :_reduce_none,
1430 1, 172, :_reduce_none,
1431 1, 172, :_reduce_none,
1432 1, 172, :_reduce_none,
1433 1, 172, :_reduce_none,
1434 1, 118, :_reduce_146,
1435 1, 118, :_reduce_147,
1436 1, 175, :_reduce_148,
1437 3, 185, :_reduce_none,
1438 3, 185, :_reduce_none,
1439 3, 185, :_reduce_none,
1440 1, 176, :_reduce_152,
1441 2, 176, :_reduce_153,
1442 2, 176, :_reduce_154,
1443 3, 186, :_reduce_none,
1444 3, 186, :_reduce_none,
1445 3, 186, :_reduce_none,
1446 5, 194, :_reduce_none,
1447 6, 194, :_reduce_none,
1448 6, 194, :_reduce_none,
1449 7, 194, :_reduce_none,
1450 4, 194, :_reduce_none,
1451 4, 194, :_reduce_none,
1452 4, 194, :_reduce_none,
1453 4, 194, :_reduce_none,
1454 3, 194, :_reduce_none,
1455 1, 177, :_reduce_167,
1456 2, 177, :_reduce_168,
1457 2, 177, :_reduce_169,
1458 3, 187, :_reduce_none,
1459 3, 187, :_reduce_none,
1460 3, 187, :_reduce_none,
1461 5, 195, :_reduce_none,
1462 6, 195, :_reduce_none,
1463 6, 195, :_reduce_none,
1464 7, 195, :_reduce_none,
1465 4, 195, :_reduce_none,
1466 4, 195, :_reduce_none,
1467 4, 195, :_reduce_none,
1468 4, 195, :_reduce_none,
1469 3, 195, :_reduce_none,
1470 1, 178, :_reduce_182,
1471 1, 178, :_reduce_183,
1472 3, 188, :_reduce_none,
1473 3, 188, :_reduce_none,
1474 3, 188, :_reduce_none,
1475 1, 179, :_reduce_none,
1476 3, 189, :_reduce_none,
1477 3, 189, :_reduce_none,
1478 3, 189, :_reduce_none,
1479 1, 180, :_reduce_none,
1480 3, 190, :_reduce_none,
1481 3, 190, :_reduce_none,
1482 3, 190, :_reduce_none,
1483 5, 196, :_reduce_none,
1484 6, 196, :_reduce_none,
1485 6, 196, :_reduce_none,
1486 7, 196, :_reduce_none,
1487 4, 196, :_reduce_none,
1488 4, 196, :_reduce_none,
1489 4, 196, :_reduce_none,
1490 4, 196, :_reduce_none,
1491 3, 196, :_reduce_none,
1492 1, 181, :_reduce_none,
1493 3, 191, :_reduce_none,
1494 3, 191, :_reduce_none,
1495 3, 191, :_reduce_none,
1496 5, 197, :_reduce_none,
1497 6, 197, :_reduce_none,
1498 6, 197, :_reduce_none,
1499 7, 197, :_reduce_none,
1500 4, 197, :_reduce_none,
1501 4, 197, :_reduce_none,
1502 4, 197, :_reduce_none,
1503 4, 197, :_reduce_none,
1504 3, 197, :_reduce_none,
1505 1, 182, :_reduce_none,
1506 3, 192, :_reduce_none,
1507 3, 192, :_reduce_none,
1508 3, 192, :_reduce_none,
1509 5, 198, :_reduce_none,
1510 6, 198, :_reduce_none,
1511 6, 198, :_reduce_none,
1512 7, 198, :_reduce_none,
1513 4, 198, :_reduce_none,
1514 4, 198, :_reduce_none,
1515 4, 198, :_reduce_none,
1516 4, 198, :_reduce_none,
1517 3, 198, :_reduce_none,
1518 1, 183, :_reduce_230,
1519 3, 193, :_reduce_none,
1520 3, 193, :_reduce_none,
1521 3, 193, :_reduce_none,
1522 5, 199, :_reduce_none,
1523 6, 199, :_reduce_none,
1524 6, 199, :_reduce_none,
1525 7, 199, :_reduce_none,
1526 4, 199, :_reduce_none,
1527 4, 199, :_reduce_none,
1528 4, 199, :_reduce_none,
1529 4, 199, :_reduce_none,
1530 3, 199, :_reduce_none,
1531 1, 173, :_reduce_243,
1532 3, 174, :_reduce_none,
1533 3, 174, :_reduce_none,
1534 3, 174, :_reduce_none,
1535 1, 184, :_reduce_247,
1536 1, 113, :_reduce_none,
1537 2, 113, :_reduce_none,
1538 3, 200, :_reduce_none,
1539 1, 200, :_reduce_none,
1540 3, 200, :_reduce_none,
1541 1, 151, :_reduce_none,
1542 1, 151, :_reduce_none,
1543 2, 202, :_reduce_none,
1544 2, 202, :_reduce_none,
1545 5, 202, :_reduce_none,
1546 5, 202, :_reduce_none,
1547 2, 202, :_reduce_none,
1548 3, 202, :_reduce_none,
1549 3, 202, :_reduce_none,
1550 3, 202, :_reduce_none,
1551 3, 202, :_reduce_none,
1552 3, 202, :_reduce_none,
1553 3, 202, :_reduce_none,
1554 3, 202, :_reduce_none,
1555 3, 202, :_reduce_none,
1556 3, 202, :_reduce_none,
1557 3, 202, :_reduce_none,
1558 3, 201, :_reduce_none,
1559 1, 201, :_reduce_none,
1560 1, 201, :_reduce_none,
1561 1, 204, :_reduce_none,
1562 1, 204, :_reduce_none,
1563 3, 206, :_reduce_none,
1564 3, 206, :_reduce_none,
1565 3, 206, :_reduce_none,
1566 3, 206, :_reduce_none,
1567 3, 206, :_reduce_none,
1568 3, 205, :_reduce_none,
1569 1, 205, :_reduce_none,
1570 1, 205, :_reduce_none,
1571 1, 205, :_reduce_none,
1572 1, 129, :_reduce_none,
1573 2, 129, :_reduce_none,
1574 1, 203, :_reduce_none,
1575 3, 203, :_reduce_none,
1576 2, 207, :_reduce_288,
1577 1, 207, :_reduce_289,
1578 0, 146, :_reduce_290,
1579 5, 146, :_reduce_291,
1580 1, 208, :_reduce_292,
1581 3, 208, :_reduce_293,
1582 5, 147, :_reduce_294,
1583 1, 209, :_reduce_none,
1584 3, 209, :_reduce_none,
1585 3, 209, :_reduce_none,
1586 3, 209, :_reduce_none,
1587 5, 209, :_reduce_none,
1588 5, 209, :_reduce_none,
1589 5, 209, :_reduce_none,
1590 5, 209, :_reduce_none,
1591 1, 211, :_reduce_303,
1592 1, 211, :_reduce_304,
1593 0, 117, :_reduce_none,
1594 5, 117, :_reduce_306,
1595 2, 117, :_reduce_none,
1596 1, 210, :_reduce_none,
1597 3, 210, :_reduce_none,
1598 1, 212, :_reduce_none,
1599 1, 212, :_reduce_none,
1600 1, 212, :_reduce_none,
1601 1, 135, :_reduce_none,
1602 3, 135, :_reduce_none,
1603 3, 135, :_reduce_none,
1604 1, 213, :_reduce_none,
1605 1, 213, :_reduce_none,
1606 1, 213, :_reduce_none,
1607 1, 136, :_reduce_none,
1608 3, 136, :_reduce_none,
1609 3, 136, :_reduce_none,
1610 1, 214, :_reduce_none,
1611 1, 214, :_reduce_none,
1612 1, 214, :_reduce_none,
1613 1, 137, :_reduce_none,
1614 3, 137, :_reduce_none,
1615 3, 137, :_reduce_none,
1616 1, 215, :_reduce_none,
1617 1, 215, :_reduce_none,
1618 1, 215, :_reduce_none,
1619 1, 138, :_reduce_none,
1620 3, 138, :_reduce_none,
1621 3, 138, :_reduce_none,
1622 1, 216, :_reduce_none,
1623 1, 216, :_reduce_none,
1624 1, 216, :_reduce_none,
1625 1, 139, :_reduce_none,
1626 3, 139, :_reduce_none,
1627 3, 139, :_reduce_none,
1628 1, 217, :_reduce_none,
1629 3, 217, :_reduce_none,
1630 1, 217, :_reduce_none,
1631 1, 217, :_reduce_none,
1632 1, 140, :_reduce_none,
1633 3, 140, :_reduce_none,
1634 3, 140, :_reduce_none,
1635 1, 219, :_reduce_none,
1636 1, 219, :_reduce_none,
1637 3, 219, :_reduce_none,
1638 1, 141, :_reduce_none,
1639 3, 141, :_reduce_none,
1640 3, 141, :_reduce_none,
1641 1, 220, :_reduce_353,
1642 1, 220, :_reduce_354,
1643 3, 220, :_reduce_355,
1644 3, 220, :_reduce_356,
1645 1, 142, :_reduce_357,
1646 3, 142, :_reduce_358,
1647 3, 142, :_reduce_359,
[261]1648 1, 126, :_reduce_none,
1649 3, 126, :_reduce_none,
1650 3, 126, :_reduce_none,
[116]1651 1, 221, :_reduce_none,
1652 3, 221, :_reduce_none,
1653 3, 222, :_reduce_365,
[261]1654 1, 125, :_reduce_366,
1655 1, 125, :_reduce_367,
1656 3, 223, :_reduce_368,
[116]1657 0, 224, :_reduce_none,
1658 1, 224, :_reduce_none,
1659 2, 224, :_reduce_none,
[261]1660 1, 124, :_reduce_372,
[116]1661 1, 150, :_reduce_373,
1662 1, 150, :_reduce_374,
1663 1, 218, :_reduce_375 ]
1664
1665racc_reduce_n = 376
1666
1667racc_shift_n = 633
1668
[4]1669racc_token_table = {
[116]1670 false => 0,
1671 :error => 1,
1672 :UMINUS => 2,
1673 :UPLUS => 3,
1674 "*" => 4,
1675 "/" => 5,
1676 "+" => 6,
1677 "-" => 7,
1678 :SYM_EQ => 8,
1679 :SYM_NE => 9,
1680 :SYM_LT => 10,
1681 :SYM_START_DBLOCK => 11,
1682 :SYM_START_CBLOCK => 12,
1683 :SYM_GT => 13,
1684 :SYM_END_CBLOCK => 14,
1685 :SYM_END_DBLOCK => 15,
1686 :SYM_LE => 16,
1687 :SYM_GE => 17,
1688 :EOF => 18,
1689 :V_ARCHETYPE_ID => 19,
1690 :SYM_ARCHETYPE => 20,
1691 :Left_parenthesis_code => 21,
1692 :Right_parenthesis_code => 22,
1693 :Semicolon_code => 23,
1694 :SYM_ADL_VERSION => 24,
1695 :V_VERSION_STRING => 25,
1696 :SYM_IS_CONTROLLED => 26,
1697 :SYM_SPECIALIZE => 27,
1698 :SYM_CONCEPT => 28,
1699 :V_LOCAL_TERM_CODE_REF => 29,
1700 :SYM_LANGUAGE => 30,
1701 :SYM_DESCRIPTION => 31,
1702 :SYM_DEFINITION => 32,
1703 :c_complx_object_head => 33,
1704 :SYM_MATCHES => 34,
1705 :START_REGEXP_BLOCK => 35,
1706 :REGEXP_BODY => 36,
1707 :END_REGEXP_BLOCK => 37,
1708 :ERR_C_DOMAIN_TYPE => 38,
1709 :START_V_C_DOMAIN_TYPE_BLOCK => 39,
1710 :END_V_C_DOMAIN_TYPE_BLOCK => 40,
1711 :SYM_USE_NODE => 41,
1712 :SYM_ALLOW_ARCHETYPE => 42,
1713 :Star_code => 43,
1714 :V_ATTRIBUTE_IDENTIFIER => 44,
1715 :SYM_INCLUDE => 45,
1716 :SYM_EXCLUDE => 46,
1717 ":" => 47,
1718 :SYM_INVARIANT => 48,
1719 :V_ASSERTION_TEXT => 49,
1720 :SYM_ONTOLOGY => 50,
1721 :Left_bracket_code => 51,
1722 :Right_bracket_code => 52,
1723 :V_TYPE_IDENTIFIER => 53,
1724 :V_GENERIC_TYPE_IDENTIFIER => 54,
1725 :V_STRING => 55,
1726 :Comma_code => 56,
1727 :SYM_LIST_CONTINUE => 57,
1728 :V_INTEGER => 58,
1729 :Plus_code => 59,
1730 :Minus_code => 60,
1731 :SYM_INTERVAL_DELIM => 61,
1732 :SYM_ELLIPSIS => 62,
1733 :V_REAL => 63,
1734 :SYM_TRUE => 64,
1735 :SYM_FALSE => 65,
1736 :V_CHARACTER => 66,
1737 :V_ISO8601_EXTENDED_DATE => 67,
1738 :V_ISO8601_EXTENDED_TIME => 68,
1739 :V_ISO8601_EXTENDED_DATE_TIME => 69,
1740 :V_ISO8601_DURATION => 70,
1741 :V_QUALIFIED_TERM_CODE_REF => 71,
1742 :V_URI => 72,
1743 :SYM_EXISTS => 73,
1744 :SYM_NOT => 74,
1745 "=" => 75,
1746 :SYM_AND => 76,
1747 :SYM_OR => 77,
1748 :SYM_XOR => 78,
1749 :SYM_IMPLIES => 79,
1750 :Slash_code => 80,
1751 "^" => 81,
1752 :SYM_EXISTENCE => 82,
1753 :SYM_CARDINALITY => 83,
1754 :SYM_ORDERED => 84,
1755 :SYM_UNORDERED => 85,
1756 :SYM_UNIQUE => 86,
1757 :SYM_OCCURRENCES => 87,
1758 :V_ISO8601_DATE_CONSTRAINT_PATTERN => 88,
1759 :V_ISO8601_TIME_CONSTRAINT_PATTERN => 89,
1760 :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN => 90,
1761 :START_TERM_CODE_CONSTRAINT => 91,
1762 :END_TERM_CODE_CONSTRAINT => 92,
1763 :TERM_CODE => 93,
1764 :V_ISO8601_DURATION_CONSTRAINT_PATTERN => 94 }
[4]1765
[116]1766racc_nt_base = 95
1767
[4]1768racc_use_result_var = true
1769
1770Racc_arg = [
[116]1771 racc_action_table,
1772 racc_action_check,
1773 racc_action_default,
1774 racc_action_pointer,
1775 racc_goto_table,
1776 racc_goto_check,
1777 racc_goto_default,
1778 racc_goto_pointer,
1779 racc_nt_base,
1780 racc_reduce_table,
1781 racc_token_table,
1782 racc_shift_n,
1783 racc_reduce_n,
1784 racc_use_result_var ]
[4]1785
1786Racc_token_to_s_table = [
[116]1787 "$end",
1788 "error",
1789 "UMINUS",
1790 "UPLUS",
1791 "\"*\"",
1792 "\"/\"",
1793 "\"+\"",
1794 "\"-\"",
1795 "SYM_EQ",
1796 "SYM_NE",
1797 "SYM_LT",
1798 "SYM_START_DBLOCK",
1799 "SYM_START_CBLOCK",
1800 "SYM_GT",
1801 "SYM_END_CBLOCK",
1802 "SYM_END_DBLOCK",
1803 "SYM_LE",
1804 "SYM_GE",
1805 "EOF",
1806 "V_ARCHETYPE_ID",
1807 "SYM_ARCHETYPE",
1808 "Left_parenthesis_code",
1809 "Right_parenthesis_code",
1810 "Semicolon_code",
1811 "SYM_ADL_VERSION",
1812 "V_VERSION_STRING",
1813 "SYM_IS_CONTROLLED",
1814 "SYM_SPECIALIZE",
1815 "SYM_CONCEPT",
1816 "V_LOCAL_TERM_CODE_REF",
1817 "SYM_LANGUAGE",
1818 "SYM_DESCRIPTION",
1819 "SYM_DEFINITION",
1820 "c_complx_object_head",
1821 "SYM_MATCHES",
1822 "START_REGEXP_BLOCK",
1823 "REGEXP_BODY",
1824 "END_REGEXP_BLOCK",
1825 "ERR_C_DOMAIN_TYPE",
1826 "START_V_C_DOMAIN_TYPE_BLOCK",
1827 "END_V_C_DOMAIN_TYPE_BLOCK",
1828 "SYM_USE_NODE",
1829 "SYM_ALLOW_ARCHETYPE",
1830 "Star_code",
1831 "V_ATTRIBUTE_IDENTIFIER",
1832 "SYM_INCLUDE",
1833 "SYM_EXCLUDE",
1834 "\":\"",
1835 "SYM_INVARIANT",
1836 "V_ASSERTION_TEXT",
1837 "SYM_ONTOLOGY",
1838 "Left_bracket_code",
1839 "Right_bracket_code",
1840 "V_TYPE_IDENTIFIER",
1841 "V_GENERIC_TYPE_IDENTIFIER",
1842 "V_STRING",
1843 "Comma_code",
1844 "SYM_LIST_CONTINUE",
1845 "V_INTEGER",
1846 "Plus_code",
1847 "Minus_code",
1848 "SYM_INTERVAL_DELIM",
1849 "SYM_ELLIPSIS",
1850 "V_REAL",
1851 "SYM_TRUE",
1852 "SYM_FALSE",
1853 "V_CHARACTER",
1854 "V_ISO8601_EXTENDED_DATE",
1855 "V_ISO8601_EXTENDED_TIME",
1856 "V_ISO8601_EXTENDED_DATE_TIME",
1857 "V_ISO8601_DURATION",
1858 "V_QUALIFIED_TERM_CODE_REF",
1859 "V_URI",
1860 "SYM_EXISTS",
1861 "SYM_NOT",
1862 "\"=\"",
1863 "SYM_AND",
1864 "SYM_OR",
1865 "SYM_XOR",
1866 "SYM_IMPLIES",
1867 "Slash_code",
1868 "\"^\"",
1869 "SYM_EXISTENCE",
1870 "SYM_CARDINALITY",
1871 "SYM_ORDERED",
1872 "SYM_UNORDERED",
1873 "SYM_UNIQUE",
1874 "SYM_OCCURRENCES",
1875 "V_ISO8601_DATE_CONSTRAINT_PATTERN",
1876 "V_ISO8601_TIME_CONSTRAINT_PATTERN",
1877 "V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN",
1878 "START_TERM_CODE_CONSTRAINT",
1879 "END_TERM_CODE_CONSTRAINT",
1880 "TERM_CODE",
1881 "V_ISO8601_DURATION_CONSTRAINT_PATTERN",
1882 "$start",
1883 "input",
1884 "archetype",
1885 "arch_identification",
1886 "arch_specialisation",
1887 "arch_concept",
1888 "arch_language",
1889 "arch_description",
1890 "arch_definition",
1891 "arch_invariant",
1892 "arch_ontology",
1893 "arch_head",
1894 "arch_meta_data",
1895 "arch_meta_data_items",
1896 "arch_meta_data_item",
1897 "dadl_section",
1898 "cadl_section",
1899 "c_complex_object",
1900 "assertions",
1901 "c_complex_object_head",
1902 "c_complex_object_body",
1903 "c_complex_object_id",
1904 "c_occurrences",
1905 "type_identifier",
1906 "c_any",
1907 "c_attributes",
1908 "c_object",
1909 "archetype_internal_ref",
1910 "archetype_slot",
1911 "constraint_ref",
1912 "c_code_phrase",
1913 "c_ordinal",
1914 "c_primitive_object",
[261]1915 "v_c_domain_type",
[116]1916 "absolute_path",
1917 "c_archetype_slot_head",
1918 "c_includes",
1919 "c_excludes",
1920 "c_archetype_slot_id",
1921 "c_primitive",
1922 "c_integer",
1923 "c_real",
1924 "c_date",
1925 "c_time",
1926 "c_date_time",
1927 "c_duration",
1928 "c_string",
1929 "c_boolean",
1930 "c_attribute",
1931 "c_attr_head",
1932 "c_attr_values",
1933 "c_existence",
1934 "c_cardinality",
1935 "invariants",
1936 "invariant",
1937 "any_identifier",
1938 "boolean_expression",
1939 "dadl_input",
1940 "attr_vals",
1941 "complex_object_block",
1942 "attr_val",
1943 "attr_id",
1944 "object_block",
1945 "primitive_object_block",
1946 "single_attr_object_block",
1947 "multiple_attr_object_block",
1948 "untyped_multiple_attr_object_block",
1949 "multiple_attr_object_block_head",
1950 "keyed_objects",
1951 "keyed_object",
1952 "object_key",
1953 "simple_value",
1954 "untyped_single_attr_object_block",
1955 "single_attr_object_complex_head",
1956 "untyped_primitive_object_block",
1957 "primitive_object_value",
1958 "simple_list_value",
1959 "simple_interval_value",
1960 "term_code",
1961 "term_code_list_value",
1962 "string_value",
1963 "integer_value",
1964 "real_value",
1965 "boolean_value",
1966 "character_value",
1967 "date_value",
1968 "time_value",
1969 "date_time_value",
1970 "duration_value",
1971 "uri_value",
1972 "string_list_value",
1973 "integer_list_value",
1974 "real_list_value",
1975 "boolean_list_value",
1976 "character_list_value",
1977 "date_list_value",
1978 "time_list_value",
1979 "date_time_list_value",
1980 "duration_list_value",
1981 "integer_interval_value",
1982 "real_interval_value",
1983 "date_interval_value",
1984 "time_interval_value",
1985 "date_time_interval_value",
1986 "duration_interval_value",
1987 "assertion",
1988 "boolean_leaf",
1989 "boolean_node",
1990 "relative_path",
1991 "arithmetic_expression",
1992 "arithmetic_leaf",
1993 "arithmetic_node",
1994 "path_segment",
1995 "existence_spec",
1996 "cardinality_spec",
1997 "occurrence_spec",
1998 "cardinality_limit_value",
1999 "c_integer_spec",
2000 "c_real_spec",
2001 "c_date_constraint",
2002 "c_time_constraint",
2003 "c_date_time_constraint",
2004 "c_duration_constraint",
2005 "duration_pattern",
2006 "c_string_spec",
2007 "c_boolean_spec",
2008 "c_ordinal_spec",
2009 "ordinal",
2010 "term_code_constraint_section",
2011 "term_code_body" ]
[4]2012
2013Racc_debug_parser = false
2014
[116]2015##### State transition tables end #####
[4]2016
[116]2017# reduce 0 omitted
[4]2018
[116]2019module_eval(<<'.,.,', 'parser.y', 30)
2020 def _reduce_1(val, _values, result)
2021 result = val[0]
2022
2023 result
[21]2024 end
2025.,.,
[4]2026
[116]2027# reduce 2 omitted
[4]2028
[116]2029module_eval(<<'.,.,', 'parser.y', 36)
2030 def _reduce_3(val, _values, result)
2031 assert_at(__FILE__,__LINE__) do
[22]2032 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)
2033 end
2034
[26]2035 archetype_id = val[0][:archetype_id]
[257]2036 parent_archtype_id = val[1][:parent_archtype_id] if val[1]
[26]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,
[257]2042 :parent_archtype_id => parent_archtype_id,
[26]2043 :adl_version => adl_version,
2044 :concept => concept,
2045 :description => val[4],
2046 :definition => val[5],
2047 :ontology => val[7]
2048 ) do |archetype|
2049 archetype.original_language = language
2050 end
[261]2051 @@logger.debug("#{__FILE__}:#{__LINE__}: archetype = #{archetype} at #{@filename}:#{@lineno}")
[26]2052 result = archetype
[116]2053
2054 result
[21]2055 end
2056.,.,
[4]2057
[257]2058module_eval(<<'.,.,', 'parser.y', 63)
[116]2059 def _reduce_4(val, _values, result)
2060 result = {:arch_head => val[0], :archetype_id => val[1] }
2061
2062 result
[25]2063 end
2064.,.,
[4]2065
[257]2066module_eval(<<'.,.,', 'parser.y', 67)
[116]2067 def _reduce_5(val, _values, result)
2068 raise
2069
2070 result
[25]2071 end
2072.,.,
[4]2073
[257]2074module_eval(<<'.,.,', 'parser.y', 72)
[116]2075 def _reduce_6(val, _values, result)
2076 result = {:arch_meta_data => nil }
2077
2078 result
[25]2079 end
2080.,.,
[4]2081
[257]2082module_eval(<<'.,.,', 'parser.y', 76)
[116]2083 def _reduce_7(val, _values, result)
2084 result = val[1]
2085
2086 result
[25]2087 end
2088.,.,
[4]2089
[257]2090module_eval(<<'.,.,', 'parser.y', 81)
[116]2091 def _reduce_8(val, _values, result)
2092 result = {:arch_meta_data => val[1] }
2093
2094 result
[25]2095 end
2096.,.,
[4]2097
[257]2098module_eval(<<'.,.,', 'parser.y', 86)
[116]2099 def _reduce_9(val, _values, result)
2100 result = val[0]
2101
2102 result
[25]2103 end
2104.,.,
[4]2105
[257]2106module_eval(<<'.,.,', 'parser.y', 90)
[116]2107 def _reduce_10(val, _values, result)
2108 result = val[0].merge(val[2])
2109
2110 result
[25]2111 end
2112.,.,
[4]2113
[257]2114module_eval(<<'.,.,', 'parser.y', 96)
[116]2115 def _reduce_11(val, _values, result)
2116 result = {:adl_version => val[2], :is_controlled => false }
2117
2118 result
[25]2119 end
2120.,.,
[4]2121
[257]2122module_eval(<<'.,.,', 'parser.y', 100)
[116]2123 def _reduce_12(val, _values, result)
2124 result = {:is_controlled => true }
2125
2126 result
[25]2127 end
2128.,.,
[4]2129
[116]2130# reduce 13 omitted
[4]2131
[257]2132module_eval(<<'.,.,', 'parser.y', 108)
2133 def _reduce_14(val, _values, result)
2134 result = {:parent_archtype_id => val[1]}
2135
2136 result
2137 end
2138.,.,
[4]2139
[116]2140# reduce 15 omitted
[4]2141
[257]2142module_eval(<<'.,.,', 'parser.y', 114)
[116]2143 def _reduce_16(val, _values, result)
2144 result = {:arch_concept => val[1] }
2145
2146 result
[26]2147 end
2148.,.,
[4]2149
[116]2150# reduce 17 omitted
[4]2151
[257]2152module_eval(<<'.,.,', 'parser.y', 124)
[116]2153 def _reduce_18(val, _values, result)
2154 result = {:arch_language => nil}
2155
2156 result
[26]2157 end
2158.,.,
[4]2159
[257]2160module_eval(<<'.,.,', 'parser.y', 128)
[116]2161 def _reduce_19(val, _values, result)
2162 result = {:arch_language => val[1]}
2163
2164 result
[16]2165 end
2166.,.,
[4]2167
[116]2168# reduce 20 omitted
[4]2169
[116]2170# reduce 21 omitted
[4]2171
[257]2172module_eval(<<'.,.,', 'parser.y', 139)
[116]2173 def _reduce_22(val, _values, result)
2174 result = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new(:details => val[1])
2175
2176 result
[21]2177 end
2178.,.,
[4]2179
[116]2180# reduce 23 omitted
[4]2181
[257]2182module_eval(<<'.,.,', 'parser.y', 147)
[116]2183 def _reduce_24(val, _values, result)
2184 result = val[1]
2185
2186 result
[21]2187 end
2188.,.,
[4]2189
[116]2190# reduce 25 omitted
[4]2191
[257]2192module_eval(<<'.,.,', 'parser.y', 155)
[116]2193 def _reduce_26(val, _values, result)
2194 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT)}
[261]2195 @@logger.debug("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0]} at #{@filename}:#{@lineno}")
[21]2196 result = val[0]
[116]2197
2198 result
[21]2199 end
2200.,.,
[4]2201
[257]2202module_eval(<<'.,.,', 'parser.y', 161)
[116]2203 def _reduce_27(val, _values, result)
2204 result = val[0]
2205
2206 result
[23]2207 end
2208.,.,
[4]2209
[257]2210module_eval(<<'.,.,', 'parser.y', 168)
[116]2211 def _reduce_28(val, _values, result)
2212 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object|
[23]2213 c_complex_object.node_id = val[0][:c_complex_object_id][:local_term_code_ref]
2214 c_complex_object.rm_type_name = val[0][:c_complex_object_id][:type_identifier]
2215 c_complex_object.occurrences = val[0][:c_occurrences]
2216 end
[116]2217
2218 result
[21]2219 end
2220.,.,
[4]2221
[257]2222module_eval(<<'.,.,', 'parser.y', 176)
[116]2223 def _reduce_29(val, _values, result)
2224 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object|
[23]2225 c_complex_object.node_id = val[0][:c_complex_object_id][:local_term_code_ref]
2226 c_complex_object.rm_type_name = val[0][:c_complex_object_id][:type_identifier]
2227 c_complex_object.occurrences = val[0][:c_occurrences]
2228 end
[116]2229
2230 result
[21]2231 end
2232.,.,
[4]2233
[257]2234module_eval(<<'.,.,', 'parser.y', 187)
[116]2235 def _reduce_30(val, _values, result)
2236 result = {:c_complex_object_id => val[0], :c_occurrences => val[1]}
2237
2238 result
[23]2239 end
2240.,.,
[4]2241
[257]2242module_eval(<<'.,.,', 'parser.y', 192)
[116]2243 def _reduce_31(val, _values, result)
2244 result = {:type_identifier => val[0]}
2245
2246 result
[16]2247 end
2248.,.,
[4]2249
[257]2250module_eval(<<'.,.,', 'parser.y', 196)
[116]2251 def _reduce_32(val, _values, result)
2252 result = {:type_identifier => val[0], :local_term_code_ref => val[1]}
2253
2254 result
[16]2255 end
2256.,.,
[4]2257
[116]2258# reduce 33 omitted
[4]2259
[257]2260module_eval(<<'.,.,', 'parser.y', 202)
[116]2261 def _reduce_34(val, _values, result)
2262 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => val[0])
2263
2264 result
[22]2265 end
2266.,.,
[4]2267
[261]2268module_eval(<<'.,.,', 'parser.y', 220)
[116]2269 def _reduce_35(val, _values, result)
[261]2270 @@logger.debug("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0].inspect} at #{@filename}:#{@lineno}")
2271 result = val[0]
[116]2272
2273 result
[22]2274 end
2275.,.,
[4]2276
[261]2277module_eval(<<'.,.,', 'parser.y', 225)
[116]2278 def _reduce_36(val, _values, result)
2279 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.create do |archetype_internal_ref|
[32]2280 archetype_internal_ref.target_path = val[0][:absolute_path]
2281 archetype_internal_ref.rm_type_name = val[0][:type_identifier]
2282 archetype_internal_ref.occurrences = val[0][:c_occurrences]
2283 end
[116]2284
2285 result
[22]2286 end
2287.,.,
[4]2288
[261]2289module_eval(<<'.,.,', 'parser.y', 233)
2290 def _reduce_37(val, _values, result)
[116]2291 result = val[0]
2292
2293 result
[22]2294 end
2295.,.,
[4]2296
[261]2297module_eval(<<'.,.,', 'parser.y', 237)
2298 def _reduce_38(val, _values, result)
[116]2299 result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.create do |constraint_ref|
[32]2300 constraint_ref.reference = val[0]
2301 end
[116]2302
2303 result
[22]2304 end
2305.,.,
[4]2306
[261]2307module_eval(<<'.,.,', 'parser.y', 243)
2308 def _reduce_39(val, _values, result)
2309 result = val[0]
2310
2311 result
2312 end
2313.,.,
2314
2315module_eval(<<'.,.,', 'parser.y', 247)
[116]2316 def _reduce_40(val, _values, result)
2317 result = val[0]
2318
2319 result
[22]2320 end
2321.,.,
[4]2322
[261]2323module_eval(<<'.,.,', 'parser.y', 251)
[116]2324 def _reduce_41(val, _values, result)
2325 result = val[0]
2326
2327 result
[22]2328 end
2329.,.,
[4]2330
[261]2331module_eval(<<'.,.,', 'parser.y', 255)
[116]2332 def _reduce_42(val, _values, result)
2333 result = val[0]
2334
2335 result
[22]2336 end
2337.,.,
[4]2338
[116]2339# reduce 43 omitted
[4]2340
[116]2341# reduce 44 omitted
[4]2342
[261]2343module_eval(<<'.,.,', 'parser.y', 271)
[116]2344 def _reduce_45(val, _values, result)
2345 result = val[1]
2346
2347 result
[23]2348 end
2349.,.,
[4]2350
[261]2351module_eval(<<'.,.,', 'parser.y', 277)
[116]2352 def _reduce_46(val, _values, result)
2353 result = {:type_identifier => val[1], :c_occurrences => val[2], :absolute_path => val[3] }
2354
2355 result
[32]2356 end
2357.,.,
[4]2358
[116]2359# reduce 47 omitted
[4]2360
[261]2361module_eval(<<'.,.,', 'parser.y', 284)
[116]2362 def _reduce_48(val, _values, result)
2363 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.create do |archetype_slot|
[32]2364 archetype_slot.includes = val[3]
2365 archetype_slot.excludes = val[4]
2366 archetype_slot.rm_type_name = val[0][:c_archetype_slot_id]
2367 archetype_slot.occurrences = val[0][:c_occurrences]
2368 end
[116]2369
2370 result
[32]2371 end
2372.,.,
[4]2373
[261]2374module_eval(<<'.,.,', 'parser.y', 293)
[116]2375 def _reduce_49(val, _values, result)
2376 result = {:c_archetype_slot_id => val[0],:c_occurrences => val[1]}
2377
2378 result
[32]2379 end
2380.,.,
[4]2381
[261]2382module_eval(<<'.,.,', 'parser.y', 298)
[116]2383 def _reduce_50(val, _values, result)
2384 result = val[1]
2385
2386 result
[32]2387 end
2388.,.,
[4]2389
[116]2390# reduce 51 omitted
[4]2391
[116]2392# reduce 52 omitted
[4]2393
[261]2394module_eval(<<'.,.,', 'parser.y', 306)
[116]2395 def _reduce_53(val, _values, result)
2396 assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE)}
[32]2397 result = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.create do |c_primitive_object|
2398 c_primitive_object.item = val[0]
2399 end
[116]2400
2401 result
[22]2402 end
2403.,.,
[4]2404
[261]2405module_eval(<<'.,.,', 'parser.y', 314)
[116]2406 def _reduce_54(val, _values, result)
[261]2407 @@logger.debug("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}")
[32]2408 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.create do |c_integer|
2409 c_integer.list
2410 c_integer.range
2411 c_integer.assumed_value
2412 end
[116]2413
2414 result
[21]2415 end
2416.,.,
[4]2417
[261]2418module_eval(<<'.,.,', 'parser.y', 323)
[116]2419 def _reduce_55(val, _values, result)
[261]2420 @@logger.debug("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}")
[22]2421 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL.new
[116]2422
2423 result
[22]2424 end
2425.,.,
[4]2426
[261]2427module_eval(<<'.,.,', 'parser.y', 328)
[116]2428 def _reduce_56(val, _values, result)
[261]2429 @@logger.debug("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}")
[22]2430 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE.new
[116]2431
2432 result
[22]2433 end
2434.,.,
[4]2435
[261]2436module_eval(<<'.,.,', 'parser.y', 333)
[116]2437 def _reduce_57(val, _values, result)
[261]2438 @@logger.debug("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}")
[22]2439 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME.new
[116]2440
2441 result
[22]2442 end
2443.,.,
[4]2444
[261]2445module_eval(<<'.,.,', 'parser.y', 338)
[116]2446 def _reduce_58(val, _values, result)
[261]2447 @@logger.debug("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}")
[22]2448 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new
[116]2449
2450 result
[22]2451 end
2452.,.,
[4]2453
[261]2454module_eval(<<'.,.,', 'parser.y', 343)
[116]2455 def _reduce_59(val, _values, result)
[261]2456 @@logger.debug("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}")
[22]2457 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new
[116]2458
2459 result
[22]2460 end
2461.,.,
[4]2462
[261]2463module_eval(<<'.,.,', 'parser.y', 348)
[116]2464 def _reduce_60(val, _values, result)
[261]2465 @@logger.debug("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}")
[22]2466 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING.new
[116]2467
2468 result
[22]2469 end
2470.,.,
[4]2471
[261]2472module_eval(<<'.,.,', 'parser.y', 353)
[116]2473 def _reduce_61(val, _values, result)
2474 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN)}
[261]2475 @@logger.debug("#{__FILE__}:#{__LINE__}: c_boolean = #{val[0]} at #{@filename}:#{@lineno}")
[22]2476 result = val[0]
[116]2477
2478 result
[22]2479 end
2480.,.,
[4]2481
[116]2482# reduce 62 omitted
[4]2483
[261]2484module_eval(<<'.,.,', 'parser.y', 365)
[116]2485 def _reduce_63(val, _values, result)
2486 result = [val[0]]
2487
2488 result
[22]2489 end
2490.,.,
[4]2491
[261]2492module_eval(<<'.,.,', 'parser.y', 369)
[116]2493 def _reduce_64(val, _values, result)
2494 result = (val[0] << val[1])
2495
2496 result
[22]2497 end
2498.,.,
[4]2499
[261]2500module_eval(<<'.,.,', 'parser.y', 375)
[116]2501 def _reduce_65(val, _values, result)
2502 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
[22]2503 c_attribute = val[0]
2504 c_attribute.children = val[3]
2505 result = c_attribute
[116]2506
2507 result
[22]2508 end
2509.,.,
[4]2510
[261]2511module_eval(<<'.,.,', 'parser.y', 382)
[116]2512 def _reduce_66(val, _values, result)
2513 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
[22]2514 result = val[0]
[116]2515
2516 result
[22]2517 end
2518.,.,
[4]2519
[261]2520module_eval(<<'.,.,', 'parser.y', 387)
[116]2521 def _reduce_67(val, _values, result)
2522 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
[22]2523 result = val[0]
[116]2524
2525 result
[22]2526 end
2527.,.,
[4]2528
[261]2529module_eval(<<'.,.,', 'parser.y', 394)
[116]2530 def _reduce_68(val, _values, result)
[261]2531 @@logger.debug("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}")
[22]2532 result = OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new(
2533 :rm_attribute_name => val[0],
2534 :existence => val[1]
2535 )
[116]2536
2537
2538 result
[19]2539 end
2540.,.,
[4]2541
[261]2542module_eval(<<'.,.,', 'parser.y', 403)
[116]2543 def _reduce_69(val, _values, result)
2544 assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY) }
[261]2545 @@logger.debug("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER: #{val[0]}, c_existence = #{val[1]}, c_cardinality = #{val[2]} at #{@filename}")
[22]2546 result = OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE.new(
2547 :rm_attribute_name => val[0],
2548 :existence => val[1],
2549 :cardinality => val[2]
2550 )
[116]2551
2552 result
[19]2553 end
2554.,.,
[4]2555
[261]2556module_eval(<<'.,.,', 'parser.y', 414)
[116]2557 def _reduce_70(val, _values, result)
2558 result = Array[val[0]]
2559
2560 result
[22]2561 end
2562.,.,
[4]2563
[261]2564module_eval(<<'.,.,', 'parser.y', 418)
[116]2565 def _reduce_71(val, _values, result)
2566 result = (val[0] << val[1])
2567
2568 result
[22]2569 end
2570.,.,
[4]2571
[261]2572module_eval(<<'.,.,', 'parser.y', 422)
[116]2573 def _reduce_72(val, _values, result)
2574 result = Array[val[0]]
2575
2576 result
[22]2577 end
2578.,.,
[4]2579
[116]2580# reduce 73 omitted
[4]2581
[261]2582module_eval(<<'.,.,', 'parser.y', 430)
[116]2583 def _reduce_74(val, _values, result)
2584 result = val[1]
2585
2586 result
[32]2587 end
2588.,.,
[4]2589
[116]2590# reduce 75 omitted
[4]2591
[261]2592module_eval(<<'.,.,', 'parser.y', 438)
[116]2593 def _reduce_76(val, _values, result)
2594 result = val[1]
2595
2596 result
[32]2597 end
2598.,.,
[4]2599
[116]2600# reduce 77 omitted
[4]2601
[116]2602# reduce 78 omitted
[4]2603
[116]2604# reduce 79 omitted
[4]2605
[116]2606# reduce 80 omitted
[4]2607
[116]2608# reduce 81 omitted
[4]2609
[116]2610# reduce 82 omitted
[4]2611
[116]2612# reduce 83 omitted
[4]2613
[116]2614# reduce 84 omitted
[4]2615
[261]2616module_eval(<<'.,.,', 'parser.y', 458)
[116]2617 def _reduce_85(val, _values, result)
2618 dadl_section = val[1]
[22]2619 result = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new
[116]2620
2621 result
[22]2622 end
2623.,.,
[4]2624
[116]2625# reduce 86 omitted
[4]2626
[116]2627# reduce 87 omitted
[4]2628
[116]2629# reduce 88 omitted
[4]2630
[116]2631# reduce 89 omitted
[4]2632
[261]2633module_eval(<<'.,.,', 'parser.y', 473)
[116]2634 def _reduce_90(val, _values, result)
2635 result = Array[val[0]]
2636
2637 result
[23]2638 end
2639.,.,
[4]2640
[261]2641module_eval(<<'.,.,', 'parser.y', 477)
[116]2642 def _reduce_91(val, _values, result)
2643 result = (val[0] << val[1])
2644
2645 result
[23]2646 end
2647.,.,
[4]2648
[261]2649module_eval(<<'.,.,', 'parser.y', 481)
[116]2650 def _reduce_92(val, _values, result)
2651 result = (val[0] << val[2])
2652
2653 result
[23]2654 end
2655.,.,
[4]2656
[261]2657module_eval(<<'.,.,', 'parser.y', 486)
[116]2658 def _reduce_93(val, _values, result)
[261]2659 @@logger.debug("#{__FILE__}:#{__LINE__}: attr_id = #{val[0]} at #{@filename}:#{@lineno}")
[23]2660 result = {:attr_id => val[0], :object_block => val[2]}
[116]2661
2662 result
[19]2663 end
2664.,.,
[4]2665
[261]2666module_eval(<<'.,.,', 'parser.y', 492)
[116]2667 def _reduce_94(val, _values, result)
[261]2668 @@logger.debug("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}")
[22]2669 result = val[0]
[116]2670
2671 result
[18]2672 end
2673.,.,
[4]2674
[116]2675# reduce 95 omitted
[4]2676
[261]2677module_eval(<<'.,.,', 'parser.y', 499)
[116]2678 def _reduce_96(val, _values, result)
2679 result = val[0]
2680
2681 result
[22]2682 end
2683.,.,
[4]2684
[261]2685module_eval(<<'.,.,', 'parser.y', 503)
[116]2686 def _reduce_97(val, _values, result)
2687 result = val[0]
2688
2689 result
[22]2690 end
2691.,.,
[4]2692
[261]2693module_eval(<<'.,.,', 'parser.y', 508)
[116]2694 def _reduce_98(val, _values, result)
2695 result = val[0]
2696
2697 result
[22]2698 end
2699.,.,
[4]2700
[261]2701module_eval(<<'.,.,', 'parser.y', 512)
[116]2702 def _reduce_99(val, _values, result)
2703 result = val[0]
2704
2705 result
[22]2706 end
2707.,.,
[4]2708
[261]2709module_eval(<<'.,.,', 'parser.y', 517)
[116]2710 def _reduce_100(val, _values, result)
2711 result = {:untyped_multiple_attr_object_block => val[0]}
2712
2713 result
[22]2714 end
2715.,.,
[4]2716
[261]2717module_eval(<<'.,.,', 'parser.y', 521)
[116]2718 def _reduce_101(val, _values, result)
2719 result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]}
2720
2721 result
[22]2722 end
2723.,.,
[4]2724
[261]2725module_eval(<<'.,.,', 'parser.y', 526)
[116]2726 def _reduce_102(val, _values, result)
2727 result = {:multiple_attr_object_block_head => val[0], :keyed_objects => val[1]}
2728
2729 result
[22]2730 end
2731.,.,
[4]2732
[261]2733module_eval(<<'.,.,', 'parser.y', 531)
[116]2734 def _reduce_103(val, _values, result)
[261]2735 @@logger.debug("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}")
[22]2736 result = val[0]
[116]2737
2738 result
[20]2739 end
2740.,.,
[4]2741
[261]2742module_eval(<<'.,.,', 'parser.y', 537)
[116]2743 def _reduce_104(val, _values, result)
2744 result = Array[val[0]]
2745
2746 result
[23]2747 end
2748.,.,
[4]2749
[261]2750module_eval(<<'.,.,', 'parser.y', 541)
[116]2751 def _reduce_105(val, _values, result)
2752 result = (val[0] << val[1])
2753
2754 result
[23]2755 end
2756.,.,
[4]2757
[261]2758module_eval(<<'.,.,', 'parser.y', 546)
[116]2759 def _reduce_106(val, _values, result)
[261]2760 @@logger.debug("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]} at #{@filename}:#{@lineno}")
[23]2761 result = {:object_key => val[0], :object_block => val[1]}
[116]2762
2763 result
[20]2764 end
2765.,.,
[4]2766
[261]2767module_eval(<<'.,.,', 'parser.y', 552)
[116]2768 def _reduce_107(val, _values, result)
[261]2769 @@logger.debug("object_key: [#{val[1]}] at #{@filename}:#{@lineno}")
[22]2770 result = val[1]
[116]2771
2772 result
[19]2773 end
2774.,.,
[4]2775
[261]2776module_eval(<<'.,.,', 'parser.y', 558)
[116]2777 def _reduce_108(val, _values, result)
2778 result = {:untyped_single_attr_object_block => val[0]}
2779
2780 result
[23]2781 end
2782.,.,
[4]2783
[261]2784module_eval(<<'.,.,', 'parser.y', 562)
[116]2785 def _reduce_109(val, _values, result)
2786 result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]}
2787
2788 result
[23]2789 end
2790.,.,
[4]2791
[261]2792module_eval(<<'.,.,', 'parser.y', 567)
[116]2793 def _reduce_110(val, _values, result)
[261]2794 @@logger.debug("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}")
[23]2795 result = {:single_attr_object_complex_head => val[0]}
[116]2796
2797 result
[22]2798 end
2799.,.,
[4]2800
[261]2801module_eval(<<'.,.,', 'parser.y', 572)
[116]2802 def _reduce_111(val, _values, result)
[261]2803 @@logger.debug("#{__FILE__}:#{__LINE__}: attr_vals = #{val[1]} at #{@filename}:#{@lineno}")
[23]2804 result = {:single_attr_object_complex_head => val[0], :attr_vals => val[1]}
[116]2805
2806 result
[22]2807 end
2808.,.,
[4]2809
[116]2810# reduce 112 omitted
[4]2811
[261]2812module_eval(<<'.,.,', 'parser.y', 578)
[116]2813 def _reduce_113(val, _values, result)
[261]2814 @@logger.debug("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}")
[23]2815 result = {:untyped_primitive_object_block => val[0]}
[116]2816
2817 result
[22]2818 end
2819.,.,
[4]2820
[261]2821module_eval(<<'.,.,', 'parser.y', 583)
[116]2822 def _reduce_114(val, _values, result)
[261]2823 @@logger.debug("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}")
[23]2824 result = {:type_identifier => val[0], :untyped_primitive_object_block => val[1]}
[116]2825
2826 result
[22]2827 end
2828.,.,
[4]2829
[261]2830module_eval(<<'.,.,', 'parser.y', 588)
[116]2831 def _reduce_115(val, _values, result)
[261]2832 @@logger.debug("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}")
[22]2833 result = val[1]
[116]2834
2835 result
[20]2836 end
2837.,.,
[4]2838
[261]2839module_eval(<<'.,.,', 'parser.y', 593)
[116]2840 def _reduce_116(val, _values, result)
2841 result = val[0]
2842
2843 result
[22]2844 end
2845.,.,
[4]2846
[261]2847module_eval(<<'.,.,', 'parser.y', 597)
[116]2848 def _reduce_117(val, _values, result)
2849 result = val[0]
2850
2851 result
[22]2852 end
2853.,.,
[4]2854
[261]2855module_eval(<<'.,.,', 'parser.y', 601)
[116]2856 def _reduce_118(val, _values, result)
2857 result = val[0]
2858
2859 result
[22]2860 end
2861.,.,
[4]2862
[261]2863module_eval(<<'.,.,', 'parser.y', 605)
[116]2864 def _reduce_119(val, _values, result)
2865 result = val[0]
2866
2867 result
[22]2868 end
2869.,.,
[4]2870
[261]2871module_eval(<<'.,.,', 'parser.y', 609)
[116]2872 def _reduce_120(val, _values, result)
2873 result = val[0]
2874
2875 result
[22]2876 end
2877.,.,
[4]2878
[261]2879module_eval(<<'.,.,', 'parser.y', 613)
[116]2880 def _reduce_121(val, _values, result)
[261]2881 @@logger.debug("string_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2882 result = val[0]
[116]2883
2884 result
[19]2885 end
2886.,.,
[4]2887
[261]2888module_eval(<<'.,.,', 'parser.y', 618)
[116]2889 def _reduce_122(val, _values, result)
[261]2890 @@logger.debug("integer_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2891 result = val[0]
[116]2892
2893 result
[19]2894 end
2895.,.,
[4]2896
[261]2897module_eval(<<'.,.,', 'parser.y', 623)
[116]2898 def _reduce_123(val, _values, result)
[261]2899 @@logger.debug("real_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2900 result = val[0]
[116]2901
2902 result
[19]2903 end
2904.,.,
[4]2905
[261]2906module_eval(<<'.,.,', 'parser.y', 628)
[116]2907 def _reduce_124(val, _values, result)
[261]2908 @@logger.debug("boolean_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2909 result = val[0]
[116]2910
2911 result
[19]2912 end
2913.,.,
[4]2914
[261]2915module_eval(<<'.,.,', 'parser.y', 633)
[116]2916 def _reduce_125(val, _values, result)
[261]2917 @@logger.debug("character_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2918 result = val[0]
[116]2919
2920 result
[19]2921 end
2922.,.,
[4]2923
[261]2924module_eval(<<'.,.,', 'parser.y', 638)
[116]2925 def _reduce_126(val, _values, result)
[261]2926 @@logger.debug("date_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2927 result = val[0]
[116]2928
2929 result
[19]2930 end
2931.,.,
[4]2932
[261]2933module_eval(<<'.,.,', 'parser.y', 643)
[116]2934 def _reduce_127(val, _values, result)
[261]2935 @@logger.debug("time_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2936 result = val[0]
[116]2937
2938 result
[19]2939 end
2940.,.,
[4]2941
[261]2942module_eval(<<'.,.,', 'parser.y', 648)
[116]2943 def _reduce_128(val, _values, result)
[261]2944 @@logger.debug("date_time_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2945 result = val[0]
[116]2946
2947 result
[19]2948 end
2949.,.,
[4]2950
[261]2951module_eval(<<'.,.,', 'parser.y', 653)
[116]2952 def _reduce_129(val, _values, result)
[261]2953 @@logger.debug("duration_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2954 result = val[0]
[116]2955
2956 result
[19]2957 end
2958.,.,
[4]2959
[261]2960module_eval(<<'.,.,', 'parser.y', 658)
[116]2961 def _reduce_130(val, _values, result)
[261]2962 @@logger.debug("uri_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2963 result = val[0]
[116]2964
2965 result
[19]2966 end
2967.,.,
[4]2968
[116]2969# reduce 131 omitted
[4]2970
[116]2971# reduce 132 omitted
[4]2972
[116]2973# reduce 133 omitted
[4]2974
[116]2975# reduce 134 omitted
[4]2976
[116]2977# reduce 135 omitted
[4]2978
[116]2979# reduce 136 omitted
[4]2980
[116]2981# reduce 137 omitted
[4]2982
[116]2983# reduce 138 omitted
[4]2984
[116]2985# reduce 139 omitted
[4]2986
[116]2987# reduce 140 omitted
[4]2988
[116]2989# reduce 141 omitted
[4]2990
[116]2991# reduce 142 omitted
[4]2992
[116]2993# reduce 143 omitted
[4]2994
[116]2995# reduce 144 omitted
[4]2996
[116]2997# reduce 145 omitted
[4]2998
[261]2999module_eval(<<'.,.,', 'parser.y', 681)
[116]3000 def _reduce_146(val, _values, result)
[261]3001 @@logger.debug("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
[22]3002 result = val[0]
[116]3003
3004 result
[19]3005 end
3006.,.,
[4]3007
[261]3008module_eval(<<'.,.,', 'parser.y', 686)
[116]3009 def _reduce_147(val, _values, result)
[261]3010 @@logger.debug("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
[22]3011 result = val[0]
[116]3012
3013 result
[19]3014 end
3015.,.,
[4]3016
[261]3017module_eval(<<'.,.,', 'parser.y', 692)
[116]3018 def _reduce_148(val, _values, result)
[261]3019 @@logger.debug("V_STRING: #{val[0]} at #{@filename}:#{@lineno}")
[22]3020 result = val[0]
[116]3021
3022 result
[18]3023 end
3024.,.,
[4]3025
[116]3026# reduce 149 omitted
[4]3027
[116]3028# reduce 150 omitted
[4]3029
[116]3030# reduce 151 omitted
[4]3031
[261]3032module_eval(<<'.,.,', 'parser.y', 702)
[116]3033 def _reduce_152(val, _values, result)
3034 begin
[22]3035 integer = Integer(val[0])
3036 rescue
3037 raise
3038 end
3039 result = integer
[116]3040
3041 result
[22]3042 end
3043.,.,
[4]3044
[261]3045module_eval(<<'.,.,', 'parser.y', 711)
[116]3046 def _reduce_153(val, _values, result)
3047 begin
[22]3048 integer = Integer(val[0])
3049 rescue
3050 raise
3051 end
3052 result = integer
[116]3053
3054 result
[22]3055 end
3056.,.,
[4]3057
[261]3058module_eval(<<'.,.,', 'parser.y', 720)
[116]3059 def _reduce_154(val, _values, result)
3060 begin
[22]3061 integer = Integer(val[0])
3062 rescue
3063 raise
3064 end
3065 result = - integer
[116]3066
3067 result
[22]3068 end
3069.,.,
[4]3070
[116]3071# reduce 155 omitted
[4]3072
[116]3073# reduce 156 omitted
[4]3074
[116]3075# reduce 157 omitted
[4]3076
[116]3077# reduce 158 omitted
[4]3078
[116]3079# reduce 159 omitted
[4]3080
[116]3081# reduce 160 omitted
[4]3082
[116]3083# reduce 161 omitted
[4]3084
[116]3085# reduce 162 omitted
[4]3086
[116]3087# reduce 163 omitted
[4]3088
[116]3089# reduce 164 omitted
[4]3090
[116]3091# reduce 165 omitted
[4]3092
[116]3093# reduce 166 omitted
[4]3094
[261]3095module_eval(<<'.,.,', 'parser.y', 746)
[116]3096 def _reduce_167(val, _values, result)
3097 begin
[23]3098 real = Float(val[0])
3099 rescue
3100 raise
3101 end
3102 result = real
[116]3103
3104 result
[23]3105 end
3106.,.,
[4]3107
[261]3108module_eval(<<'.,.,', 'parser.y', 755)
[116]3109 def _reduce_168(val, _values, result)
3110 begin
[25]3111 real = Float(val[1])
[23]3112 rescue
3113 raise
3114 end
3115 result = real
[116]3116
3117 result
[23]3118 end
3119.,.,
[4]3120
[261]3121module_eval(<<'.,.,', 'parser.y', 764)
[116]3122 def _reduce_169(val, _values, result)
3123 begin
[25]3124 real = Float(val[1])
[23]3125 rescue
3126 raise
3127 end
3128 result = - real
[116]3129
3130 result
[23]3131 end
3132.,.,
[4]3133
[116]3134# reduce 170 omitted
[4]3135
[116]3136# reduce 171 omitted
[4]3137
[116]3138# reduce 172 omitted
[4]3139
[116]3140# reduce 173 omitted
[4]3141
[116]3142# reduce 174 omitted
[4]3143
[116]3144# reduce 175 omitted
[4]3145
[116]3146# reduce 176 omitted
[4]3147
[116]3148# reduce 177 omitted
[4]3149
[116]3150# reduce 178 omitted
[4]3151
[116]3152# reduce 179 omitted
[4]3153
[116]3154# reduce 180 omitted
[4]3155
[116]3156# reduce 181 omitted
[4]3157
[261]3158module_eval(<<'.,.,', 'parser.y', 789)
[116]3159 def _reduce_182(val, _values, result)
3160 result = true
3161
3162 result
[23]3163 end
3164.,.,
[4]3165
[261]3166module_eval(<<'.,.,', 'parser.y', 793)
[116]3167 def _reduce_183(val, _values, result)
3168 result = false
3169
3170 result
[23]3171 end
3172.,.,
[4]3173
[116]3174# reduce 184 omitted
[4]3175
[116]3176# reduce 185 omitted
[4]3177
[116]3178# reduce 186 omitted
[4]3179
[116]3180# reduce 187 omitted
[4]3181
[116]3182# reduce 188 omitted
[4]3183
[116]3184# reduce 189 omitted
[4]3185
[116]3186# reduce 190 omitted
[4]3187
[116]3188# reduce 191 omitted
[4]3189
[116]3190# reduce 192 omitted
[4]3191
[116]3192# reduce 193 omitted
[4]3193
[116]3194# reduce 194 omitted
[4]3195
[116]3196# reduce 195 omitted
[4]3197
[116]3198# reduce 196 omitted
[4]3199
[116]3200# reduce 197 omitted
[4]3201
[116]3202# reduce 198 omitted
[4]3203
[116]3204# reduce 199 omitted
[4]3205
[116]3206# reduce 200 omitted
[4]3207
[116]3208# reduce 201 omitted
[4]3209
[116]3210# reduce 202 omitted
[4]3211
[116]3212# reduce 203 omitted
[4]3213
[116]3214# reduce 204 omitted
[4]3215
[116]3216# reduce 205 omitted
[4]3217
[116]3218# reduce 206 omitted
[4]3219
[116]3220# reduce 207 omitted
[4]3221
[116]3222# reduce 208 omitted
[4]3223
[116]3224# reduce 209 omitted
[4]3225
[116]3226# reduce 210 omitted
[4]3227
[116]3228# reduce 211 omitted
[4]3229
[116]3230# reduce 212 omitted
[4]3231
[116]3232# reduce 213 omitted
[4]3233
[116]3234# reduce 214 omitted
[4]3235
[116]3236# reduce 215 omitted
[4]3237
[116]3238# reduce 216 omitted
[4]3239
[116]3240# reduce 217 omitted
[4]3241
[116]3242# reduce 218 omitted
[4]3243
[116]3244# reduce 219 omitted
[4]3245
[116]3246# reduce 220 omitted
[4]3247
[116]3248# reduce 221 omitted
[4]3249
[116]3250# reduce 222 omitted
[4]3251
[116]3252# reduce 223 omitted
[4]3253
[116]3254# reduce 224 omitted
[4]3255
[116]3256# reduce 225 omitted
[4]3257
[116]3258# reduce 226 omitted
[4]3259
[116]3260# reduce 227 omitted
[4]3261
[116]3262# reduce 228 omitted
[4]3263
[116]3264# reduce 229 omitted
[4]3265
[261]3266module_eval(<<'.,.,', 'parser.y', 856)
[116]3267 def _reduce_230(val, _values, result)
[261]3268 @@logger.debug("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}")
[22]3269 result = val[0]
[116]3270
3271 result
[19]3272 end
3273.,.,
[4]3274
[116]3275# reduce 231 omitted
[4]3276
[116]3277# reduce 232 omitted
[4]3278
[116]3279# reduce 233 omitted
[4]3280
[116]3281# reduce 234 omitted
[4]3282
[116]3283# reduce 235 omitted
[4]3284
[116]3285# reduce 236 omitted
[4]3286
[116]3287# reduce 237 omitted
[4]3288
[116]3289# reduce 238 omitted
[4]3290
[116]3291# reduce 239 omitted
[4]3292
[116]3293# reduce 240 omitted
[4]3294
[116]3295# reduce 241 omitted
[4]3296
[116]3297# reduce 242 omitted
[4]3298
[261]3299module_eval(<<'.,.,', 'parser.y', 876)
[116]3300 def _reduce_243(val, _values, result)
[261]3301 @@logger.debug("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}")
[26]3302 result = val[0]
[116]3303
3304 result
[20]3305 end
3306.,.,
[4]3307
[116]3308# reduce 244 omitted
[4]3309
[116]3310# reduce 245 omitted
[4]3311
[116]3312# reduce 246 omitted
[4]3313
[261]3314module_eval(<<'.,.,', 'parser.y', 886)
[116]3315 def _reduce_247(val, _values, result)
[261]3316 @@logger.debug("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}")
[26]3317 result = val[0]
[116]3318
3319 result
[20]3320 end
3321.,.,
[4]3322
[116]3323# reduce 248 omitted
[4]3324
[116]3325# reduce 249 omitted
[4]3326
[116]3327# reduce 250 omitted
[4]3328
[116]3329# reduce 251 omitted
[4]3330
[116]3331# reduce 252 omitted
[4]3332
[116]3333# reduce 253 omitted
[4]3334
[116]3335# reduce 254 omitted
[4]3336
[116]3337# reduce 255 omitted
[4]3338
[116]3339# reduce 256 omitted
[4]3340
[116]3341# reduce 257 omitted
[4]3342
[116]3343# reduce 258 omitted
[4]3344
[116]3345# reduce 259 omitted
[4]3346
[116]3347# reduce 260 omitted
[4]3348
[116]3349# reduce 261 omitted
[4]3350
[116]3351# reduce 262 omitted
[4]3352
[116]3353# reduce 263 omitted
[4]3354
[116]3355# reduce 264 omitted
[4]3356
[116]3357# reduce 265 omitted
[4]3358
[116]3359# reduce 266 omitted
[4]3360
[116]3361# reduce 267 omitted
[4]3362
[116]3363# reduce 268 omitted
[4]3364
[116]3365# reduce 269 omitted
[4]3366
[116]3367# reduce 270 omitted
[4]3368
[116]3369# reduce 271 omitted
[4]3370
[116]3371# reduce 272 omitted
[4]3372
[116]3373# reduce 273 omitted
[4]3374
[116]3375# reduce 274 omitted
[4]3376
[116]3377# reduce 275 omitted
[4]3378
[116]3379# reduce 276 omitted
[4]3380
[116]3381# reduce 277 omitted
[4]3382
[116]3383# reduce 278 omitted
[4]3384
[116]3385# reduce 279 omitted
[4]3386
[116]3387# reduce 280 omitted
[4]3388
[116]3389# reduce 281 omitted
[4]3390
[116]3391# reduce 282 omitted
[4]3392
[116]3393# reduce 283 omitted
[4]3394
[116]3395# reduce 284 omitted
[4]3396
[116]3397# reduce 285 omitted
[4]3398
[116]3399# reduce 286 omitted
[4]3400
[116]3401# reduce 287 omitted
[4]3402
[261]3403module_eval(<<'.,.,', 'parser.y', 956)
[116]3404 def _reduce_288(val, _values, result)
[261]3405 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
[116]3406
3407 result
[19]3408 end
3409.,.,
[4]3410
[261]3411module_eval(<<'.,.,', 'parser.y', 960)
[116]3412 def _reduce_289(val, _values, result)
[261]3413 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
[116]3414
3415 result
[19]3416 end
3417.,.,
[4]3418
[261]3419module_eval(<<'.,.,', 'parser.y', 971)
[116]3420 def _reduce_290(val, _values, result)
3421 result = Range.new(1,1)
3422
3423 result
[22]3424 end
3425.,.,
[4]3426
[261]3427module_eval(<<'.,.,', 'parser.y', 975)
[116]3428 def _reduce_291(val, _values, result)
3429 result = val[3]
3430
3431 result
[22]3432 end
3433.,.,
[4]3434
[261]3435module_eval(<<'.,.,', 'parser.y', 980)
[116]3436 def _reduce_292(val, _values, result)
3437 begin
[22]3438 integer = Integer(val[0])
3439 rescue
3440 raise
3441 end
3442 result = integer
[116]3443
3444 result
[22]3445 end
3446.,.,
[4]3447
[261]3448module_eval(<<'.,.,', 'parser.y', 989)
[116]3449 def _reduce_293(val, _values, result)
3450 begin
[22]3451 from_integer = Integer(val[0])
3452 to_integer = Integer(val[2])
3453 rescue
3454 raise
3455 end
3456 result = Range.new(from_integer,to_integer)
[116]3457
3458 result
[22]3459 end
3460.,.,
[4]3461
[261]3462module_eval(<<'.,.,', 'parser.y', 1000)
[116]3463 def _reduce_294(val, _values, result)
3464 result = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new
3465
3466 result
[22]3467 end
3468.,.,
[4]3469
[116]3470# reduce 295 omitted
[4]3471
[116]3472# reduce 296 omitted
[4]3473
[116]3474# reduce 297 omitted
[4]3475
[116]3476# reduce 298 omitted
[4]3477
[116]3478# reduce 299 omitted
[4]3479
[116]3480# reduce 300 omitted
[4]3481
[116]3482# reduce 301 omitted
[4]3483
[116]3484# reduce 302 omitted
[4]3485
[261]3486module_eval(<<'.,.,', 'parser.y', 1014)
[116]3487 def _reduce_303(val, _values, result)
3488 result = val[0]
3489
3490 result
[49]3491 end
3492.,.,
[4]3493
[261]3494module_eval(<<'.,.,', 'parser.y', 1018)
[116]3495 def _reduce_304(val, _values, result)
3496 result = val[0]
3497
3498 result
[49]3499 end
3500.,.,
[4]3501
[116]3502# reduce 305 omitted
[4]3503
[261]3504module_eval(<<'.,.,', 'parser.y', 1025)
[116]3505 def _reduce_306(val, _values, result)
3506 result = val[3]
3507
3508 result
[23]3509 end
3510.,.,
[4]3511
[116]3512# reduce 307 omitted
[4]3513
[116]3514# reduce 308 omitted
[4]3515
[116]3516# reduce 309 omitted
[4]3517
[116]3518# reduce 310 omitted
[4]3519
[116]3520# reduce 311 omitted
[4]3521
[116]3522# reduce 312 omitted
[4]3523
[116]3524# reduce 313 omitted
[4]3525
[116]3526# reduce 314 omitted
[4]3527
[116]3528# reduce 315 omitted
[4]3529
[116]3530# reduce 316 omitted
[4]3531
[116]3532# reduce 317 omitted
[4]3533
[116]3534# reduce 318 omitted
[4]3535
[116]3536# reduce 319 omitted
[4]3537
[116]3538# reduce 320 omitted
[4]3539
[116]3540# reduce 321 omitted
[4]3541
[116]3542# reduce 322 omitted
[4]3543
[116]3544# reduce 323 omitted
[4]3545
[116]3546# reduce 324 omitted
[4]3547
[116]3548# reduce 325 omitted
[4]3549
[116]3550# reduce 326 omitted
[4]3551
[116]3552# reduce 327 omitted
[4]3553
[116]3554# reduce 328 omitted
[4]3555
[116]3556# reduce 329 omitted
[4]3557
[116]3558# reduce 330 omitted
[4]3559
[116]3560# reduce 331 omitted
[4]3561
[116]3562# reduce 332 omitted
[4]3563
[116]3564# reduce 333 omitted
[4]3565
[116]3566# reduce 334 omitted
[4]3567
[116]3568# reduce 335 omitted
[4]3569
[116]3570# reduce 336 omitted
[4]3571
[116]3572# reduce 337 omitted
[4]3573
[116]3574# reduce 338 omitted
[4]3575
[116]3576# reduce 339 omitted
[4]3577
[116]3578# reduce 340 omitted
[4]3579
[116]3580# reduce 341 omitted
[4]3581
[116]3582# reduce 342 omitted
[4]3583
[116]3584# reduce 343 omitted
[4]3585
[116]3586# reduce 344 omitted
[4]3587
[116]3588# reduce 345 omitted
[4]3589
[116]3590# reduce 346 omitted
[4]3591
[116]3592# reduce 347 omitted
[4]3593
[116]3594# reduce 348 omitted
[4]3595
[116]3596# reduce 349 omitted
[4]3597
[116]3598# reduce 350 omitted
[4]3599
[116]3600# reduce 351 omitted
[4]3601
[116]3602# reduce 352 omitted
[4]3603
[261]3604module_eval(<<'.,.,', 'parser.y', 1095)
[116]3605 def _reduce_353(val, _values, result)
3606 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true)
3607
3608 result
[22]3609 end
3610.,.,
[4]3611
[261]3612module_eval(<<'.,.,', 'parser.y', 1099)
[116]3613 def _reduce_354(val, _values, result)
3614 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false)
3615
3616 result
[22]3617 end
3618.,.,
[4]3619
[261]3620module_eval(<<'.,.,', 'parser.y', 1103)
[116]3621 def _reduce_355(val, _values, result)
3622 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false)
3623
3624 result
[22]3625 end
3626.,.,
[4]3627
[261]3628module_eval(<<'.,.,', 'parser.y', 1107)
[116]3629 def _reduce_356(val, _values, result)
3630 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true)
3631
3632 result
[22]3633 end
3634.,.,
[4]3635
[261]3636module_eval(<<'.,.,', 'parser.y', 1112)
[116]3637 def _reduce_357(val, _values, result)
3638 result = val[0]
3639
3640 result
[22]3641 end
3642.,.,
[4]3643
[261]3644module_eval(<<'.,.,', 'parser.y', 1116)
[116]3645 def _reduce_358(val, _values, result)
3646 raise 'Not implemented yet'
3647
3648 result
[22]3649 end
3650.,.,
[4]3651
[261]3652module_eval(<<'.,.,', 'parser.y', 1120)
[116]3653 def _reduce_359(val, _values, result)
3654 raise 'Not implemented yet'
3655
3656 result
[22]3657 end
3658.,.,
[4]3659
[116]3660# reduce 360 omitted
[4]3661
[116]3662# reduce 361 omitted
[4]3663
[116]3664# reduce 362 omitted
[4]3665
[116]3666# reduce 363 omitted
[4]3667
[116]3668# reduce 364 omitted
[4]3669
[261]3670module_eval(<<'.,.,', 'parser.y', 1132)
[116]3671 def _reduce_365(val, _values, result)
3672 @in_interval = false
[261]3673 @@logger.debug("#{__FILE__}:#{__LINE__}, #{val[0]}|#{val[2]} at #{@filename}")
[116]3674
3675 result
[20]3676 end
3677.,.,
[4]3678
[261]3679module_eval(<<'.,.,', 'parser.y', 1139)
[116]3680 def _reduce_366(val, _values, result)
3681 result = val[0]
3682
3683 result
[32]3684 end
3685.,.,
[4]3686
[261]3687module_eval(<<'.,.,', 'parser.y', 1143)
[116]3688 def _reduce_367(val, _values, result)
3689 result = val[0]
3690
3691 result
[32]3692 end
3693.,.,
[4]3694
[261]3695module_eval(<<'.,.,', 'parser.y', 1149)
3696 def _reduce_368(val, _values, result)
3697 @@logger.debug("#{__FILE__}:#{__LINE__}, START_TERM_CODE_CONSTRAINT = #{val[0]} at #{@filename}")
3698 @@logger.debug("#{__FILE__}:#{__LINE__}, term_code_body = #{val[1]}")
3699 @@logger.debug("#{__FILE__}:#{__LINE__}, END_TERM_CODE_CONSTRAINT = #{val[2]}")
3700 result = val[1]
3701
3702 result
3703 end
3704.,.,
[4]3705
[116]3706# reduce 369 omitted
[4]3707
[116]3708# reduce 370 omitted
[4]3709
[116]3710# reduce 371 omitted
[4]3711
[261]3712module_eval(<<'.,.,', 'parser.y', 1165)
[116]3713 def _reduce_372(val, _values, result)
3714 result = val[0]
3715
3716 result
[32]3717 end
3718.,.,
[4]3719
[261]3720module_eval(<<'.,.,', 'parser.y', 1170)
[116]3721 def _reduce_373(val, _values, result)
3722 result = val[0]
3723
3724 result
[32]3725 end
3726.,.,
[4]3727
[261]3728module_eval(<<'.,.,', 'parser.y', 1174)
[116]3729 def _reduce_374(val, _values, result)
[261]3730 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}")
[32]3731 result = val[0]
[116]3732
3733 result
[19]3734 end
3735.,.,
[4]3736
[261]3737module_eval(<<'.,.,', 'parser.y', 1185)
[116]3738 def _reduce_375(val, _values, result)
3739 result = val[0]
3740
3741 result
[26]3742 end
3743.,.,
[14]3744
[116]3745def _reduce_none(val, _values, result)
3746 val[0]
3747end
[4]3748
3749 end # class Parser
[116]3750 end # module ADL
3751 end # module OpenEHR
Note: See TracBrowser for help on using the repository browser.