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

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

renamed scanner.rb to adl_scanner.rb

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