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

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

working on adl_parser semantic functions

File size: 104.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..id4cf2f1104b', 'lib/parser.y', 1079
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..id4cf2f1104b
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_none,
832 2, 97, :_reduce_none,
833 1, 105, :_reduce_none,
834 2, 105, :_reduce_none,
835 3, 106, :_reduce_none,
836 1, 107, :_reduce_none,
837 3, 107, :_reduce_none,
838 3, 108, :_reduce_none,
839 1, 108, :_reduce_none,
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
2046 # reduce 4 omitted
2047
2048 # reduce 5 omitted
2049
2050 # reduce 6 omitted
2051
2052 # reduce 7 omitted
2053
2054 # reduce 8 omitted
2055
2056 # reduce 9 omitted
2057
2058 # reduce 10 omitted
2059
2060 # reduce 11 omitted
2061
2062 # reduce 12 omitted
2063
2064 # reduce 13 omitted
2065
2066 # reduce 14 omitted
2067
2068 # reduce 15 omitted
2069
2070 # reduce 16 omitted
2071
2072 # reduce 17 omitted
2073
2074 # reduce 18 omitted
2075
2076module_eval <<'.,.,', 'lib/parser.y', 81
2077 def _reduce_19( val, _values, result )
2078 result = {:language => val[1]}
2079 result
2080 end
2081.,.,
2082
2083 # reduce 20 omitted
2084
2085 # reduce 21 omitted
2086
2087module_eval <<'.,.,', 'lib/parser.y', 92
2088 def _reduce_22( val, _values, result )
2089 result = OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION.new(:details => val[1])
2090 result
2091 end
2092.,.,
2093
2094 # reduce 23 omitted
2095
2096module_eval <<'.,.,', 'lib/parser.y', 100
2097 def _reduce_24( val, _values, result )
2098 result = val[1]
2099 result
2100 end
2101.,.,
2102
2103 # reduce 25 omitted
2104
2105module_eval <<'.,.,', 'lib/parser.y', 110
2106 def _reduce_26( val, _values, result )
2107 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT)}
2108 @@log.info("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0]} at #{@filename}:#{@lineno}")
2109 result = val[0]
2110 result
2111 end
2112.,.,
2113
2114module_eval <<'.,.,', 'lib/parser.y', 114
2115 def _reduce_27( val, _values, result )
2116 result = val[0]
2117 result
2118 end
2119.,.,
2120
2121module_eval <<'.,.,', 'lib/parser.y', 125
2122 def _reduce_28( val, _values, result )
2123 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object|
2124 c_complex_object.node_id = val[0][:c_complex_object_id][:local_term_code_ref]
2125 c_complex_object.rm_type_name = val[0][:c_complex_object_id][:type_identifier]
2126 c_complex_object.occurrences = val[0][:c_occurrences]
2127 end
2128 result
2129 end
2130.,.,
2131
2132module_eval <<'.,.,', 'lib/parser.y', 133
2133 def _reduce_29( val, _values, result )
2134 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object|
2135 c_complex_object.node_id = val[0][:c_complex_object_id][:local_term_code_ref]
2136 c_complex_object.rm_type_name = val[0][:c_complex_object_id][:type_identifier]
2137 c_complex_object.occurrences = val[0][:c_occurrences]
2138 end
2139 result
2140 end
2141.,.,
2142
2143module_eval <<'.,.,', 'lib/parser.y', 140
2144 def _reduce_30( val, _values, result )
2145 result = {:c_complex_object_id => val[0], :c_occurrences => val[1]}
2146 result
2147 end
2148.,.,
2149
2150module_eval <<'.,.,', 'lib/parser.y', 145
2151 def _reduce_31( val, _values, result )
2152 result = {:type_identifier => val[0]}
2153 result
2154 end
2155.,.,
2156
2157module_eval <<'.,.,', 'lib/parser.y', 149
2158 def _reduce_32( val, _values, result )
2159 result = {:type_identifier => val[0], :local_term_code_ref => val[1]}
2160 result
2161 end
2162.,.,
2163
2164 # reduce 33 omitted
2165
2166module_eval <<'.,.,', 'lib/parser.y', 155
2167 def _reduce_34( val, _values, result )
2168 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new(:attributes => val[0])
2169 result
2170 end
2171.,.,
2172
2173module_eval <<'.,.,', 'lib/parser.y', 163
2174 def _reduce_35( val, _values, result )
2175 result = val[0]
2176 result
2177 end
2178.,.,
2179
2180module_eval <<'.,.,', 'lib/parser.y', 167
2181 def _reduce_36( val, _values, result )
2182 result = OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT.new
2183 result
2184 end
2185.,.,
2186
2187module_eval <<'.,.,', 'lib/parser.y', 171
2188 def _reduce_37( val, _values, result )
2189 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_INTERNAL_REF.new
2190 result
2191 end
2192.,.,
2193
2194module_eval <<'.,.,', 'lib/parser.y', 175
2195 def _reduce_38( val, _values, result )
2196 result = OpenEHR::AM::Archetype::Constraint_Model::ARCHETYPE_SLOT.new
2197 result
2198 end
2199.,.,
2200
2201module_eval <<'.,.,', 'lib/parser.y', 179
2202 def _reduce_39( val, _values, result )
2203 result = OpenEHR::AM::Archetype::Constraint_Model::CONSTRAINT_REF.new
2204 result
2205 end
2206.,.,
2207
2208module_eval <<'.,.,', 'lib/parser.y', 183
2209 def _reduce_40( val, _values, result )
2210 result = val[0]
2211 result
2212 end
2213.,.,
2214
2215module_eval <<'.,.,', 'lib/parser.y', 187
2216 def _reduce_41( val, _values, result )
2217 result = val[0]
2218 result
2219 end
2220.,.,
2221
2222module_eval <<'.,.,', 'lib/parser.y', 191
2223 def _reduce_42( val, _values, result )
2224 result = val[0]
2225 result
2226 end
2227.,.,
2228
2229 # reduce 43 omitted
2230
2231 # reduce 44 omitted
2232
2233module_eval <<'.,.,', 'lib/parser.y', 206
2234 def _reduce_45( val, _values, result )
2235 result = val[1]
2236 result
2237 end
2238.,.,
2239
2240 # reduce 46 omitted
2241
2242 # reduce 47 omitted
2243
2244 # reduce 48 omitted
2245
2246 # reduce 49 omitted
2247
2248 # reduce 50 omitted
2249
2250 # reduce 51 omitted
2251
2252 # reduce 52 omitted
2253
2254module_eval <<'.,.,', 'lib/parser.y', 226
2255 def _reduce_53( val, _values, result )
2256 assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_PRIMITIVE)}
2257 result = OpenEHR::AM::Archetype::Constraint_Model::C_PRIMITIVE_OBJECT.new(:item => val[0])
2258 result
2259 end
2260.,.,
2261
2262module_eval <<'.,.,', 'lib/parser.y', 232
2263 def _reduce_54( val, _values, result )
2264 @@log.info("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}")
2265 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_INTEGER.new
2266 result
2267 end
2268.,.,
2269
2270module_eval <<'.,.,', 'lib/parser.y', 237
2271 def _reduce_55( val, _values, result )
2272 @@log.info("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}")
2273 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_REAL.new
2274 result
2275 end
2276.,.,
2277
2278module_eval <<'.,.,', 'lib/parser.y', 242
2279 def _reduce_56( val, _values, result )
2280 @@log.info("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}")
2281 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE.new
2282 result
2283 end
2284.,.,
2285
2286module_eval <<'.,.,', 'lib/parser.y', 247
2287 def _reduce_57( val, _values, result )
2288 @@log.info("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}")
2289 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_TIME.new
2290 result
2291 end
2292.,.,
2293
2294module_eval <<'.,.,', 'lib/parser.y', 252
2295 def _reduce_58( val, _values, result )
2296 @@log.info("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}")
2297 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DATE_TIME.new
2298 result
2299 end
2300.,.,
2301
2302module_eval <<'.,.,', 'lib/parser.y', 257
2303 def _reduce_59( val, _values, result )
2304 @@log.info("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}")
2305 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_DURATION.new
2306 result
2307 end
2308.,.,
2309
2310module_eval <<'.,.,', 'lib/parser.y', 262
2311 def _reduce_60( val, _values, result )
2312 @@log.info("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}")
2313 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_STRING.new
2314 result
2315 end
2316.,.,
2317
2318module_eval <<'.,.,', 'lib/parser.y', 268
2319 def _reduce_61( val, _values, result )
2320 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN)}
2321 @@log.info("#{__FILE__}:#{__LINE__}: c_boolean = #{val[0]} at #{@filename}:#{@lineno}")
2322 result = val[0]
2323 result
2324 end
2325.,.,
2326
2327 # reduce 62 omitted
2328
2329module_eval <<'.,.,', 'lib/parser.y', 278
2330 def _reduce_63( val, _values, result )
2331 result = [val[0]]
2332 result
2333 end
2334.,.,
2335
2336module_eval <<'.,.,', 'lib/parser.y', 282
2337 def _reduce_64( val, _values, result )
2338 result = (val[0] << val[1])
2339 result
2340 end
2341.,.,
2342
2343module_eval <<'.,.,', 'lib/parser.y', 291
2344 def _reduce_65( val, _values, result )
2345 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
2346 c_attribute = val[0]
2347 c_attribute.children = val[3]
2348 result = c_attribute
2349 result
2350 end
2351.,.,
2352
2353module_eval <<'.,.,', 'lib/parser.y', 296
2354 def _reduce_66( val, _values, result )
2355 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
2356 result = val[0]
2357 result
2358 end
2359.,.,
2360
2361module_eval <<'.,.,', 'lib/parser.y', 301
2362 def _reduce_67( val, _values, result )
2363 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEHR::AM::Archetype::Constraint_Model::C_ATTRIBUTE)}
2364 result = val[0]
2365 result
2366 end
2367.,.,
2368
2369module_eval <<'.,.,', 'lib/parser.y', 312
2370 def _reduce_68( val, _values, result )
2371 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}")
2372 result = OpenEHR::AM::Archetype::Constraint_Model::C_SINGLE_ATTRIBUTE.new(
2373 :rm_attribute_name => val[0],
2374 :existence => val[1]
2375 )
2376 result
2377 end
2378.,.,
2379
2380module_eval <<'.,.,', 'lib/parser.y', 322
2381 def _reduce_69( val, _values, result )
2382 assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY) }
2383 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER: #{val[0]}, c_existence = #{val[1]}, c_cardinality = #{val[2]} at #{@filename}")
2384 result = OpenEHR::AM::Archetype::Constraint_Model::C_MULTIPLE_ATTRIBUTE.new(
2385 :rm_attribute_name => val[0],
2386 :existence => val[1],
2387 :cardinality => val[2]
2388 )
2389 result
2390 end
2391.,.,
2392
2393module_eval <<'.,.,', 'lib/parser.y', 327
2394 def _reduce_70( val, _values, result )
2395 result = Array[val[0]]
2396 result
2397 end
2398.,.,
2399
2400module_eval <<'.,.,', 'lib/parser.y', 331
2401 def _reduce_71( val, _values, result )
2402 result = (val[0] << val[1])
2403 result
2404 end
2405.,.,
2406
2407module_eval <<'.,.,', 'lib/parser.y', 335
2408 def _reduce_72( val, _values, result )
2409 result = Array[val[0]]
2410 result
2411 end
2412.,.,
2413
2414 # reduce 73 omitted
2415
2416 # reduce 74 omitted
2417
2418 # reduce 75 omitted
2419
2420 # reduce 76 omitted
2421
2422 # reduce 77 omitted
2423
2424 # reduce 78 omitted
2425
2426 # reduce 79 omitted
2427
2428 # reduce 80 omitted
2429
2430 # reduce 81 omitted
2431
2432 # reduce 82 omitted
2433
2434 # reduce 83 omitted
2435
2436 # reduce 84 omitted
2437
2438module_eval <<'.,.,', 'lib/parser.y', 366
2439 def _reduce_85( val, _values, result )
2440 dadl_sections = val[1]
2441 result = OpenEHR::AM::Archetype::Ontology::ARCHETYPE_ONTOLOGY.new
2442 result
2443 end
2444.,.,
2445
2446 # reduce 86 omitted
2447
2448 # reduce 87 omitted
2449
2450 # reduce 88 omitted
2451
2452 # reduce 89 omitted
2453
2454module_eval <<'.,.,', 'lib/parser.y', 380
2455 def _reduce_90( val, _values, result )
2456 result = Array[val[0]]
2457 result
2458 end
2459.,.,
2460
2461module_eval <<'.,.,', 'lib/parser.y', 384
2462 def _reduce_91( val, _values, result )
2463 result = (val[0] << val[1])
2464 result
2465 end
2466.,.,
2467
2468module_eval <<'.,.,', 'lib/parser.y', 388
2469 def _reduce_92( val, _values, result )
2470 result = (val[0] << val[2])
2471 result
2472 end
2473.,.,
2474
2475module_eval <<'.,.,', 'lib/parser.y', 394
2476 def _reduce_93( val, _values, result )
2477 @@log.info("#{__FILE__}:#{__LINE__}: attr_id = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}")
2478 result = {:attr_id => val[0], :object_block => val[2]}
2479 result
2480 end
2481.,.,
2482
2483module_eval <<'.,.,', 'lib/parser.y', 400
2484 def _reduce_94( val, _values, result )
2485 @@log.info("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}:#{@lineno}")
2486 result = val[0]
2487 result
2488 end
2489.,.,
2490
2491 # reduce 95 omitted
2492
2493module_eval <<'.,.,', 'lib/parser.y', 406
2494 def _reduce_96( val, _values, result )
2495 result = val[0]
2496 result
2497 end
2498.,.,
2499
2500module_eval <<'.,.,', 'lib/parser.y', 410
2501 def _reduce_97( val, _values, result )
2502 result = val[0]
2503 result
2504 end
2505.,.,
2506
2507module_eval <<'.,.,', 'lib/parser.y', 415
2508 def _reduce_98( val, _values, result )
2509 result = val[0]
2510 result
2511 end
2512.,.,
2513
2514module_eval <<'.,.,', 'lib/parser.y', 419
2515 def _reduce_99( val, _values, result )
2516 result = val[0]
2517 result
2518 end
2519.,.,
2520
2521module_eval <<'.,.,', 'lib/parser.y', 424
2522 def _reduce_100( val, _values, result )
2523 result = {:untyped_multiple_attr_object_block => val[0]}
2524 result
2525 end
2526.,.,
2527
2528module_eval <<'.,.,', 'lib/parser.y', 428
2529 def _reduce_101( val, _values, result )
2530 result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]}
2531 result
2532 end
2533.,.,
2534
2535module_eval <<'.,.,', 'lib/parser.y', 433
2536 def _reduce_102( val, _values, result )
2537 result = {:multiple_attr_object_block_head => val[0], :keyed_objects => val[1]}
2538 result
2539 end
2540.,.,
2541
2542module_eval <<'.,.,', 'lib/parser.y', 439
2543 def _reduce_103( val, _values, result )
2544 @@log.info("SYM_START_DBLOCK: #{val[0]} at #{@filename}:#{@lineno}")
2545 result = val[0]
2546 result
2547 end
2548.,.,
2549
2550module_eval <<'.,.,', 'lib/parser.y', 444
2551 def _reduce_104( val, _values, result )
2552 result = Array[val[0]]
2553 result
2554 end
2555.,.,
2556
2557module_eval <<'.,.,', 'lib/parser.y', 448
2558 def _reduce_105( val, _values, result )
2559 result = (val[0] << val[1])
2560 result
2561 end
2562.,.,
2563
2564module_eval <<'.,.,', 'lib/parser.y', 454
2565 def _reduce_106( val, _values, result )
2566 @@log.info("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]}, object_block = #{val[2]} at #{@filename}:#{@lineno}")
2567 result = {:object_key => val[0], :object_block => val[1]}
2568 result
2569 end
2570.,.,
2571
2572module_eval <<'.,.,', 'lib/parser.y', 460
2573 def _reduce_107( val, _values, result )
2574 @@log.info("object_key: [#{val[1]}] at #{@filename}:#{@lineno}")
2575 result = val[1]
2576 result
2577 end
2578.,.,
2579
2580module_eval <<'.,.,', 'lib/parser.y', 465
2581 def _reduce_108( val, _values, result )
2582 result = {:untyped_single_attr_object_block => val[0]}
2583 result
2584 end
2585.,.,
2586
2587module_eval <<'.,.,', 'lib/parser.y', 469
2588 def _reduce_109( val, _values, result )
2589 result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]}
2590 result
2591 end
2592.,.,
2593
2594module_eval <<'.,.,', 'lib/parser.y', 475
2595 def _reduce_110( val, _values, result )
2596 @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}")
2597 result = {:single_attr_object_complex_head => val[0]}
2598 result
2599 end
2600.,.,
2601
2602module_eval <<'.,.,', 'lib/parser.y', 480
2603 def _reduce_111( val, _values, result )
2604 @@log.info("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]}, attr_vals = #{val[1]} at #{@filename}:#{@lineno}")
2605 result = {:single_attr_object_complex_head => val[0], :attr_vals => val[1]}
2606 result
2607 end
2608.,.,
2609
2610 # reduce 112 omitted
2611
2612module_eval <<'.,.,', 'lib/parser.y', 486
2613 def _reduce_113( val, _values, result )
2614 @@log.info("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}")
2615 result = {:untyped_primitive_object_block => val[0]}
2616 result
2617 end
2618.,.,
2619
2620module_eval <<'.,.,', 'lib/parser.y', 491
2621 def _reduce_114( val, _values, result )
2622 @@log.info("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}")
2623 result = {:type_identifier => val[0], :untyped_primitive_object_block => val[1]}
2624 result
2625 end
2626.,.,
2627
2628module_eval <<'.,.,', 'lib/parser.y', 496
2629 def _reduce_115( val, _values, result )
2630 @@log.info("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}")
2631 result = val[1]
2632 result
2633 end
2634.,.,
2635
2636module_eval <<'.,.,', 'lib/parser.y', 500
2637 def _reduce_116( val, _values, result )
2638 result = val[0]
2639 result
2640 end
2641.,.,
2642
2643module_eval <<'.,.,', 'lib/parser.y', 504
2644 def _reduce_117( val, _values, result )
2645 result = val[0]
2646 result
2647 end
2648.,.,
2649
2650module_eval <<'.,.,', 'lib/parser.y', 508
2651 def _reduce_118( val, _values, result )
2652 result = val[0]
2653 result
2654 end
2655.,.,
2656
2657module_eval <<'.,.,', 'lib/parser.y', 512
2658 def _reduce_119( val, _values, result )
2659 result = val[0]
2660 result
2661 end
2662.,.,
2663
2664module_eval <<'.,.,', 'lib/parser.y', 516
2665 def _reduce_120( val, _values, result )
2666 result = val[0]
2667 result
2668 end
2669.,.,
2670
2671module_eval <<'.,.,', 'lib/parser.y', 521
2672 def _reduce_121( val, _values, result )
2673 @@log.info("string_value: #{val[0]} at #{@filename}:#{@lineno}")
2674 result = val[0]
2675 result
2676 end
2677.,.,
2678
2679module_eval <<'.,.,', 'lib/parser.y', 526
2680 def _reduce_122( val, _values, result )
2681 @@log.info("integer_value: #{val[0]} at #{@filename}:#{@lineno}")
2682 result = val[0]
2683 result
2684 end
2685.,.,
2686
2687module_eval <<'.,.,', 'lib/parser.y', 531
2688 def _reduce_123( val, _values, result )
2689 @@log.info("real_value: #{val[0]} at #{@filename}:#{@lineno}")
2690 result = val[0]
2691 result
2692 end
2693.,.,
2694
2695module_eval <<'.,.,', 'lib/parser.y', 536
2696 def _reduce_124( val, _values, result )
2697 @@log.info("boolean_value: #{val[0]} at #{@filename}:#{@lineno}")
2698 result = val[0]
2699 result
2700 end
2701.,.,
2702
2703module_eval <<'.,.,', 'lib/parser.y', 541
2704 def _reduce_125( val, _values, result )
2705 @@log.info("character_value: #{val[0]} at #{@filename}:#{@lineno}")
2706 result = val[0]
2707 result
2708 end
2709.,.,
2710
2711module_eval <<'.,.,', 'lib/parser.y', 546
2712 def _reduce_126( val, _values, result )
2713 @@log.info("date_value: #{val[0]} at #{@filename}:#{@lineno}")
2714 result = val[0]
2715 result
2716 end
2717.,.,
2718
2719module_eval <<'.,.,', 'lib/parser.y', 551
2720 def _reduce_127( val, _values, result )
2721 @@log.info("time_value: #{val[0]} at #{@filename}:#{@lineno}")
2722 result = val[0]
2723 result
2724 end
2725.,.,
2726
2727module_eval <<'.,.,', 'lib/parser.y', 556
2728 def _reduce_128( val, _values, result )
2729 @@log.info("date_time_value: #{val[0]} at #{@filename}:#{@lineno}")
2730 result = val[0]
2731 result
2732 end
2733.,.,
2734
2735module_eval <<'.,.,', 'lib/parser.y', 561
2736 def _reduce_129( val, _values, result )
2737 @@log.info("duration_value: #{val[0]} at #{@filename}:#{@lineno}")
2738 result = val[0]
2739 result
2740 end
2741.,.,
2742
2743module_eval <<'.,.,', 'lib/parser.y', 566
2744 def _reduce_130( val, _values, result )
2745 @@log.info("uri_value: #{val[0]} at #{@filename}:#{@lineno}")
2746 result = val[0]
2747 result
2748 end
2749.,.,
2750
2751 # reduce 131 omitted
2752
2753 # reduce 132 omitted
2754
2755 # reduce 133 omitted
2756
2757 # reduce 134 omitted
2758
2759 # reduce 135 omitted
2760
2761 # reduce 136 omitted
2762
2763 # reduce 137 omitted
2764
2765 # reduce 138 omitted
2766
2767 # reduce 139 omitted
2768
2769 # reduce 140 omitted
2770
2771 # reduce 141 omitted
2772
2773 # reduce 142 omitted
2774
2775 # reduce 143 omitted
2776
2777 # reduce 144 omitted
2778
2779 # reduce 145 omitted
2780
2781module_eval <<'.,.,', 'lib/parser.y', 589
2782 def _reduce_146( val, _values, result )
2783 @@log.info("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
2784 result = val[0]
2785 result
2786 end
2787.,.,
2788
2789module_eval <<'.,.,', 'lib/parser.y', 594
2790 def _reduce_147( val, _values, result )
2791 @@log.info("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}")
2792 result = val[0]
2793 result
2794 end
2795.,.,
2796
2797module_eval <<'.,.,', 'lib/parser.y', 600
2798 def _reduce_148( val, _values, result )
2799 @@log.info("V_STRING: #{val[0]} at #{@filename}:#{@lineno}")
2800 result = val[0]
2801 result
2802 end
2803.,.,
2804
2805 # reduce 149 omitted
2806
2807 # reduce 150 omitted
2808
2809 # reduce 151 omitted
2810
2811module_eval <<'.,.,', 'lib/parser.y', 614
2812 def _reduce_152( val, _values, result )
2813 begin
2814 integer = Integer(val[0])
2815 rescue
2816 raise
2817 end
2818 result = integer
2819 result
2820 end
2821.,.,
2822
2823module_eval <<'.,.,', 'lib/parser.y', 623
2824 def _reduce_153( val, _values, result )
2825 begin
2826 integer = Integer(val[0])
2827 rescue
2828 raise
2829 end
2830 result = integer
2831 result
2832 end
2833.,.,
2834
2835module_eval <<'.,.,', 'lib/parser.y', 632
2836 def _reduce_154( val, _values, result )
2837 begin
2838 integer = Integer(val[0])
2839 rescue
2840 raise
2841 end
2842 result = - integer
2843 result
2844 end
2845.,.,
2846
2847 # reduce 155 omitted
2848
2849 # reduce 156 omitted
2850
2851 # reduce 157 omitted
2852
2853 # reduce 158 omitted
2854
2855 # reduce 159 omitted
2856
2857 # reduce 160 omitted
2858
2859 # reduce 161 omitted
2860
2861 # reduce 162 omitted
2862
2863 # reduce 163 omitted
2864
2865 # reduce 164 omitted
2866
2867 # reduce 165 omitted
2868
2869 # reduce 166 omitted
2870
2871module_eval <<'.,.,', 'lib/parser.y', 658
2872 def _reduce_167( val, _values, result )
2873 begin
2874 real = Float(val[0])
2875 rescue
2876 raise
2877 end
2878 result = real
2879 result
2880 end
2881.,.,
2882
2883module_eval <<'.,.,', 'lib/parser.y', 667
2884 def _reduce_168( val, _values, result )
2885 begin
2886 real = Float(val[0])
2887 rescue
2888 raise
2889 end
2890 result = real
2891 result
2892 end
2893.,.,
2894
2895module_eval <<'.,.,', 'lib/parser.y', 676
2896 def _reduce_169( val, _values, result )
2897 begin
2898 real = Float(val[0])
2899 rescue
2900 raise
2901 end
2902 result = - real
2903 result
2904 end
2905.,.,
2906
2907 # reduce 170 omitted
2908
2909 # reduce 171 omitted
2910
2911 # reduce 172 omitted
2912
2913 # reduce 173 omitted
2914
2915 # reduce 174 omitted
2916
2917 # reduce 175 omitted
2918
2919 # reduce 176 omitted
2920
2921 # reduce 177 omitted
2922
2923 # reduce 178 omitted
2924
2925 # reduce 179 omitted
2926
2927 # reduce 180 omitted
2928
2929 # reduce 181 omitted
2930
2931module_eval <<'.,.,', 'lib/parser.y', 696
2932 def _reduce_182( val, _values, result )
2933 result = true
2934 result
2935 end
2936.,.,
2937
2938module_eval <<'.,.,', 'lib/parser.y', 700
2939 def _reduce_183( val, _values, result )
2940 result = false
2941 result
2942 end
2943.,.,
2944
2945 # reduce 184 omitted
2946
2947 # reduce 185 omitted
2948
2949 # reduce 186 omitted
2950
2951 # reduce 187 omitted
2952
2953 # reduce 188 omitted
2954
2955 # reduce 189 omitted
2956
2957 # reduce 190 omitted
2958
2959 # reduce 191 omitted
2960
2961 # reduce 192 omitted
2962
2963 # reduce 193 omitted
2964
2965 # reduce 194 omitted
2966
2967 # reduce 195 omitted
2968
2969 # reduce 196 omitted
2970
2971 # reduce 197 omitted
2972
2973 # reduce 198 omitted
2974
2975 # reduce 199 omitted
2976
2977 # reduce 200 omitted
2978
2979 # reduce 201 omitted
2980
2981 # reduce 202 omitted
2982
2983 # reduce 203 omitted
2984
2985 # reduce 204 omitted
2986
2987 # reduce 205 omitted
2988
2989 # reduce 206 omitted
2990
2991 # reduce 207 omitted
2992
2993 # reduce 208 omitted
2994
2995 # reduce 209 omitted
2996
2997 # reduce 210 omitted
2998
2999 # reduce 211 omitted
3000
3001 # reduce 212 omitted
3002
3003 # reduce 213 omitted
3004
3005 # reduce 214 omitted
3006
3007 # reduce 215 omitted
3008
3009 # reduce 216 omitted
3010
3011 # reduce 217 omitted
3012
3013 # reduce 218 omitted
3014
3015 # reduce 219 omitted
3016
3017 # reduce 220 omitted
3018
3019 # reduce 221 omitted
3020
3021 # reduce 222 omitted
3022
3023 # reduce 223 omitted
3024
3025 # reduce 224 omitted
3026
3027 # reduce 225 omitted
3028
3029 # reduce 226 omitted
3030
3031 # reduce 227 omitted
3032
3033 # reduce 228 omitted
3034
3035 # reduce 229 omitted
3036
3037module_eval <<'.,.,', 'lib/parser.y', 764
3038 def _reduce_230( val, _values, result )
3039 @@log.info("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}")
3040 result = val[0]
3041 result
3042 end
3043.,.,
3044
3045 # reduce 231 omitted
3046
3047 # reduce 232 omitted
3048
3049 # reduce 233 omitted
3050
3051 # reduce 234 omitted
3052
3053 # reduce 235 omitted
3054
3055 # reduce 236 omitted
3056
3057 # reduce 237 omitted
3058
3059 # reduce 238 omitted
3060
3061 # reduce 239 omitted
3062
3063 # reduce 240 omitted
3064
3065 # reduce 241 omitted
3066
3067 # reduce 242 omitted
3068
3069module_eval <<'.,.,', 'lib/parser.y', 783
3070 def _reduce_243( val, _values, result )
3071 @@log.info("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}")
3072 result
3073 end
3074.,.,
3075
3076 # reduce 244 omitted
3077
3078 # reduce 245 omitted
3079
3080 # reduce 246 omitted
3081
3082module_eval <<'.,.,', 'lib/parser.y', 792
3083 def _reduce_247( val, _values, result )
3084 @@log.info("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}")
3085 result
3086 end
3087.,.,
3088
3089 # reduce 248 omitted
3090
3091 # reduce 249 omitted
3092
3093 # reduce 250 omitted
3094
3095 # reduce 251 omitted
3096
3097 # reduce 252 omitted
3098
3099 # reduce 253 omitted
3100
3101 # reduce 254 omitted
3102
3103 # reduce 255 omitted
3104
3105 # reduce 256 omitted
3106
3107 # reduce 257 omitted
3108
3109 # reduce 258 omitted
3110
3111 # reduce 259 omitted
3112
3113 # reduce 260 omitted
3114
3115 # reduce 261 omitted
3116
3117 # reduce 262 omitted
3118
3119 # reduce 263 omitted
3120
3121 # reduce 264 omitted
3122
3123 # reduce 265 omitted
3124
3125 # reduce 266 omitted
3126
3127 # reduce 267 omitted
3128
3129 # reduce 268 omitted
3130
3131 # reduce 269 omitted
3132
3133 # reduce 270 omitted
3134
3135 # reduce 271 omitted
3136
3137 # reduce 272 omitted
3138
3139 # reduce 273 omitted
3140
3141 # reduce 274 omitted
3142
3143 # reduce 275 omitted
3144
3145 # reduce 276 omitted
3146
3147 # reduce 277 omitted
3148
3149 # reduce 278 omitted
3150
3151 # reduce 279 omitted
3152
3153 # reduce 280 omitted
3154
3155 # reduce 281 omitted
3156
3157 # reduce 282 omitted
3158
3159 # reduce 283 omitted
3160
3161 # reduce 284 omitted
3162
3163 # reduce 285 omitted
3164
3165 # reduce 286 omitted
3166
3167 # reduce 287 omitted
3168
3169module_eval <<'.,.,', 'lib/parser.y', 861
3170 def _reduce_288( val, _values, result )
3171 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
3172 result
3173 end
3174.,.,
3175
3176module_eval <<'.,.,', 'lib/parser.y', 865
3177 def _reduce_289( val, _values, result )
3178 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}")
3179 result
3180 end
3181.,.,
3182
3183module_eval <<'.,.,', 'lib/parser.y', 876
3184 def _reduce_290( val, _values, result )
3185 result = Range.new(1,1)
3186 result
3187 end
3188.,.,
3189
3190module_eval <<'.,.,', 'lib/parser.y', 880
3191 def _reduce_291( val, _values, result )
3192 result = val[3]
3193 result
3194 end
3195.,.,
3196
3197module_eval <<'.,.,', 'lib/parser.y', 890
3198 def _reduce_292( val, _values, result )
3199 begin
3200 integer = Integer(val[0])
3201 rescue
3202 raise
3203 end
3204 result = integer
3205 result
3206 end
3207.,.,
3208
3209module_eval <<'.,.,', 'lib/parser.y', 900
3210 def _reduce_293( val, _values, result )
3211 begin
3212 from_integer = Integer(val[0])
3213 to_integer = Integer(val[2])
3214 rescue
3215 raise
3216 end
3217 result = Range.new(from_integer,to_integer)
3218 result
3219 end
3220.,.,
3221
3222module_eval <<'.,.,', 'lib/parser.y', 905
3223 def _reduce_294( val, _values, result )
3224 result = OpenEHR::AM::Archetype::Constraint_Model::CARDINALITY.new
3225 result
3226 end
3227.,.,
3228
3229 # reduce 295 omitted
3230
3231 # reduce 296 omitted
3232
3233 # reduce 297 omitted
3234
3235 # reduce 298 omitted
3236
3237 # reduce 299 omitted
3238
3239 # reduce 300 omitted
3240
3241 # reduce 301 omitted
3242
3243 # reduce 302 omitted
3244
3245 # reduce 303 omitted
3246
3247 # reduce 304 omitted
3248
3249 # reduce 305 omitted
3250
3251module_eval <<'.,.,', 'lib/parser.y', 924
3252 def _reduce_306( val, _values, result )
3253 result = val[3]
3254 result
3255 end
3256.,.,
3257
3258 # reduce 307 omitted
3259
3260 # reduce 308 omitted
3261
3262 # reduce 309 omitted
3263
3264 # reduce 310 omitted
3265
3266 # reduce 311 omitted
3267
3268 # reduce 312 omitted
3269
3270 # reduce 313 omitted
3271
3272 # reduce 314 omitted
3273
3274 # reduce 315 omitted
3275
3276 # reduce 316 omitted
3277
3278 # reduce 317 omitted
3279
3280 # reduce 318 omitted
3281
3282 # reduce 319 omitted
3283
3284 # reduce 320 omitted
3285
3286 # reduce 321 omitted
3287
3288 # reduce 322 omitted
3289
3290 # reduce 323 omitted
3291
3292 # reduce 324 omitted
3293
3294 # reduce 325 omitted
3295
3296 # reduce 326 omitted
3297
3298 # reduce 327 omitted
3299
3300 # reduce 328 omitted
3301
3302 # reduce 329 omitted
3303
3304 # reduce 330 omitted
3305
3306 # reduce 331 omitted
3307
3308 # reduce 332 omitted
3309
3310 # reduce 333 omitted
3311
3312 # reduce 334 omitted
3313
3314 # reduce 335 omitted
3315
3316 # reduce 336 omitted
3317
3318 # reduce 337 omitted
3319
3320 # reduce 338 omitted
3321
3322 # reduce 339 omitted
3323
3324 # reduce 340 omitted
3325
3326 # reduce 341 omitted
3327
3328 # reduce 342 omitted
3329
3330 # reduce 343 omitted
3331
3332 # reduce 344 omitted
3333
3334 # reduce 345 omitted
3335
3336 # reduce 346 omitted
3337
3338 # reduce 347 omitted
3339
3340 # reduce 348 omitted
3341
3342 # reduce 349 omitted
3343
3344 # reduce 350 omitted
3345
3346 # reduce 351 omitted
3347
3348 # reduce 352 omitted
3349
3350module_eval <<'.,.,', 'lib/parser.y', 994
3351 def _reduce_353( val, _values, result )
3352 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true)
3353 result
3354 end
3355.,.,
3356
3357module_eval <<'.,.,', 'lib/parser.y', 998
3358 def _reduce_354( val, _values, result )
3359 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false)
3360 result
3361 end
3362.,.,
3363
3364module_eval <<'.,.,', 'lib/parser.y', 1002
3365 def _reduce_355( val, _values, result )
3366 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false)
3367 result
3368 end
3369.,.,
3370
3371module_eval <<'.,.,', 'lib/parser.y', 1006
3372 def _reduce_356( val, _values, result )
3373 result = OpenEHR::AM::Archetype::Constraint_Model::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true)
3374 result
3375 end
3376.,.,
3377
3378module_eval <<'.,.,', 'lib/parser.y', 1011
3379 def _reduce_357( val, _values, result )
3380 result = val[0]
3381 result
3382 end
3383.,.,
3384
3385module_eval <<'.,.,', 'lib/parser.y', 1015
3386 def _reduce_358( val, _values, result )
3387 raise 'Not implemented yet'
3388 result
3389 end
3390.,.,
3391
3392module_eval <<'.,.,', 'lib/parser.y', 1019
3393 def _reduce_359( val, _values, result )
3394 raise 'Not implemented yet'
3395 result
3396 end
3397.,.,
3398
3399 # reduce 360 omitted
3400
3401 # reduce 361 omitted
3402
3403 # reduce 362 omitted
3404
3405 # reduce 363 omitted
3406
3407 # reduce 364 omitted
3408
3409module_eval <<'.,.,', 'lib/parser.y', 1032
3410 def _reduce_365( val, _values, result )
3411 @in_interval = false
3412 @@log.info("#{__FILE__}:#{__LINE__}, #{val[0]}|#{val[2]} at #{@filename}")
3413 result
3414 end
3415.,.,
3416
3417 # reduce 366 omitted
3418
3419 # reduce 367 omitted
3420
3421 # reduce 368 omitted
3422
3423 # reduce 369 omitted
3424
3425 # reduce 370 omitted
3426
3427 # reduce 371 omitted
3428
3429 # reduce 372 omitted
3430
3431 # reduce 373 omitted
3432
3433module_eval <<'.,.,', 'lib/parser.y', 1054
3434 def _reduce_374( val, _values, result )
3435 @@log.info("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}")
3436 result
3437 end
3438.,.,
3439
3440 # reduce 375 omitted
3441
3442 def _reduce_none( val, _values, result )
3443 result
3444 end
3445
3446 end # class Parser
3447
3448 end # module ADL
3449
3450end # module OpenEHR
Note: See TracBrowser for help on using the repository browser.