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
RevLine 
[4]1#
2# DO NOT MODIFY!!!!
[116]3# This file is automatically generated by Racc 1.4.6
4# from Racc grammer file "".
[4]5#
6
[116]7require 'racc/parser.rb'
[4]8
9
10
11$:.unshift File.join(File.dirname(__FILE__))
[17]12require 'logger'
[21]13require 'rubygems'
[257]14require 'adl_parser.rb'
[49]15require 'am.rb'
[257]16require 'rm.rb'
[258]17$DEBUG = true
[4]18
19
20
21module OpenEHR
22 module ADL
23 class Parser < Racc::Parser
24
[265]25module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1205)
[17]26
[22]27def assert_at(file,line, message = "")
28 unless yield
29 raise "Assertion failed !: #{file}, #{line}: #{message}"
30 end
31end
32
[49]33if $DEBUG
[261]34 @@logger = Logger.new('log/parser.log','daily')
[263]35 @@logger.level = Logger::DEBUG
[49]36else
[261]37 @@logger = Logger.new(STDOUT)
38 @@logger.level = Logger::WARN
[49]39end
40
[17]41@@dadl_scanner = OpenEHR::ADL::Scanner::DADL::RootScanner.new
[19]42@@cadl_scanner = OpenEHR::ADL::Scanner::CADL::RootScanner.new
[17]43
[4]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
[265]102
[4]103def scan
[261]104 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan at #{@filename}:#{@lineno}:")
[265]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
[4]111 until @data.nil? do
112 case @adl_type.last
113 when :adl
[265]114 @data = adl_scanner.scan(@data) do |sym, val|
[4]115 yield sym, val
116 end
117 when :dadl
[265]118 @data = dadl_scanner.scan(@data) do |sym, val|
[4]119 yield sym, val
120 end
121 when :cadl
[265]122 @data = cadl_scanner.scan(@data) do |sym, val|
[4]123 yield sym, val
124 end
125 when :regexp
[265]126 @data = regex_scanner.scan(@data) do |sym, val|
[4]127 yield sym, val
128 end
[261]129 when :term_constraint
[265]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|
[261]132 yield sym, val
133 end
[4]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
[265]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
[4]178def scan_adl(data)
[261]179 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_adl at #{@filename}:#{@lineno}: data = #{data.inspect}")
[4]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
[261]191 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_adl: COMMENT = #{$&} at #{@filename}:#{@lineno}")
[4]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, $&
[257]200# when /\A[a-zA-Z][a-zA-Z0-9_-]+\.[a-zA-Z][a-zA-Z0-9_-]+\.[a-zA-Z0-9]+/ #V_ARCHETYPE_ID
[261]201 when /\A(\w+)-(\w+)-(\w+)\.(\w+)(-\w+)?\.(v\w+)/ #V_ARCHETYPE_ID
[257]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
[4]206 when /\A[a-z][a-zA-Z0-9_]*/
207# word = $&.downcase
208 word = $&
209 if @@adl_reserved[word]
[261]210 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_adl: @@adl_reserved = #{@@adl_reserved[word]} at #{@filename}:#{@lineno}")
[4]211 yield @@adl_reserved[word], @@adl_reserved[word]
212 elsif #/\A[A-Z][a-zA-Z0-9_]*/
[261]213 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_adl: V_ATTRIBUTE_IDENTIFIER = #{$&} at #{@filename}:#{@lineno}")
[4]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)
[16]229 yield :SYM_START_DBLOCK, $&
[4]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)
[261]241 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: entering cADL at #{@filename}:#{@lineno}")
[4]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}
[261]247 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: exiting cADL at #{@filename}:#{@lineno}")
[16]248 yield :SYM_END_CBLOCK, $&
[4]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]+)*/ # ?
[257]286 yield :V_VERSION_STRING, $&
[4]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
[257]304 when /\A"([^"]*)"/m #V_STRING
305 yield :V_STRING, $1
[4]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
[261]344 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_adl: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
345
[4]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)
[261]357 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_cadl at #{@filename}:#{@lineno}: data = #{data.inspect}")
[4]358 until data.nil? do
359 case @adl_type.last
360 when :cadl
[19]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
[4]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
[261]381 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: COMMENT = #{$&} at #{@filename}:#{@lineno}")
[4]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
[19]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, $&
[4]394 when /\A\</ # <
395 if @in_interval
396 yield :SYM_LT, :SYM_LT
397 else
398 @adl_type.push(:dadl)
[16]399 yield :SYM_START_DBLOCK, $&
[4]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)
[261]449 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: entering cADL at #{@filename}:#{@lineno}")
[4]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}
[261]455 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: exiting cADL at #{@filename}:#{@lineno}")
[4]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\|/ # |
[261]464 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: @in_interval = #{@in_interval} at #{@filename}:#{@lineno}")
[4]465 if @in_interval
466 @in_interval = false
467 else
[20]468# @in_interval = false
469 @in_interval = true
[4]470 end
[261]471 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: SYM_INTERVAL_DELIM at #{@filename}:#{@lineno}")
[4]472 yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
[19]473
[261]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]
[4]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, $&
[261]479 when /\A\[([a-zA-Z0-9\(\)\._\-]+)::[ \t\n]*/
[4]480 @adl_type.push(:term_constraint)
[261]481 yield :START_TERM_CODE_CONSTRAINT, $1
[4]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
[261]501 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}:#{@lineno}")
[4]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, $&
[19]523 when /\A"((?:[^"\\]+|\\.)*)"/ #V_STRING
[4]524 when /\A"([^"]*)"/m #V_STRING
525 yield :V_STRING, $1
526 when /\A[a-z]+:\/\/[^<>|\\{}^~"\[\] ]*/ #V_URI
527 yield :V_URI, $&
[19]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, $&
[4]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
[261]549 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_cadl: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
550
[4]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)
[261]561 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_dadl at #{@filename}:#{@lineno}: data = #{data.inspect}")
[4]562 until data.nil? do
563 case @adl_type.last
564 when :dadl
[17]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
[4]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
[261]580 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_dadl: COMMENT = #{$&} at #{@filename}:#{@lineno}")
[4]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
[20]598# @in_interval = false
[4]599 yield :SYM_GT, :SYM_GT
[16]600 elsif @in_c_domain_type == true
601 assert_at(__FILE__,__LINE__){@adl_type.last == :dadl}
[14]602 adl_type = @adl_type.pop
[16]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
[4]610 adl_type = @adl_type.pop
611 assert_at(__FILE__,__LINE__){adl_type == :dadl}
[16]612 yield :SYM_END_DBLOCK, $&
613 else
614 raise
[4]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\|/ # |
[261]651 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_dadl: @in_interval = #{@in_interval} at #{@filename}:#{@lineno}")
[4]652 if @in_interval
653 @in_interval = false
654 else
[20]655# @in_interval = false
656 @in_interval = true
[4]657 end
[261]658 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_dadl: SYM_INTERVAL_DELIM at #{@filename}:#{@lineno}")
[4]659 yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
[17]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, $&
[18]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, $&
[4]666 when /\A\[/ # [
667 yield :Left_bracket_code, :Left_bracket_code
668 when /\A\]/ # ]
669 yield :Right_bracket_code, :Right_bracket_code
[18]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, $&
[4]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, $&
[18]693### when /\A[0-9]+\.[0-9]+|[0-9]+\.[0-9]+[eE][+-]?[0-9]+ / #V_REAL
694### yield :V_REAL, $&
[4]695 # when /\A"((?:[^"\\]+|\\.)*)"/ #V_STRING
[18]696### when /\A"([^"]*)"/m #V_STRING
697### yield :V_STRING, $1
[4]698 when /\A[a-z]+:\/\/[^<>|\\{}^~"\[\] ]*/ #V_URI
699 yield :V_URI, $&
[19]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, $&
[4]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
[261]720 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_dadl: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
721
[4]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)
[261]732 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_regexp at #{@filename}:#{@lineno}: data = #{data.inspect}")
[4]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
[261]771 @@logger.debug("#{__FILE__}:#{__LINE__}: scan_regexp: Entering scan_term_constraint at #{@filename}:#{@lineno}")
[4]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)
[261]782 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_term_constraint")
[4]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
[261]794 #@@logger.debug("#{__FILE__}:#{__LINE__}: scan_term_constraint: COMMENT = #{$&} at #{@filename}:#{@lineno}")
[4]795 ;
[261]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 ']'
[4]801 adl_type = @adl_type.pop
802 assert_at(__FILE__,__LINE__){adl_type == :term_constraint}
[261]803 yield :END_TERM_CODE_CONSTRAINT, $1
[4]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
[14]836 @in_c_domain_type = false
[4]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:
[116]857...end parser.y/module_eval...
858##### State transition tables begin ###
[4]859
860racc_action_table = [
[32]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 ]
[4]952
953racc_action_check = [
[32]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 ]
[4]1045
1046racc_action_pointer = [
[32]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,
[4]1059 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]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 ]
[4]1111
1112racc_action_default = [
[32]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,
[16]1137 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
[32]1138 -376, -376, -376, -115, -376, -376, -376, -376, -376, -376,
[16]1139 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
[32]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,
[16]1153 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
[32]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,
[16]1162 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
[32]1163 -376, -376, -376, -195, -376, -208, -376, -221, -376, -234,
1164 -376, -376, -376, -43, -305, -376, -53, -44, -376, -376,
[261]1165 -31, -72, -310, -70, -36, -37, -372, -38, -39, -360,
1166 -40, -376, -363, -41, -367, -366, -42, -369, -376, -35,
[32]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 ]
[4]1177
1178racc_goto_table = [
[32]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,
[4]1208 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1209 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]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,
[4]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,
[14]1234 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]1235 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1236 632 ]
[4]1237
1238racc_goto_check = [
[32]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,
[4]1268 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1269 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]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,
[4]1291 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1292 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[14]1293 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[19]1294 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]1295 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1296 56 ]
[4]1297
1298racc_goto_pointer = [
[32]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 ]
[4]1312
1313racc_goto_default = [
1314 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
[32]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 ]
[4]1327
[116]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,
[257]1343 2, 99, :_reduce_14,
[116]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,
[261]1374 3, 128, :_reduce_45,
1375 4, 122, :_reduce_46,
1376 3, 122, :_reduce_none,
1377 6, 123, :_reduce_48,
[116]1378 2, 130, :_reduce_49,
1379 2, 133, :_reduce_50,
1380 3, 133, :_reduce_none,
1381 2, 133, :_reduce_none,
[261]1382 1, 127, :_reduce_53,
[116]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,
[261]1689 1, 126, :_reduce_none,
1690 3, 126, :_reduce_none,
1691 3, 126, :_reduce_none,
[116]1692 1, 221, :_reduce_none,
1693 3, 221, :_reduce_none,
1694 3, 222, :_reduce_365,
[261]1695 1, 125, :_reduce_366,
1696 1, 125, :_reduce_367,
1697 3, 223, :_reduce_368,
[116]1698 0, 224, :_reduce_none,
1699 1, 224, :_reduce_none,
1700 2, 224, :_reduce_none,
[261]1701 1, 124, :_reduce_372,
[116]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
[4]1710racc_token_table = {
[116]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 }
[4]1806
[116]1807racc_nt_base = 95
1808
[4]1809racc_use_result_var = true
1810
1811Racc_arg = [
[116]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 ]
[4]1826
1827Racc_token_to_s_table = [
[116]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",
[261]1956 "v_c_domain_type",
[116]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" ]
[4]2053
2054Racc_debug_parser = false
2055
[116]2056##### State transition tables end #####
[4]2057
[116]2058# reduce 0 omitted
[4]2059
[116]2060module_eval(<<'.,.,', 'parser.y', 30)
2061 def _reduce_1(val, _values, result)
2062 result = val[0]
2063
2064 result
[21]2065 end
2066.,.,
[4]2067
[116]2068# reduce 2 omitted
[4]2069
[116]2070module_eval(<<'.,.,', 'parser.y', 36)
2071 def _reduce_3(val, _values, result)
2072 assert_at(__FILE__,__LINE__) do
[22]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
[26]2076 archetype_id = val[0][:archetype_id]
[257]2077 parent_archtype_id = val[1][:parent_archtype_id] if val[1]
[26]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,
[257]2083 :parent_archtype_id => parent_archtype_id,
[26]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
[261]2092 @@logger.debug("#{__FILE__}:#{__LINE__}: archetype = #{archetype} at #{@filename}:#{@lineno}")
[26]2093 result = archetype
[116]2094
2095 result
[21]2096 end
2097.,.,
[4]2098
[257]2099module_eval(<<'.,.,', 'parser.y', 63)
[116]2100 def _reduce_4(val, _values, result)
2101 result = {:arch_head => val[0], :archetype_id => val[1] }
2102
2103 result
[25]2104 end
2105.,.,
[4]2106
[257]2107module_eval(<<'.,.,', 'parser.y', 67)
[116]2108 def _reduce_5(val, _values, result)
2109 raise
2110
2111 result
[25]2112 end
2113.,.,
[4]2114
[257]2115module_eval(<<'.,.,', 'parser.y', 72)
[116]2116 def _reduce_6(val, _values, result)
2117 result = {:arch_meta_data => nil }
2118
2119 result
[25]2120 end
2121.,.,
[4]2122
[257]2123module_eval(<<'.,.,', 'parser.y', 76)
[116]2124 def _reduce_7(val, _values, result)
2125 result = val[1]
2126
2127 result
[25]2128 end
2129.,.,
[4]2130
[257]2131module_eval(<<'.,.,', 'parser.y', 81)
[116]2132 def _reduce_8(val, _values, result)
2133 result = {:arch_meta_data => val[1] }
2134
2135 result
[25]2136 end
2137.,.,
[4]2138
[257]2139module_eval(<<'.,.,', 'parser.y', 86)
[116]2140 def _reduce_9(val, _values, result)
2141 result = val[0]
2142
2143 result
[25]2144 end
2145.,.,
[4]2146
[257]2147module_eval(<<'.,.,', 'parser.y', 90)
[116]2148 def _reduce_10(val, _values, result)
2149 result = val[0].merge(val[2])
2150
2151 result
[25]2152 end
2153.,.,
[4]2154
[257]2155module_eval(<<'.,.,', 'parser.y', 96)
[116]2156 def _reduce_11(val, _values, result)
2157 result = {:adl_version => val[2], :is_controlled => false }
2158
2159 result
[25]2160 end
2161.,.,
[4]2162
[257]2163module_eval(<<'.,.,', 'parser.y', 100)
[116]2164 def _reduce_12(val, _values, result)
2165 result = {:is_controlled => true }
2166
2167 result
[25]2168 end
2169.,.,
[4]2170
[116]2171# reduce 13 omitted
[4]2172
[257]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.,.,
[4]2180
[116]2181# reduce 15 omitted
[4]2182
[257]2183module_eval(<<'.,.,', 'parser.y', 114)
[116]2184 def _reduce_16(val, _values, result)
2185 result = {:arch_concept => val[1] }
2186
2187 result
[26]2188 end
2189.,.,
[4]2190
[116]2191# reduce 17 omitted
[4]2192
[257]2193module_eval(<<'.,.,', 'parser.y', 124)
[116]2194 def _reduce_18(val, _values, result)
2195 result = {:arch_language => nil}
2196
2197 result
[26]2198 end
2199.,.,
[4]2200
[257]2201module_eval(<<'.,.,', 'parser.y', 128)
[116]2202 def _reduce_19(val, _values, result)
2203 result = {:arch_language => val[1]}
2204
2205 result
[16]2206 end
2207.,.,
[4]2208
[116]2209# reduce 20 omitted
[4]2210
[116]2211# reduce 21 omitted
[4]2212
[257]2213module_eval(<<'.,.,', 'parser.y', 139)
[116]2214 def _reduce_22(val, _values, result)
2215 result = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new(:details => val[1])
2216
2217 result
[21]2218 end
2219.,.,
[4]2220
[116]2221# reduce 23 omitted
[4]2222
[257]2223module_eval(<<'.,.,', 'parser.y', 147)
[116]2224 def _reduce_24(val, _values, result)
2225 result = val[1]
2226
2227 result
[21]2228 end
2229.,.,
[4]2230
[116]2231# reduce 25 omitted
[4]2232
[257]2233module_eval(<<'.,.,', 'parser.y', 155)
[116]2234 def _reduce_26(val, _values, result)
2235 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT)}
[261]2236 @@logger.debug("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0]} at #{@filename}:#{@lineno}")
[21]2237 result = val[0]
[116]2238
2239 result
[21]2240 end
2241.,.,
[4]2242
[257]2243module_eval(<<'.,.,', 'parser.y', 161)
[116]2244 def _reduce_27(val, _values, result)
2245 result = val[0]
2246
2247 result
[23]2248 end
2249.,.,
[4]2250
[257]2251module_eval(<<'.,.,', 'parser.y', 168)
[116]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|
[23]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
[116]2258
2259 result
[21]2260 end
2261.,.,
[4]2262
[257]2263module_eval(<<'.,.,', 'parser.y', 176)
[116]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|
[23]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
[116]2270
2271 result
[21]2272 end
2273.,.,
[4]2274
[257]2275module_eval(<<'.,.,', 'parser.y', 187)
[116]2276 def _reduce_30(val, _values, result)
2277 result = {:c_complex_object_id => val[0], :c_occurrences => val[1]}
2278
2279 result
[23]2280 end
2281.,.,
[4]2282
[257]2283module_eval(<<'.,.,', 'parser.y', 192)
[116]2284 def _reduce_31(val, _values, result)
2285 result = {:type_identifier => val[0]}
2286
2287 result
[16]2288 end
2289.,.,
[4]2290
[257]2291module_eval(<<'.,.,', 'parser.y', 196)
[116]2292 def _reduce_32(val, _values, result)
2293 result = {:type_identifier => val[0], :local_term_code_ref => val[1]}
2294
2295 result
[16]2296 end
2297.,.,
[4]2298
[116]2299# reduce 33 omitted
[4]2300
[257]2301module_eval(<<'.,.,', 'parser.y', 202)
[116]2302 def _reduce_34(val, _values, result)
2303 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => val[0])
2304
2305 result
[22]2306 end
2307.,.,
[4]2308
[261]2309module_eval(<<'.,.,', 'parser.y', 220)
[116]2310 def _reduce_35(val, _values, result)
[261]2311 @@logger.debug("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0].inspect} at #{@filename}:#{@lineno}")
2312 result = val[0]
[116]2313
2314 result
[22]2315 end
2316.,.,
[4]2317
[261]2318module_eval(<<'.,.,', 'parser.y', 225)
[116]2319 def _reduce_36(val, _values, result)
2320 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.create do |archetype_internal_ref|
[32]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
[116]2325
2326 result
[22]2327 end
2328.,.,
[4]2329
[261]2330module_eval(<<'.,.,', 'parser.y', 233)
2331 def _reduce_37(val, _values, result)
[116]2332 result = val[0]
2333
2334 result
[22]2335 end
2336.,.,
[4]2337
[261]2338module_eval(<<'.,.,', 'parser.y', 237)
2339 def _reduce_38(val, _values, result)
[116]2340 result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.create do |constraint_ref|
[32]2341 constraint_ref.reference = val[0]
2342 end
[116]2343
2344 result
[22]2345 end
2346.,.,
[4]2347
[261]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)
[116]2357 def _reduce_40(val, _values, result)
2358 result = val[0]
2359
2360 result
[22]2361 end
2362.,.,
[4]2363
[261]2364module_eval(<<'.,.,', 'parser.y', 251)
[116]2365 def _reduce_41(val, _values, result)
2366 result = val[0]
2367
2368 result
[22]2369 end
2370.,.,
[4]2371
[261]2372module_eval(<<'.,.,', 'parser.y', 255)
[116]2373 def _reduce_42(val, _values, result)
2374 result = val[0]
2375
2376 result
[22]2377 end
2378.,.,
[4]2379
[116]2380# reduce 43 omitted
[4]2381
[116]2382# reduce 44 omitted
[4]2383
[261]2384module_eval(<<'.,.,', 'parser.y', 271)
[116]2385 def _reduce_45(val, _values, result)
2386 result = val[1]
2387
2388 result
[23]2389 end
2390.,.,
[4]2391
[261]2392module_eval(<<'.,.,', 'parser.y', 277)
[116]2393 def _reduce_46(val, _values, result)
2394 result = {:type_identifier => val[1], :c_occurrences => val[2], :absolute_path => val[3] }
2395
2396 result
[32]2397 end
2398.,.,
[4]2399
[116]2400# reduce 47 omitted
[4]2401
[261]2402module_eval(<<'.,.,', 'parser.y', 284)
[116]2403 def _reduce_48(val, _values, result)
2404 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.create do |archetype_slot|
[32]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
[116]2410
2411 result
[32]2412 end
2413.,.,
[4]2414
[261]2415module_eval(<<'.,.,', 'parser.y', 293)
[116]2416 def _reduce_49(val, _values, result)
2417 result = {:c_archetype_slot_id => val[0],:c_occurrences => val[1]}
2418
2419 result
[32]2420 end
2421.,.,
[4]2422
[261]2423module_eval(<<'.,.,', 'parser.y', 298)
[116]2424 def _reduce_50(val, _values, result)
2425 result = val[1]
2426
2427 result
[32]2428 end
2429.,.,
[4]2430
[116]2431# reduce 51 omitted
[4]2432
[116]2433# reduce 52 omitted
[4]2434
[261]2435module_eval(<<'.,.,', 'parser.y', 306)
[116]2436 def _reduce_53(val, _values, result)
2437 assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE)}
[32]2438 result = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.create do |c_primitive_object|
2439 c_primitive_object.item = val[0]
2440 end
[116]2441
2442 result
[22]2443 end
2444.,.,
[4]2445
[261]2446module_eval(<<'.,.,', 'parser.y', 314)
[116]2447 def _reduce_54(val, _values, result)
[261]2448 @@logger.debug("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}")
[32]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
[116]2454
2455 result
[21]2456 end
2457.,.,
[4]2458
[261]2459module_eval(<<'.,.,', 'parser.y', 323)
[116]2460 def _reduce_55(val, _values, result)
[261]2461 @@logger.debug("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}")
[22]2462 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL.new
[116]2463
2464 result
[22]2465 end
2466.,.,
[4]2467
[261]2468module_eval(<<'.,.,', 'parser.y', 328)
[116]2469 def _reduce_56(val, _values, result)
[261]2470 @@logger.debug("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}")
[22]2471 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE.new
[116]2472
2473 result
[22]2474 end
2475.,.,
[4]2476
[261]2477module_eval(<<'.,.,', 'parser.y', 333)
[116]2478 def _reduce_57(val, _values, result)
[261]2479 @@logger.debug("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}")
[22]2480 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME.new
[116]2481
2482 result
[22]2483 end
2484.,.,
[4]2485
[261]2486module_eval(<<'.,.,', 'parser.y', 338)
[116]2487 def _reduce_58(val, _values, result)
[261]2488 @@logger.debug("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}")
[22]2489 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new
[116]2490
2491 result
[22]2492 end
2493.,.,
[4]2494
[261]2495module_eval(<<'.,.,', 'parser.y', 343)
[116]2496 def _reduce_59(val, _values, result)
[261]2497 @@logger.debug("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}")
[22]2498 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new
[116]2499
2500 result
[22]2501 end
2502.,.,
[4]2503
[261]2504module_eval(<<'.,.,', 'parser.y', 348)
[116]2505 def _reduce_60(val, _values, result)
[261]2506 @@logger.debug("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}")
[22]2507 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING.new
[116]2508
2509 result
[22]2510 end
2511.,.,
[4]2512
[261]2513module_eval(<<'.,.,', 'parser.y', 353)
[116]2514 def _reduce_61(val, _values, result)
2515 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN)}
[261]2516 @@logger.debug("#{__FILE__}:#{__LINE__}: c_boolean = #{val[0]} at #{@filename}:#{@lineno}")
[22]2517 result = val[0]
[116]2518
2519 result
[22]2520 end
2521.,.,
[4]2522
[116]2523# reduce 62 omitted
[4]2524
[261]2525module_eval(<<'.,.,', 'parser.y', 365)
[116]2526 def _reduce_63(val, _values, result)
2527 result = [val[0]]
2528
2529 result
[22]2530 end
2531.,.,
[4]2532
[261]2533module_eval(<<'.,.,', 'parser.y', 369)
[116]2534 def _reduce_64(val, _values, result)
2535 result = (val[0] << val[1])
2536
2537 result
[22]2538 end
2539.,.,
[4]2540
[261]2541module_eval(<<'.,.,', 'parser.y', 375)
[116]2542 def _reduce_65(val, _values, result)
2543 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
[22]2544 c_attribute = val[0]
2545 c_attribute.children = val[3]
2546 result = c_attribute
[116]2547
2548 result
[22]2549 end
2550.,.,
[4]2551
[261]2552module_eval(<<'.,.,', 'parser.y', 382)
[116]2553 def _reduce_66(val, _values, result)
2554 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
[22]2555 result = val[0]
[116]2556
2557 result
[22]2558 end
2559.,.,
[4]2560
[261]2561module_eval(<<'.,.,', 'parser.y', 387)
[116]2562 def _reduce_67(val, _values, result)
2563 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
[22]2564 result = val[0]
[116]2565
2566 result
[22]2567 end
2568.,.,
[4]2569
[261]2570module_eval(<<'.,.,', 'parser.y', 394)
[116]2571 def _reduce_68(val, _values, result)
[261]2572 @@logger.debug("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}")
[22]2573 result = OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new(
2574 :rm_attribute_name => val[0],
2575 :existence => val[1]
2576 )
[116]2577
2578
2579 result
[19]2580 end
2581.,.,
[4]2582
[261]2583module_eval(<<'.,.,', 'parser.y', 403)
[116]2584 def _reduce_69(val, _values, result)
2585 assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY) }
[261]2586 @@logger.debug("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER: #{val[0]}, c_existence = #{val[1]}, c_cardinality = #{val[2]} at #{@filename}")
[22]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 )
[116]2592
2593 result
[19]2594 end
2595.,.,
[4]2596
[261]2597module_eval(<<'.,.,', 'parser.y', 414)
[116]2598 def _reduce_70(val, _values, result)
2599 result = Array[val[0]]
2600
2601 result
[22]2602 end
2603.,.,
[4]2604
[261]2605module_eval(<<'.,.,', 'parser.y', 418)
[116]2606 def _reduce_71(val, _values, result)
2607 result = (val[0] << val[1])
2608
2609 result
[22]2610 end
2611.,.,
[4]2612
[261]2613module_eval(<<'.,.,', 'parser.y', 422)
[116]2614 def _reduce_72(val, _values, result)
2615 result = Array[val[0]]
2616
2617 result
[22]2618 end
2619.,.,
[4]2620
[116]2621# reduce 73 omitted
[4]2622
[261]2623module_eval(<<'.,.,', 'parser.y', 430)
[116]2624 def _reduce_74(val, _values, result)
2625 result = val[1]
2626
2627 result
[32]2628 end
2629.,.,
[4]2630
[116]2631# reduce 75 omitted
[4]2632
[261]2633module_eval(<<'.,.,', 'parser.y', 438)
[116]2634 def _reduce_76(val, _values, result)
2635 result = val[1]
2636
2637 result
[32]2638 end
2639.,.,
[4]2640
[116]2641# reduce 77 omitted
[4]2642
[116]2643# reduce 78 omitted
[4]2644
[116]2645# reduce 79 omitted
[4]2646
[116]2647# reduce 80 omitted
[4]2648
[116]2649# reduce 81 omitted
[4]2650
[116]2651# reduce 82 omitted
[4]2652
[116]2653# reduce 83 omitted
[4]2654
[116]2655# reduce 84 omitted
[4]2656
[261]2657module_eval(<<'.,.,', 'parser.y', 458)
[116]2658 def _reduce_85(val, _values, result)
2659 dadl_section = val[1]
[22]2660 result = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new
[116]2661
2662 result
[22]2663 end
2664.,.,
[4]2665
[116]2666# reduce 86 omitted
[4]2667
[116]2668# reduce 87 omitted
[4]2669
[116]2670# reduce 88 omitted
[4]2671
[116]2672# reduce 89 omitted
[4]2673
[261]2674module_eval(<<'.,.,', 'parser.y', 473)
[116]2675 def _reduce_90(val, _values, result)
2676 result = Array[val[0]]
2677
2678 result
[23]2679 end
2680.,.,
[4]2681
[261]2682module_eval(<<'.,.,', 'parser.y', 477)
[116]2683 def _reduce_91(val, _values, result)
2684 result = (val[0] << val[1])
2685
2686 result
[23]2687 end
2688.,.,
[4]2689
[261]2690module_eval(<<'.,.,', 'parser.y', 481)
[116]2691 def _reduce_92(val, _values, result)
2692 result = (val[0] << val[2])
2693
2694 result
[23]2695 end
2696.,.,
[4]2697
[261]2698module_eval(<<'.,.,', 'parser.y', 486)
[116]2699 def _reduce_93(val, _values, result)
[261]2700 @@logger.debug("#{__FILE__}:#{__LINE__}: attr_id = #{val[0]} at #{@filename}:#{@lineno}")
[23]2701 result = {:attr_id => val[0], :object_block => val[2]}
[116]2702
2703 result
[19]2704 end
2705.,.,
[4]2706
[261]2707module_eval(<<'.,.,', 'parser.y', 492)
[116]2708 def _reduce_94(val, _values, result)
[261]2709 @@logger.debug("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}")
[22]2710 result = val[0]
[116]2711
2712 result
[18]2713 end
2714.,.,
[4]2715
[116]2716# reduce 95 omitted
[4]2717
[261]2718module_eval(<<'.,.,', 'parser.y', 499)
[116]2719 def _reduce_96(val, _values, result)
2720 result = val[0]
2721
2722 result
[22]2723 end
2724.,.,
[4]2725
[261]2726module_eval(<<'.,.,', 'parser.y', 503)
[116]2727 def _reduce_97(val, _values, result)
2728 result = val[0]
2729
2730 result
[22]2731 end
2732.,.,
[4]2733
[261]2734module_eval(<<'.,.,', 'parser.y', 508)
[116]2735 def _reduce_98(val, _values, result)
2736 result = val[0]
2737
2738 result
[22]2739 end
2740.,.,
[4]2741
[261]2742module_eval(<<'.,.,', 'parser.y', 512)
[116]2743 def _reduce_99(val, _values, result)
2744 result = val[0]
2745
2746 result
[22]2747 end
2748.,.,
[4]2749
[261]2750module_eval(<<'.,.,', 'parser.y', 517)
[116]2751 def _reduce_100(val, _values, result)
2752 result = {:untyped_multiple_attr_object_block => val[0]}
2753
2754 result
[22]2755 end
2756.,.,
[4]2757
[261]2758module_eval(<<'.,.,', 'parser.y', 521)
[116]2759 def _reduce_101(val, _values, result)
2760 result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]}
2761
2762 result
[22]2763 end
2764.,.,
[4]2765
[261]2766module_eval(<<'.,.,', 'parser.y', 526)
[116]2767 def _reduce_102(val, _values, result)
2768 result = {:multiple_attr_object_block_head => val[0], :keyed_objects => val[1]}
2769
2770 result
[22]2771 end
2772.,.,
[4]2773
[261]2774module_eval(<<'.,.,', 'parser.y', 531)
[116]2775 def _reduce_103(val, _values, result)
[261]2776 @@logger.debug("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}")
[22]2777 result = val[0]
[116]2778
2779 result
[20]2780 end
2781.,.,
[4]2782
[261]2783module_eval(<<'.,.,', 'parser.y', 537)
[116]2784 def _reduce_104(val, _values, result)
2785 result = Array[val[0]]
2786
2787 result
[23]2788 end
2789.,.,
[4]2790
[261]2791module_eval(<<'.,.,', 'parser.y', 541)
[116]2792 def _reduce_105(val, _values, result)
2793 result = (val[0] << val[1])
2794
2795 result
[23]2796 end
2797.,.,
[4]2798
[261]2799module_eval(<<'.,.,', 'parser.y', 546)
[116]2800 def _reduce_106(val, _values, result)
[261]2801 @@logger.debug("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]} at #{@filename}:#{@lineno}")
[23]2802 result = {:object_key => val[0], :object_block => val[1]}
[116]2803
2804 result
[20]2805 end
2806.,.,
[4]2807
[261]2808module_eval(<<'.,.,', 'parser.y', 552)
[116]2809 def _reduce_107(val, _values, result)
[261]2810 @@logger.debug("object_key: [#{val[1]}] at #{@filename}:#{@lineno}")
[22]2811 result = val[1]
[116]2812
2813 result
[19]2814 end
2815.,.,
[4]2816
[261]2817module_eval(<<'.,.,', 'parser.y', 558)
[116]2818 def _reduce_108(val, _values, result)
2819 result = {:untyped_single_attr_object_block => val[0]}
2820
2821 result
[23]2822 end
2823.,.,
[4]2824
[261]2825module_eval(<<'.,.,', 'parser.y', 562)
[116]2826 def _reduce_109(val, _values, result)
2827 result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]}
2828
2829 result
[23]2830 end
2831.,.,
[4]2832
[261]2833module_eval(<<'.,.,', 'parser.y', 567)
[116]2834 def _reduce_110(val, _values, result)
[261]2835 @@logger.debug("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}")
[23]2836 result = {:single_attr_object_complex_head => val[0]}
[116]2837
2838 result
[22]2839 end
2840.,.,
[4]2841
[261]2842module_eval(<<'.,.,', 'parser.y', 572)
[116]2843 def _reduce_111(val, _values, result)
[261]2844 @@logger.debug("#{__FILE__}:#{__LINE__}: attr_vals = #{val[1]} at #{@filename}:#{@lineno}")
[23]2845 result = {:single_attr_object_complex_head => val[0], :attr_vals => val[1]}
[116]2846
2847 result
[22]2848 end
2849.,.,
[4]2850
[116]2851# reduce 112 omitted
[4]2852
[261]2853module_eval(<<'.,.,', 'parser.y', 578)
[116]2854 def _reduce_113(val, _values, result)
[261]2855 @@logger.debug("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}")
[23]2856 result = {:untyped_primitive_object_block => val[0]}
[116]2857
2858 result
[22]2859 end
2860.,.,
[4]2861
[261]2862module_eval(<<'.,.,', 'parser.y', 583)
[116]2863 def _reduce_114(val, _values, result)
[261]2864 @@logger.debug("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}")
[23]2865 result = {:type_identifier => val[0], :untyped_primitive_object_block => val[1]}
[116]2866
2867 result
[22]2868 end
2869.,.,
[4]2870
[261]2871module_eval(<<'.,.,', 'parser.y', 588)
[116]2872 def _reduce_115(val, _values, result)
[261]2873 @@logger.debug("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}")
[22]2874 result = val[1]
[116]2875
2876 result
[20]2877 end
2878.,.,
[4]2879
[261]2880module_eval(<<'.,.,', 'parser.y', 593)
[116]2881 def _reduce_116(val, _values, result)
2882 result = val[0]
2883
2884 result
[22]2885 end
2886.,.,
[4]2887
[261]2888module_eval(<<'.,.,', 'parser.y', 597)
[116]2889 def _reduce_117(val, _values, result)
2890 result = val[0]
2891
2892 result
[22]2893 end
2894.,.,
[4]2895
[261]2896module_eval(<<'.,.,', 'parser.y', 601)
[116]2897 def _reduce_118(val, _values, result)
2898 result = val[0]
2899
2900 result
[22]2901 end
2902.,.,
[4]2903
[261]2904module_eval(<<'.,.,', 'parser.y', 605)
[116]2905 def _reduce_119(val, _values, result)
2906 result = val[0]
2907
2908 result
[22]2909 end
2910.,.,
[4]2911
[261]2912module_eval(<<'.,.,', 'parser.y', 609)
[116]2913 def _reduce_120(val, _values, result)
2914 result = val[0]
2915
2916 result
[22]2917 end
2918.,.,
[4]2919
[261]2920module_eval(<<'.,.,', 'parser.y', 613)
[116]2921 def _reduce_121(val, _values, result)
[261]2922 @@logger.debug("string_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2923 result = val[0]
[116]2924
2925 result
[19]2926 end
2927.,.,
[4]2928
[261]2929module_eval(<<'.,.,', 'parser.y', 618)
[116]2930 def _reduce_122(val, _values, result)
[261]2931 @@logger.debug("integer_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2932 result = val[0]
[116]2933
2934 result
[19]2935 end
2936.,.,
[4]2937
[261]2938module_eval(<<'.,.,', 'parser.y', 623)
[116]2939 def _reduce_123(val, _values, result)
[261]2940 @@logger.debug("real_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2941 result = val[0]
[116]2942
2943 result
[19]2944 end
2945.,.,
[4]2946
[261]2947module_eval(<<'.,.,', 'parser.y', 628)
[116]2948 def _reduce_124(val, _values, result)
[261]2949 @@logger.debug("boolean_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2950 result = val[0]
[116]2951
2952 result
[19]2953 end
2954.,.,
[4]2955
[261]2956module_eval(<<'.,.,', 'parser.y', 633)
[116]2957 def _reduce_125(val, _values, result)
[261]2958 @@logger.debug("character_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2959 result = val[0]
[116]2960
2961 result
[19]2962 end
2963.,.,
[4]2964
[261]2965module_eval(<<'.,.,', 'parser.y', 638)
[116]2966 def _reduce_126(val, _values, result)
[261]2967 @@logger.debug("date_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2968 result = val[0]
[116]2969
2970 result
[19]2971 end
2972.,.,
[4]2973
[261]2974module_eval(<<'.,.,', 'parser.y', 643)
[116]2975 def _reduce_127(val, _values, result)
[261]2976 @@logger.debug("time_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2977 result = val[0]
[116]2978
2979 result
[19]2980 end
2981.,.,
[4]2982
[261]2983module_eval(<<'.,.,', 'parser.y', 648)
[116]2984 def _reduce_128(val, _values, result)
[261]2985 @@logger.debug("date_time_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2986 result = val[0]
[116]2987
2988 result
[19]2989 end
2990.,.,
[4]2991
[261]2992module_eval(<<'.,.,', 'parser.y', 653)
[116]2993 def _reduce_129(val, _values, result)
[261]2994 @@logger.debug("duration_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]2995 result = val[0]
[116]2996
2997 result
[19]2998 end
2999.,.,
[4]3000
[261]3001module_eval(<<'.,.,', 'parser.y', 658)
[116]3002 def _reduce_130(val, _values, result)
[261]3003 @@logger.debug("uri_value: #{val[0]} at #{@filename}:#{@lineno}")
[22]3004 result = val[0]
[116]3005
3006 result
[19]3007 end
3008.,.,
[4]3009
[116]3010# reduce 131 omitted
[4]3011
[116]3012# reduce 132 omitted
[4]3013
[116]3014# reduce 133 omitted
[4]3015
[116]3016# reduce 134 omitted
[4]3017
[116]3018# reduce 135 omitted
[4]3019
[116]3020# reduce 136 omitted
[4]3021
[116]3022# reduce 137 omitted
[4]3023
[116]3024# reduce 138 omitted
[4]3025
[116]3026# reduce 139 omitted
[4]3027
[116]3028# reduce 140 omitted
[4]3029
[116]3030# reduce 141 omitted
[4]3031
[116]3032# reduce 142 omitted
[4]3033
[116]3034# reduce 143 omitted
[4]3035
[116]3036# reduce 144 omitted
[4]3037
[116]3038# reduce 145 omitted
[4]3039
[261]3040module_eval(<<'.,.,', 'parser.y', 681)
[116]3041 def _reduce_146(val, _values, result)
[261]3042 @@logger.debug("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
[22]3043 result = val[0]
[116]3044
3045 result
[19]3046 end
3047.,.,
[4]3048
[261]3049module_eval(<<'.,.,', 'parser.y', 686)
[116]3050 def _reduce_147(val, _values, result)
[261]3051 @@logger.debug("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
[22]3052 result = val[0]
[116]3053
3054 result
[19]3055 end
3056.,.,
[4]3057
[261]3058module_eval(<<'.,.,', 'parser.y', 692)
[116]3059 def _reduce_148(val, _values, result)
[261]3060 @@logger.debug("V_STRING: #{val[0]} at #{@filename}:#{@lineno}")
[22]3061 result = val[0]
[116]3062
3063 result
[18]3064 end
3065.,.,
[4]3066
[116]3067# reduce 149 omitted
[4]3068
[116]3069# reduce 150 omitted
[4]3070
[116]3071# reduce 151 omitted
[4]3072
[261]3073module_eval(<<'.,.,', 'parser.y', 702)
[116]3074 def _reduce_152(val, _values, result)
3075 begin
[22]3076 integer = Integer(val[0])
3077 rescue
3078 raise
3079 end
3080 result = integer
[116]3081
3082 result
[22]3083 end
3084.,.,
[4]3085
[261]3086module_eval(<<'.,.,', 'parser.y', 711)
[116]3087 def _reduce_153(val, _values, result)
3088 begin
[22]3089 integer = Integer(val[0])
3090 rescue
3091 raise
3092 end
3093 result = integer
[116]3094
3095 result
[22]3096 end
3097.,.,
[4]3098
[261]3099module_eval(<<'.,.,', 'parser.y', 720)
[116]3100 def _reduce_154(val, _values, result)
3101 begin
[22]3102 integer = Integer(val[0])
3103 rescue
3104 raise
3105 end
3106 result = - integer
[116]3107
3108 result
[22]3109 end
3110.,.,
[4]3111
[116]3112# reduce 155 omitted
[4]3113
[116]3114# reduce 156 omitted
[4]3115
[116]3116# reduce 157 omitted
[4]3117
[116]3118# reduce 158 omitted
[4]3119
[116]3120# reduce 159 omitted
[4]3121
[116]3122# reduce 160 omitted
[4]3123
[116]3124# reduce 161 omitted
[4]3125
[116]3126# reduce 162 omitted
[4]3127
[116]3128# reduce 163 omitted
[4]3129
[116]3130# reduce 164 omitted
[4]3131
[116]3132# reduce 165 omitted
[4]3133
[116]3134# reduce 166 omitted
[4]3135
[261]3136module_eval(<<'.,.,', 'parser.y', 746)
[116]3137 def _reduce_167(val, _values, result)
3138 begin
[23]3139 real = Float(val[0])
3140 rescue
3141 raise
3142 end
3143 result = real
[116]3144
3145 result
[23]3146 end
3147.,.,
[4]3148
[261]3149module_eval(<<'.,.,', 'parser.y', 755)
[116]3150 def _reduce_168(val, _values, result)
3151 begin
[25]3152 real = Float(val[1])
[23]3153 rescue
3154 raise
3155 end
3156 result = real
[116]3157
3158 result
[23]3159 end
3160.,.,
[4]3161
[261]3162module_eval(<<'.,.,', 'parser.y', 764)
[116]3163 def _reduce_169(val, _values, result)
3164 begin
[25]3165 real = Float(val[1])
[23]3166 rescue
3167 raise
3168 end
3169 result = - real
[116]3170
3171 result
[23]3172 end
3173.,.,
[4]3174
[116]3175# reduce 170 omitted
[4]3176
[116]3177# reduce 171 omitted
[4]3178
[116]3179# reduce 172 omitted
[4]3180
[116]3181# reduce 173 omitted
[4]3182
[116]3183# reduce 174 omitted
[4]3184
[116]3185# reduce 175 omitted
[4]3186
[116]3187# reduce 176 omitted
[4]3188
[116]3189# reduce 177 omitted
[4]3190
[116]3191# reduce 178 omitted
[4]3192
[116]3193# reduce 179 omitted
[4]3194
[116]3195# reduce 180 omitted
[4]3196
[116]3197# reduce 181 omitted
[4]3198
[261]3199module_eval(<<'.,.,', 'parser.y', 789)
[116]3200 def _reduce_182(val, _values, result)
3201 result = true
3202
3203 result
[23]3204 end
3205.,.,
[4]3206
[261]3207module_eval(<<'.,.,', 'parser.y', 793)
[116]3208 def _reduce_183(val, _values, result)
3209 result = false
3210
3211 result
[23]3212 end
3213.,.,
[4]3214
[116]3215# reduce 184 omitted
[4]3216
[116]3217# reduce 185 omitted
[4]3218
[116]3219# reduce 186 omitted
[4]3220
[116]3221# reduce 187 omitted
[4]3222
[116]3223# reduce 188 omitted
[4]3224
[116]3225# reduce 189 omitted
[4]3226
[116]3227# reduce 190 omitted
[4]3228
[116]3229# reduce 191 omitted
[4]3230
[116]3231# reduce 192 omitted
[4]3232
[116]3233# reduce 193 omitted
[4]3234
[116]3235# reduce 194 omitted
[4]3236
[116]3237# reduce 195 omitted
[4]3238
[116]3239# reduce 196 omitted
[4]3240
[116]3241# reduce 197 omitted
[4]3242
[116]3243# reduce 198 omitted
[4]3244
[116]3245# reduce 199 omitted
[4]3246
[116]3247# reduce 200 omitted
[4]3248
[116]3249# reduce 201 omitted
[4]3250
[116]3251# reduce 202 omitted
[4]3252
[116]3253# reduce 203 omitted
[4]3254
[116]3255# reduce 204 omitted
[4]3256
[116]3257# reduce 205 omitted
[4]3258
[116]3259# reduce 206 omitted
[4]3260
[116]3261# reduce 207 omitted
[4]3262
[116]3263# reduce 208 omitted
[4]3264
[116]3265# reduce 209 omitted
[4]3266
[116]3267# reduce 210 omitted
[4]3268
[116]3269# reduce 211 omitted
[4]3270
[116]3271# reduce 212 omitted
[4]3272
[116]3273# reduce 213 omitted
[4]3274
[116]3275# reduce 214 omitted
[4]3276
[116]3277# reduce 215 omitted
[4]3278
[116]3279# reduce 216 omitted
[4]3280
[116]3281# reduce 217 omitted
[4]3282
[116]3283# reduce 218 omitted
[4]3284
[116]3285# reduce 219 omitted
[4]3286
[116]3287# reduce 220 omitted
[4]3288
[116]3289# reduce 221 omitted
[4]3290
[116]3291# reduce 222 omitted
[4]3292
[116]3293# reduce 223 omitted
[4]3294
[116]3295# reduce 224 omitted
[4]3296
[116]3297# reduce 225 omitted
[4]3298
[116]3299# reduce 226 omitted
[4]3300
[116]3301# reduce 227 omitted
[4]3302
[116]3303# reduce 228 omitted
[4]3304
[116]3305# reduce 229 omitted
[4]3306
[261]3307module_eval(<<'.,.,', 'parser.y', 856)
[116]3308 def _reduce_230(val, _values, result)
[261]3309 @@logger.debug("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}")
[22]3310 result = val[0]
[116]3311
3312 result
[19]3313 end
3314.,.,
[4]3315
[116]3316# reduce 231 omitted
[4]3317
[116]3318# reduce 232 omitted
[4]3319
[116]3320# reduce 233 omitted
[4]3321
[116]3322# reduce 234 omitted
[4]3323
[116]3324# reduce 235 omitted
[4]3325
[116]3326# reduce 236 omitted
[4]3327
[116]3328# reduce 237 omitted
[4]3329
[116]3330# reduce 238 omitted
[4]3331
[116]3332# reduce 239 omitted
[4]3333
[116]3334# reduce 240 omitted
[4]3335
[116]3336# reduce 241 omitted
[4]3337
[116]3338# reduce 242 omitted
[4]3339
[261]3340module_eval(<<'.,.,', 'parser.y', 876)
[116]3341 def _reduce_243(val, _values, result)
[261]3342 @@logger.debug("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}")
[26]3343 result = val[0]
[116]3344
3345 result
[20]3346 end
3347.,.,
[4]3348
[116]3349# reduce 244 omitted
[4]3350
[116]3351# reduce 245 omitted
[4]3352
[116]3353# reduce 246 omitted
[4]3354
[261]3355module_eval(<<'.,.,', 'parser.y', 886)
[116]3356 def _reduce_247(val, _values, result)
[261]3357 @@logger.debug("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}")
[26]3358 result = val[0]
[116]3359
3360 result
[20]3361 end
3362.,.,
[4]3363
[116]3364# reduce 248 omitted
[4]3365
[116]3366# reduce 249 omitted
[4]3367
[116]3368# reduce 250 omitted
[4]3369
[116]3370# reduce 251 omitted
[4]3371
[116]3372# reduce 252 omitted
[4]3373
[116]3374# reduce 253 omitted
[4]3375
[116]3376# reduce 254 omitted
[4]3377
[116]3378# reduce 255 omitted
[4]3379
[116]3380# reduce 256 omitted
[4]3381
[116]3382# reduce 257 omitted
[4]3383
[116]3384# reduce 258 omitted
[4]3385
[116]3386# reduce 259 omitted
[4]3387
[116]3388# reduce 260 omitted
[4]3389
[116]3390# reduce 261 omitted
[4]3391
[116]3392# reduce 262 omitted
[4]3393
[116]3394# reduce 263 omitted
[4]3395
[116]3396# reduce 264 omitted
[4]3397
[116]3398# reduce 265 omitted
[4]3399
[116]3400# reduce 266 omitted
[4]3401
[116]3402# reduce 267 omitted
[4]3403
[116]3404# reduce 268 omitted
[4]3405
[116]3406# reduce 269 omitted
[4]3407
[116]3408# reduce 270 omitted
[4]3409
[116]3410# reduce 271 omitted
[4]3411
[116]3412# reduce 272 omitted
[4]3413
[116]3414# reduce 273 omitted
[4]3415
[116]3416# reduce 274 omitted
[4]3417
[116]3418# reduce 275 omitted
[4]3419
[116]3420# reduce 276 omitted
[4]3421
[116]3422# reduce 277 omitted
[4]3423
[116]3424# reduce 278 omitted
[4]3425
[116]3426# reduce 279 omitted
[4]3427
[116]3428# reduce 280 omitted
[4]3429
[116]3430# reduce 281 omitted
[4]3431
[116]3432# reduce 282 omitted
[4]3433
[116]3434# reduce 283 omitted
[4]3435
[116]3436# reduce 284 omitted
[4]3437
[116]3438# reduce 285 omitted
[4]3439
[116]3440# reduce 286 omitted
[4]3441
[116]3442# reduce 287 omitted
[4]3443
[261]3444module_eval(<<'.,.,', 'parser.y', 956)
[116]3445 def _reduce_288(val, _values, result)
[261]3446 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
[116]3447
3448 result
[19]3449 end
3450.,.,
[4]3451
[261]3452module_eval(<<'.,.,', 'parser.y', 960)
[116]3453 def _reduce_289(val, _values, result)
[261]3454 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
[116]3455
3456 result
[19]3457 end
3458.,.,
[4]3459
[261]3460module_eval(<<'.,.,', 'parser.y', 971)
[116]3461 def _reduce_290(val, _values, result)
3462 result = Range.new(1,1)
3463
3464 result
[22]3465 end
3466.,.,
[4]3467
[261]3468module_eval(<<'.,.,', 'parser.y', 975)
[116]3469 def _reduce_291(val, _values, result)
3470 result = val[3]
3471
3472 result
[22]3473 end
3474.,.,
[4]3475
[261]3476module_eval(<<'.,.,', 'parser.y', 980)
[116]3477 def _reduce_292(val, _values, result)
3478 begin
[22]3479 integer = Integer(val[0])
3480 rescue
3481 raise
3482 end
3483 result = integer
[116]3484
3485 result
[22]3486 end
3487.,.,
[4]3488
[261]3489module_eval(<<'.,.,', 'parser.y', 989)
[116]3490 def _reduce_293(val, _values, result)
3491 begin
[22]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)
[116]3498
3499 result
[22]3500 end
3501.,.,
[4]3502
[261]3503module_eval(<<'.,.,', 'parser.y', 1000)
[116]3504 def _reduce_294(val, _values, result)
3505 result = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new
3506
3507 result
[22]3508 end
3509.,.,
[4]3510
[116]3511# reduce 295 omitted
[4]3512
[116]3513# reduce 296 omitted
[4]3514
[116]3515# reduce 297 omitted
[4]3516
[116]3517# reduce 298 omitted
[4]3518
[116]3519# reduce 299 omitted
[4]3520
[116]3521# reduce 300 omitted
[4]3522
[116]3523# reduce 301 omitted
[4]3524
[116]3525# reduce 302 omitted
[4]3526
[261]3527module_eval(<<'.,.,', 'parser.y', 1014)
[116]3528 def _reduce_303(val, _values, result)
3529 result = val[0]
3530
3531 result
[49]3532 end
3533.,.,
[4]3534
[261]3535module_eval(<<'.,.,', 'parser.y', 1018)
[116]3536 def _reduce_304(val, _values, result)
3537 result = val[0]
3538
3539 result
[49]3540 end
3541.,.,
[4]3542
[116]3543# reduce 305 omitted
[4]3544
[261]3545module_eval(<<'.,.,', 'parser.y', 1025)
[116]3546 def _reduce_306(val, _values, result)
3547 result = val[3]
3548
3549 result
[23]3550 end
3551.,.,
[4]3552
[116]3553# reduce 307 omitted
[4]3554
[116]3555# reduce 308 omitted
[4]3556
[116]3557# reduce 309 omitted
[4]3558
[116]3559# reduce 310 omitted
[4]3560
[116]3561# reduce 311 omitted
[4]3562
[116]3563# reduce 312 omitted
[4]3564
[116]3565# reduce 313 omitted
[4]3566
[116]3567# reduce 314 omitted
[4]3568
[116]3569# reduce 315 omitted
[4]3570
[116]3571# reduce 316 omitted
[4]3572
[116]3573# reduce 317 omitted
[4]3574
[116]3575# reduce 318 omitted
[4]3576
[116]3577# reduce 319 omitted
[4]3578
[116]3579# reduce 320 omitted
[4]3580
[116]3581# reduce 321 omitted
[4]3582
[116]3583# reduce 322 omitted
[4]3584
[116]3585# reduce 323 omitted
[4]3586
[116]3587# reduce 324 omitted
[4]3588
[116]3589# reduce 325 omitted
[4]3590
[116]3591# reduce 326 omitted
[4]3592
[116]3593# reduce 327 omitted
[4]3594
[116]3595# reduce 328 omitted
[4]3596
[116]3597# reduce 329 omitted
[4]3598
[116]3599# reduce 330 omitted
[4]3600
[116]3601# reduce 331 omitted
[4]3602
[116]3603# reduce 332 omitted
[4]3604
[116]3605# reduce 333 omitted
[4]3606
[116]3607# reduce 334 omitted
[4]3608
[116]3609# reduce 335 omitted
[4]3610
[116]3611# reduce 336 omitted
[4]3612
[116]3613# reduce 337 omitted
[4]3614
[116]3615# reduce 338 omitted
[4]3616
[116]3617# reduce 339 omitted
[4]3618
[116]3619# reduce 340 omitted
[4]3620
[116]3621# reduce 341 omitted
[4]3622
[116]3623# reduce 342 omitted
[4]3624
[116]3625# reduce 343 omitted
[4]3626
[116]3627# reduce 344 omitted
[4]3628
[116]3629# reduce 345 omitted
[4]3630
[116]3631# reduce 346 omitted
[4]3632
[116]3633# reduce 347 omitted
[4]3634
[116]3635# reduce 348 omitted
[4]3636
[116]3637# reduce 349 omitted
[4]3638
[116]3639# reduce 350 omitted
[4]3640
[116]3641# reduce 351 omitted
[4]3642
[116]3643# reduce 352 omitted
[4]3644
[261]3645module_eval(<<'.,.,', 'parser.y', 1095)
[116]3646 def _reduce_353(val, _values, result)
3647 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true)
3648
3649 result
[22]3650 end
3651.,.,
[4]3652
[261]3653module_eval(<<'.,.,', 'parser.y', 1099)
[116]3654 def _reduce_354(val, _values, result)
3655 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false)
3656
3657 result
[22]3658 end
3659.,.,
[4]3660
[261]3661module_eval(<<'.,.,', 'parser.y', 1103)
[116]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
[22]3666 end
3667.,.,
[4]3668
[261]3669module_eval(<<'.,.,', 'parser.y', 1107)
[116]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
[22]3674 end
3675.,.,
[4]3676
[261]3677module_eval(<<'.,.,', 'parser.y', 1112)
[116]3678 def _reduce_357(val, _values, result)
3679 result = val[0]
3680
3681 result
[22]3682 end
3683.,.,
[4]3684
[261]3685module_eval(<<'.,.,', 'parser.y', 1116)
[116]3686 def _reduce_358(val, _values, result)
3687 raise 'Not implemented yet'
3688
3689 result
[22]3690 end
3691.,.,
[4]3692
[261]3693module_eval(<<'.,.,', 'parser.y', 1120)
[116]3694 def _reduce_359(val, _values, result)
3695 raise 'Not implemented yet'
3696
3697 result
[22]3698 end
3699.,.,
[4]3700
[116]3701# reduce 360 omitted
[4]3702
[116]3703# reduce 361 omitted
[4]3704
[116]3705# reduce 362 omitted
[4]3706
[116]3707# reduce 363 omitted
[4]3708
[116]3709# reduce 364 omitted
[4]3710
[261]3711module_eval(<<'.,.,', 'parser.y', 1132)
[116]3712 def _reduce_365(val, _values, result)
3713 @in_interval = false
[261]3714 @@logger.debug("#{__FILE__}:#{__LINE__}, #{val[0]}|#{val[2]} at #{@filename}")
[116]3715
3716 result
[20]3717 end
3718.,.,
[4]3719
[261]3720module_eval(<<'.,.,', 'parser.y', 1139)
[116]3721 def _reduce_366(val, _values, result)
3722 result = val[0]
3723
3724 result
[32]3725 end
3726.,.,
[4]3727
[261]3728module_eval(<<'.,.,', 'parser.y', 1143)
[116]3729 def _reduce_367(val, _values, result)
3730 result = val[0]
3731
3732 result
[32]3733 end
3734.,.,
[4]3735
[261]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.,.,
[4]3746
[116]3747# reduce 369 omitted
[4]3748
[116]3749# reduce 370 omitted
[4]3750
[116]3751# reduce 371 omitted
[4]3752
[261]3753module_eval(<<'.,.,', 'parser.y', 1165)
[116]3754 def _reduce_372(val, _values, result)
3755 result = val[0]
3756
3757 result
[32]3758 end
3759.,.,
[4]3760
[261]3761module_eval(<<'.,.,', 'parser.y', 1170)
[116]3762 def _reduce_373(val, _values, result)
3763 result = val[0]
3764
3765 result
[32]3766 end
3767.,.,
[4]3768
[261]3769module_eval(<<'.,.,', 'parser.y', 1174)
[116]3770 def _reduce_374(val, _values, result)
[261]3771 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}")
[32]3772 result = val[0]
[116]3773
3774 result
[19]3775 end
3776.,.,
[4]3777
[261]3778module_eval(<<'.,.,', 'parser.y', 1185)
[116]3779 def _reduce_375(val, _values, result)
3780 result = val[0]
3781
3782 result
[26]3783 end
3784.,.,
[14]3785
[116]3786def _reduce_none(val, _values, result)
3787 val[0]
3788end
[4]3789
3790 end # class Parser
[116]3791 end # module ADL
3792 end # module OpenEHR
Note: See TracBrowser for help on using the repository browser.