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

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

parsing c_any fails

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