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

Last change on this file since 49 was 49, checked in by Tatsukawa, Akimichi, 16 years ago

created adl_parser gem for version 0.0.3

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