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

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

working on V_C_DOMAIN_TYPE mini parser

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