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

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

trying to solve parsing problem on term coding

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