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

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

working on dADL language tag

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