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

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

refactored directory structure of adl_parser

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