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

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

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

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