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

Last change on this file since 4 was 4, checked in by KOBAYASHI, Shinji, 16 years ago

restructuring repository tree

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