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

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

begin to add scanner module using yaparc

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