source: ruby/branches/0.5.0/lib/adl_parser/lib/parser.rb@ 167

Last change on this file since 167 was 167, checked in by KOBAYASHI, Shinji, 15 years ago

adjust for rails

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