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

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

refactoring adl scanners in object-oriented way in progress

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