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

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

integrating am and adl_parser

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