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

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

trying to solve parsing problem on term coding

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