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

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

generated openehr_models_0.0.3 gem and working on bridge between adl and rm

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