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

Last change on this file since 34 was 34, checked in by KOBAYASHI, Shinji, 16 years ago

fix some test erors

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