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

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

working on parser.y

File size: 105.1 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#require 'lib/model.rb'
16require 'rubygems'
17require 'am.rb'
18$DEBUG = true
19
20
21
22
23module OpenEHR
24
25 module ADL
26
27 class Parser < Racc::Parser
28
29module_eval <<'..end lib/parser.y modeval..iddb76fb97bf', 'lib/parser.y', 1106
30
31def assert_at(file,line, message = "")
32 unless yield
33 raise "Assertion failed !: #{file}, #{line}: #{message}"
34 end
35end
36
37@@log = Logger.new('log/parser.log','daily')
38@@dadl_scanner = OpenEHR::ADL::Scanner::DADL::RootScanner.new
39@@cadl_scanner = OpenEHR::ADL::Scanner::CADL::RootScanner.new
40
41###----------/* keywords */ ---------------------------------------------
42@@adl_reserved = {
43 'archetype' => :SYM_ARCHETYPE,
44 'adl_version' => :SYM_ADL_VERSION,
45 'controlled' => :SYM_IS_CONTROLLED,
46 'specialize' => :SYM_SPECIALIZE,
47 'concept' => :SYM_CONCEPT,
48 'language' => :SYM_LANGUAGE,
49 'description' => :SYM_DESCRIPTION,
50 'definition' => :SYM_DEFINITION,
51 'invariant' => :SYM_INVARIANT,
52 'ontology' => :SYM_ONTOLOGY,
53 'matches' => :SYM_MATCHES,
54 'is_in' => :SYM_MATCHES,
55 'occurrences' => :SYM_OCCURRENCES,
56 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE
57 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE
58 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY
59}
60
61@@dadl_reserved = {
62 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE
63 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE
64 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY
65}
66
67@@cadl_reserved = {
68 'then' => :SYM_THEN, # [Tt][Hh][Ee][Nn]
69 'else' => :SYM_ELSE, # [Ee][Ll][Ss][Ee]
70 'and' => :SYM_AND, # [Aa][Nn][Dd]
71 'or' => :SYM_OR, # [Oo][Rr]
72 'xor' => :SYM_XOR, # [Xx][Oo][Rr]
73 'not' => :SYM_NOT, # [Nn][Oo][Tt]
74 'implies' => :SYM_IMPLIES, # [Ii][Mm][Pp][Ll][Ii][Ee][Ss]
75 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE
76 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE
77 'forall' => :SYM_FORALL, # [Ff][Oo][Rr][_][Aa][Ll][Ll]
78 'exists' => :SYM_EXISTS, # [Ee][Xx][Ii][Ss][Tt][Ss]
79 'existence' => :SYM_EXISTENCE, # [Ee][Xx][Iu][Ss][Tt][Ee][Nn][Cc][Ee]
80 'occurrences' => :SYM_OCCURRENCES, # [Oo][Cc][Cc][Uu][Rr][Rr][Ee][Nn][Cc][Ee][Ss]
81 'cardinality' => :SYM_CARDINALITY, # [Cc][Aa][Rr][Dd][Ii][Nn][Aa][Ll][Ii][Tt][Yy]
82 'ordered' => :SYM_ORDERED, # [Oo][Rr][Dd][Ee][Rr][Ee][Dd]
83 'unordered' => :SYM_UNORDERED, # [Uu][Nn][Oo][Rr][Dd][Ee][Rr][Ee][Dd]
84 'unique' => :SYM_UNIQUE, # [Uu][Nn][Ii][Qq][Uu][Ee]
85 'matches' => :SYM_MATCHES, # [Mm][Aa][Tt][Cc][Hh][Ee][Ss]
86 'is_in' => :SYM_MATCHES, # [Ii][Ss][_][Ii][Nn]
87 'invariant' => :SYM_INVARIANT, # [Ii][Nn][Vv][Aa][Rr][Ii][Aa][Nn][Tt]
88 'infinity' => :SYM_INFINITY, # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY
89 'use_node' => :SYM_USE_NODE, # [Uu][Ss][Ee][_][Nn][Oo][Dd][Ee]
90 'use_archetype' => :SYM_ALLOW_ARCHETYPE, # [Uu][Ss][Ee][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee]
91 'allow_archetype' => :SYM_ALLOW_ARCHETYPE, # [Aa][Ll][Ll][Oo][Ww][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee]
92 'include' => :SYM_INCLUDE, # [Ii][Nn][Cc][Ll][Uu][Dd][Ee]
93 'exclude' => :SYM_EXCLUDE # [Ee][Xx][Cc][Ll][Uu][Dd][Ee]
94}
95
96
97###----------/* Scanner */ -----------------------------------------------
98
99def scan
100 until @data.nil? do
101 case @adl_type.last
102 when :adl
103 @data = scan_adl(@data) do |sym, val|
104 yield sym, val
105 end
106 when :dadl
107 @data = scan_dadl(@data) do |sym, val|
108 yield sym, val
109 end
110 when :cadl
111 @data = scan_cadl(@data) do |sym, val|
112 yield sym, val
113 end
114 when :regexp
115 @data = scan_regexp(@data) do |sym, val|
116 yield sym, val
117 end
118 else
119 raise
120 end
121 @data = $' # variable $' receives the string after the match
122 end
123 yield :EOF, nil
124 yield false, '$'
125end # of scan
126
127def scan_adl(data)
128 until data.nil? do
129 case @adl_type.last
130 when :adl
131# puts "Entering scan_adl"
132 case data
133 when /\A\n/ # carriage return
134 @lineno += 1
135 ;
136 when /\A[ \t\r\f]+/ #just drop it
137 ;
138 when /\A--.*\n/ # single line comment
139 @lineno += 1
140 @@log.info("#{__FILE__}:#{__LINE__}: scan_adl: COMMENT = #{$&} at #{@filename}:#{@lineno}")
141 ;
142 when /\Adescription/ # description
143 yield :SYM_DESCRIPTION, :SYM_DESCRIPTION
144 when /\Adefinition/ # definition
145 yield :SYM_DEFINITION, :SYM_DEFINITION
146# @adl_type.push(:cadl)
147 ###----------/* symbols */ -------------------------------------------------
148 when /\A[A-Z][a-zA-Z0-9_]*/
149 yield :V_TYPE_IDENTIFIER, $&
150 when /\A[a-zA-Z][a-zA-Z0-9_-]+\.[a-zA-Z][a-zA-Z0-9_-]+\.[a-zA-Z0-9]+/ #V_ARCHETYPE_ID
151 yield :V_ARCHETYPE_ID, $&
152 when /\A[a-z][a-zA-Z0-9_]*/
153# word = $&.downcase
154 word = $&
155 if @@adl_reserved[word]
156 @@log.info("#{__FILE__}:#{__LINE__}: scan_adl: @@adl_reserved = #{@@adl_reserved[word]} at #{@filename}:#{@lineno}")
157 yield @@adl_reserved[word], @@adl_reserved[word]
158 elsif #/\A[A-Z][a-zA-Z0-9_]*/
159 @@log.info("#{__FILE__}:#{__LINE__}: scan_adl: V_ATTRIBUTE_IDENTIFIER = #{$&} at #{@filename}:#{@lineno}")
160 yield :V_ATTRIBUTE_IDENTIFIER, $&
161 end
162 when /\A\=/ # =
163 yield :SYM_EQ, :SYM_EQ
164 when /\A\>=/ # >=
165 yield :SYM_GE, :SYM_GE
166 when /\A\<=/ # <=
167 yield :SYM_LE, :SYM_LE
168 when /\A\</ # <
169 if @in_interval
170# @start_block_received = false
171 yield :SYM_LT, :SYM_LT
172 else
173# @start_block_received = true
174 @adl_type.push(:dadl)
175 yield :SYM_START_DBLOCK, $&
176 end
177 when /\A\>/ # >
178 if @in_interval
179 yield :SYM_GT, :SYM_GT
180 else
181 adl_type = @adl_type.pop
182# puts "Escaping #{adl_type}"
183 assert_at(__FILE__,__LINE__){adl_type == :dadl}
184 yield :SYM_END_DBLOCK, :SYM_END_DBLOCK
185 end
186 when /\A\{/ # {
187 @adl_type.push(:cadl)
188 @@log.info("#{__FILE__}:#{__LINE__}: scan_cadl: entering cADL at #{@filename}:#{@lineno}")
189 yield :SYM_START_CBLOCK, :SYM_START_CBLOCK
190 when /\A\}/ # }
191 adl_type = @adl_type.pop
192# puts "Escaping #{adl_type}"
193 assert_at(__FILE__,__LINE__){adl_type == :cadl}
194 @@log.info("#{__FILE__}:#{__LINE__}: scan_cadl: exiting cADL at #{@filename}:#{@lineno}")
195 yield :SYM_END_CBLOCK, $&
196 when /\A\-/ # -
197 yield :Minus_code, :Minus_code
198 when /\A\+/ # +
199 yield :Plus_code, :Plus_code
200 when /\A\*/ # *
201 yield :Star_code, :Star_code
202 when /\A\// # /
203 yield :Slash_code, :Slash_code
204 when /\A\^/ # ^
205 yield :Caret_code, :Caret_code
206 when /\A\=/ # =
207 yield :Equal_code, :Equal_code
208 when /\A\.\.\./ # ...
209 yield :SYM_LIST_CONTINUE, :SYM_LIST_CONTINUE
210 when /\A\.\./ # ..
211 yield :SYM_ELLIPSIS, :SYM_ELLIPSIS
212 when /\A\./ # .
213 yield :Dot_code, :Dot_code
214 when /\A\;/ # ;
215 yield :Semicolon_code, :Semicolon_code
216 when /\A\,/ # ,
217 yield :Comma_code, :Comma_code
218 when /\A\:/ # :
219 yield :Colon_code, :Colon_code
220 when /\A\!/ # !
221 yield :Exclamation_code, :Exclamation_code
222 when /\A\(/ # (
223 yield :Left_parenthesis_code, :Left_parenthesis_code
224 when /\A\)/ # )
225 yield :Right_parenthesis_code, :Right_parenthesis_code
226 when /\A\$/ # $
227 yield :Dollar_code, :Dollar_code
228 when /\A\?\?/ # ??
229 yield :SYM_DT_UNKNOWN, :SYM_DT_UNKNOWN
230 when /\A\?/ # ?
231 yield :Question_mark_code, :Question_mark_code
232 when /\A[0-9]+\.[0-9]+(\.[0-9]+)*/ # ?
233 yield :V_VERSION_STRING, :V_VERSION_STRING
234 when /\A\|/ # |
235 if @in_interval
236 @in_interval = false
237 else
238 @in_interval = true
239 end
240 yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
241 when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/
242# when /\A\[[a-zA-Z0-9()\._-]+\:\:[a-zA-Z0-9\._-]+\]/ #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
243 yield :V_QUALIFIED_TERM_CODE_REF, $&
244 when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/ #V_LOCAL_TERM_CODE_REF
245 yield :V_LOCAL_TERM_CODE_REF, $&
246 when /\A\[/ # [
247 yield :Left_bracket_code, :Left_bracket_code
248 when /\A\]/ # ]
249 yield :Right_bracket_code, :Right_bracket_code
250
251 when /\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/ #ERR_V_QUALIFIED_TERM_CODE_REF
252 yield :ERR_V_QUALIFIED_TERM_CODE_REF, $&
253 when /\Aa[ct][0-9.]+/ #V_LOCAL_CODE
254 yield :V_LOCAL_CODE, $&
255 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-]-
256 yield :V_ISO8601_EXTENDED_DATE_TIME, $&
257 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]
258 yield :V_ISO8601_EXTENDED_TIME, $&
259 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
260 yield :V_ISO8601_EXTENDED_DATE, $&
261 when /\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/ #V_GENERIC_TYPE_IDENTIFIER
262 yield :V_GENERIC_TYPE_IDENTIFIER, $&
263 when /\A[0-9]+|[0-9]+[eE][+-]?[0-9]+/ #V_INTEGER
264 yield :V_INTEGER, $&
265 when /\A[0-9]+\.[0-9]+|[0-9]+\.[0-9]+[eE][+-]?[0-9]+ / #V_REAL
266 yield :V_REAL, $&
267 # when /\A"((?:[^"\\]+|\\.)*)"/ #V_STRING
268 when /\A"([^"]*)"/m #V_STRING
269 yield :V_STRING, $1
270 when /\A[a-z]+:\/\/[^<>|\\{}^~"\[\] ]*/ #V_URI
271 yield :V_URI, $&
272 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
273 yield :V_ISO8601_DURATION, $&
274 when /\A\S/ #UTF8CHAR
275 yield :UTF8CHAR, $&
276 end
277 data = $' # variable $' receives the string after the match
278 when :dadl
279# puts "Entering scan_dadl"
280 data = scan_dadl(data) do |sym, val|
281 yield sym, val
282 end
283 when :cadl
284# puts "Entering scan_cadl"
285 data = scan_cadl(data) do |sym, val|
286 yield sym, val
287 end
288 when :regexp
289# puts "Entering scan_regexp"
290 data = scan_regexp(data) do |sym, val|
291 yield sym, val
292 end
293 when :term_constraint
294# puts "Entering scan_term_constraint"
295 data = scan_term_constraint(data) do |sym, val|
296 yield sym, val
297 end
298 else
299 raise
300 end
301 end
302end # scan_adl
303
304
305def scan_cadl(data)
306 until data.nil? do
307 case @adl_type.last
308 when :cadl
309# puts "Entering scan_cadl"
310 case scanned = @@cadl_scanner.parse(data)
311 when Yaparc::Result::OK
312 if scanned.value[0] == :START_V_C_DOMAIN_TYPE_BLOCK
313 @in_c_domain_type = true
314 @adl_type.push(:dadl)
315 yield scanned.value
316 else
317 yield scanned.value
318 end
319 data = scanned.input
320 end
321
322 case data
323 when /\A\n/ # carriage return
324 @lineno += 1
325 ;
326 when /\A[ \t\r\f]+/ #just drop it
327 ;
328 when /\A--.*\n/ # single line comment
329 @lineno += 1
330 @@log.info("#{__FILE__}:#{__LINE__}: scan_cadl: COMMENT = #{$&} at #{@filename}:#{@lineno}")
331 ;
332 ###----------/* symbols */ -------------------------------------------------
333 when /\A\=/ # =
334 yield :SYM_EQ, :SYM_EQ
335 when /\A\>=/ # >=
336 yield :SYM_GE, :SYM_GE
337 when /\A\<=/ # <=
338 yield :SYM_LE, :SYM_LE
339### when /\A[A-Z][a-zA-Z0-9_]*[ \n]*\</ # V_C_DOMAIN_TYPE
340### @in_c_domain_type = true
341### @adl_type.push(:dadl)
342### yield :START_V_C_DOMAIN_TYPE_BLOCK, $&
343 when /\A\</ # <
344 if @in_interval
345 yield :SYM_LT, :SYM_LT
346 else
347 @adl_type.push(:dadl)
348 yield :SYM_START_DBLOCK, $&
349 end
350 when /\A\>/ # >
351 if @in_interval
352 yield :SYM_GT, :SYM_GT
353 else
354 adl_type = @adl_type.pop
355# puts "Escaping #{adl_type}"
356 assert_at(__FILE__,__LINE__){adl_type == :dadl}
357 yield :SYM_END_DBLOCK, :SYM_END_DBLOCK
358 end
359 when /\A\-/ # -
360 yield :Minus_code, :Minus_code
361 when /\A\+/ # +
362 yield :Plus_code, :Plus_code
363 when /\A\*/ # *
364 yield :Star_code, :Star_code
365 when /\A\// # /
366 yield :Slash_code, :Slash_code
367 when /\A\^/ # ^
368 yield :Caret_code, :Caret_code
369 when /\A\.\.\./ # ...
370 yield :SYM_LIST_CONTINUE, :SYM_LIST_CONTINUE
371 when /\A\.\./ # ..
372 yield :SYM_ELLIPSIS, :SYM_ELLIPSIS
373 when /\A\./ # .
374 yield :Dot_code, :Dot_code
375 when /\A\;/ # ;
376 yield :Semicolon_code, :Semicolon_code
377 when /\A\,/ # ,
378 yield :Comma_code, :Comma_code
379 when /\A\:/ # :
380 yield :Colon_code, :Colon_code
381 when /\A\!/ # !
382 yield :Exclamation_code, :Exclamation_code
383 when /\A\(/ # (
384 yield :Left_parenthesis_code, :Left_parenthesis_code
385 when /\A\)/ # )
386 yield :Right_parenthesis_code, :Right_parenthesis_code
387 when /\A\{\// #V_REGEXP
388 if @adl_type.last != :regexp
389 @in_regexp = true
390 @adl_type.push(:regexp)
391 yield :START_REGEXP_BLOCK, :START_REGEXP_BLOCK
392 else
393 raise
394 end
395# yield :V_REGEXP, :V_REGEXP
396 when /\A\{/ # {
397 @adl_type.push(:cadl)
398 @@log.info("#{__FILE__}:#{__LINE__}: scan_cadl: entering cADL at #{@filename}:#{@lineno}")
399 yield :SYM_START_CBLOCK, :SYM_START_CBLOCK
400 when /\A\}/ # }
401 adl_type = @adl_type.pop
402# puts "Escaping #{adl_type}"
403 assert_at(__FILE__,__LINE__){adl_type == :cadl}
404 @@log.info("#{__FILE__}:#{__LINE__}: scan_cadl: exiting cADL at #{@filename}:#{@lineno}")
405 yield :SYM_END_CBLOCK, :SYM_END_CBLOCK
406 when /\A\$/ # $
407 yield :Dollar_code, :Dollar_code
408 when /\A\?\?/ # ??
409 yield :SYM_DT_UNKNOWN, :SYM_DT_UNKNOWN
410 when /\A\?/ # ?
411 yield :Question_mark_code, :Question_mark_code
412 when /\A\|/ # |
413 @@log.info("#{__FILE__}:#{__LINE__}: scan_cadl: @in_interval = #{@in_interval} at #{@filename}:#{@lineno}")
414 if @in_interval
415 @in_interval = false
416 else
417# @in_interval = false
418 @in_interval = true
419 end
420 @@log.info("#{__FILE__}:#{__LINE__}: scan_cadl: SYM_INTERVAL_DELIM at #{@filename}:#{@lineno}")
421 yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
422
423 when /\A\[[a-zA-Z0-9._\-]+::[a-zA-Z0-9._\-]+\]/ #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
424 yield :V_QUALIFIED_TERM_CODE_REF, $&
425 when /\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/ #ERR_V_QUALIFIED_TERM_CODE_REF
426 yield :ERR_V_QUALIFIED_TERM_CODE_REF, $&
427 when /\A\[([a-zA-Z0-9()._\-]+::[a-zA-Z0-9._\_-]+)\]/
428 yield :V_TERM_CODE_CONSTRAINT, :V_TERM_CODE_CONSTRAINT
429 when /\A\[[a-zA-Z0-9\(\)\._\-]+::[ \t\n]*/
430 @adl_type.push(:term_constraint)
431 yield :START_TERM_CODE_CONSTRAINT, $&
432 when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/ #V_LOCAL_TERM_CODE_REF
433 yield :V_LOCAL_TERM_CODE_REF, $&
434 when /\A\[/ # [
435 yield :Left_bracket_code, :Left_bracket_code
436 when /\A\]/ # ]
437 yield :Right_bracket_code, :Right_bracket_code
438 when /\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/ #V_GENERIC_TYPE_IDENTIFIER
439 yield :V_GENERIC_TYPE_IDENTIFIER, $&
440 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]/
441 yield :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN, $&
442 when /\A[yY][yY][yY][yY]-[mM?X][mM?X]-[dD?X][dD?X]/
443 yield :V_ISO8601_DATE_CONSTRAINT_PATTERN, $&
444 when /\A[hH][hH]:[mM?X][mM?X]:[sS?X][sS?X]/
445 yield :V_ISO8601_TIME_CONSTRAINT_PATTERN, $&
446 when /\A[a-z][a-zA-Z0-9_]*/
447 word = $&.dup
448 if @@cadl_reserved[word.downcase]
449 yield @@cadl_reserved[word.downcase], @@cadl_reserved[word.downcase]
450 else
451 @@log.info("#{__FILE__}:#{__LINE__}: scan_cadl: V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}:#{@lineno}")
452 yield :V_ATTRIBUTE_IDENTIFIER, word #V_ATTRIBUTE_IDENTIFIER /\A[a-z][a-zA-Z0-9_]*/
453 end
454 when /\A[A-Z][a-zA-Z0-9_]*/
455 word = $&.dup
456 if @@cadl_reserved[word.downcase]
457 yield @@cadl_reserved[word.downcase], @@cadl_reserved[word.downcase]
458 else
459 yield :V_TYPE_IDENTIFIER, $&
460 end
461 when /\Aa[ct][0-9.]+/ #V_LOCAL_CODE
462 yield :V_LOCAL_CODE, $&
463 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-]-
464 yield :V_ISO8601_EXTENDED_DATE_TIME, $&
465 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]
466 yield :V_ISO8601_EXTENDED_TIME, $&
467 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
468 yield :V_ISO8601_EXTENDED_DATE, $&
469 when /\A[0-9]+|[0-9]+[eE][+-]?[0-9]+/ #V_INTEGER
470 yield :V_INTEGER, $&
471 when /\A[0-9]+\.[0-9]+|[0-9]+\.[0-9]+[eE][+-]?[0-9]+ / #V_REAL
472 yield :V_REAL, $&
473 when /\A"((?:[^"\\]+|\\.)*)"/ #V_STRING
474 when /\A"([^"]*)"/m #V_STRING
475 yield :V_STRING, $1
476 when /\A[a-z]+:\/\/[^<>|\\{}^~"\[\] ]*/ #V_URI
477 yield :V_URI, $&
478### 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
479### yield :V_ISO8601_DURATION, $&
480 when /\A\S/ #UTF8CHAR
481 yield :UTF8CHAR, $&
482 else
483 raise
484 end
485 data = $' # variable $' receives the string after the match
486 when :adl
487# puts "Entering scan_adl"
488 data = scan_adl(data) do |sym, val|
489 yield sym, val
490 end
491 when :dadl
492# puts "Entering scan_dadl"
493 data = scan_dadl(data) do |sym, val|
494 yield sym, val
495 end
496 when :regexp
497# puts "Entering scan_regexp"
498 data = scan_regexp(data) do |sym, val|
499 yield sym, val
500 end
501 when :term_constraint
502# puts "Entering scan_term_constraint"
503 data = scan_term_constraint(data) do |sym, val|
504 yield sym, val
505 end
506 else
507 raise
508 end
509 end # of until
510end # of scan_cadl
511
512def scan_dadl(data)
513 until data.nil? do
514 case @adl_type.last
515 when :dadl
516# puts "Entering scan_dadl"
517 case scanned = @@dadl_scanner.parse(data)
518 when Yaparc::Result::OK
519 yield scanned.value
520 data = scanned.input
521 else
522 end
523
524 case data
525 when /\A\n/ # carriage return
526 @lineno += 1
527 ;
528 when /\A[ \t\r\f]+/ #just drop it
529 ;
530 when /\A--.*\n/ # single line comment
531 @lineno += 1
532 @@log.info("#{__FILE__}:#{__LINE__}: scan_dadl: COMMENT = #{$&} at #{@filename}:#{@lineno}")
533 ;
534 ###----------/* symbols */ -------------------------------------------------
535 when /\A\=/ # =
536 yield :SYM_EQ, :SYM_EQ
537 when /\A\>\=/ # >=
538 yield :SYM_GE, :SYM_GE
539 when /\A\<\=/ # <=
540 yield :SYM_LE, :SYM_LE
541 when /\A\</ # <
542 if @in_interval
543 yield :SYM_LT, :SYM_LT
544 else
545 @adl_type.push(:dadl)
546 yield :SYM_START_DBLOCK, :SYM_START_DBLOCK
547 end
548 when /\A\>/ # >
549 if @in_interval
550# @in_interval = false
551 yield :SYM_GT, :SYM_GT
552 elsif @in_c_domain_type == true
553 assert_at(__FILE__,__LINE__){@adl_type.last == :dadl}
554 adl_type = @adl_type.pop
555 if @adl_type.last == :cadl
556 @in_c_domain_type = false
557 yield :END_V_C_DOMAIN_TYPE_BLOCK, $&
558 else
559 yield :SYM_END_DBLOCK, $&
560 end
561 elsif @in_c_domain_type == false
562 adl_type = @adl_type.pop
563# puts "Escaping #{adl_type}"
564 assert_at(__FILE__,__LINE__){adl_type == :dadl}
565 yield :SYM_END_DBLOCK, $&
566 else
567 raise
568 end
569 when /\A\-/ # -
570 yield :Minus_code, :Minus_code
571 when /\A\+/ # +
572 yield :Plus_code, :Plus_code
573 when /\A\*/ # *
574 yield :Star_code, :Star_code
575 when /\A\// # /
576 yield :Slash_code, :Slash_code
577 when /\A\^/ # ^
578 yield :Caret_code, :Caret_code
579 when /\A\.\.\./ # ...
580 yield :SYM_LIST_CONTINUE, :SYM_LIST_CONTINUE
581 when /\A\.\./ # ..
582 yield :SYM_ELLIPSIS, :SYM_ELLIPSIS
583 when /\A\./ # .
584 yield :Dot_code, :Dot_code
585 when /\A\;/ # ;
586 yield :Semicolon_code, :Semicolon_code
587 when /\A\,/ # ,
588 yield :Comma_code, :Comma_code
589 when /\A\:/ # :
590 yield :Colon_code, :Colon_code
591 when /\A\!/ # !
592 yield :Exclamation_code, :Exclamation_code
593 when /\A\(/ # (
594 yield :Left_parenthesis_code, :Left_parenthesis_code
595 when /\A\)/ # )
596 yield :Right_parenthesis_code, :Right_parenthesis_code
597 when /\A\$/ # $
598 yield :Dollar_code, :Dollar_code
599 when /\A\?\?/ # ??
600 yield :SYM_DT_UNKNOWN, :SYM_DT_UNKNOWN
601 when /\A\?/ # ?
602 yield :Question_mark_code, :Question_mark_code
603 when /\A\|/ # |
604 @@log.info("#{__FILE__}:#{__LINE__}: scan_dadl: @in_interval = #{@in_interval} at #{@filename}:#{@lineno}")
605 if @in_interval
606 @in_interval = false
607 else
608# @in_interval = false
609 @in_interval = true
610 end
611 @@log.info("#{__FILE__}:#{__LINE__}: scan_dadl: SYM_INTERVAL_DELIM at #{@filename}:#{@lineno}")
612 yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
613### when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/ #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
614### yield :V_QUALIFIED_TERM_CODE_REF, $&
615### when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/ #V_LOCAL_TERM_CODE_REF
616### yield :V_LOCAL_TERM_CODE_REF, $&
617### when /\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/ #ERR_V_QUALIFIED_TERM_CODE_REF
618### yield :ERR_V_QUALIFIED_TERM_CODE_REF, $&
619 when /\A\[/ # [
620 yield :Left_bracket_code, :Left_bracket_code
621 when /\A\]/ # ]
622 yield :Right_bracket_code, :Right_bracket_code
623### when /\A[A-Z][a-zA-Z0-9_-]*/
624### yield :V_TYPE_IDENTIFIER, $&
625### when /\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/ #V_GENERIC_TYPE_IDENTIFIER
626### yield :V_GENERIC_TYPE_IDENTIFIER, $&
627### when /\A[a-z][a-zA-Z0-9_]*/
628### word = $&.downcase
629### if @@dadl_reserved[word]
630### yield @@dadl_reserved[word], @@dadl_reserved[word]
631### else
632### yield :V_ATTRIBUTE_IDENTIFIER, $&
633### end
634### when /\Aa[ct][0-9.]+/ #V_LOCAL_CODE
635### yield :V_LOCAL_CODE, $&
636 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-]-
637 yield :V_ISO8601_EXTENDED_DATE_TIME, $&
638 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]
639 yield :V_ISO8601_EXTENDED_TIME, $&
640 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
641 yield :V_ISO8601_EXTENDED_DATE, $&
642 when /\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/ #V_GENERIC_TYPE_IDENTIFIER
643 yield :V_GENERIC_TYPE_IDENTIFIER, $&
644 when /\A[0-9]+|[0-9]+[eE][+-]?[0-9]+/ #V_INTEGER
645 yield :V_INTEGER, $&
646### when /\A[0-9]+\.[0-9]+|[0-9]+\.[0-9]+[eE][+-]?[0-9]+ / #V_REAL
647### yield :V_REAL, $&
648 # when /\A"((?:[^"\\]+|\\.)*)"/ #V_STRING
649### when /\A"([^"]*)"/m #V_STRING
650### yield :V_STRING, $1
651 when /\A[a-z]+:\/\/[^<>|\\{}^~"\[\] ]*/ #V_URI
652 yield :V_URI, $&
653### 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
654### yield :V_ISO8601_DURATION, $&
655 when /\A\S/ #UTF8CHAR
656 yield :UTF8CHAR, $&
657 end
658 data = $' # variable $' receives the string after the match
659 when :adl
660# puts "Entering scan_adl"
661 data = scan_adl(data) do |sym, val|
662 yield sym, val
663 end
664 when :cadl
665# puts "Entering scan_cadl"
666 data = scan_cadl(data) do |sym, val|
667 yield sym, val
668 end
669 when :regexp
670# puts "Entering scan_regexp"
671 data = scan_regexp(data) do |sym, val|
672 yield sym, val
673 end
674 when :term_constraint
675# puts "Entering scan_term_constraint"
676 data = scan_term_constraint(data) do |sym, val|
677 yield sym, val
678 end
679 else
680 raise
681 end
682 end
683end # of scan_dadl
684
685def scan_regexp(data)
686 until data.nil? do
687 case @adl_type.last
688 when :regexp
689# puts "Entering scan_regexp"
690 case data
691 when /\A\/\}/ #V_REGEXP
692 if @adl_type.last == :regexp
693 @in_regexp = false
694 @adl_type.pop
695 yield :END_REGEXP_BLOCK, :END_REGEXP_BLOCK
696 else
697 raise
698 end
699 when /\A(.*)(\/\})/ #V_REGEXP
700 yield :REGEXP_BODY, $1
701 if @adl_type.last == :regexp
702 @in_regexp = false
703 @adl_type.pop
704 yield :END_REGEXP_BLOCK, :END_REGEXP_BLOCK
705 else
706 raise
707 end
708 else
709 raise data
710 end
711 data = $' # variable $' receives the string after the match
712 when :adl
713# puts "Entering scan_adl"
714 data = scan_adl(data) do |sym, val|
715 yield sym, val
716 end
717 when :dadl
718# puts "Entering scan_dadl"
719 data = scan_dadl(data) do |sym, val|
720 yield sym, val
721 end
722 when :cadl
723# puts "Entering scan_cadl"
724 data = scan_cadl(data) do |sym, val|
725 yield sym, val
726 end
727 when :term_constraint
728# puts "Entering scan_term_constraint"
729 data = scan_term_constraint(data) do |sym, val|
730 yield sym, val
731 end
732 else
733 raise
734 end
735 end
736end # of scan_regexp
737
738def scan_term_constraint(data)
739 until data.nil? do
740 case @adl_type.last
741 when :term_constraint
742# puts "Entering scan_term_constraint"
743 case data
744 when /\A\n/ # carriage return
745 @lineno += 1
746 ;
747 when /\A[ \t\r\f]+/ #just drop it
748 ;
749 when /\A--.*$/ # single line comment
750 @lineno += 1
751 @@log.info("#{__FILE__}:#{__LINE__}: scan_term_constraint: COMMENT = #{$&} at #{@filename}:#{@lineno}")
752 ;
753 when /\A[a-zA-Z0-9\._\-]+[ \t]*,/ # match any line, with ',' termination
754 yield :TERM_CODE, $&
755 when /\A[a-zA-Z0-9\._\-]+[ \t]*;/ #match second last line with ';' termination (assumed value)
756 yield :TERM_CODE, $&
757# when /\A[a-zA-Z0-9\._\-]+[ \t]*\]/ # match final line, terminating in ']'
758 when /\A[a-zA-Z0-9\._\-]*[ \t]*\]/ # match final line, terminating in ']'
759 adl_type = @adl_type.pop
760 assert_at(__FILE__,__LINE__){adl_type == :term_constraint}
761 yield :END_TERM_CODE_CONSTRAINT, $&
762 else
763 raise "data = #{data}"
764 end
765 data = $' # variable $' receives the string after the match
766 when :adl
767# puts "Entering scan_adl"
768 data = scan_adl(data) do |sym, val|
769 yield sym, val
770 end
771 when :dadl
772# puts "Entering scan_dadl"
773 data = scan_dadl(data) do |sym, val|
774 yield sym, val
775 end
776 when :cadl
777# puts "Entering scan_cadl"
778 data = scan_cadl(data) do |sym, val|
779 yield sym, val
780 end
781 else
782 raise
783 end
784 end
785end # of scan_term_constraint
786
787
788def parse(data, filename, lineno = 1, debug = false)
789 @yydebug = true
790 @parsestring = data
791 @data = data
792 @lineno = lineno
793 @filename = filename
794 @adl_type = [:adl] # {:adl, :cadl, :dadl}
795 @in_regexp = false
796 @in_interval = false
797 @in_c_domain_type = false
798 yyparse self, :scan
799end
800
801def on_error( t, v, values)
802 raise Racc::ParseError, "#{@filename}:#{@lineno}: Inline syntax error on #{v.inspect}"
803end
804
805
806
807
808
809
810
811### Local Variables:
812### mode:ruby
813### mode:font-lock
814### comment-column:0
815### comment-start: "### "
816### comment-end:""
817### End:
818
819
820
821
822..end lib/parser.y modeval..iddb76fb97bf
823
824##### racc 1.4.5 generates ###
825
826racc_reduce_table = [
827 0, 0, :racc_error,
828 2, 95, :_reduce_1,
829 1, 95, :_reduce_none,
830 8, 96, :_reduce_3,
831 2, 97, :_reduce_4,
832 2, 97, :_reduce_5,
833 1, 105, :_reduce_6,
834 2, 105, :_reduce_7,
835 3, 106, :_reduce_8,
836 1, 107, :_reduce_9,
837 3, 107, :_reduce_10,
838 3, 108, :_reduce_11,
839 1, 108, :_reduce_12,
840 0, 98, :_reduce_none,
841 2, 98, :_reduce_none,
842 2, 98, :_reduce_none,
843 2, 99, :_reduce_none,
844 2, 99, :_reduce_none,
845 0, 100, :_reduce_none,
846 2, 100, :_reduce_19,
847 2, 100, :_reduce_none,
848 0, 101, :_reduce_none,
849 2, 101, :_reduce_22,
850 2, 101, :_reduce_none,
851 2, 102, :_reduce_24,
852 2, 102, :_reduce_none,
853 1, 110, :_reduce_26,
854 1, 110, :_reduce_27,
855 5, 111, :_reduce_28,
856 5, 111, :_reduce_29,
857 2, 113, :_reduce_30,
858 1, 115, :_reduce_31,
859 2, 115, :_reduce_32,
860 1, 114, :_reduce_none,
861 1, 114, :_reduce_34,
862 1, 120, :_reduce_35,
863 1, 120, :_reduce_36,
864 1, 120, :_reduce_37,
865 1, 120, :_reduce_38,
866 1, 120, :_reduce_39,
867 1, 120, :_reduce_40,
868 1, 120, :_reduce_41,
869 1, 120, :_reduce_42,
870 1, 120, :_reduce_none,
871 1, 120, :_reduce_none,
872 3, 121, :_reduce_45,
873 4, 122, :_reduce_none,
874 3, 122, :_reduce_none,
875 6, 123, :_reduce_none,
876 2, 129, :_reduce_none,
877 2, 132, :_reduce_none,
878 3, 132, :_reduce_none,
879 2, 132, :_reduce_none,
880 1, 127, :_reduce_53,
881 1, 133, :_reduce_54,
882 1, 133, :_reduce_55,
883 1, 133, :_reduce_56,
884 1, 133, :_reduce_57,
885 1, 133, :_reduce_58,
886 1, 133, :_reduce_59,
887 1, 133, :_reduce_60,
888 1, 133, :_reduce_61,
889 1, 118, :_reduce_none,
890 1, 119, :_reduce_63,
891 2, 119, :_reduce_64,
892 5, 142, :_reduce_65,
893 5, 142, :_reduce_66,
894 5, 142, :_reduce_67,
895 2, 143, :_reduce_68,
896 3, 143, :_reduce_69,
897 1, 144, :_reduce_70,
898 2, 144, :_reduce_71,
899 1, 144, :_reduce_72,
900 0, 130, :_reduce_none,
901 2, 130, :_reduce_none,
902 0, 131, :_reduce_none,
903 2, 131, :_reduce_none,
904 1, 147, :_reduce_none,
905 2, 147, :_reduce_none,
906 3, 148, :_reduce_none,
907 1, 148, :_reduce_none,
908 3, 148, :_reduce_none,
909 0, 103, :_reduce_none,
910 2, 103, :_reduce_none,
911 2, 103, :_reduce_none,
912 2, 104, :_reduce_85,
913 2, 104, :_reduce_none,
914 1, 109, :_reduce_none,
915 1, 151, :_reduce_none,
916 1, 151, :_reduce_none,
917 1, 152, :_reduce_90,
918 2, 152, :_reduce_91,
919 3, 152, :_reduce_92,
920 3, 154, :_reduce_93,
921 1, 155, :_reduce_94,
922 2, 155, :_reduce_none,
923 1, 156, :_reduce_96,
924 1, 156, :_reduce_97,
925 1, 153, :_reduce_98,
926 1, 153, :_reduce_99,
927 1, 159, :_reduce_100,
928 2, 159, :_reduce_101,
929 3, 160, :_reduce_102,
930 1, 161, :_reduce_103,
931 1, 162, :_reduce_104,
932 2, 162, :_reduce_105,
933 3, 163, :_reduce_106,
934 3, 164, :_reduce_107,
935 1, 158, :_reduce_108,
936 2, 158, :_reduce_109,
937 2, 166, :_reduce_110,
938 3, 166, :_reduce_111,
939 1, 167, :_reduce_none,
940 1, 157, :_reduce_113,
941 2, 157, :_reduce_114,
942 3, 168, :_reduce_115,
943 1, 169, :_reduce_116,
944 1, 169, :_reduce_117,
945 1, 169, :_reduce_118,
946 1, 169, :_reduce_119,
947 1, 169, :_reduce_120,
948 1, 165, :_reduce_121,
949 1, 165, :_reduce_122,
950 1, 165, :_reduce_123,
951 1, 165, :_reduce_124,
952 1, 165, :_reduce_125,
953 1, 165, :_reduce_126,
954 1, 165, :_reduce_127,
955 1, 165, :_reduce_128,
956 1, 165, :_reduce_129,
957 1, 165, :_reduce_130,
958 1, 170, :_reduce_none,
959 1, 170, :_reduce_none,
960 1, 170, :_reduce_none,
961 1, 170, :_reduce_none,
962 1, 170, :_reduce_none,
963 1, 170, :_reduce_none,
964 1, 170, :_reduce_none,
965 1, 170, :_reduce_none,
966 1, 170, :_reduce_none,
967 1, 171, :_reduce_none,
968 1, 171, :_reduce_none,
969 1, 171, :_reduce_none,
970 1, 171, :_reduce_none,
971 1, 171, :_reduce_none,
972 1, 171, :_reduce_none,
973 1, 117, :_reduce_146,
974 1, 117, :_reduce_147,
975 1, 174, :_reduce_148,
976 3, 184, :_reduce_none,
977 3, 184, :_reduce_none,
978 3, 184, :_reduce_none,
979 1, 175, :_reduce_152,
980 2, 175, :_reduce_153,
981 2, 175, :_reduce_154,
982 3, 185, :_reduce_none,
983 3, 185, :_reduce_none,
984 3, 185, :_reduce_none,
985 5, 193, :_reduce_none,
986 6, 193, :_reduce_none,
987 6, 193, :_reduce_none,
988 7, 193, :_reduce_none,
989 4, 193, :_reduce_none,
990 4, 193, :_reduce_none,
991 4, 193, :_reduce_none,
992 4, 193, :_reduce_none,
993 3, 193, :_reduce_none,
994 1, 176, :_reduce_167,
995 2, 176, :_reduce_168,
996 2, 176, :_reduce_169,
997 3, 186, :_reduce_none,
998 3, 186, :_reduce_none,
999 3, 186, :_reduce_none,
1000 5, 194, :_reduce_none,
1001 6, 194, :_reduce_none,
1002 6, 194, :_reduce_none,
1003 7, 194, :_reduce_none,
1004 4, 194, :_reduce_none,
1005 4, 194, :_reduce_none,
1006 4, 194, :_reduce_none,
1007 4, 194, :_reduce_none,
1008 3, 194, :_reduce_none,
1009 1, 177, :_reduce_182,
1010 1, 177, :_reduce_183,
1011 3, 187, :_reduce_none,
1012 3, 187, :_reduce_none,
1013 3, 187, :_reduce_none,
1014 1, 178, :_reduce_none,
1015 3, 188, :_reduce_none,
1016 3, 188, :_reduce_none,
1017 3, 188, :_reduce_none,
1018 1, 179, :_reduce_none,
1019 3, 189, :_reduce_none,
1020 3, 189, :_reduce_none,
1021 3, 189, :_reduce_none,
1022 5, 195, :_reduce_none,
1023 6, 195, :_reduce_none,
1024 6, 195, :_reduce_none,
1025 7, 195, :_reduce_none,
1026 4, 195, :_reduce_none,
1027 4, 195, :_reduce_none,
1028 4, 195, :_reduce_none,
1029 4, 195, :_reduce_none,
1030 3, 195, :_reduce_none,
1031 1, 180, :_reduce_none,
1032 3, 190, :_reduce_none,
1033 3, 190, :_reduce_none,
1034 3, 190, :_reduce_none,
1035 5, 196, :_reduce_none,
1036 6, 196, :_reduce_none,
1037 6, 196, :_reduce_none,
1038 7, 196, :_reduce_none,
1039 4, 196, :_reduce_none,
1040 4, 196, :_reduce_none,
1041 4, 196, :_reduce_none,
1042 4, 196, :_reduce_none,
1043 3, 196, :_reduce_none,
1044 1, 181, :_reduce_none,
1045 3, 191, :_reduce_none,
1046 3, 191, :_reduce_none,
1047 3, 191, :_reduce_none,
1048 5, 197, :_reduce_none,
1049 6, 197, :_reduce_none,
1050 6, 197, :_reduce_none,
1051 7, 197, :_reduce_none,
1052 4, 197, :_reduce_none,
1053 4, 197, :_reduce_none,
1054 4, 197, :_reduce_none,
1055 4, 197, :_reduce_none,
1056 3, 197, :_reduce_none,
1057 1, 182, :_reduce_230,
1058 3, 192, :_reduce_none,
1059 3, 192, :_reduce_none,
1060 3, 192, :_reduce_none,
1061 5, 198, :_reduce_none,
1062 6, 198, :_reduce_none,
1063 6, 198, :_reduce_none,
1064 7, 198, :_reduce_none,
1065 4, 198, :_reduce_none,
1066 4, 198, :_reduce_none,
1067 4, 198, :_reduce_none,
1068 4, 198, :_reduce_none,
1069 3, 198, :_reduce_none,
1070 1, 172, :_reduce_243,
1071 3, 173, :_reduce_none,
1072 3, 173, :_reduce_none,
1073 3, 173, :_reduce_none,
1074 1, 183, :_reduce_247,
1075 1, 112, :_reduce_none,
1076 2, 112, :_reduce_none,
1077 3, 199, :_reduce_none,
1078 1, 199, :_reduce_none,
1079 3, 199, :_reduce_none,
1080 1, 150, :_reduce_none,
1081 1, 150, :_reduce_none,
1082 2, 201, :_reduce_none,
1083 2, 201, :_reduce_none,
1084 5, 201, :_reduce_none,
1085 5, 201, :_reduce_none,
1086 2, 201, :_reduce_none,
1087 3, 201, :_reduce_none,
1088 3, 201, :_reduce_none,
1089 3, 201, :_reduce_none,
1090 3, 201, :_reduce_none,
1091 3, 201, :_reduce_none,
1092 3, 201, :_reduce_none,
1093 3, 201, :_reduce_none,
1094 3, 201, :_reduce_none,
1095 3, 201, :_reduce_none,
1096 3, 201, :_reduce_none,
1097 3, 200, :_reduce_none,
1098 1, 200, :_reduce_none,
1099 1, 200, :_reduce_none,
1100 1, 203, :_reduce_none,
1101 1, 203, :_reduce_none,
1102 3, 205, :_reduce_none,
1103 3, 205, :_reduce_none,
1104 3, 205, :_reduce_none,
1105 3, 205, :_reduce_none,
1106 3, 205, :_reduce_none,
1107 3, 204, :_reduce_none,
1108 1, 204, :_reduce_none,
1109 1, 204, :_reduce_none,
1110 1, 204, :_reduce_none,
1111 1, 128, :_reduce_none,
1112 2, 128, :_reduce_none,
1113 1, 202, :_reduce_none,
1114 3, 202, :_reduce_none,
1115 2, 206, :_reduce_288,
1116 1, 206, :_reduce_289,
1117 0, 145, :_reduce_290,
1118 5, 145, :_reduce_291,
1119 1, 207, :_reduce_292,
1120 3, 207, :_reduce_293,
1121 5, 146, :_reduce_294,
1122 1, 208, :_reduce_none,
1123 3, 208, :_reduce_none,
1124 3, 208, :_reduce_none,
1125 3, 208, :_reduce_none,
1126 5, 208, :_reduce_none,
1127 5, 208, :_reduce_none,
1128 5, 208, :_reduce_none,
1129 5, 208, :_reduce_none,
1130 1, 210, :_reduce_none,
1131 1, 210, :_reduce_none,
1132 0, 116, :_reduce_none,
1133 5, 116, :_reduce_306,
1134 2, 116, :_reduce_none,
1135 1, 209, :_reduce_none,
1136 3, 209, :_reduce_none,
1137 1, 211, :_reduce_none,
1138 1, 211, :_reduce_none,
1139 1, 211, :_reduce_none,
1140 1, 134, :_reduce_none,
1141 3, 134, :_reduce_none,
1142 3, 134, :_reduce_none,
1143 1, 212, :_reduce_none,
1144 1, 212, :_reduce_none,
1145 1, 212, :_reduce_none,
1146 1, 135, :_reduce_none,
1147 3, 135, :_reduce_none,
1148 3, 135, :_reduce_none,
1149 1, 213, :_reduce_none,
1150 1, 213, :_reduce_none,
1151 1, 213, :_reduce_none,
1152 1, 136, :_reduce_none,
1153 3, 136, :_reduce_none,
1154 3, 136, :_reduce_none,
1155 1, 214, :_reduce_none,
1156 1, 214, :_reduce_none,
1157 1, 214, :_reduce_none,
1158 1, 137, :_reduce_none,
1159 3, 137, :_reduce_none,
1160 3, 137, :_reduce_none,
1161 1, 215, :_reduce_none,
1162 1, 215, :_reduce_none,
1163 1, 215, :_reduce_none,
1164 1, 138, :_reduce_none,
1165 3, 138, :_reduce_none,
1166 3, 138, :_reduce_none,
1167 1, 216, :_reduce_none,
1168 3, 216, :_reduce_none,
1169 1, 216, :_reduce_none,
1170 1, 216, :_reduce_none,
1171 1, 139, :_reduce_none,
1172 3, 139, :_reduce_none,
1173 3, 139, :_reduce_none,
1174 1, 218, :_reduce_none,
1175 1, 218, :_reduce_none,
1176 3, 218, :_reduce_none,
1177 1, 140, :_reduce_none,
1178 3, 140, :_reduce_none,
1179 3, 140, :_reduce_none,
1180 1, 219, :_reduce_353,
1181 1, 219, :_reduce_354,
1182 3, 219, :_reduce_355,
1183 3, 219, :_reduce_356,
1184 1, 141, :_reduce_357,
1185 3, 141, :_reduce_358,
1186 3, 141, :_reduce_359,
1187 1, 126, :_reduce_none,
1188 3, 126, :_reduce_none,
1189 3, 126, :_reduce_none,
1190 1, 220, :_reduce_none,
1191 3, 220, :_reduce_none,
1192 3, 221, :_reduce_365,
1193 1, 125, :_reduce_none,
1194 1, 125, :_reduce_none,
1195 3, 222, :_reduce_none,
1196 0, 223, :_reduce_none,
1197 1, 223, :_reduce_none,
1198 2, 223, :_reduce_none,
1199 1, 124, :_reduce_none,
1200 1, 149, :_reduce_none,
1201 1, 149, :_reduce_374,
1202 1, 217, :_reduce_none ]
1203
1204racc_reduce_n = 376
1205
1206racc_shift_n = 631
1207
1208racc_action_table = [
1209 571, 442, 161, 472, 144, 588, 470, 466, 468, 129,
1210 214, 570, 165, 573, 229, 10, 542, 170, 376, 539,
1211 29, 58, 540, 541, 171, 458, 496, 386, 522, 385,
1212 24, 116, 213, 494, -373, 12, 535, 510, 434, 513,
1213 514, -374, 512, 569, 60, 492, 228, 457, 30, 50,
1214 145, 46, 48, 317, 97, 98, 78, 81, 84, 188,
1215 116, 94, 302, 307, 75, 109, 112, 114, 116, 529,
1216 522, 116, 109, 114, 112, 116, 152, 154, 535, 510,
1217 76, 513, 514, 272, 101, 116, 314, 279, 281, 532,
1218 160, 114, 291, 46, 48, 317, 114, 625, 78, 81,
1219 84, 188, 112, 94, 302, 307, 99, 109, 112, 114,
1220 116, 529, 156, 432, 1, 46, 48, 101, 347, 348,
1221 78, 81, 84, 230, 479, 94, 97, 98, 314, 279,
1222 281, 532, 490, 5, 291, 88, 92, 152, 154, 138,
1223 152, 154, 76, 101, 260, 374, 152, 154, 430, 148,
1224 150, 133, 259, 78, 81, 84, 236, 114, 94, 97,
1225 98, 152, 154, 67, 481, 138, 152, 154, 88, 92,
1226 112, 152, 154, 156, 462, 76, 156, 127, 329, 78,
1227 81, 84, 156, 50, 94, 97, 98, 126, 109, 152,
1228 154, 465, 157, 158, 88, 92, 149, 156, 134, 151,
1229 153, 76, 156, 594, 109, 152, 154, 156, 157, 158,
1230 148, 150, 149, 148, 150, 151, 153, 566, 332, 148,
1231 150, 236, 337, 338, 378, 156, 123, 124, 109, 101,
1232 78, 382, 383, 55, 148, 150, 211, 20, 184, 148,
1233 150, 156, 497, 35, 148, 150, 209, 257, 323, 324,
1234 250, 138, 94, 254, 256, 21, 35, 155, 212, 78,
1235 382, 383, 148, 150, 390, 78, 81, 84, 46, 48,
1236 94, 97, 98, 155, 217, 50, 391, 455, 148, 150,
1237 88, 92, 217, 274, 46, 48, 394, 76, 50, 78,
1238 382, 383, 101, 237, 78, 81, 84, 46, 48, 94,
1239 102, 395, 335, 109, 112, 114, 116, 272, 274, 108,
1240 78, 81, 84, 112, 138, 94, 101, 67, 78, 81,
1241 84, 396, 141, 94, 78, 382, 383, 142, 78, 81,
1242 84, 268, 76, 94, 97, 98, 568, 50, 138, 101,
1243 76, 46, 48, 88, 92, 239, 168, 169, 166, 167,
1244 76, 101, 78, 81, 84, 146, 397, 94, 97, 98,
1245 147, 138, 398, 217, 326, 345, 346, 88, 92, 217,
1246 102, 123, 124, 138, 76, 78, 81, 84, 217, 399,
1247 94, 97, 98, 168, 169, 166, 167, 78, 81, 84,
1248 88, 92, 94, 97, 98, 400, 217, 76, 401, 78,
1249 81, 84, 88, 92, 94, 78, 81, 84, 101, 76,
1250 94, 46, 48, 402, 78, 81, 84, 403, 16, 94,
1251 17, 76, 322, 404, 323, 324, 101, 76, 94, 405,
1252 99, 488, 78, 81, 84, 217, 76, 94, 406, 46,
1253 48, 78, 382, 383, 78, 81, 84, 407, 99, 94,
1254 97, 98, 416, 217, 76, 46, 48, 46, 48, 88,
1255 92, 217, 78, 81, 84, 408, 76, 94, 97, 98,
1256 265, 78, 81, 84, 349, 350, 94, 88, 92, 323,
1257 324, 25, 26, 94, 76, 101, 357, 358, 35, 78,
1258 81, 84, 409, 76, 94, 596, 597, 78, 81, 84,
1259 323, 324, 94, 217, 94, 267, 380, 99, 477, 217,
1260 268, 76, 615, 616, 617, 217, 46, 48, 266, 76,
1261 50, 78, 81, 84, 427, 428, 94, 97, 98, 46,
1262 48, 323, 324, 101, 248, 94, 88, 92, 247, 78,
1263 81, 84, 142, 76, 94, 78, 81, 84, 371, 372,
1264 94, 78, 81, 84, 147, 99, 94, 101, 246, 323,
1265 324, 76, 39, 94, 46, 48, 413, 76, 380, 78,
1266 81, 84, 35, 76, 94, 97, 98, 425, 426, 99,
1267 101, 78, 382, 383, 88, 92, 423, 424, 46, 48,
1268 413, 76, 261, 78, 81, 84, 421, 422, 94, 97,
1269 98, 16, 138, 17, 50, 412, 382, 383, 88, 92,
1270 413, 419, 420, 46, 48, 76, 78, 81, 84, 417,
1271 418, 94, 97, 98, 262, 412, 382, 383, 263, 323,
1272 324, 88, 92, 94, 629, 630, 317, 116, 76, 78,
1273 81, 84, 188, 264, 94, 302, 307, 245, 109, 112,
1274 114, 116, 78, 81, 84, 123, 124, 94, 78, 382,
1275 383, 109, 112, 114, 116, 168, 169, 166, 167, 314,
1276 279, 281, -103, 244, 243, 291, 202, 435, 436, 78,
1277 81, 84, 188, 437, 94, 123, 124, 126, 109, 112,
1278 114, 116, 184, 119, 127, 438, 439, 78, 81, 84,
1279 440, 242, 94, 123, 124, 126, 109, 112, 114, 116,
1280 443, 119, 78, 81, 84, 444, 445, 94, 78, 382,
1281 383, 109, 112, 114, 116, 78, 81, 84, 446, 447,
1282 94, 78, 382, 383, 109, 112, 114, 116, 78, 81,
1283 84, 448, 449, 94, 450, 451, 452, 109, 112, 114,
1284 116, 168, 169, 166, 167, 388, 78, 382, 383, 168,
1285 169, 166, 167, 168, 169, 166, 167, 168, 169, 166,
1286 167, 168, 169, 166, 167, 168, 169, 166, 167, 453,
1287 454, 241, 141, 146, 240, 460, 461, 239, 238, 138,
1288 171, 145, 207, 474, 476, 265, 478, 102, 163, 483,
1289 484, 485, 160, 143, 138, 135, 50, 131, 69, 499,
1290 109, 501, 112, 503, 114, 505, 116, 266, 508, 509,
1291 68, 537, 538, 35, 60, 544, 545, 57, 547, 109,
1292 549, 112, 551, 114, 553, 116, 267, 556, 557, 558,
1293 559, 560, 561, 562, -103, 564, 268, 54, 170, 34,
1294 114, 31, 575, 576, 160, 578, 579, 116, 116, 116,
1295 28, 581, 582, 583, 584, 585, 586, 587, 112, 590,
1296 591, 276, 184, 109, 598, 23, 601, 602, 76, 568,
1297 604, 606, 607, 608, 277, 613, 126, 15, 619, 13,
1298 9, 621, 622, 623, 624, 8, 7, 627, 628, 319,
1299 116 ]
1300
1301racc_action_check = [
1302 526, 358, 88, 403, 83, 565, 402, 400, 401, 61,
1303 144, 524, 92, 526, 160, 5, 476, 95, 261, 476,
1304 23, 40, 476, 476, 99, 390, 426, 266, 526, 266,
1305 16, 261, 144, 424, 95, 5, 526, 526, 350, 526,
1306 526, 99, 458, 524, 61, 422, 160, 390, 23, 40,
1307 83, 526, 526, 526, 92, 92, 526, 526, 526, 526,
1308 358, 526, 526, 526, 54, 526, 526, 526, 526, 526,
1309 458, 403, 400, 402, 401, 476, 226, 226, 458, 458,
1310 88, 458, 458, 458, 54, 426, 526, 526, 526, 526,
1311 565, 424, 526, 458, 458, 458, 350, 619, 458, 458,
1312 458, 458, 422, 458, 458, 458, 54, 458, 458, 458,
1313 458, 458, 226, 348, 0, 54, 54, 619, 252, 252,
1314 54, 54, 54, 163, 408, 54, 54, 54, 458, 458,
1315 458, 458, 420, 0, 458, 54, 54, 224, 224, 619,
1316 318, 318, 54, 163, 190, 260, 227, 227, 346, 226,
1317 226, 69, 189, 619, 619, 619, 318, 260, 619, 619,
1318 619, 220, 220, 49, 409, 163, 218, 218, 619, 619,
1319 348, 222, 222, 224, 398, 619, 318, 408, 243, 163,
1320 163, 163, 227, 49, 163, 163, 163, 243, 420, 85,
1321 85, 399, 85, 85, 163, 163, 85, 220, 69, 85,
1322 85, 163, 218, 570, 346, 172, 172, 222, 172, 172,
1323 224, 224, 172, 318, 318, 172, 172, 514, 245, 227,
1324 227, 172, 249, 249, 262, 85, 409, 409, 245, 168,
1325 398, 398, 398, 34, 220, 220, 143, 13, 262, 218,
1326 218, 172, 428, 34, 222, 222, 135, 188, 399, 399,
1327 188, 168, 399, 188, 188, 13, 135, 85, 143, 570,
1328 570, 570, 85, 85, 269, 168, 168, 168, 514, 514,
1329 168, 168, 168, 172, 151, 34, 270, 372, 172, 172,
1330 168, 168, 217, 273, 34, 34, 274, 168, 135, 428,
1331 428, 428, 167, 173, 188, 188, 188, 135, 135, 188,
1332 131, 276, 247, 188, 188, 188, 188, 211, 211, 59,
1333 151, 151, 151, 247, 167, 151, 166, 59, 217, 217,
1334 217, 277, 81, 217, 372, 372, 372, 81, 167, 167,
1335 167, 516, 151, 167, 167, 167, 516, 59, 166, 169,
1336 217, 131, 131, 167, 167, 280, 173, 173, 173, 173,
1337 167, 165, 166, 166, 166, 84, 282, 166, 166, 166,
1338 84, 169, 283, 152, 241, 251, 251, 166, 166, 150,
1339 57, 241, 241, 165, 166, 169, 169, 169, 149, 286,
1340 169, 169, 169, 235, 235, 235, 235, 165, 165, 165,
1341 169, 169, 165, 165, 165, 289, 148, 169, 293, 152,
1342 152, 152, 165, 165, 152, 150, 150, 150, 79, 165,
1343 150, 57, 57, 296, 149, 149, 149, 299, 12, 149,
1344 12, 152, 239, 302, 239, 239, 620, 150, 239, 303,
1345 79, 418, 148, 148, 148, 153, 149, 148, 305, 79,
1346 79, 265, 265, 265, 79, 79, 79, 307, 620, 79,
1347 79, 79, 338, 158, 148, 513, 513, 620, 620, 79,
1348 79, 154, 620, 620, 620, 308, 79, 620, 620, 620,
1349 310, 153, 153, 153, 253, 253, 153, 620, 620, 418,
1350 418, 18, 18, 418, 620, 613, 255, 255, 510, 158,
1351 158, 158, 312, 153, 158, 574, 574, 154, 154, 154,
1352 338, 338, 154, 155, 338, 315, 406, 613, 406, 156,
1353 316, 158, 606, 606, 606, 157, 613, 613, 317, 154,
1354 510, 613, 613, 613, 344, 344, 613, 613, 613, 510,
1355 510, 267, 267, 609, 187, 267, 613, 613, 186, 155,
1356 155, 155, 323, 613, 155, 156, 156, 156, 258, 258,
1357 156, 157, 157, 157, 324, 609, 157, 604, 185, 488,
1358 488, 155, 28, 488, 609, 609, 484, 156, 263, 609,
1359 609, 609, 28, 157, 609, 609, 609, 343, 343, 604,
1360 101, 484, 484, 484, 609, 609, 342, 342, 604, 604,
1361 578, 609, 193, 604, 604, 604, 341, 341, 604, 604,
1362 604, 26, 101, 26, 28, 578, 578, 578, 604, 604,
1363 319, 340, 340, 28, 28, 604, 101, 101, 101, 339,
1364 339, 101, 101, 101, 196, 319, 319, 319, 198, 416,
1365 416, 101, 101, 416, 624, 624, 214, 259, 101, 214,
1366 214, 214, 214, 199, 214, 214, 214, 183, 214, 214,
1367 214, 214, 254, 254, 254, 238, 238, 254, 569, 569,
1368 569, 254, 254, 254, 254, 93, 93, 93, 93, 214,
1369 214, 214, 102, 182, 181, 214, 102, 351, 352, 102,
1370 102, 102, 102, 353, 102, 102, 102, 102, 102, 102,
1371 102, 102, 102, 102, 60, 354, 355, 60, 60, 60,
1372 356, 180, 60, 60, 60, 60, 60, 60, 60, 60,
1373 359, 60, 250, 250, 250, 360, 361, 250, 455, 455,
1374 455, 250, 250, 250, 250, 257, 257, 257, 362, 363,
1375 257, 497, 497, 497, 257, 257, 257, 257, 256, 256,
1376 256, 364, 365, 256, 366, 367, 368, 256, 256, 256,
1377 256, 612, 612, 612, 612, 268, 268, 268, 268, 231,
1378 231, 231, 231, 232, 232, 232, 232, 233, 233, 233,
1379 233, 234, 234, 234, 234, 626, 626, 626, 626, 369,
1380 370, 179, 382, 383, 178, 393, 394, 176, 175, 145,
1381 138, 137, 111, 404, 405, 201, 407, 106, 89, 410,
1382 412, 415, 86, 82, 76, 70, 67, 63, 53, 429,
1383 430, 431, 432, 433, 434, 441, 442, 202, 456, 457,
1384 50, 460, 461, 45, 44, 486, 487, 38, 489, 490,
1385 491, 492, 493, 494, 495, 496, 204, 498, 500, 502,
1386 504, 506, 507, 509, 35, 512, 205, 33, 515, 27,
1387 246, 24, 532, 533, 536, 537, 538, 539, 540, 541,
1388 22, 546, 548, 550, 552, 554, 555, 563, 244, 567,
1389 568, 212, 264, 242, 576, 14, 579, 580, 589, 593,
1390 598, 599, 600, 601, 213, 605, 240, 8, 611, 6,
1391 4, 614, 615, 616, 617, 3, 2, 622, 623, 228,
1392 542 ]
1393
1394racc_action_pointer = [
1395 113, nil, 877, 895, 872, 14, 862, nil, 887, nil,
1396 nil, nil, 394, 236, 847, nil, 22, nil, 459, nil,
1397 nil, nil, 830, 19, 826, nil, 577, 818, 561, nil,
1398 nil, nil, nil, 815, 232, 794, nil, nil, 819, nil,
1399 6, nil, nil, nil, 774, 812, nil, nil, nil, 140,
1400 819, nil, nil, 761, 63, nil, nil, 359, nil, 294,
1401 640, -6, nil, 799, nil, nil, nil, 763, nil, 150,
1402 756, nil, nil, nil, nil, nil, 761, nil, nil, 387,
1403 nil, 265, 770, -29, 298, 183, 716, nil, 1, 752,
1404 nil, nil, -9, 590, nil, -12, nil, nil, nil, -5,
1405 nil, 559, 622, nil, nil, nil, 786, nil, nil, nil,
1406 nil, 741, nil, nil, nil, nil, nil, nil, nil, nil,
1407 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1408 nil, 289, nil, nil, nil, 245, nil, 712, 761, nil,
1409 nil, nil, nil, 224, -2, 746, nil, nil, 375, 357,
1410 348, 253, 342, 414, 440, 482, 488, 494, 432, nil,
1411 13, nil, nil, 122, nil, 330, 295, 271, 208, 318,
1412 nil, nil, 199, 271, nil, 733, 732, nil, 729, 726,
1413 646, 619, 618, 592, nil, 503, 483, 519, 237, 97,
1414 89, nil, nil, 537, nil, nil, 569, nil, 573, 588,
1415 nil, 740, 762, nil, 781, 791, nil, nil, nil, nil,
1416 nil, 265, 836, 849, 582, nil, nil, 261, 160, nil,
1417 155, nil, 165, nil, 131, nil, 70, 140, 887, nil,
1418 nil, 684, 688, 692, 696, 308, nil, nil, 592, 366,
1419 821, 308, 807, 122, 801, 162, 782, 246, nil, 162,
1420 655, 305, 58, 414, 595, 426, 681, 668, 488, 568,
1421 89, -38, 168, 514, 802, 384, -27, 473, 699, 231,
1422 262, nil, nil, 240, 205, nil, 265, 285, nil, nil,
1423 290, nil, 342, 339, nil, nil, 356, nil, nil, 372,
1424 nil, nil, nil, 375, nil, nil, 390, nil, nil, 394,
1425 nil, nil, 368, 350, nil, 383, nil, 392, 442, nil,
1426 415, nil, 469, nil, nil, 450, 455, 463, 134, 568,
1427 nil, nil, nil, 480, 492, nil, nil, nil, nil, nil,
1428 nil, nil, nil, nil, nil, nil, nil, nil, 442, 559,
1429 551, 536, 526, 517, 464, nil, 138, nil, 103, nil,
1430 28, 617, 618, 623, 635, 636, 640, nil, -9, 650,
1431 655, 656, 668, 669, 681, 682, 684, 685, 686, 719,
1432 720, nil, 267, nil, nil, nil, nil, nil, nil, nil,
1433 nil, nil, 725, 726, nil, nil, nil, nil, nil, nil,
1434 13, nil, nil, 703, 753, nil, nil, nil, 173, 190,
1435 6, 7, 5, 2, 729, 734, 452, 733, 123, 163,
1436 785, nil, 739, nil, nil, 741, 571, nil, 421, nil,
1437 122, nil, 35, nil, 23, nil, 16, nil, 232, 749,
1438 744, 751, 745, 753, 746, nil, nil, nil, nil, nil,
1439 nil, 755, 747, nil, nil, nil, nil, nil, nil, nil,
1440 nil, nil, nil, nil, nil, 661, 758, 784, 41, nil,
1441 788, 810, nil, nil, nil, nil, nil, nil, nil, nil,
1442 nil, nil, nil, nil, nil, nil, 6, nil, nil, nil,
1443 nil, nil, nil, nil, 524, nil, 765, 766, 501, 768,
1444 763, 770, 764, 772, 765, 774, 766, 674, 777, nil,
1445 778, nil, 779, nil, 780, nil, 781, 782, nil, 807,
1446 477, nil, 831, 403, 216, 819, 276, nil, nil, nil,
1447 nil, nil, nil, nil, -12, nil, -1, nil, nil, nil,
1448 nil, nil, 760, 820, nil, nil, 768, 843, 799, 788,
1449 789, 790, 831, nil, nil, nil, 801, nil, 802, nil,
1450 803, nil, 804, nil, 805, 806, nil, nil, nil, nil,
1451 nil, nil, nil, 828, nil, 4, nil, 840, 800, 601,
1452 202, nil, nil, nil, 404, nil, 862, nil, 548, 815,
1453 863, nil, nil, nil, nil, nil, nil, nil, nil, 799,
1454 nil, nil, nil, 819, nil, nil, nil, nil, 836, 858,
1455 868, 826, nil, nil, 536, 840, 429, nil, nil, 512,
1456 nil, 842, 676, 464, 877, 869, 870, 871, nil, 96,
1457 405, nil, 812, 813, 551, nil, 700, nil, nil, nil,
1458 nil ]
1459
1460racc_action_default = [
1461 -376, -2, -376, -376, -376, -6, -13, -4, -376, -1,
1462 -5, -7, -376, -376, -376, 631, -376, -12, -376, -9,
1463 -15, -14, -18, -376, -376, -8, -376, -21, -376, -17,
1464 -16, -11, -10, -376, -376, -112, -90, -108, -376, -20,
1465 -376, -98, -99, -100, -376, -376, -146, -87, -147, -88,
1466 -94, -89, -19, -82, -376, -23, -22, -376, -110, -376,
1467 -376, -376, -104, -376, -109, -101, -91, -376, -95, -376,
1468 -376, -282, -24, -248, -26, -25, -284, -253, -152, -27,
1469 -254, -376, -376, -376, -376, -376, -305, -273, -376, -376,
1470 -283, -274, -376, -251, -167, -31, -286, -271, -272, -289,
1471 -281, -376, -112, -93, -113, -97, -376, -96, -111, -191,
1472 -123, -376, -204, -124, -217, -125, -230, -126, -127, -247,
1473 -128, -129, -130, -182, -183, -121, -187, -148, -122, -102,
1474 -105, -376, -92, -84, -83, -376, -3, -285, -289, -249,
1475 -373, -153, -168, -376, -376, -376, -154, -169, -376, -376,
1476 -376, -376, -376, -376, -376, -376, -376, -376, -376, -30,
1477 -376, -256, -255, -376, -259, -376, -376, -376, -376, -376,
1478 -32, -288, -376, -376, -145, -134, -123, -116, -135, -124,
1479 -136, -125, -137, -126, -243, -138, -127, -376, -376, -139,
1480 -128, -117, -140, -129, -118, -141, -119, -142, -131, -120,
1481 -143, -132, -148, -144, -133, -122, -114, -107, -106, -86,
1482 -85, -376, -376, -376, -376, -287, -278, -376, -263, -279,
1483 -264, -275, -265, -276, -260, -277, -261, -262, -376, -307,
1484 -252, -250, -268, -269, -266, -267, -280, -270, -376, -376,
1485 -376, -376, -376, -376, -376, -376, -376, -376, -115, -376,
1486 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
1487 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
1488 -376, -33, -62, -34, -290, -63, -376, -376, -343, -328,
1489 -316, -334, -376, -313, -54, -323, -319, -55, -329, -325,
1490 -56, -375, -335, -331, -57, -342, -337, -312, -58, -344,
1491 -318, -59, -353, -340, -324, -348, -60, -354, -350, -330,
1492 -311, -61, -357, -336, -322, -317, -310, -347, -376, -376,
1493 -185, -170, -172, -376, -376, -189, -186, -184, -193, -190,
1494 -188, -206, -194, -192, -219, -207, -205, -181, -376, -376,
1495 -376, -376, -376, -376, -376, -203, -376, -216, -376, -229,
1496 -376, -376, -376, -376, -376, -376, -376, -242, -376, -376,
1497 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
1498 -376, -166, -376, -232, -220, -218, -233, -231, -246, -244,
1499 -150, -245, -376, -376, -156, -151, -149, -171, -157, -155,
1500 -376, -29, -64, -68, -376, -28, -258, -257, -376, -376,
1501 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
1502 -376, -308, -152, -304, -303, -376, -376, -179, -376, -201,
1503 -376, -214, -376, -227, -376, -240, -376, -164, -376, -376,
1504 -376, -376, -376, -376, -376, -178, -200, -213, -226, -239,
1505 -163, -376, -376, -180, -202, -215, -228, -241, -165, -177,
1506 -199, -212, -225, -238, -162, -376, -376, -376, -376, -69,
1507 -376, -376, -315, -314, -320, -321, -327, -326, -333, -332,
1508 -339, -338, -346, -345, -355, -341, -376, -349, -356, -352,
1509 -351, -359, -358, -306, -376, -173, -376, -376, -376, -376,
1510 -376, -376, -376, -376, -376, -376, -376, -376, -376, -195,
1511 -376, -208, -376, -221, -376, -234, -376, -376, -158, -376,
1512 -376, -53, -44, -376, -376, -31, -310, -72, -70, -35,
1513 -37, -38, -372, -39, -360, -40, -376, -363, -41, -367,
1514 -366, -42, -369, -376, -36, -43, -305, -376, -376, -376,
1515 -376, -376, -376, -309, -175, -174, -376, -196, -376, -209,
1516 -376, -222, -376, -235, -376, -376, -159, -197, -210, -223,
1517 -236, -160, -66, -376, -67, -305, -52, -50, -376, -376,
1518 -376, -44, -71, -65, -376, -370, -376, -49, -376, -292,
1519 -376, -176, -198, -211, -224, -237, -161, -45, -47, -376,
1520 -51, -365, -364, -376, -362, -361, -368, -371, -73, -295,
1521 -376, -376, -291, -46, -376, -75, -376, -294, -293, -74,
1522 -77, -376, -80, -376, -376, -296, -297, -298, -78, -376,
1523 -76, -48, -376, -376, -376, -81, -79, -299, -300, -301,
1524 -302 ]
1525
1526racc_goto_table = [
1527 93, 128, 162, 45, 174, 159, 113, 410, 271, 45,
1528 52, 196, 107, 115, 172, 103, 56, 518, 121, 275,
1529 89, 65, 64, 111, 73, 93, 66, 19, 618, 95,
1530 3, 609, 106, 62, 393, 526, 66, 120, 59, 618,
1531 620, 32, 282, 205, 132, 89, 110, 173, 179, 139,
1532 130, 614, 605, 273, 118, 181, 61, 270, 459, 79,
1533 193, 206, 218, 187, 220, 177, 222, 191, 224, 194,
1534 226, 227, 216, 74, 219, 199, 221, 117, 223, 190,
1535 225, 392, 65, 64, 480, 572, 107, 72, 176, 208,
1536 18, 11, 2, 136, 70, 53, 186, 33, 198, 201,
1537 204, 175, 178, 180, 182, 185, 106, 189, 192, 231,
1538 45, 173, 232, 233, 234, 235, 195, 210, 197, 183,
1539 200, 203, 27, 22, 164, 137, 14, 6, 215, 258,
1540 318, 580, 600, 4, 543, 592, 574, nil, nil, nil,
1541 nil, nil, nil, nil, nil, nil, 255, nil, nil, nil,
1542 nil, nil, nil, nil, nil, 316, nil, nil, nil, nil,
1543 nil, nil, nil, nil, nil, 253, nil, nil, nil, nil,
1544 nil, 379, nil, 381, 249, nil, nil, nil, nil, nil,
1545 nil, nil, 252, nil, 320, nil, nil, 327, nil, nil,
1546 nil, 344, nil, 325, nil, 356, 330, 364, 370, nil,
1547 280, nil, nil, nil, nil, 251, 384, nil, 343, 389,
1548 nil, nil, 355, nil, 363, 369, nil, 373, nil, 377,
1549 nil, nil, nil, 334, nil, 321, nil, 342, nil, nil,
1550 nil, 354, nil, 362, 368, nil, 339, 375, 331, nil,
1551 351, 336, 359, 365, 341, nil, nil, nil, 353, nil,
1552 361, 367, nil, 387, nil, 517, nil, nil, nil, 328,
1553 414, nil, 333, nil, nil, nil, 599, 340, nil, nil,
1554 nil, 352, nil, 360, 366, 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, 475, nil, nil,
1558 nil, nil, nil, 456, nil, nil, 441, nil, nil, nil,
1559 nil, nil, nil, nil, 415, nil, nil, 433, nil, nil,
1560 nil, nil, nil, nil, nil, nil, nil, nil, nil, 463,
1561 nil, nil, 431, nil, nil, nil, nil, nil, nil, nil,
1562 nil, nil, nil, nil, nil, 482, nil, nil, nil, nil,
1563 nil, 473, nil, 429, nil, nil, nil, nil, nil, 498,
1564 nil, nil, nil, nil, nil, nil, nil, nil, nil, 471,
1565 nil, nil, nil, nil, 495, 464, nil, nil, nil, nil,
1566 nil, nil, nil, nil, nil, 469, 507, nil, nil, 516,
1567 506, 493, 486, nil, 487, nil, nil, nil, nil, nil,
1568 nil, 504, nil, nil, nil, nil, 491, 467, nil, nil,
1569 nil, nil, nil, nil, nil, 414, 502, nil, nil, nil,
1570 nil, nil, nil, 515, 255, nil, nil, 489, 555, nil,
1571 nil, nil, nil, nil, 280, nil, nil, 500, nil, nil,
1572 nil, nil, nil, nil, 554, 577, nil, nil, nil, nil,
1573 nil, nil, nil, nil, nil, nil, nil, 516, nil, nil,
1574 nil, 552, nil, nil, 546, nil, nil, nil, nil, nil,
1575 nil, nil, nil, nil, 589, 45, 550, nil, 565, 567,
1576 nil, nil, 563, nil, nil, nil, nil, 343, 355, 363,
1577 369, 515, nil, 603, nil, nil, nil, 548, nil, nil,
1578 593, 595, 280, nil, nil, nil, nil, nil, nil, 414,
1579 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1580 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1581 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1582 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1583 nil, nil, nil, nil, nil, 626 ]
1584
1585racc_goto_check = [
1586 56, 81, 34, 23, 104, 22, 83, 115, 24, 23,
1587 15, 78, 59, 84, 109, 62, 15, 26, 88, 48,
1588 55, 66, 72, 71, 105, 56, 60, 14, 54, 23,
1589 1, 53, 23, 69, 51, 50, 60, 87, 58, 54,
1590 53, 14, 39, 81, 60, 55, 82, 56, 83, 105,
1591 69, 37, 36, 25, 86, 84, 68, 20, 52, 18,
1592 88, 74, 109, 75, 109, 71, 109, 76, 109, 77,
1593 109, 109, 110, 17, 110, 79, 110, 85, 110, 87,
1594 110, 48, 66, 72, 80, 26, 59, 16, 82, 62,
1595 13, 12, 11, 10, 9, 8, 86, 7, 90, 91,
1596 92, 93, 94, 95, 96, 97, 23, 98, 99, 56,
1597 23, 56, 56, 56, 56, 56, 100, 15, 101, 85,
1598 102, 103, 6, 5, 106, 108, 4, 3, 112, 81,
1599 109, 113, 114, 2, 116, 127, 129, nil, nil, nil,
1600 nil, nil, nil, nil, nil, nil, 88, nil, nil, nil,
1601 nil, nil, nil, nil, nil, 81, nil, nil, nil, nil,
1602 nil, nil, nil, nil, nil, 87, nil, nil, nil, nil,
1603 nil, 78, nil, 78, 82, nil, nil, nil, nil, nil,
1604 nil, nil, 86, nil, 83, nil, nil, 83, nil, nil,
1605 nil, 81, nil, 84, nil, 81, 84, 81, 81, nil,
1606 82, nil, nil, nil, nil, 85, 81, nil, 88, 81,
1607 nil, nil, 88, nil, 88, 88, nil, 88, nil, 88,
1608 nil, nil, nil, 87, nil, 82, nil, 87, nil, nil,
1609 nil, 87, nil, 87, 87, nil, 82, 87, 86, nil,
1610 82, 86, 82, 82, 86, nil, nil, nil, 86, nil,
1611 86, 86, nil, 82, nil, 24, nil, nil, nil, 85,
1612 81, nil, 85, nil, nil, nil, 115, 85, nil, nil,
1613 nil, 85, nil, 85, 85, 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, 104, nil, nil,
1617 nil, nil, nil, 81, nil, nil, 88, nil, nil, nil,
1618 nil, nil, nil, nil, 82, nil, nil, 87, nil, nil,
1619 nil, nil, nil, nil, nil, nil, nil, nil, nil, 81,
1620 nil, nil, 86, nil, nil, nil, nil, nil, nil, nil,
1621 nil, nil, nil, nil, nil, 83, nil, nil, nil, nil,
1622 nil, 88, nil, 85, nil, nil, nil, nil, nil, 81,
1623 nil, nil, nil, nil, nil, nil, nil, nil, nil, 87,
1624 nil, nil, nil, nil, 88, 82, nil, nil, nil, nil,
1625 nil, nil, nil, nil, nil, 86, 81, nil, nil, 81,
1626 88, 87, 82, nil, 82, nil, nil, nil, nil, nil,
1627 nil, 87, nil, nil, nil, nil, 86, 85, nil, nil,
1628 nil, nil, nil, nil, nil, 81, 86, nil, nil, nil,
1629 nil, nil, nil, 23, 88, nil, nil, 85, 81, nil,
1630 nil, nil, nil, nil, 82, nil, nil, 85, nil, nil,
1631 nil, nil, nil, nil, 88, 22, nil, nil, nil, nil,
1632 nil, nil, nil, nil, nil, nil, nil, 81, nil, nil,
1633 nil, 87, nil, nil, 82, nil, nil, nil, nil, nil,
1634 nil, nil, nil, nil, 22, 23, 86, nil, 23, 23,
1635 nil, nil, 15, nil, nil, nil, nil, 88, 88, 88,
1636 88, 23, nil, 34, nil, nil, nil, 85, nil, nil,
1637 81, 81, 82, nil, nil, nil, nil, nil, nil, 81,
1638 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1639 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1640 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1641 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1642 nil, nil, nil, nil, nil, 56 ]
1643
1644racc_goto_pointer = [
1645 nil, 30, 133, 127, 120, 109, 100, 70, 62, 41,
1646 23, 92, 86, 78, 15, -18, 33, 19, 5, nil,
1647 -154, nil, -81, -25, -203, -158, -441, nil, nil, nil,
1648 nil, nil, nil, nil, -86, nil, -546, -554, nil, -172,
1649 nil, nil, nil, nil, nil, nil, nil, nil, -192, nil,
1650 -423, -240, -335, -573, -581, -34, -54, nil, -2, -45,
1651 -23, nil, -42, nil, nil, nil, -24, nil, 12, -11,
1652 nil, -37, -23, nil, -45, -39, -35, -33, -91, -27,
1653 -324, -59, -14, -54, -47, 17, -6, -23, -42, nil,
1654 -4, -3, -2, -1, 0, 1, 2, 3, 5, 6,
1655 14, 16, 18, 19, -98, -30, 32, nil, 49, -87,
1656 -76, nil, -17, -407, -446, -312, -350, nil, nil, nil,
1657 nil, nil, nil, nil, nil, nil, nil, -434, nil, -396 ]
1658
1659racc_goto_default = [
1660 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1661 nil, nil, nil, nil, nil, nil, nil, 534, nil, 82,
1662 nil, 86, nil, 140, nil, nil, nil, 519, 520, 521,
1663 523, 525, 528, 531, 90, 533, nil, nil, 536, 511,
1664 284, 287, 290, 294, 298, 301, 306, 311, nil, 269,
1665 nil, nil, nil, nil, 610, 611, 612, 47, 49, 51,
1666 36, 38, nil, 105, 41, 42, 43, 44, nil, nil,
1667 63, nil, 37, 40, 104, nil, nil, nil, nil, nil,
1668 125, 100, 71, nil, nil, 285, 288, 292, 295, 122,
1669 305, 310, 315, nil, nil, nil, nil, nil, nil, 297,
1670 300, 304, 309, 313, 278, nil, 77, 80, 83, 85,
1671 87, 91, 96, nil, nil, nil, 411, 283, 286, 289,
1672 293, 296, 299, 303, 308, 312, 524, 527, 530, nil ]
1673
1674racc_token_table = {
1675 false => 0,
1676 Object.new => 1,
1677 :UMINUS => 2,
1678 :UPLUS => 3,
1679 "*" => 4,
1680 "/" => 5,
1681 "+" => 6,
1682 "-" => 7,
1683 :SYM_EQ => 8,
1684 :SYM_NE => 9,
1685 :SYM_LT => 10,
1686 :SYM_START_DBLOCK => 11,
1687 :SYM_START_CBLOCK => 12,
1688 :SYM_GT => 13,
1689 :SYM_END_CBLOCK => 14,
1690 :SYM_END_DBLOCK => 15,
1691 :SYM_LE => 16,
1692 :SYM_GE => 17,
1693 :EOF => 18,
1694 :V_ARCHETYPE_ID => 19,
1695 :SYM_ARCHETYPE => 20,
1696 :Left_parenthesis_code => 21,
1697 :Right_parenthesis_code => 22,
1698 :Semicolon_code => 23,
1699 :SYM_ADL_VERSION => 24,
1700 :V_VERSION_STRING => 25,
1701 :SYM_IS_CONTROLLED => 26,
1702 :SYM_SPECIALIZE => 27,
1703 :SYM_CONCEPT => 28,
1704 :V_LOCAL_TERM_CODE_REF => 29,
1705 :SYM_LANGUAGE => 30,
1706 :SYM_DESCRIPTION => 31,
1707 :SYM_DEFINITION => 32,
1708 :SYM_MATCHES => 33,
1709 :START_REGEXP_BLOCK => 34,
1710 :REGEXP_BODY => 35,
1711 :END_REGEXP_BLOCK => 36,
1712 :ERR_C_DOMAIN_TYPE => 37,
1713 :START_V_C_DOMAIN_TYPE_BLOCK => 38,
1714 :END_V_C_DOMAIN_TYPE_BLOCK => 39,
1715 :SYM_USE_NODE => 40,
1716 :SYM_ALLOW_ARCHETYPE => 41,
1717 :Star_code => 42,
1718 :V_ATTRIBUTE_IDENTIFIER => 43,
1719 :SYM_INCLUDE => 44,
1720 :SYM_EXCLUDE => 45,
1721 ":" => 46,
1722 :SYM_INVARIANT => 47,
1723 :V_ASSERTION_TEXT => 48,
1724 :SYM_ONTOLOGY => 49,
1725 :Left_bracket_code => 50,
1726 :Right_bracket_code => 51,
1727 :V_TYPE_IDENTIFIER => 52,
1728 :V_GENERIC_TYPE_IDENTIFIER => 53,
1729 :V_STRING => 54,
1730 :Comma_code => 55,
1731 :SYM_LIST_CONTINUE => 56,
1732 :V_INTEGER => 57,
1733 :Plus_code => 58,
1734 :Minus_code => 59,
1735 :SYM_INTERVAL_DELIM => 60,
1736 :SYM_ELLIPSIS => 61,
1737 :V_REAL => 62,
1738 :SYM_TRUE => 63,
1739 :SYM_FALSE => 64,
1740 :V_CHARACTER => 65,
1741 :V_ISO8601_EXTENDED_DATE => 66,
1742 :V_ISO8601_EXTENDED_TIME => 67,
1743 :V_ISO8601_EXTENDED_DATE_TIME => 68,
1744 :V_ISO8601_DURATION => 69,
1745 :V_QUALIFIED_TERM_CODE_REF => 70,
1746 :V_URI => 71,
1747 :SYM_EXISTS => 72,
1748 :SYM_NOT => 73,
1749 "=" => 74,
1750 :SYM_AND => 75,
1751 :SYM_OR => 76,
1752 :SYM_XOR => 77,
1753 :SYM_IMPLIES => 78,
1754 :Slash_code => 79,
1755 "^" => 80,
1756 :SYM_EXISTENCE => 81,
1757 :SYM_CARDINALITY => 82,
1758 :SYM_ORDERED => 83,
1759 :SYM_UNORDERED => 84,
1760 :SYM_UNIQUE => 85,
1761 :SYM_OCCURRENCES => 86,
1762 :V_ISO8601_DATE_CONSTRAINT_PATTERN => 87,
1763 :V_ISO8601_TIME_CONSTRAINT_PATTERN => 88,
1764 :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN => 89,
1765 :START_TERM_CODE_CONSTRAINT => 90,
1766 :END_TERM_CODE_CONSTRAINT => 91,
1767 :TERM_CODE => 92,
1768 :V_ISO8601_DURATION_CONSTRAINT_PATTERN => 93 }
1769
1770racc_use_result_var = true
1771
1772racc_nt_base = 94
1773
1774Racc_arg = [
1775 racc_action_table,
1776 racc_action_check,
1777 racc_action_default,
1778 racc_action_pointer,
1779 racc_goto_table,
1780 racc_goto_check,
1781 racc_goto_default,
1782 racc_goto_pointer,
1783 racc_nt_base,
1784 racc_reduce_table,
1785 racc_token_table,
1786 racc_shift_n,
1787 racc_reduce_n,
1788 racc_use_result_var ]
1789
1790Racc_token_to_s_table = [
1791'$end',
1792'error',
1793'UMINUS',
1794'UPLUS',
1795'"*"',
1796'"/"',
1797'"+"',
1798'"-"',
1799'SYM_EQ',
1800'SYM_NE',
1801'SYM_LT',
1802'SYM_START_DBLOCK',
1803'SYM_START_CBLOCK',
1804'SYM_GT',
1805'SYM_END_CBLOCK',
1806'SYM_END_DBLOCK',
1807'SYM_LE',
1808'SYM_GE',
1809'EOF',
1810'V_ARCHETYPE_ID',
1811'SYM_ARCHETYPE',
1812'Left_parenthesis_code',
1813'Right_parenthesis_code',
1814'Semicolon_code',
1815'SYM_ADL_VERSION',
1816'V_VERSION_STRING',
1817'SYM_IS_CONTROLLED',
1818'SYM_SPECIALIZE',
1819'SYM_CONCEPT',
1820'V_LOCAL_TERM_CODE_REF',
1821'SYM_LANGUAGE',
1822'SYM_DESCRIPTION',
1823'SYM_DEFINITION',
1824'SYM_MATCHES',
1825'START_REGEXP_BLOCK',
1826'REGEXP_BODY',
1827'END_REGEXP_BLOCK',
1828'ERR_C_DOMAIN_TYPE',
1829'START_V_C_DOMAIN_TYPE_BLOCK',
1830'END_V_C_DOMAIN_TYPE_BLOCK',
1831'SYM_USE_NODE',
1832'SYM_ALLOW_ARCHETYPE',
1833'Star_code',
1834'V_ATTRIBUTE_IDENTIFIER',
1835'SYM_INCLUDE',
1836'SYM_EXCLUDE',
1837'":"',
1838'SYM_INVARIANT',
1839'V_ASSERTION_TEXT',
1840'SYM_ONTOLOGY',
1841'Left_bracket_code',
1842'Right_bracket_code',
1843'V_TYPE_IDENTIFIER',
1844'V_GENERIC_TYPE_IDENTIFIER',
1845'V_STRING',
1846'Comma_code',
1847'SYM_LIST_CONTINUE',
1848'V_INTEGER',
1849'Plus_code',
1850'Minus_code',
1851'SYM_INTERVAL_DELIM',
1852'SYM_ELLIPSIS',
1853'V_REAL',
1854'SYM_TRUE',
1855'SYM_FALSE',
1856'V_CHARACTER',
1857'V_ISO8601_EXTENDED_DATE',
1858'V_ISO8601_EXTENDED_TIME',
1859'V_ISO8601_EXTENDED_DATE_TIME',
1860'V_ISO8601_DURATION',
1861'V_QUALIFIED_TERM_CODE_REF',
1862'V_URI',
1863'SYM_EXISTS',
1864'SYM_NOT',
1865'"="',
1866'SYM_AND',
1867'SYM_OR',
1868'SYM_XOR',
1869'SYM_IMPLIES',
1870'Slash_code',
1871'"^"',
1872'SYM_EXISTENCE',
1873'SYM_CARDINALITY',
1874'SYM_ORDERED',
1875'SYM_UNORDERED',
1876'SYM_UNIQUE',
1877'SYM_OCCURRENCES',
1878'V_ISO8601_DATE_CONSTRAINT_PATTERN',
1879'V_ISO8601_TIME_CONSTRAINT_PATTERN',
1880'V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN',
1881'START_TERM_CODE_CONSTRAINT',
1882'END_TERM_CODE_CONSTRAINT',
1883'TERM_CODE',
1884'V_ISO8601_DURATION_CONSTRAINT_PATTERN',
1885'$start',
1886'input',
1887'archetype',
1888'arch_identification',
1889'arch_specialisation',
1890'arch_concept',
1891'arch_language',
1892'arch_description',
1893'arch_definition',
1894'arch_invariant',
1895'arch_ontology',
1896'arch_head',
1897'arch_meta_data',
1898'arch_meta_data_items',
1899'arch_meta_data_item',
1900'dadl_section',
1901'cadl_section',
1902'c_complex_object',
1903'assertions',
1904'c_complex_object_head',
1905'c_complex_object_body',
1906'c_complex_object_id',
1907'c_occurrences',
1908'type_identifier',
1909'c_any',
1910'c_attributes',
1911'c_object',
1912'v_c_domain_type',
1913'archetype_internal_ref',
1914'archetype_slot',
1915'constraint_ref',
1916'c_code_phrase',
1917'c_ordinal',
1918'c_primitive_object',
1919'absolute_path',
1920'c_archetype_slot_head',
1921'c_includes',
1922'c_excludes',
1923'c_archetype_slot_id',
1924'c_primitive',
1925'c_integer',
1926'c_real',
1927'c_date',
1928'c_time',
1929'c_date_time',
1930'c_duration',
1931'c_string',
1932'c_boolean',
1933'c_attribute',
1934'c_attr_head',
1935'c_attr_values',
1936'c_existence',
1937'c_cardinality',
1938'invariants',
1939'invariant',
1940'any_identifier',
1941'boolean_expression',
1942'dadl_input',
1943'attr_vals',
1944'complex_object_block',
1945'attr_val',
1946'attr_id',
1947'object_block',
1948'primitive_object_block',
1949'single_attr_object_block',
1950'multiple_attr_object_block',
1951'untyped_multiple_attr_object_block',
1952'multiple_attr_object_block_head',
1953'keyed_objects',
1954'keyed_object',
1955'object_key',
1956'simple_value',
1957'untyped_single_attr_object_block',
1958'single_attr_object_complex_head',
1959'untyped_primitive_object_block',
1960'primitive_object_value',
1961'simple_list_value',
1962'simple_interval_value',
1963'term_code',
1964'term_code_list_value',
1965'string_value',
1966'integer_value',
1967'real_value',
1968'boolean_value',
1969'character_value',
1970'date_value',
1971'time_value',
1972'date_time_value',
1973'duration_value',
1974'uri_value',
1975'string_list_value',
1976'integer_list_value',
1977'real_list_value',
1978'boolean_list_value',
1979'character_list_value',
1980'date_list_value',
1981'time_list_value',
1982'date_time_list_value',
1983'duration_list_value',
1984'integer_interval_value',
1985'real_interval_value',
1986'date_interval_value',
1987'time_interval_value',
1988'date_time_interval_value',
1989'duration_interval_value',
1990'assertion',
1991'boolean_leaf',
1992'boolean_node',
1993'relative_path',
1994'arithmetic_expression',
1995'arithmetic_leaf',
1996'arithmetic_node',
1997'path_segment',
1998'existence_spec',
1999'cardinality_spec',
2000'occurrence_spec',
2001'cardinality_limit_value',
2002'c_integer_spec',
2003'c_real_spec',
2004'c_date_constraint',
2005'c_time_constraint',
2006'c_date_time_constraint',
2007'c_duration_constraint',
2008'duration_pattern',
2009'c_string_spec',
2010'c_boolean_spec',
2011'c_ordinal_spec',
2012'ordinal',
2013'term_code_constraint_section',
2014'term_code_body']
2015
2016Racc_debug_parser = false
2017
2018##### racc system variables end #####
2019
2020 # reduce 0 omitted
2021
2022module_eval <<'.,.,', 'lib/parser.y', 32
2023 def _reduce_1( val, _values, result )
2024 result = val[0]
2025 result
2026 end
2027.,.,
2028
2029 # reduce 2 omitted
2030
2031module_eval <<'.,.,', 'lib/parser.y', 46
2032 def _reduce_3( val, _values, result )
2033 assert_at(__FILE__,__LINE__) do
2034 val[4].instance_of?(OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION) and val[5].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT) and val[7].instance_of?(OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY)
2035 end
2036
2037 result = OpenEHR::AM::Archetype::ARCHETYPE.new(
2038 :description => val[4],
2039 :definition => val[5],
2040 :ontology => val[7]
2041 )
2042 result
2043 end
2044.,.,
2045
2046module_eval <<'.,.,', 'lib/parser.y', 52
2047 def _reduce_4( val, _values, result )
2048 result = {:arch_head => val[0], :archetype_id => val[1] }
2049 result
2050 end
2051.,.,
2052
2053module_eval <<'.,.,', 'lib/parser.y', 56
2054 def _reduce_5( val, _values, result )
2055 raise
2056 result
2057 end
2058.,.,
2059
2060module_eval <<'.,.,', 'lib/parser.y', 61
2061 def _reduce_6( val, _values, result )
2062 result = {:arch_meta_data => nil }
2063 result
2064 end
2065.,.,
2066
2067module_eval <<'.,.,', 'lib/parser.y', 65
2068 def _reduce_7( val, _values, result )
2069 result = {:arch_meta_data => val[1] }
2070 result
2071 end
2072.,.,
2073
2074module_eval <<'.,.,', 'lib/parser.y', 70
2075 def _reduce_8( val, _values, result )
2076 result = {:arch_meta_data_items => val[1] }
2077 result
2078 end
2079.,.,
2080
2081module_eval <<'.,.,', 'lib/parser.y', 75
2082 def _reduce_9( val, _values, result )
2083 result = Array[val[0]]
2084 result
2085 end
2086.,.,
2087
2088module_eval <<'.,.,', 'lib/parser.y', 79
2089 def _reduce_10( val, _values, result )
2090 result = (val[0] << val[2])
2091 result
2092 end
2093.,.,
2094
2095module_eval <<'.,.,', 'lib/parser.y', 85
2096 def _reduce_11( val, _values, result )
2097 result = {:adl_version => val[2] }
2098 result
2099 end
2100.,.,
2101
2102module_eval <<'.,.,', 'lib/parser.y', 89
2103 def _reduce_12( val, _values, result )
2104 result = val[0]
2105 result
2106 end
2107.,.,
2108
2109 # reduce 13 omitted
2110
2111 # reduce 14 omitted
2112
2113 # reduce 15 omitted
2114
2115 # reduce 16 omitted
2116
2117 # reduce 17 omitted
2118
2119 # reduce 18 omitted
2120
2121module_eval <<'.,.,', 'lib/parser.y', 108
2122 def _reduce_19( val, _values, result )
2123 result = {:language => val[1]}
2124 result
2125 end
2126.,.,
2127
2128 # reduce 20 omitted
2129
2130 # reduce 21 omitted
2131
2132module_eval <<'.,.,', 'lib/parser.y', 119
2133 def _reduce_22( val, _values, result )
2134 result = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new(:details => val[1])
2135 result
2136 end
2137.,.,
2138
2139 # reduce 23 omitted
2140
2141module_eval <<'.,.,', 'lib/parser.y', 127
2142 def _reduce_24( val, _values, result )
2143 result = val[1]
2144 result
2145 end
2146.,.,
2147
2148 # reduce 25 omitted
2149
2150module_eval <<'.,.,', 'lib/parser.y', 137
2151 def _reduce_26( val, _values, result )
2152 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT)}
2153 @@log.info("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0]} at #{@filename}:#{@lineno}")
2154 result = val[0]
2155 result
2156 end
2157.,.,
2158
2159module_eval <<'.,.,', 'lib/parser.y', 141
2160 def _reduce_27( val, _values, result )
2161 result = val[0]
2162 result
2163 end
2164.,.,
2165
2166module_eval <<'.,.,', 'lib/parser.y', 152
2167 def _reduce_28( val, _values, result )
2168 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object|
2169 c_complex_object.node_id = val[0][:c_complex_object_id][:local_term_code_ref]
2170 c_complex_object.rm_type_name = val[0][:c_complex_object_id][:type_identifier]
2171 c_complex_object.occurrences = val[0][:c_occurrences]
2172 end
2173 result
2174 end
2175.,.,
2176
2177module_eval <<'.,.,', 'lib/parser.y', 160
2178 def _reduce_29( val, _values, result )
2179 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object|
2180 c_complex_object.node_id = val[0][:c_complex_object_id][:local_term_code_ref]
2181 c_complex_object.rm_type_name = val[0][:c_complex_object_id][:type_identifier]
2182 c_complex_object.occurrences = val[0][:c_occurrences]
2183 end
2184 result
2185 end
2186.,.,
2187
2188module_eval <<'.,.,', 'lib/parser.y', 167
2189 def _reduce_30( val, _values, result )
2190 result = {:c_complex_object_id => val[0], :c_occurrences => val[1]}
2191 result
2192 end
2193.,.,
2194
2195module_eval <<'.,.,', 'lib/parser.y', 172
2196 def _reduce_31( val, _values, result )
2197 result = {:type_identifier => val[0]}
2198 result
2199 end
2200.,.,
2201
2202module_eval <<'.,.,', 'lib/parser.y', 176
2203 def _reduce_32( val, _values, result )
2204 result = {:type_identifier => val[0], :local_term_code_ref => val[1]}
2205 result
2206 end
2207.,.,
2208
2209 # reduce 33 omitted
2210
2211module_eval <<'.,.,', 'lib/parser.y', 182
2212 def _reduce_34( val, _values, result )
2213 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => val[0])
2214 result
2215 end
2216.,.,
2217
2218module_eval <<'.,.,', 'lib/parser.y', 190
2219 def _reduce_35( val, _values, result )
2220 result = val[0]
2221 result
2222 end
2223.,.,
2224
2225module_eval <<'.,.,', 'lib/parser.y', 194
2226 def _reduce_36( val, _values, result )
2227 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new
2228 result
2229 end
2230.,.,
2231
2232module_eval <<'.,.,', 'lib/parser.y', 198
2233 def _reduce_37( val, _values, result )
2234 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new
2235 result
2236 end
2237.,.,
2238
2239module_eval <<'.,.,', 'lib/parser.y', 202
2240 def _reduce_38( val, _values, result )
2241 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new
2242 result
2243 end
2244.,.,
2245
2246module_eval <<'.,.,', 'lib/parser.y', 206
2247 def _reduce_39( val, _values, result )
2248 result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new
2249 result
2250 end
2251.,.,
2252
2253module_eval <<'.,.,', 'lib/parser.y', 210
2254 def _reduce_40( val, _values, result )
2255 result = val[0]
2256 result
2257 end
2258.,.,
2259
2260module_eval <<'.,.,', 'lib/parser.y', 214
2261 def _reduce_41( val, _values, result )
2262 result = val[0]
2263 result
2264 end
2265.,.,
2266
2267module_eval <<'.,.,', 'lib/parser.y', 218
2268 def _reduce_42( val, _values, result )
2269 result = val[0]
2270 result
2271 end
2272.,.,
2273
2274 # reduce 43 omitted
2275
2276 # reduce 44 omitted
2277
2278module_eval <<'.,.,', 'lib/parser.y', 233
2279 def _reduce_45( val, _values, result )
2280 result = val[1]
2281 result
2282 end
2283.,.,
2284
2285 # reduce 46 omitted
2286
2287 # reduce 47 omitted
2288
2289 # reduce 48 omitted
2290
2291 # reduce 49 omitted
2292
2293 # reduce 50 omitted
2294
2295 # reduce 51 omitted
2296
2297 # reduce 52 omitted
2298
2299module_eval <<'.,.,', 'lib/parser.y', 253
2300 def _reduce_53( val, _values, result )
2301 assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE)}
2302 result = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new(:item => val[0])
2303 result
2304 end
2305.,.,
2306
2307module_eval <<'.,.,', 'lib/parser.y', 259
2308 def _reduce_54( val, _values, result )
2309 @@log.info("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}")
2310 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new
2311 result
2312 end
2313.,.,
2314
2315module_eval <<'.,.,', 'lib/parser.y', 264
2316 def _reduce_55( val, _values, result )
2317 @@log.info("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}")
2318 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL.new
2319 result
2320 end
2321.,.,
2322
2323module_eval <<'.,.,', 'lib/parser.y', 269
2324 def _reduce_56( val, _values, result )
2325 @@log.info("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}")
2326 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE.new
2327 result
2328 end
2329.,.,
2330
2331module_eval <<'.,.,', 'lib/parser.y', 274
2332 def _reduce_57( val, _values, result )
2333 @@log.info("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}")
2334 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME.new
2335 result
2336 end
2337.,.,
2338
2339module_eval <<'.,.,', 'lib/parser.y', 279
2340 def _reduce_58( val, _values, result )
2341 @@log.info("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}")
2342 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new
2343 result
2344 end
2345.,.,
2346
2347module_eval <<'.,.,', 'lib/parser.y', 284
2348 def _reduce_59( val, _values, result )
2349 @@log.info("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}")
2350 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new
2351 result
2352 end
2353.,.,
2354
2355module_eval <<'.,.,', 'lib/parser.y', 289
2356 def _reduce_60( val, _values, result )
2357 @@log.info("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}")
2358 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING.new
2359 result
2360 end
2361.,.,
2362
2363module_eval <<'.,.,', 'lib/parser.y', 295
2364 def _reduce_61( val, _values, result )
2365 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN)}
2366 @@log.info("#{__FILE__}:#{__LINE__}: c_boolean = #{val[0]} at #{@filename}:#{@lineno}")
2367 result = val[0]
2368 result
2369 end
2370.,.,
2371
2372 # reduce 62 omitted
2373
2374module_eval <<'.,.,', 'lib/parser.y', 305
2375 def _reduce_63( val, _values, result )
2376 result = [val[0]]
2377 result
2378 end
2379.,.,
2380
2381module_eval <<'.,.,', 'lib/parser.y', 309
2382 def _reduce_64( val, _values, result )
2383 result = (val[0] << val[1])
2384 result
2385 end
2386.,.,
2387
2388module_eval <<'.,.,', 'lib/parser.y', 318
2389 def _reduce_65( val, _values, result )
2390 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
2391 c_attribute = val[0]
2392 c_attribute.children = val[3]
2393 result = c_attribute
2394 result
2395 end
2396.,.,
2397
2398module_eval <<'.,.,', 'lib/parser.y', 323
2399 def _reduce_66( val, _values, result )
2400 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
2401 result = val[0]
2402 result
2403 end
2404.,.,
2405
2406module_eval <<'.,.,', 'lib/parser.y', 328
2407 def _reduce_67( val, _values, result )
2408 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
2409 result = val[0]
2410 result
2411 end
2412.,.,
2413
2414module_eval <<'.,.,', 'lib/parser.y', 339
2415 def _reduce_68( val, _values, result )
2416 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}")
2417 result = OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new(
2418 :rm_attribute_name => val[0],
2419 :existence => val[1]
2420 )
2421 result
2422 end
2423.,.,
2424
2425module_eval <<'.,.,', 'lib/parser.y', 349
2426 def _reduce_69( val, _values, result )
2427 assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY) }
2428 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER: #{val[0]}, c_existence = #{val[1]}, c_cardinality = #{val[2]} at #{@filename}")
2429 result = OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE.new(
2430 :rm_attribute_name => val[0],
2431 :existence => val[1],
2432 :cardinality => val[2]
2433 )
2434 result
2435 end
2436.,.,
2437
2438module_eval <<'.,.,', 'lib/parser.y', 354
2439 def _reduce_70( val, _values, result )
2440 result = Array[val[0]]
2441 result
2442 end
2443.,.,
2444
2445module_eval <<'.,.,', 'lib/parser.y', 358
2446 def _reduce_71( val, _values, result )
2447 result = (val[0] << val[1])
2448 result
2449 end
2450.,.,
2451
2452module_eval <<'.,.,', 'lib/parser.y', 362
2453 def _reduce_72( val, _values, result )
2454 result = Array[val[0]]
2455 result
2456 end
2457.,.,
2458
2459 # reduce 73 omitted
2460
2461 # reduce 74 omitted
2462
2463 # reduce 75 omitted
2464
2465 # reduce 76 omitted
2466
2467 # reduce 77 omitted
2468
2469 # reduce 78 omitted
2470
2471 # reduce 79 omitted
2472
2473 # reduce 80 omitted
2474
2475 # reduce 81 omitted
2476
2477 # reduce 82 omitted
2478
2479 # reduce 83 omitted
2480
2481 # reduce 84 omitted
2482
2483module_eval <<'.,.,', 'lib/parser.y', 393
2484 def _reduce_85( val, _values, result )
2485 dadl_sections = val[1]
2486 result = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new
2487 result
2488 end
2489.,.,
2490
2491 # reduce 86 omitted
2492
2493 # reduce 87 omitted
2494
2495 # reduce 88 omitted
2496
2497 # reduce 89 omitted
2498
2499module_eval <<'.,.,', 'lib/parser.y', 407
2500 def _reduce_90( val, _values, result )
2501 result = Array[val[0]]
2502 result
2503 end
2504.,.,
2505
2506module_eval <<'.,.,', 'lib/parser.y', 411
2507 def _reduce_91( val, _values, result )
2508 result = (val[0] << val[1])
2509 result
2510 end
2511.,.,
2512
2513module_eval <<'.,.,', 'lib/parser.y', 415
2514 def _reduce_92( val, _values, result )
2515 result = (val[0] << val[2])
2516 result
2517 end
2518.,.,
2519
2520module_eval <<'.,.,', 'lib/parser.y', 421
2521 def _reduce_93( val, _values, result )
2522 @@log.info("#{__FILE__}:#{__LINE__}: attr_id = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}")
2523 result = {:attr_id => val[0], :object_block => val[2]}
2524 result
2525 end
2526.,.,
2527
2528module_eval <<'.,.,', 'lib/parser.y', 427
2529 def _reduce_94( val, _values, result )
2530 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}")
2531 result = val[0]
2532 result
2533 end
2534.,.,
2535
2536 # reduce 95 omitted
2537
2538module_eval <<'.,.,', 'lib/parser.y', 433
2539 def _reduce_96( val, _values, result )
2540 result = val[0]
2541 result
2542 end
2543.,.,
2544
2545module_eval <<'.,.,', 'lib/parser.y', 437
2546 def _reduce_97( val, _values, result )
2547 result = val[0]
2548 result
2549 end
2550.,.,
2551
2552module_eval <<'.,.,', 'lib/parser.y', 442
2553 def _reduce_98( val, _values, result )
2554 result = val[0]
2555 result
2556 end
2557.,.,
2558
2559module_eval <<'.,.,', 'lib/parser.y', 446
2560 def _reduce_99( val, _values, result )
2561 result = val[0]
2562 result
2563 end
2564.,.,
2565
2566module_eval <<'.,.,', 'lib/parser.y', 451
2567 def _reduce_100( val, _values, result )
2568 result = {:untyped_multiple_attr_object_block => val[0]}
2569 result
2570 end
2571.,.,
2572
2573module_eval <<'.,.,', 'lib/parser.y', 455
2574 def _reduce_101( val, _values, result )
2575 result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]}
2576 result
2577 end
2578.,.,
2579
2580module_eval <<'.,.,', 'lib/parser.y', 460
2581 def _reduce_102( val, _values, result )
2582 result = {:multiple_attr_object_block_head => val[0], :keyed_objects => val[1]}
2583 result
2584 end
2585.,.,
2586
2587module_eval <<'.,.,', 'lib/parser.y', 466
2588 def _reduce_103( val, _values, result )
2589 @@log.info("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}")
2590 result = val[0]
2591 result
2592 end
2593.,.,
2594
2595module_eval <<'.,.,', 'lib/parser.y', 471
2596 def _reduce_104( val, _values, result )
2597 result = Array[val[0]]
2598 result
2599 end
2600.,.,
2601
2602module_eval <<'.,.,', 'lib/parser.y', 475
2603 def _reduce_105( val, _values, result )
2604 result = (val[0] << val[1])
2605 result
2606 end
2607.,.,
2608
2609module_eval <<'.,.,', 'lib/parser.y', 481
2610 def _reduce_106( val, _values, result )
2611 @@log.info("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}")
2612 result = {:object_key => val[0], :object_block => val[1]}
2613 result
2614 end
2615.,.,
2616
2617module_eval <<'.,.,', 'lib/parser.y', 487
2618 def _reduce_107( val, _values, result )
2619 @@log.info("object_key: [#{val[1]}] at #{@filename}:#{@lineno}")
2620 result = val[1]
2621 result
2622 end
2623.,.,
2624
2625module_eval <<'.,.,', 'lib/parser.y', 492
2626 def _reduce_108( val, _values, result )
2627 result = {:untyped_single_attr_object_block => val[0]}
2628 result
2629 end
2630.,.,
2631
2632module_eval <<'.,.,', 'lib/parser.y', 496
2633 def _reduce_109( val, _values, result )
2634 result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]}
2635 result
2636 end
2637.,.,
2638
2639module_eval <<'.,.,', 'lib/parser.y', 502
2640 def _reduce_110( val, _values, result )
2641 @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}")
2642 result = {:single_attr_object_complex_head => val[0]}
2643 result
2644 end
2645.,.,
2646
2647module_eval <<'.,.,', 'lib/parser.y', 507
2648 def _reduce_111( val, _values, result )
2649 @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]}, attr_vals = #{val[1]} at #{@filename}:#{@lineno}")
2650 result = {:single_attr_object_complex_head => val[0], :attr_vals => val[1]}
2651 result
2652 end
2653.,.,
2654
2655 # reduce 112 omitted
2656
2657module_eval <<'.,.,', 'lib/parser.y', 513
2658 def _reduce_113( val, _values, result )
2659 @@log.info("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}")
2660 result = {:untyped_primitive_object_block => val[0]}
2661 result
2662 end
2663.,.,
2664
2665module_eval <<'.,.,', 'lib/parser.y', 518
2666 def _reduce_114( val, _values, result )
2667 @@log.info("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}")
2668 result = {:type_identifier => val[0], :untyped_primitive_object_block => val[1]}
2669 result
2670 end
2671.,.,
2672
2673module_eval <<'.,.,', 'lib/parser.y', 523
2674 def _reduce_115( val, _values, result )
2675 @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}")
2676 result = val[1]
2677 result
2678 end
2679.,.,
2680
2681module_eval <<'.,.,', 'lib/parser.y', 527
2682 def _reduce_116( val, _values, result )
2683 result = val[0]
2684 result
2685 end
2686.,.,
2687
2688module_eval <<'.,.,', 'lib/parser.y', 531
2689 def _reduce_117( val, _values, result )
2690 result = val[0]
2691 result
2692 end
2693.,.,
2694
2695module_eval <<'.,.,', 'lib/parser.y', 535
2696 def _reduce_118( val, _values, result )
2697 result = val[0]
2698 result
2699 end
2700.,.,
2701
2702module_eval <<'.,.,', 'lib/parser.y', 539
2703 def _reduce_119( val, _values, result )
2704 result = val[0]
2705 result
2706 end
2707.,.,
2708
2709module_eval <<'.,.,', 'lib/parser.y', 543
2710 def _reduce_120( val, _values, result )
2711 result = val[0]
2712 result
2713 end
2714.,.,
2715
2716module_eval <<'.,.,', 'lib/parser.y', 548
2717 def _reduce_121( val, _values, result )
2718 @@log.info("string_value: #{val[0]} at #{@filename}:#{@lineno}")
2719 result = val[0]
2720 result
2721 end
2722.,.,
2723
2724module_eval <<'.,.,', 'lib/parser.y', 553
2725 def _reduce_122( val, _values, result )
2726 @@log.info("integer_value: #{val[0]} at #{@filename}:#{@lineno}")
2727 result = val[0]
2728 result
2729 end
2730.,.,
2731
2732module_eval <<'.,.,', 'lib/parser.y', 558
2733 def _reduce_123( val, _values, result )
2734 @@log.info("real_value: #{val[0]} at #{@filename}:#{@lineno}")
2735 result = val[0]
2736 result
2737 end
2738.,.,
2739
2740module_eval <<'.,.,', 'lib/parser.y', 563
2741 def _reduce_124( val, _values, result )
2742 @@log.info("boolean_value: #{val[0]} at #{@filename}:#{@lineno}")
2743 result = val[0]
2744 result
2745 end
2746.,.,
2747
2748module_eval <<'.,.,', 'lib/parser.y', 568
2749 def _reduce_125( val, _values, result )
2750 @@log.info("character_value: #{val[0]} at #{@filename}:#{@lineno}")
2751 result = val[0]
2752 result
2753 end
2754.,.,
2755
2756module_eval <<'.,.,', 'lib/parser.y', 573
2757 def _reduce_126( val, _values, result )
2758 @@log.info("date_value: #{val[0]} at #{@filename}:#{@lineno}")
2759 result = val[0]
2760 result
2761 end
2762.,.,
2763
2764module_eval <<'.,.,', 'lib/parser.y', 578
2765 def _reduce_127( val, _values, result )
2766 @@log.info("time_value: #{val[0]} at #{@filename}:#{@lineno}")
2767 result = val[0]
2768 result
2769 end
2770.,.,
2771
2772module_eval <<'.,.,', 'lib/parser.y', 583
2773 def _reduce_128( val, _values, result )
2774 @@log.info("date_time_value: #{val[0]} at #{@filename}:#{@lineno}")
2775 result = val[0]
2776 result
2777 end
2778.,.,
2779
2780module_eval <<'.,.,', 'lib/parser.y', 588
2781 def _reduce_129( val, _values, result )
2782 @@log.info("duration_value: #{val[0]} at #{@filename}:#{@lineno}")
2783 result = val[0]
2784 result
2785 end
2786.,.,
2787
2788module_eval <<'.,.,', 'lib/parser.y', 593
2789 def _reduce_130( val, _values, result )
2790 @@log.info("uri_value: #{val[0]} at #{@filename}:#{@lineno}")
2791 result = val[0]
2792 result
2793 end
2794.,.,
2795
2796 # reduce 131 omitted
2797
2798 # reduce 132 omitted
2799
2800 # reduce 133 omitted
2801
2802 # reduce 134 omitted
2803
2804 # reduce 135 omitted
2805
2806 # reduce 136 omitted
2807
2808 # reduce 137 omitted
2809
2810 # reduce 138 omitted
2811
2812 # reduce 139 omitted
2813
2814 # reduce 140 omitted
2815
2816 # reduce 141 omitted
2817
2818 # reduce 142 omitted
2819
2820 # reduce 143 omitted
2821
2822 # reduce 144 omitted
2823
2824 # reduce 145 omitted
2825
2826module_eval <<'.,.,', 'lib/parser.y', 616
2827 def _reduce_146( val, _values, result )
2828 @@log.info("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
2829 result = val[0]
2830 result
2831 end
2832.,.,
2833
2834module_eval <<'.,.,', 'lib/parser.y', 621
2835 def _reduce_147( val, _values, result )
2836 @@log.info("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
2837 result = val[0]
2838 result
2839 end
2840.,.,
2841
2842module_eval <<'.,.,', 'lib/parser.y', 627
2843 def _reduce_148( val, _values, result )
2844 @@log.info("V_STRING: #{val[0]} at #{@filename}:#{@lineno}")
2845 result = val[0]
2846 result
2847 end
2848.,.,
2849
2850 # reduce 149 omitted
2851
2852 # reduce 150 omitted
2853
2854 # reduce 151 omitted
2855
2856module_eval <<'.,.,', 'lib/parser.y', 641
2857 def _reduce_152( val, _values, result )
2858 begin
2859 integer = Integer(val[0])
2860 rescue
2861 raise
2862 end
2863 result = integer
2864 result
2865 end
2866.,.,
2867
2868module_eval <<'.,.,', 'lib/parser.y', 650
2869 def _reduce_153( val, _values, result )
2870 begin
2871 integer = Integer(val[0])
2872 rescue
2873 raise
2874 end
2875 result = integer
2876 result
2877 end
2878.,.,
2879
2880module_eval <<'.,.,', 'lib/parser.y', 659
2881 def _reduce_154( val, _values, result )
2882 begin
2883 integer = Integer(val[0])
2884 rescue
2885 raise
2886 end
2887 result = - integer
2888 result
2889 end
2890.,.,
2891
2892 # reduce 155 omitted
2893
2894 # reduce 156 omitted
2895
2896 # reduce 157 omitted
2897
2898 # reduce 158 omitted
2899
2900 # reduce 159 omitted
2901
2902 # reduce 160 omitted
2903
2904 # reduce 161 omitted
2905
2906 # reduce 162 omitted
2907
2908 # reduce 163 omitted
2909
2910 # reduce 164 omitted
2911
2912 # reduce 165 omitted
2913
2914 # reduce 166 omitted
2915
2916module_eval <<'.,.,', 'lib/parser.y', 685
2917 def _reduce_167( val, _values, result )
2918 begin
2919 real = Float(val[0])
2920 rescue
2921 raise
2922 end
2923 result = real
2924 result
2925 end
2926.,.,
2927
2928module_eval <<'.,.,', 'lib/parser.y', 694
2929 def _reduce_168( val, _values, result )
2930 begin
2931 real = Float(val[1])
2932 rescue
2933 raise
2934 end
2935 result = real
2936 result
2937 end
2938.,.,
2939
2940module_eval <<'.,.,', 'lib/parser.y', 703
2941 def _reduce_169( val, _values, result )
2942 begin
2943 real = Float(val[1])
2944 rescue
2945 raise
2946 end
2947 result = - real
2948 result
2949 end
2950.,.,
2951
2952 # reduce 170 omitted
2953
2954 # reduce 171 omitted
2955
2956 # reduce 172 omitted
2957
2958 # reduce 173 omitted
2959
2960 # reduce 174 omitted
2961
2962 # reduce 175 omitted
2963
2964 # reduce 176 omitted
2965
2966 # reduce 177 omitted
2967
2968 # reduce 178 omitted
2969
2970 # reduce 179 omitted
2971
2972 # reduce 180 omitted
2973
2974 # reduce 181 omitted
2975
2976module_eval <<'.,.,', 'lib/parser.y', 723
2977 def _reduce_182( val, _values, result )
2978 result = true
2979 result
2980 end
2981.,.,
2982
2983module_eval <<'.,.,', 'lib/parser.y', 727
2984 def _reduce_183( val, _values, result )
2985 result = false
2986 result
2987 end
2988.,.,
2989
2990 # reduce 184 omitted
2991
2992 # reduce 185 omitted
2993
2994 # reduce 186 omitted
2995
2996 # reduce 187 omitted
2997
2998 # reduce 188 omitted
2999
3000 # reduce 189 omitted
3001
3002 # reduce 190 omitted
3003
3004 # reduce 191 omitted
3005
3006 # reduce 192 omitted
3007
3008 # reduce 193 omitted
3009
3010 # reduce 194 omitted
3011
3012 # reduce 195 omitted
3013
3014 # reduce 196 omitted
3015
3016 # reduce 197 omitted
3017
3018 # reduce 198 omitted
3019
3020 # reduce 199 omitted
3021
3022 # reduce 200 omitted
3023
3024 # reduce 201 omitted
3025
3026 # reduce 202 omitted
3027
3028 # reduce 203 omitted
3029
3030 # reduce 204 omitted
3031
3032 # reduce 205 omitted
3033
3034 # reduce 206 omitted
3035
3036 # reduce 207 omitted
3037
3038 # reduce 208 omitted
3039
3040 # reduce 209 omitted
3041
3042 # reduce 210 omitted
3043
3044 # reduce 211 omitted
3045
3046 # reduce 212 omitted
3047
3048 # reduce 213 omitted
3049
3050 # reduce 214 omitted
3051
3052 # reduce 215 omitted
3053
3054 # reduce 216 omitted
3055
3056 # reduce 217 omitted
3057
3058 # reduce 218 omitted
3059
3060 # reduce 219 omitted
3061
3062 # reduce 220 omitted
3063
3064 # reduce 221 omitted
3065
3066 # reduce 222 omitted
3067
3068 # reduce 223 omitted
3069
3070 # reduce 224 omitted
3071
3072 # reduce 225 omitted
3073
3074 # reduce 226 omitted
3075
3076 # reduce 227 omitted
3077
3078 # reduce 228 omitted
3079
3080 # reduce 229 omitted
3081
3082module_eval <<'.,.,', 'lib/parser.y', 791
3083 def _reduce_230( val, _values, result )
3084 @@log.info("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}")
3085 result = val[0]
3086 result
3087 end
3088.,.,
3089
3090 # reduce 231 omitted
3091
3092 # reduce 232 omitted
3093
3094 # reduce 233 omitted
3095
3096 # reduce 234 omitted
3097
3098 # reduce 235 omitted
3099
3100 # reduce 236 omitted
3101
3102 # reduce 237 omitted
3103
3104 # reduce 238 omitted
3105
3106 # reduce 239 omitted
3107
3108 # reduce 240 omitted
3109
3110 # reduce 241 omitted
3111
3112 # reduce 242 omitted
3113
3114module_eval <<'.,.,', 'lib/parser.y', 810
3115 def _reduce_243( val, _values, result )
3116 @@log.info("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}")
3117 result
3118 end
3119.,.,
3120
3121 # reduce 244 omitted
3122
3123 # reduce 245 omitted
3124
3125 # reduce 246 omitted
3126
3127module_eval <<'.,.,', 'lib/parser.y', 819
3128 def _reduce_247( val, _values, result )
3129 @@log.info("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}")
3130 result
3131 end
3132.,.,
3133
3134 # reduce 248 omitted
3135
3136 # reduce 249 omitted
3137
3138 # reduce 250 omitted
3139
3140 # reduce 251 omitted
3141
3142 # reduce 252 omitted
3143
3144 # reduce 253 omitted
3145
3146 # reduce 254 omitted
3147
3148 # reduce 255 omitted
3149
3150 # reduce 256 omitted
3151
3152 # reduce 257 omitted
3153
3154 # reduce 258 omitted
3155
3156 # reduce 259 omitted
3157
3158 # reduce 260 omitted
3159
3160 # reduce 261 omitted
3161
3162 # reduce 262 omitted
3163
3164 # reduce 263 omitted
3165
3166 # reduce 264 omitted
3167
3168 # reduce 265 omitted
3169
3170 # reduce 266 omitted
3171
3172 # reduce 267 omitted
3173
3174 # reduce 268 omitted
3175
3176 # reduce 269 omitted
3177
3178 # reduce 270 omitted
3179
3180 # reduce 271 omitted
3181
3182 # reduce 272 omitted
3183
3184 # reduce 273 omitted
3185
3186 # reduce 274 omitted
3187
3188 # reduce 275 omitted
3189
3190 # reduce 276 omitted
3191
3192 # reduce 277 omitted
3193
3194 # reduce 278 omitted
3195
3196 # reduce 279 omitted
3197
3198 # reduce 280 omitted
3199
3200 # reduce 281 omitted
3201
3202 # reduce 282 omitted
3203
3204 # reduce 283 omitted
3205
3206 # reduce 284 omitted
3207
3208 # reduce 285 omitted
3209
3210 # reduce 286 omitted
3211
3212 # reduce 287 omitted
3213
3214module_eval <<'.,.,', 'lib/parser.y', 888
3215 def _reduce_288( val, _values, result )
3216 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
3217 result
3218 end
3219.,.,
3220
3221module_eval <<'.,.,', 'lib/parser.y', 892
3222 def _reduce_289( val, _values, result )
3223 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
3224 result
3225 end
3226.,.,
3227
3228module_eval <<'.,.,', 'lib/parser.y', 903
3229 def _reduce_290( val, _values, result )
3230 result = Range.new(1,1)
3231 result
3232 end
3233.,.,
3234
3235module_eval <<'.,.,', 'lib/parser.y', 907
3236 def _reduce_291( val, _values, result )
3237 result = val[3]
3238 result
3239 end
3240.,.,
3241
3242module_eval <<'.,.,', 'lib/parser.y', 917
3243 def _reduce_292( val, _values, result )
3244 begin
3245 integer = Integer(val[0])
3246 rescue
3247 raise
3248 end
3249 result = integer
3250 result
3251 end
3252.,.,
3253
3254module_eval <<'.,.,', 'lib/parser.y', 927
3255 def _reduce_293( val, _values, result )
3256 begin
3257 from_integer = Integer(val[0])
3258 to_integer = Integer(val[2])
3259 rescue
3260 raise
3261 end
3262 result = Range.new(from_integer,to_integer)
3263 result
3264 end
3265.,.,
3266
3267module_eval <<'.,.,', 'lib/parser.y', 932
3268 def _reduce_294( val, _values, result )
3269 result = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new
3270 result
3271 end
3272.,.,
3273
3274 # reduce 295 omitted
3275
3276 # reduce 296 omitted
3277
3278 # reduce 297 omitted
3279
3280 # reduce 298 omitted
3281
3282 # reduce 299 omitted
3283
3284 # reduce 300 omitted
3285
3286 # reduce 301 omitted
3287
3288 # reduce 302 omitted
3289
3290 # reduce 303 omitted
3291
3292 # reduce 304 omitted
3293
3294 # reduce 305 omitted
3295
3296module_eval <<'.,.,', 'lib/parser.y', 951
3297 def _reduce_306( val, _values, result )
3298 result = val[3]
3299 result
3300 end
3301.,.,
3302
3303 # reduce 307 omitted
3304
3305 # reduce 308 omitted
3306
3307 # reduce 309 omitted
3308
3309 # reduce 310 omitted
3310
3311 # reduce 311 omitted
3312
3313 # reduce 312 omitted
3314
3315 # reduce 313 omitted
3316
3317 # reduce 314 omitted
3318
3319 # reduce 315 omitted
3320
3321 # reduce 316 omitted
3322
3323 # reduce 317 omitted
3324
3325 # reduce 318 omitted
3326
3327 # reduce 319 omitted
3328
3329 # reduce 320 omitted
3330
3331 # reduce 321 omitted
3332
3333 # reduce 322 omitted
3334
3335 # reduce 323 omitted
3336
3337 # reduce 324 omitted
3338
3339 # reduce 325 omitted
3340
3341 # reduce 326 omitted
3342
3343 # reduce 327 omitted
3344
3345 # reduce 328 omitted
3346
3347 # reduce 329 omitted
3348
3349 # reduce 330 omitted
3350
3351 # reduce 331 omitted
3352
3353 # reduce 332 omitted
3354
3355 # reduce 333 omitted
3356
3357 # reduce 334 omitted
3358
3359 # reduce 335 omitted
3360
3361 # reduce 336 omitted
3362
3363 # reduce 337 omitted
3364
3365 # reduce 338 omitted
3366
3367 # reduce 339 omitted
3368
3369 # reduce 340 omitted
3370
3371 # reduce 341 omitted
3372
3373 # reduce 342 omitted
3374
3375 # reduce 343 omitted
3376
3377 # reduce 344 omitted
3378
3379 # reduce 345 omitted
3380
3381 # reduce 346 omitted
3382
3383 # reduce 347 omitted
3384
3385 # reduce 348 omitted
3386
3387 # reduce 349 omitted
3388
3389 # reduce 350 omitted
3390
3391 # reduce 351 omitted
3392
3393 # reduce 352 omitted
3394
3395module_eval <<'.,.,', 'lib/parser.y', 1021
3396 def _reduce_353( val, _values, result )
3397 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true)
3398 result
3399 end
3400.,.,
3401
3402module_eval <<'.,.,', 'lib/parser.y', 1025
3403 def _reduce_354( val, _values, result )
3404 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false)
3405 result
3406 end
3407.,.,
3408
3409module_eval <<'.,.,', 'lib/parser.y', 1029
3410 def _reduce_355( val, _values, result )
3411 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false)
3412 result
3413 end
3414.,.,
3415
3416module_eval <<'.,.,', 'lib/parser.y', 1033
3417 def _reduce_356( val, _values, result )
3418 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true)
3419 result
3420 end
3421.,.,
3422
3423module_eval <<'.,.,', 'lib/parser.y', 1038
3424 def _reduce_357( val, _values, result )
3425 result = val[0]
3426 result
3427 end
3428.,.,
3429
3430module_eval <<'.,.,', 'lib/parser.y', 1042
3431 def _reduce_358( val, _values, result )
3432 raise 'Not implemented yet'
3433 result
3434 end
3435.,.,
3436
3437module_eval <<'.,.,', 'lib/parser.y', 1046
3438 def _reduce_359( val, _values, result )
3439 raise 'Not implemented yet'
3440 result
3441 end
3442.,.,
3443
3444 # reduce 360 omitted
3445
3446 # reduce 361 omitted
3447
3448 # reduce 362 omitted
3449
3450 # reduce 363 omitted
3451
3452 # reduce 364 omitted
3453
3454module_eval <<'.,.,', 'lib/parser.y', 1059
3455 def _reduce_365( val, _values, result )
3456 @in_interval = false
3457 @@log.info("#{__FILE__}:#{__LINE__}, #{val[0]}|#{val[2]} at #{@filename}")
3458 result
3459 end
3460.,.,
3461
3462 # reduce 366 omitted
3463
3464 # reduce 367 omitted
3465
3466 # reduce 368 omitted
3467
3468 # reduce 369 omitted
3469
3470 # reduce 370 omitted
3471
3472 # reduce 371 omitted
3473
3474 # reduce 372 omitted
3475
3476 # reduce 373 omitted
3477
3478module_eval <<'.,.,', 'lib/parser.y', 1081
3479 def _reduce_374( val, _values, result )
3480 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}")
3481 result
3482 end
3483.,.,
3484
3485 # reduce 375 omitted
3486
3487 def _reduce_none( val, _values, result )
3488 result
3489 end
3490
3491 end # class Parser
3492
3493 end # module ADL
3494
3495end # module OpenEHR
Note: See TracBrowser for help on using the repository browser.