Changeset 320 for ruby/trunk
- Timestamp:
- Oct 15, 2009, 7:28:12 AM (14 years ago)
- Location:
- ruby/trunk/lib/adl_parser
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/adl_parser/lib/adl_scanner.rb
r318 r320 52 52 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE 53 53 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY 54 } 55 REGEX_PATTERN = { 56 :V_ISO8601_DURATION => /\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?T([0-9]+[hH])?([0-9]+[mM])?([0-9]+[sS])?|\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?/ #V_ISO8601_DURATION PnYnMnWnDTnnHnnMnnS 54 57 } 55 58 … … 203 206 when /\A[a-z]+:\/\/[^<>|\\{}^~"\[\] ]*/ #V_URI 204 207 yield :V_URI, $& 205 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 208 when /\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?T([0-9]+[hH])?([0-9]+[mM])?([0-9]+[sS])?/ #V_ISO8601_DURATION PnYnMnWnDTnnHnnMnnS 209 yield :V_ISO8601_DURATION, $& 210 when /\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?/ #V_ISO8601_DURATION PnYnMnWnDTnnHnnMnnS 206 211 yield :V_ISO8601_DURATION, $& 207 212 when /\A\S/ #UTF8CHAR … … 364 369 @in_interval = false 365 370 else 366 # @in_interval = false367 371 @in_interval = true 368 372 end … … 517 521 when /\A\*/ # * 518 522 yield :Star_code, :Star_code 519 when /\A\// # /520 yield :Slash_code, :Slash_code521 523 when /\A\^/ # ^ 522 524 yield :Caret_code, :Caret_code … … 539 541 when /\A\)/ # ) 540 542 yield :Right_parenthesis_code, :Right_parenthesis_code 541 when /\A\{\// #V_REGEXP 542 if @adl_type.last != :regexp 543 @in_regexp = true 544 @adl_type.push(:regexp) 545 yield :START_REGEXP_BLOCK, :START_REGEXP_BLOCK 546 else 547 raise 548 end 543 when /\A\// # / 544 # yield :Slash_code, :Slash_code 545 # when /\A\// #V_REGEXP / 546 assert_at(__FILE__,__LINE__){@adl_type.last != :regexp} 547 #@in_regexp = true 548 @adl_type.push(:regexp) 549 # yield :START_REGEXP_BLOCK, :START_REGEXP_BLOCK 550 yield :Slash_code, :Slash_code 551 552 # when /\A\{\// #V_REGEXP {/ 553 # if @adl_type.last != :regexp 554 # @in_regexp = true 555 # @adl_type.push(:regexp) 556 # yield :START_REGEXP_BLOCK, :START_REGEXP_BLOCK 557 # else 558 # assert_at(__FILE__,__LINE__){false} 559 # end 549 560 when /\A\{/ # { 550 561 @adl_type.push(:cadl) … … 563 574 yield :Question_mark_code, :Question_mark_code 564 575 when /\A\|/ # | 565 @@logger.debug("CADLScanner#scan: @in_interval = #{@in_interval} at #{@filename}:#{@lineno}")566 576 if @in_interval 567 577 @in_interval = false 568 578 else 569 # @in_interval = false570 579 @in_interval = true 571 580 end 581 @@logger.debug("CADLScanner#scan: @in_interval = #{@in_interval} at #{@filename}:#{@lineno}") 572 582 @@logger.debug("CADLScanner#scan: SYM_INTERVAL_DELIM at #{@filename}:#{@lineno}") 573 583 yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM … … 588 598 when /\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/ #V_GENERIC_TYPE_IDENTIFIER 589 599 yield :V_GENERIC_TYPE_IDENTIFIER, $& 590 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]/600 when /\A[yY][yY][yY][yY]-[mM?X][mM?X]-[dD?X][dD?X][Tt][hH?X][hH?X]:[mM?X][mM?X]:[sS?X][sS?X]/ 591 601 yield :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN, $& 592 602 when /\A[yY][yY][yY][yY]-[mM?X][mM?X]-[dD?X][dD?X]/ … … 594 604 when /\A[hH][hH]:[mM?X][mM?X]:[sS?X][sS?X]/ 595 605 yield :V_ISO8601_TIME_CONSTRAINT_PATTERN, $& 596 # 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 such as PnYnMnWnDTnnHnnMnnS 597 # yield :V_ISO8601_DURATION, $& 598 when /\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?T([0-9]+[hH])?([0-9]+[mM])?([0-9]+[sS])?/ #V_ISO8601_DURATION such as PnYnMnWnDTnnHnnMnnS 599 yield :V_ISO8601_DURATION, $& 600 when /\AP[yY]?[mM]?[wW]?[dD]?(T[hH]?[mM]?[sS]?)?/ #V_ISO8601_DURATION_CONSTRAINT_PATTERN 606 when /\AP[yY]?[mM]?[wW]?[dD]?T[hH]?[mM]?[sS]?/ #V_ISO8601_DURATION_CONSTRAINT_PATTERN 607 if $&.length == 2 608 case data 609 when /\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?T([0-9]+[hH])?([0-9]+[mM])?([0-9.]+[sS])?/ #V_ISO8601_DURATION PnYnMnWnDTnnHnnMnnS 610 yield :V_ISO8601_DURATION, $& 611 else 612 yield :V_ISO8601_DURATION_CONSTRAINT_PATTERN, $& 613 end 614 else 615 yield :V_ISO8601_DURATION_CONSTRAINT_PATTERN, $& 616 end 617 when /\AP[yY]?[mM]?[wW]?[dD]?/ #V_ISO8601_DURATION_CONSTRAINT_PATTERN 618 if $&.length == 1 619 case data 620 when /\AP([0-9]+[yY])?([0-9]+[mM])?([0-9]+[wW])?([0-9]+[dD])?/ #V_ISO8601_DURATION PnYnMnWnDTnnHnnMnnS 621 yield :V_ISO8601_DURATION, $& 622 else 623 yield :V_ISO8601_DURATION_CONSTRAINT_PATTERN, $& 624 end 625 else 626 yield :V_ISO8601_DURATION_CONSTRAINT_PATTERN, $& 627 end 628 when /\AP[yY]?[mM]?[wW]?[dD]?/ #V_ISO8601_DURATION_CONSTRAINT_PATTERN 601 629 yield :V_ISO8601_DURATION_CONSTRAINT_PATTERN, $& 602 when /\A[a-z ][a-zA-Z0-9_]*/630 when /\A[a-zA-Z][a-zA-Z0-9_]*/ 603 631 word = $&.dup 604 632 if RESERVED[word.downcase] 633 @@logger.debug("CADLScanner#scan: RESERVED = #{word} at #{@filename}:#{@lineno}") 605 634 yield RESERVED[word.downcase], RESERVED[word.downcase] 606 635 else … … 621 650 when /\Aa[ct][0-9.]+/ #V_LOCAL_CODE 622 651 yield :V_LOCAL_CODE, $& 623 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-]- 652 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})?/ #V_ISO8601_EXTENDED_DATE_TIME YYYY-MM-DDThh:mm:ss[,sss][Z|+/- -n-n-n-n-]- 653 yield :V_ISO8601_EXTENDED_DATE_TIME, $& 654 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9](Z|[+-][0-9]{4})?/ 655 yield :V_ISO8601_EXTENDED_DATE_TIME, $& 656 when /\A[[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9](Z|[+-][0-9]{4})?/ 624 657 yield :V_ISO8601_EXTENDED_DATE_TIME, $& 625 658 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] 626 659 yield :V_ISO8601_EXTENDED_TIME, $& 627 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 660 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]/ #V_ISO8601_EXTENDED_DATE YYYY-MM-DD 661 yield :V_ISO8601_EXTENDED_DATE, $& 662 when /\A[0-9]{4}-[0-1][0-9]/ #V_ISO8601_EXTENDED_DATE YYYY-MM-DD 628 663 yield :V_ISO8601_EXTENDED_DATE, $& 629 664 when /\A"((?:[^"\\]+|\\.)*)"/ #V_STRING … … 686 721 687 722 def scan(data) 688 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan_regexpat #{@filename}:#{@lineno}: data = #{data.inspect}")723 @@logger.debug("#{__FILE__}:#{__LINE__}: Entering RegexScanner::scan at #{@filename}:#{@lineno}: data = #{data.inspect}") 689 724 until data.nil? do 690 725 case @adl_type.last 691 726 when :regexp 692 727 case data 693 when /\A\/\}/ #V_REGEXP 694 if @adl_type.last == :regexp 695 @in_regexp = false 696 @adl_type.pop 697 yield :END_REGEXP_BLOCK, :END_REGEXP_BLOCK 698 else 699 raise 700 end 701 when /\A(.*)(\/\})/ #V_REGEXP 728 when /\A\// #V_REGEXP / 729 assert_at(__FILE__,__LINE__){@adl_type.last == :regexp} 730 #@in_regexp = false 731 @adl_type.pop 732 yield :END_REGEXP_BLOCK, :END_REGEXP_BLOCK 733 # when /\A\/\}/ #V_REGEXP / 734 # if @adl_type.last == :regexp 735 # @in_regexp = false 736 # @adl_type.pop 737 # yield :END_REGEXP_BLOCK, :END_REGEXP_BLOCK 738 # else 739 # raise 740 # end 741 # when /\A(.*)(\/\})/ #V_REGEXP /} 742 when /\A([^\/]+)/ #V_REGEXP 702 743 yield :REGEXP_BODY, $1 703 if @adl_type.last == :regexp 704 @in_regexp = false 705 @adl_type.pop 706 yield :END_REGEXP_BLOCK, :END_REGEXP_BLOCK 707 else 708 raise 709 end 710 else 711 raise data 744 # else 745 # raise "should not happen at #{data}" 712 746 end 713 747 data = $' # variable $' receives the string after the match … … 734 768 end 735 769 else 736 raise 770 raise 737 771 end 738 772 end -
ruby/trunk/lib/adl_parser/lib/parser.rb
r318 r320 27 27 class Parser < Racc::Parser 28 28 29 module_eval(<<'...end parser.y/module_eval...', 'parser.y', 12 83)29 module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1290) 30 30 31 31 def assert_at(file,line, message = "") … … 45 45 46 46 ###----------/* keywords */ --------------------------------------------- 47 @@adl_reserved = {48 'archetype' => :SYM_ARCHETYPE,49 'adl_version' => :SYM_ADL_VERSION,50 'controlled' => :SYM_IS_CONTROLLED,51 'specialize' => :SYM_SPECIALIZE,52 'concept' => :SYM_CONCEPT,53 'language' => :SYM_LANGUAGE,54 'description' => :SYM_DESCRIPTION,55 'definition' => :SYM_DEFINITION,56 'invariant' => :SYM_INVARIANT,57 'ontology' => :SYM_ONTOLOGY,58 'matches' => :SYM_MATCHES,59 'is_in' => :SYM_MATCHES,60 'occurrences' => :SYM_OCCURRENCES,61 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE62 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE63 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY64 }65 66 @@dadl_reserved = {67 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE68 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE69 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY70 }71 72 @@cadl_reserved = {73 'then' => :SYM_THEN, # [Tt][Hh][Ee][Nn]74 'else' => :SYM_ELSE, # [Ee][Ll][Ss][Ee]75 'and' => :SYM_AND, # [Aa][Nn][Dd]76 'or' => :SYM_OR, # [Oo][Rr]77 'xor' => :SYM_XOR, # [Xx][Oo][Rr]78 'not' => :SYM_NOT, # [Nn][Oo][Tt]79 'implies' => :SYM_IMPLIES, # [Ii][Mm][Pp][Ll][Ii][Ee][Ss]80 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE81 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE82 'forall' => :SYM_FORALL, # [Ff][Oo][Rr][_][Aa][Ll][Ll]83 'exists' => :SYM_EXISTS, # [Ee][Xx][Ii][Ss][Tt][Ss]84 'existence' => :SYM_EXISTENCE, # [Ee][Xx][Iu][Ss][Tt][Ee][Nn][Cc][Ee]85 'occurrences' => :SYM_OCCURRENCES, # [Oo][Cc][Cc][Uu][Rr][Rr][Ee][Nn][Cc][Ee][Ss]86 'cardinality' => :SYM_CARDINALITY, # [Cc][Aa][Rr][Dd][Ii][Nn][Aa][Ll][Ii][Tt][Yy]87 'ordered' => :SYM_ORDERED, # [Oo][Rr][Dd][Ee][Rr][Ee][Dd]88 'unordered' => :SYM_UNORDERED, # [Uu][Nn][Oo][Rr][Dd][Ee][Rr][Ee][Dd]89 'unique' => :SYM_UNIQUE, # [Uu][Nn][Ii][Qq][Uu][Ee]90 'matches' => :SYM_MATCHES, # [Mm][Aa][Tt][Cc][Hh][Ee][Ss]91 'is_in' => :SYM_MATCHES, # [Ii][Ss][_][Ii][Nn]92 'invariant' => :SYM_INVARIANT, # [Ii][Nn][Vv][Aa][Rr][Ii][Aa][Nn][Tt]93 'infinity' => :SYM_INFINITY, # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY94 'use_node' => :SYM_USE_NODE, # [Uu][Ss][Ee][_][Nn][Oo][Dd][Ee]95 'use_archetype' => :SYM_ALLOW_ARCHETYPE, # [Uu][Ss][Ee][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee]96 'allow_archetype' => :SYM_ALLOW_ARCHETYPE, # [Aa][Ll][Ll][Oo][Ww][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee]97 'include' => :SYM_INCLUDE, # [Ii][Nn][Cc][Ll][Uu][Dd][Ee]98 'exclude' => :SYM_EXCLUDE # [Ee][Xx][Cc][Ll][Uu][Dd][Ee]99 }47 ### @@adl_reserved = { 48 ### 'archetype' => :SYM_ARCHETYPE, 49 ### 'adl_version' => :SYM_ADL_VERSION, 50 ### 'controlled' => :SYM_IS_CONTROLLED, 51 ### 'specialize' => :SYM_SPECIALIZE, 52 ### 'concept' => :SYM_CONCEPT, 53 ### 'language' => :SYM_LANGUAGE, 54 ### 'description' => :SYM_DESCRIPTION, 55 ### 'definition' => :SYM_DEFINITION, 56 ### 'invariant' => :SYM_INVARIANT, 57 ### 'ontology' => :SYM_ONTOLOGY, 58 ### 'matches' => :SYM_MATCHES, 59 ### 'is_in' => :SYM_MATCHES, 60 ### 'occurrences' => :SYM_OCCURRENCES, 61 ### 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE 62 ### 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE 63 ### 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY 64 ### } 65 66 ### @@dadl_reserved = { 67 ### 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE 68 ### 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE 69 ### 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY 70 ### } 71 72 ### @@cadl_reserved = { 73 ### 'then' => :SYM_THEN, # [Tt][Hh][Ee][Nn] 74 ### 'else' => :SYM_ELSE, # [Ee][Ll][Ss][Ee] 75 ### 'and' => :SYM_AND, # [Aa][Nn][Dd] 76 ### 'or' => :SYM_OR, # [Oo][Rr] 77 ### 'xor' => :SYM_XOR, # [Xx][Oo][Rr] 78 ### 'not' => :SYM_NOT, # [Nn][Oo][Tt] 79 ### 'implies' => :SYM_IMPLIES, # [Ii][Mm][Pp][Ll][Ii][Ee][Ss] 80 ### 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE 81 ### 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE 82 ### 'forall' => :SYM_FORALL, # [Ff][Oo][Rr][_][Aa][Ll][Ll] 83 ### 'exists' => :SYM_EXISTS, # [Ee][Xx][Ii][Ss][Tt][Ss] 84 ### 'existence' => :SYM_EXISTENCE, # [Ee][Xx][Iu][Ss][Tt][Ee][Nn][Cc][Ee] 85 ### 'occurrences' => :SYM_OCCURRENCES, # [Oo][Cc][Cc][Uu][Rr][Rr][Ee][Nn][Cc][Ee][Ss] 86 ### 'cardinality' => :SYM_CARDINALITY, # [Cc][Aa][Rr][Dd][Ii][Nn][Aa][Ll][Ii][Tt][Yy] 87 ### 'ordered' => :SYM_ORDERED, # [Oo][Rr][Dd][Ee][Rr][Ee][Dd] 88 ### 'unordered' => :SYM_UNORDERED, # [Uu][Nn][Oo][Rr][Dd][Ee][Rr][Ee][Dd] 89 ### 'unique' => :SYM_UNIQUE, # [Uu][Nn][Ii][Qq][Uu][Ee] 90 ### 'matches' => :SYM_MATCHES, # [Mm][Aa][Tt][Cc][Hh][Ee][Ss] 91 ### 'is_in' => :SYM_MATCHES, # [Ii][Ss][_][Ii][Nn] 92 ### 'invariant' => :SYM_INVARIANT, # [Ii][Nn][Vv][Aa][Rr][Ii][Aa][Nn][Tt] 93 ### 'infinity' => :SYM_INFINITY, # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY 94 ### 'use_node' => :SYM_USE_NODE, # [Uu][Ss][Ee][_][Nn][Oo][Dd][Ee] 95 ### 'use_archetype' => :SYM_ALLOW_ARCHETYPE, # [Uu][Ss][Ee][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee] 96 ### 'allow_archetype' => :SYM_ALLOW_ARCHETYPE, # [Aa][Ll][Ll][Oo][Ww][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee] 97 ### 'include' => :SYM_INCLUDE, # [Ii][Nn][Cc][Ll][Uu][Dd][Ee] 98 ### 'exclude' => :SYM_EXCLUDE # [Ee][Xx][Cc][Ll][Uu][Dd][Ee] 99 ### } 100 100 101 101 … … 152 152 153 153 racc_action_table = [ 154 57 5, 474, 143, 163, 468, 593, 466, 433, 29, 464,155 129, 462, 497, 577, 229, 476, 58, 137, 67, 213,156 381, 335, 330, 564, 152, 154, 25, 26, 529, 125,157 127, 113, 72, 495, 189, -374, 30, 516, 518, 36,158 521, 523, 214, 520, 443, 36, 60, 230, 144, 152,159 154, 431, 48, 50, 274, 110, 435, 80, 83, 86,160 193, 157, 96, 300, 306, 115, 113, 115, 117, 119,161 5 38, 529, 119, 119, 117, 72, 115, 113, 125, 127,162 516, 518, 78, 521, 523, 317, 157, 272, 275, 276,163 540, 162, 117, 288, 630, 48, 50, 274, 149, 150,164 8 0, 83, 86, 193, 119, 96, 300, 306, 113, 113,165 1 15, 117, 119, 538, 101, 117, 571, 35, 231, 513,166 167, 574, 510, 149, 150, 511, 512, 491, 152, 154,167 272, 275, 276, 540, 461, 9, 288, 139, 101, 332,168 4 93, 133, 74, 326, 327, 48, 50, 96, 109, 482,169 36, 80, 83, 86, 573, 11, 96, 98, 100, 48,170 50, 139, 101, 98, 100, 157, 90, 94, 48, 50,171 1 52, 154, 483, 78, 72, 80, 83, 86, 458, 119,172 9 6, 98, 100, 599, 113, 70, 383, 152, 154, 134,173 90, 94, 326, 327, 48, 50, 96, 78, 115, 80,174 83, 86, 149, 150, 96, 98, 100, 157, 189, 152,175 154, 250, 155, 158, 90, 94, 148, 601, 602, 151,176 15 3, 78, 152, 154, 157, 155, 158, 152, 154, 148,177 152, 154, 151, 153, 218, 80, 385, 386, 237, 456,178 80, 385, 386, 237, 149, 150, 157, 1, 341, 248,179 261, 172, 22, 254, 338, 379, 258, 260, 145, 157,180 1 17, 149, 150, 146, 157, 115, 4, 157, 119, -373,181 23, 80, 83, 86, 218, 247, 96, 269, 156, 391,182 218, 238, 570, 149, 150, 159, 218, 80, 385, 386,183 160, 156, 218, 78, 417, 241, 149, 150, 80, 83,184 86, 149, 150, 96, 149, 150, 102, 113, 115, 117,185 119, 80, 83, 86, 239, 218, 96, 80, 83, 86,186 392, 218, 96, 80, 83, 86, 393, 218, 96, 80,187 83, 86, 394, 78, 96, 171, 168, 169, 170, 78,188 218, 102, 395, 326, 327, 78, 396, 96, 48, 50,189 101, 78, 80, 83, 86, 125, 127, 96, 80, 83,190 86, 397, 108, 96, 80, 83, 86, 398, 218, 96,191 67, 628, 629, 139, 78, 218, 498, 80, 83, 86,192 78, 399, 96, 48, 50, 400, 78, 80, 83, 86,193 401, 36, 96, 98, 100, 489, 326, 327, 101, 78,194 9 6, 402, 90, 94, 267, 80, 83, 86, 403, 78,195 96, 404, 80, 83, 86, 268, 101, 96, 16, 41,196 17, 70, 428, 429, 80, 385, 386, 78, 269, 35,197 48, 50, 426, 427, 78, 80, 83, 86, 405, 139,198 96, 98, 100, 101, 326, 327, 407, 16, 96, 17,199 90, 94, 408, 80, 83, 86, 409, 78, 96, 98,200 100, 101, 36, 321, 211, 322, 139, 312, 90, 94,201 246, 48, 50, 245, 35, 78, 414, 80, 385, 386,202 80, 83, 86, 146, 139, 96, 98, 100, 101, 343,203 344, 413, 385, 386, 160, 90, 94, 244, 80, 83,204 86, 251, 78, 96, 98, 100, 101, 36, 383, 55,205 472, 139, 252, 90, 94, 263, 48, 50, 264, 35,206 78, 171, 168, 169, 170, 80, 83, 86, 265, 70,207 96, 98, 100, 101, 171, 168, 169, 170, 48, 50,208 90, 94, 119, 80, 83, 86, 243, 78, 96, 98,209 100, 101, 36, 326, 327, 242, 139, 96, 90, 94,210 241, 48, 50, 424, 425, 78, 171, 168, 169, 170,211 80, 83, 86, 436, 70, 96, 98, 100, 437, 101,212 80, 385, 386, 48, 50, 90, 94, 438, 80, 83,213 86, 414, 78, 96, 98, 100, 439, 101, 414, 610,214 611, 612, 70, 90, 94, 218, 413, 385, 386, 440,215 78, 48, 50, 80, 385, 386, 80, 83, 86, 441,216 7 0, 96, 98, 100, 171, 168, 169, 170, 240, 48,217 50, 90, 94, 444, 80, 83, 86, 445, 78, 96,218 9 8, 100, 80, 83, 86, 351, 352, 96, 446, 90,219 94, 447, 325, 448, 326, 327, 78, 274, 96, 449,220 80, 83, 86, 193, 78, 96, 300, 306, 450, 113,221 1 15, 117, 119, 80, 83, 86, 353, 354, 96, 80,222 385, 386, 113, 115, 117, 119, 389, 80, 385, 386,223 272, 275, 276, -103, 355, 356, 288, 175, 422, 423,224 80, 83, 86, 193, 451, 96, 125, 127, 109, 113,225 115, 117, 119, 189, 122, 110, 363, 364, 80, 83,226 86, 420, 421, 96, 125, 127, 109, 113, 115, 117,227 1 19, 452, 122, 80, 83, 86, 418, 419, 96, 80,228 385, 386, 113, 115, 117, 119, 80, 83, 86, 377,229 378, 96, 317, 312, 453, 113, 115, 117, 119, 80,230 83, 86, 454, 455, 96, 239, 145, 159, 113, 115,231 1 17, 119, 171, 168, 169, 170, 171, 168, 169, 170,232 1 71, 168, 169, 170, 171, 168, 169, 170, 216, 139,233 1 44, 137, 212, 208, 471, 266, 473, 102, 165, 478,234 480, 481, 1 62, 484, 485, 486, 147, 139, 138, 135,235 36, 131, 68, 500, 113, 502, 115, 504, 117, 506,236 1 19, 117, 509, 35, 514, 515, 60, 543, 57, 545,237 546, 56, 548, 113, 550, 115, 552, 117, 554, 119,238 267, 557, 558, 559, 560, 561, 562, 119, 119, 119,239 1 19, 563, 249, 162, -103, 568, 115, 53, 34, 172,240 268, 31, 579, 28, 581, 582, 583, 584, 585, 586,241 587, 113, 590, 591, 592, 24, 595, 596, 269, 21,242 109, 603, 604, 605, 606, 78, 570, 608, 270, 311,243 61 8, 619, 620, 621, 15, 623, 14, 624, 12, 626,244 627, 320, 8, 7, 580]154 574, 473, 149, 151, 468, 594, 462, 163, 1, 466, 155 64, 464, 213, 576, 12, 371, 325, 158, 264, 149, 156 151, 596, 159, 568, 259, 497, 103, 6, 529, 187, 157 48, 146, 71, 493, 14, 214, 541, 516, 153, 519, 158 521, 76, 517, 513, 149, 151, 510, 435, 146, 511, 159 512, 42, 44, 310, 121, 153, 78, 81, 83, 191, 160 237, 93, 300, 305, 599, 103, 105, 107, 109, 537, 161 529, 103, 109, 146, 71, 145, 107, 105, 541, 516, 162 153, 519, 521, 316, 109, 307, 309, 271, 536, 161, 163 105, 283, 145, 42, 44, 310, 149, 151, 78, 81, 164 83, 191, 109, 93, 300, 305, 109, 103, 105, 107, 165 109, 537, 149, 151, 149, 151, 475, 145, 149, 151, 166 78, 375, 376, 570, 451, 146, 458, 307, 309, 271, 167 536, 433, 153, 283, 491, 149, 151, 495, 154, 155, 168 460, 146, 147, 146, 417, 148, 150, 146, 153, 419, 169 153, 237, 149, 151, 153, 154, 155, 333, 133, 147, 170 75, 156, 148, 150, 146, 387, 157, 386, 247, 145, 171 109, 153, 378, 379, 42, 44, 93, 573, 115, 117, 172 99, 146, 78, 375, 376, 145, 210, 145, 153, 107, 173 103, 145, 71, 630, 76, 107, 34, 378, 379, 449, 174 103, 93, 98, 152, 238, 134, 105, 229, 145, 572, 175 231, 42, 44, 99, 499, 16, 78, 81, 83, 187, 176 152, 93, 95, 97, 172, 145, 501, 76, 48, 120, 177 99, 89, 92, 17, 246, 141, 258, 42, 44, 251, 178 230, -374, 254, 255, 76, 123, 78, 375, 376, 78, 179 81, 83, 141, 169, 93, 95, 97, 167, 168, 165, 180 166, 78, 375, 376, 89, 92, 78, 81, 83, 35, 181 -373, 93, 95, 97, 378, 379, 99, 24, 93, 34, 182 58, 89, 92, 78, 81, 83, 482, 171, 93, 328, 183 76, 331, 103, 105, 107, 109, 56, 323, 98, 391, 184 105, 99, 392, 107, 34, 25, 120, 42, 44, 483, 185 393, 48, 78, 81, 83, 76, 127, 93, 95, 97, 186 42, 44, 394, 98, 48, 395, 99, 89, 92, 95, 187 97, 396, 42, 44, 337, 338, 48, 78, 81, 83, 188 76, 127, 93, 95, 97, 42, 44, 102, 141, 29, 189 30, 99, 89, 92, 373, 64, 472, 42, 44, 610, 190 611, 612, 78, 81, 83, 76, 397, 93, 95, 97, 191 218, 398, 389, 141, 399, 48, 99, 89, 92, 115, 192 117, 400, 42, 44, 76, 142, 143, 78, 81, 83, 193 76, 401, 93, 95, 97, 218, 378, 379, 141, 262, 194 93, 99, 89, 92, 601, 602, 78, 81, 83, 76, 195 402, 93, 78, 81, 83, 76, 403, 93, 95, 97, 196 218, 378, 379, 141, 263, 93, 99, 89, 92, 264, 197 414, 78, 81, 83, 76, 404, 93, 78, 81, 83, 198 76, 266, 93, 95, 97, 411, 375, 376, 141, 335, 199 336, 99, 89, 92, 267, 414, 78, 81, 83, 42, 200 44, 93, 78, 81, 83, 76, 405, 93, 95, 97, 201 78, 375, 376, 98, 54, 406, 99, 89, 92, 20, 202 414, 21, 42, 44, 34, 430, 431, 78, 81, 83, 203 76, 317, 93, 95, 97, 411, 375, 376, 141, 345, 204 346, 99, 89, 92, 384, 409, 378, 379, 410, 20, 205 93, 21, 78, 81, 83, 76, 48, 93, 95, 97, 206 245, 218, 244, 98, 243, 42, 44, 89, 92, 78, 207 375, 376, 42, 44, 99, 76, 242, 78, 81, 83, 208 347, 348, 93, 95, 97, 373, 218, 260, 76, 78, 209 375, 376, 89, 92, 218, 261, 98, 78, 81, 83, 210 76, 262, 93, 263, 218, 42, 44, 264, 76, 241, 211 78, 81, 83, 240, 218, 93, 95, 97, 76, 436, 212 218, 437, 78, 81, 83, 89, 92, 93, 76, 218, 213 78, 81, 83, 438, 76, 93, 78, 375, 376, 218, 214 78, 81, 83, 76, 439, 93, 218, 78, 375, 376, 215 78, 81, 83, 76, 440, 93, 78, 81, 83, 441, 216 76, 93, 428, 429, 442, 78, 81, 83, 378, 379, 217 93, 443, 93, 426, 427, 78, 81, 83, 361, 362, 218 93, 444, 78, 81, 83, 310, 445, 93, 78, 81, 219 83, 191, 446, 93, 300, 305, 447, 103, 105, 107, 220 109, 78, 81, 83, 363, 364, 93, 424, 425, 239, 221 103, 105, 107, 109, 422, 423, 216, 307, 309, 271, 222 -103, 420, 421, 283, 206, 316, 317, 78, 81, 83, 223 191, 452, 93, 115, 117, 120, 103, 105, 107, 109, 224 187, 112, 121, 628, 629, 78, 81, 83, 115, 117, 225 93, 115, 117, 120, 103, 105, 107, 109, 453, 112, 226 78, 81, 83, 454, 455, 93, 456, 457, 156, 103, 227 105, 107, 109, 78, 81, 83, 158, 157, 93, 159, 228 141, 172, 103, 105, 107, 109, 78, 81, 83, 143, 229 212, 93, 127, 175, 470, 103, 105, 107, 109, 167, 230 168, 165, 166, 167, 168, 165, 166, 167, 168, 165, 231 166, 167, 168, 165, 166, 381, 78, 375, 376, 167, 232 168, 165, 166, 167, 168, 165, 166, 167, 168, 165, 233 166, 167, 168, 165, 166, 265, 162, 161, 477, 478, 234 480, 481, 144, 484, 485, 486, 103, 488, 105, 266, 235 141, 137, 136, 48, 125, 502, 107, 504, 109, 506, 236 109, 508, 68, 67, 514, 515, 66, 543, 34, 545, 237 546, 547, 103, 549, 105, 551, 107, 553, 109, 555, 238 267, 557, 58, 559, 560, 561, 562, 109, 109, 109, 239 109, 563, 564, -103, 567, 53, 107, 169, 268, 50, 240 32, 578, 579, 105, 581, 582, 583, 584, 585, 586, 241 587, 28, 590, 591, 592, 593, 27, 248, 269, 103, 242 270, 603, 604, 605, 606, 76, 568, 608, 311, 18, 243 617, 619, 620, 621, 15, 623, 10, 9, 625, 626, 244 627, 320, 8, 7, 161 ] 245 245 246 246 racc_action_check = [ 247 53 5, 402, 82, 90, 398, 569, 397, 354, 21, 396,248 61, 395, 427, 535, 162, 403, 42, 70, 49, 143,249 2 64, 247, 243, 515, 217, 217, 18, 18, 535, 243,250 243, 247, 535, 425, 264, 70, 21, 535, 535, 49,251 53 5, 535, 143, 482, 364, 42, 61, 162, 82, 228,252 228, 352, 535, 535, 535, 402, 356, 535, 535, 535,253 535, 217, 535, 535, 535, 354, 535, 535, 535, 535,254 535, 482, 427, 398, 397, 482, 396, 395, 403, 403,255 482, 482, 90, 482, 482, 482, 228, 535, 535, 535,256 535, 569, 425, 535, 623, 482, 482, 482, 217, 217,257 482, 482, 4 82, 482, 364, 482, 482, 482, 352, 482,258 482, 482, 482, 482, 623, 356, 523, 518, 165, 471,259 94, 531, 471, 228, 228, 471, 471, 421, 225, 225,260 482, 482, 482, 482, 394, 4, 482, 623, 165, 245,261 423, 68, 53, 417, 417, 521, 521, 417, 245, 408,262 518, 623, 623, 623, 531, 4, 623, 623, 623, 518,263 518, 165, 53, 94, 94, 225, 623, 623, 523, 523,264 2 23, 223, 408, 623, 53, 165, 165, 165, 392, 471,265 165, 165, 165, 574, 421, 53, 265, 221, 221, 68,266 165, 165, 394, 394, 53, 53, 394, 165, 423, 53,267 53, 53, 225, 225, 53, 53, 53, 223, 266, 85,268 85, 188, 85, 85, 53, 53, 85, 578, 578, 85,269 8 5, 53, 173, 173, 221, 173, 173, 319, 319, 173,270 226, 226, 173, 173, 156, 392, 392, 392, 173, 378,271 574, 574, 574, 319, 223, 223, 85, 0, 252, 186,272 193, 97, 14, 193, 249, 263, 193, 193, 83, 173,273 252, 221, 221, 83, 319, 249, 0, 226, 263, 97,274 14, 156, 156, 156, 157, 185, 156, 522, 85, 270,275 158, 174, 522, 85, 85, 86, 155, 378, 378, 378,276 86, 173, 154, 156, 344, 273, 173, 173, 193, 193,277 193, 319, 319, 193, 226, 226, 57, 193, 193, 193,278 193, 157, 157, 157, 274, 153, 157, 158, 158, 158,279 277, 152, 158, 155, 155, 155, 278, 218, 155, 154,280 154, 154, 280, 157, 154, 174, 174, 174, 174, 158,281 1 51, 131, 283, 344, 344, 155, 286, 344, 57, 57,282 167, 154, 153, 153, 153, 240, 240, 153, 152, 152,283 152, 290, 59, 152, 218, 218, 218, 293, 150, 218,284 59, 621, 621, 167, 153, 149, 429, 151, 151, 151,285 152, 296, 151, 131, 131, 298, 218, 167, 167, 167,286 300, 59, 167, 167, 167, 419, 489, 489, 81, 151,287 4 89, 301, 167, 167, 303, 150, 150, 150, 305, 167,288 150, 306, 149, 149, 149, 308, 101, 149, 26, 28,289 26, 81, 350, 350, 429, 429, 429, 150, 309, 28,290 81, 81, 349, 349, 149, 81, 81, 81, 311, 101,291 81, 81, 81, 168, 419, 419, 312, 11, 419, 11,292 81, 81, 314, 101, 101, 101, 315, 81, 101, 101,293 101, 169, 28, 239, 135, 239, 168, 318, 101, 101,294 184, 28, 28, 183, 135, 101, 320, 267, 267, 267,295 168, 168, 168, 326, 169, 168, 168, 168, 170, 253,296 253, 320, 320, 320, 327, 168, 168, 182, 169, 169,297 169, 190, 168, 169, 169, 169, 625, 135, 400, 34,298 400, 170, 191, 169, 169, 195, 135, 135, 198, 34,299 1 69, 95, 95, 95, 95, 170, 170, 170, 200, 625,300 170, 170, 170, 171, 236, 236, 236, 236, 625, 625,301 170, 170, 251, 625, 625, 625, 181, 170, 625, 625,302 625, 608, 34, 268, 268, 180, 171, 268, 625, 625,303 1 78, 34, 34, 348, 348, 625, 233, 233, 233, 233,304 171, 171, 171, 357, 608, 171, 171, 171, 358, 613,305 456, 456, 456, 608, 608, 171, 171, 359, 608, 608,306 608, 563, 171, 608, 608, 608, 360, 618, 485, 604,307 604, 604, 613, 608, 608, 148, 563, 563, 563, 361,308 608, 613, 613, 485, 485, 485, 613, 613, 613, 362,309 618, 613, 613, 613, 235, 235, 235, 235, 177, 618,310 618, 613, 613, 365, 618, 618, 618, 366, 613, 618,311 618, 618, 148, 148, 148, 255, 255, 148, 367, 618,312 618, 368, 241, 369, 241, 241, 618, 213, 241, 370,313 213, 2 13, 213, 213, 148, 213, 213, 213, 371, 213,314 2 13, 213, 213, 261, 261, 261, 256, 256, 261, 498,315 498, 498, 261, 261, 261, 261, 269, 269, 269, 269,316 213, 213, 213, 102, 257, 257, 213, 102, 347, 347,317 1 02, 102, 102, 102, 372, 102, 102, 102, 102, 102,318 102, 102, 102, 102, 102, 60, 259, 259, 60, 60,319 60, 346, 346, 60, 60, 60, 60, 60, 60, 60,320 60, 373, 60, 254, 254, 254, 345, 345, 254, 573,321 573, 573, 254, 254, 254, 254, 260, 260, 260, 262,322 262, 260, 216, 216, 374, 260, 260, 260, 260, 258,323 2 58, 258, 375, 376, 258, 175, 385, 386, 258, 258,324 2 58, 258, 616, 616, 616, 616, 234, 234, 234, 234,325 232, 232, 232, 232, 631, 631, 631, 631, 147, 144,326 140, 139, 138, 112, 399, 201, 401, 106, 91, 404,327 40 6, 407, 88, 411, 413, 416, 84, 78, 72, 69,328 67, 63, 52, 430, 431, 432, 433, 434, 435, 442,329 443, 248, 457, 47, 480, 481, 46, 483, 40, 487,330 48 8, 36, 490, 491, 492, 493, 494, 495, 496, 497,331 20 3, 499, 501, 503, 505, 507, 508, 510, 511, 512,332 513, 514, 187, 517, 35, 520, 246, 33, 27, 524,333 205, 24, 540, 20, 543, 547, 549, 551, 553, 555,334 55 6, 244, 564, 565, 567, 16, 570, 572, 206, 13,335 2 42, 580, 588, 589, 590, 594, 598, 603, 212, 214,336 609, 610, 611, 612, 8, 615, 6, 617, 5, 619,337 620, 230, 3, 2, 54 1]247 532, 401, 220, 220, 398, 569, 395, 89, 0, 397, 248 41, 396, 142, 532, 6, 259, 242, 83, 518, 228, 249 228, 571, 83, 518, 193, 427, 242, 0, 532, 259, 250 41, 220, 532, 423, 6, 142, 532, 532, 220, 532, 251 532, 89, 482, 470, 319, 319, 470, 348, 228, 470, 252 470, 532, 532, 532, 401, 228, 532, 532, 532, 532, 253 319, 532, 532, 532, 573, 532, 532, 532, 532, 532, 254 482, 395, 398, 319, 482, 220, 397, 396, 482, 482, 255 319, 482, 482, 482, 427, 532, 532, 532, 532, 569, 256 423, 532, 228, 482, 482, 482, 221, 221, 482, 482, 257 482, 482, 470, 482, 482, 482, 348, 482, 482, 482, 258 482, 482, 227, 227, 223, 223, 402, 319, 225, 225, 259 573, 573, 573, 521, 364, 221, 392, 482, 482, 482, 260 482, 346, 221, 482, 421, 173, 173, 425, 173, 173, 261 394, 227, 173, 223, 336, 173, 173, 225, 227, 338, 262 223, 173, 80, 80, 225, 80, 80, 248, 68, 80, 263 53, 81, 80, 80, 173, 267, 81, 267, 185, 221, 264 248, 173, 364, 364, 521, 521, 364, 527, 402, 402, 265 53, 80, 392, 392, 392, 227, 136, 223, 80, 346, 266 421, 225, 53, 623, 53, 425, 136, 394, 394, 362, 267 336, 394, 53, 173, 174, 68, 338, 161, 173, 527, 268 162, 53, 53, 623, 429, 10, 53, 53, 53, 261, 269 80, 53, 53, 53, 98, 80, 431, 623, 136, 268, 270 162, 53, 53, 10, 184, 623, 191, 136, 136, 191, 271 161, 98, 191, 191, 162, 59, 362, 362, 362, 623, 272 623, 623, 162, 91, 623, 623, 623, 174, 174, 174, 273 174, 429, 429, 429, 623, 623, 162, 162, 162, 27, 274 91, 162, 162, 162, 431, 431, 74, 18, 431, 27, 275 59, 162, 162, 191, 191, 191, 410, 92, 191, 244, 276 74, 247, 191, 191, 191, 191, 33, 240, 74, 270, 277 244, 624, 272, 247, 516, 18, 240, 74, 74, 410, 278 273, 27, 74, 74, 74, 624, 125, 74, 74, 74, 279 27, 27, 275, 624, 33, 278, 171, 74, 74, 92, 280 92, 281, 624, 624, 250, 250, 516, 624, 624, 624, 281 171, 67, 624, 624, 624, 516, 516, 57, 171, 22, 282 22, 168, 624, 624, 400, 57, 400, 125, 125, 605, 283 605, 605, 171, 171, 171, 168, 285, 171, 171, 171, 284 152, 288, 269, 168, 291, 57, 167, 171, 171, 269, 285 269, 293, 67, 67, 152, 77, 77, 168, 168, 168, 286 167, 295, 168, 168, 168, 155, 451, 451, 167, 297, 287 451, 166, 168, 168, 577, 577, 152, 152, 152, 155, 288 299, 152, 167, 167, 167, 166, 300, 167, 167, 167, 289 154, 501, 501, 166, 302, 501, 165, 167, 167, 303, 290 563, 155, 155, 155, 154, 305, 155, 166, 166, 166, 291 165, 308, 166, 166, 166, 563, 563, 563, 165, 249, 292 249, 608, 166, 166, 310, 484, 154, 154, 154, 519, 293 519, 154, 165, 165, 165, 608, 311, 165, 165, 165, 294 484, 484, 484, 608, 32, 312, 99, 165, 165, 14, 295 320, 14, 608, 608, 32, 344, 344, 608, 608, 608, 296 99, 314, 608, 608, 608, 320, 320, 320, 99, 252, 297 252, 613, 608, 608, 266, 317, 266, 266, 318, 30, 298 266, 30, 99, 99, 99, 613, 32, 99, 99, 99, 299 183, 218, 182, 613, 181, 32, 32, 99, 99, 262, 300 262, 262, 613, 613, 617, 218, 180, 613, 613, 613, 301 253, 253, 613, 613, 613, 260, 153, 195, 617, 572, 302 572, 572, 613, 613, 145, 196, 617, 218, 218, 218, 303 153, 198, 218, 200, 146, 617, 617, 201, 145, 179, 304 617, 617, 617, 178, 147, 617, 617, 617, 146, 349, 305 151, 350, 153, 153, 153, 617, 617, 153, 147, 149, 306 145, 145, 145, 351, 151, 145, 449, 449, 449, 150, 307 146, 146, 146, 149, 352, 146, 148, 499, 499, 499, 308 147, 147, 147, 150, 353, 147, 151, 151, 151, 354, 309 148, 151, 343, 343, 355, 149, 149, 149, 263, 263, 310 149, 356, 263, 342, 342, 150, 150, 150, 256, 256, 311 150, 357, 148, 148, 148, 213, 358, 148, 213, 213, 312 213, 213, 359, 213, 213, 213, 360, 213, 213, 213, 313 213, 255, 255, 255, 257, 257, 255, 341, 341, 177, 314 255, 255, 255, 255, 340, 340, 144, 213, 213, 213, 315 127, 339, 339, 213, 127, 216, 216, 127, 127, 127, 316 127, 365, 127, 127, 127, 127, 127, 127, 127, 127, 317 127, 127, 58, 621, 621, 58, 58, 58, 265, 265, 318 58, 58, 58, 58, 58, 58, 58, 58, 366, 58, 319 254, 254, 254, 367, 368, 254, 369, 370, 375, 254, 320 254, 254, 254, 258, 258, 258, 376, 378, 258, 379, 321 143, 141, 258, 258, 258, 258, 251, 251, 251, 140, 322 137, 251, 131, 119, 399, 251, 251, 251, 251, 236, 323 236, 236, 236, 235, 235, 235, 235, 234, 234, 234, 324 234, 232, 232, 232, 232, 264, 264, 264, 264, 90, 325 90, 90, 90, 616, 616, 616, 616, 233, 233, 233, 326 233, 631, 631, 631, 631, 203, 86, 84, 403, 404, 327 408, 409, 79, 411, 413, 416, 417, 418, 419, 204, 328 76, 71, 69, 64, 61, 432, 433, 434, 435, 448, 329 246, 450, 52, 49, 480, 481, 48, 483, 40, 487, 330 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 331 206, 500, 39, 503, 505, 507, 509, 510, 511, 512, 332 513, 514, 515, 34, 517, 31, 243, 520, 207, 28, 333 26, 536, 538, 241, 543, 548, 550, 552, 554, 556, 334 558, 20, 564, 565, 566, 568, 19, 189, 208, 239, 335 212, 579, 588, 589, 590, 595, 597, 603, 214, 11, 336 609, 610, 611, 612, 8, 615, 5, 4, 618, 619, 337 620, 230, 3, 2, 540 ] 338 338 339 339 racc_action_pointer = [ 340 246, nil, 884, 902, 134, 880, 869, nil, 894, nil, 341 nil, 423, nil, 851, 251, nil, 867, nil, 4, nil, 342 833, 7, nil, nil, 836, nil, 394, 827, 418, nil, 343 nil, nil, nil, 825, 508, 803, 830, nil, nil, nil, 344 820, nil, 1, nil, nil, nil, 775, 812, nil, -5, 345 nil, nil, 764, 141, nil, nil, nil, 295, nil, 347, 346 660, -5, nil, 803, nil, nil, nil, 766, 140, 759, 347 -12, nil, 774, nil, nil, nil, nil, nil, 763, nil, 348 nil, 377, -32, 200, 772, 203, 227, nil, 715, nil, 349 2, 751, nil, nil, 99, 445, nil, 222, nil, nil, 350 nil, 395, 642, nil, nil, nil, 786, nil, nil, nil, 351 nil, nil, 741, nil, nil, nil, nil, nil, nil, nil, 340 7, nil, 884, 902, 879, 869, 13, nil, 894, nil, 341 214, 861, nil, nil, 455, nil, nil, nil, 276, 846, 342 863, nil, 327, nil, nil, nil, 829, 268, 834, nil, 343 485, 823, 473, 281, 803, nil, nil, nil, nil, 792, 344 817, -13, nil, nil, nil, nil, nil, nil, 825, 815, 345 nil, nil, 775, 159, nil, nil, nil, 332, 648, 230, 346 nil, 806, nil, nil, 770, nil, nil, 330, 157, 763, 347 nil, 777, nil, nil, 255, nil, 767, 351, nil, 768, 348 146, 104, nil, -40, 712, nil, 750, nil, nil, 6, 349 704, 224, 266, nil, nil, nil, nil, nil, 195, 455, 352 350 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 353 nil, 330, nil, nil, nil, 463, nil, nil, 757, 762, 354 710, nil, nil, 7, 745, nil, nil, 776, 584, 354, 355 347, 319, 300, 294, 271, 265, 213, 253, 259, nil, 356 nil, nil, 13, nil, nil, 117, nil, 329, 422, 440, 357 467, 512, nil, 216, 259, 709, nil, 572, 504, nil, 358 499, 490, 441, 417, 414, 219, 193, 796, 196, nil, 359 445, 456, nil, 240, nil, 459, nil, nil, 462, nil, 360 472, 739, nil, 784, nil, 804, 822, nil, nil, nil, 361 nil, nil, 852, 602, 853, nil, 709, 18, 306, nil, 362 nil, 181, nil, 164, nil, 122, 224, nil, 43, nil, 363 889, nil, 704, 490, 700, 548, 458, nil, nil, 408, 364 291, 595, 814, -35, 804, 82, 788, -36, 752, 197, 365 nil, 472, 191, 428, 675, 584, 615, 633, 701, 655, 366 688, 615, 688, 198, -37, 131, 137, 419, 494, 629, 367 242, nil, nil, 239, 258, nil, nil, 297, 312, nil, 368 309, nil, nil, 319, nil, nil, 323, nil, nil, nil, 369 338, nil, nil, 344, nil, nil, 301, nil, 329, nil, 370 334, 378, nil, 348, nil, 385, 355, nil, 359, 372, 371 nil, 401, 364, nil, 418, 442, nil, nil, 423, 221, 372 433, nil, nil, nil, nil, nil, 420, 431, nil, nil, 351 nil, nil, nil, nil, nil, nil, nil, nil, nil, 702, 352 nil, nil, nil, nil, nil, 305, nil, 630, nil, nil, 353 nil, 741, nil, nil, nil, nil, 185, 715, nil, nil, 354 714, 712, 0, 697, 664, 533, 543, 553, 585, 568, 355 578, 559, 349, 525, 399, 374, nil, nil, nil, nil, 356 nil, 206, 209, nil, nil, 405, 380, 355, 330, nil, 357 nil, 305, nil, 129, 182, nil, nil, 614, 518, 514, 358 481, 469, 467, 505, 179, 113, nil, nil, nil, 822, 359 nil, 226, nil, -31, nil, 492, 500, nil, 506, nil, 360 508, 512, nil, 740, 754, nil, 785, 803, 823, nil, 361 nil, nil, 844, 591, 852, nil, 643, nil, 500, nil, 362 -4, 90, nil, 108, nil, 112, nil, 106, 13, nil, 363 889, nil, 696, 712, 692, 688, 684, nil, nil, 813, 364 241, 796, -40, 788, 233, nil, 751, 235, 101, 389, 365 274, 689, 439, 480, 663, 604, 578, 604, 676, -41, 366 491, 149, 472, 570, 719, 645, 448, 111, 164, 316, 367 264, nil, 279, 296, nil, 299, nil, nil, 302, nil, 368 nil, 308, nil, nil, nil, 343, nil, nil, 348, nil, 369 nil, 339, nil, 326, nil, 368, nil, 344, nil, 387, 370 361, nil, 369, 374, nil, 380, nil, nil, 386, nil, 371 399, 431, 461, nil, 448, nil, nil, 425, 474, 38, 372 438, nil, nil, nil, nil, nil, nil, nil, nil, nil, 373 nil, nil, nil, nil, nil, nil, 134, nil, 139, 621, 374 614, 607, 573, 562, 425, nil, 121, nil, 37, 519, 375 521, 533, 544, 554, 559, 564, 571, 581, 586, 592, 376 596, nil, 189, nil, 114, 631, 658, 663, 664, 666, 377 667, nil, nil, nil, nil, 671, 679, nil, 675, 677, 373 378 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 374 nil, nil, nil, nil, 284, 675, 660, 637, 502, 371, 375 361, nil, 41, nil, -3, nil, 46, 512, 517, 526, 376 535, 548, 558, nil, 34, 572, 576, 587, 590, 592, 377 598, 607, 643, 670, 693, 701, 702, nil, 229, nil, 378 nil, nil, nil, nil, nil, 708, 709, nil, nil, nil, 379 nil, nil, 177, nil, 133, 10, 8, 5, 3, 733, 380 453, 731, 0, 14, 735, nil, 717, 767, 137, nil, 381 nil, 789, nil, 742, nil, nil, 744, 84, nil, 385, 382 nil, 117, nil, 130, nil, 23, nil, 2, nil, 366, 383 752, 747, 754, 748, 756, 749, nil, nil, nil, nil, 384 nil, nil, 758, 750, nil, nil, nil, nil, nil, nil, 385 nil, nil, nil, nil, nil, nil, 522, 761, nil, nil, 379 nil, nil, 125, nil, 139, 5, 10, 8, 3, 694, 380 300, 0, 115, 734, 736, nil, nil, nil, 719, 767, 381 274, 742, nil, 790, nil, nil, 745, 740, 747, 741, 382 nil, 124, nil, 23, nil, 127, nil, 15, nil, 204, 383 nil, 216, 755, 748, 757, 749, nil, nil, nil, nil, 384 nil, nil, nil, nil, nil, nil, nil, nil, 759, 539, 385 761, 338, nil, nil, nil, nil, nil, nil, nil, nil, 386 386 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 387 nil, 109, nil, nil, nil, nil, nil, nil, nil, nil,388 790, 813, 4 2, 791, nil, 555, nil, 768, 769, 337,389 771, 766, 773, 767, 775, 768, 777, 769, 621, 780,390 nil, 781, nil, 782, nil, 783, nil, 784, 785, nil,391 77 7, 778, 779, 780, 839, -35, nil, 766, 106, nil,392 8 41, 92, 221, 115, 830, nil, nil, nil, nil, nil,393 nil, 98, nil, nil, nil, -1, nil, nil, nil, nil,394 769, 870, nil, 827, nil, nil, nil, 804, nil, 805,395 nil, 806, nil, 807, nil, 808, 809, nil, nil, nil,396 nil, nil, nil, 548, 810, 859, nil, 834, nil, 4,397 805, nil, 848, 681, 182, nil, nil, nil, 125, nil,398 869, nil, nil, nil, nil, nil, nil, nil, 859, 869,399 82 6, nil, nil, nil, 805, nil, nil, nil, 825, nil,400 nil, nil, nil, 84 2, 515, nil, nil, nil, 530, 844,401 868, 869, 870, 558, nil, 848, 696, 883, 576, 813,402 81 4, 287, nil, 93, nil, 485, nil, nil, nil, nil,403 nil, 7 08]387 33, nil, nil, nil, nil, nil, nil, nil, nil, nil, 388 790, 813, 41, 791, 413, nil, nil, 769, nil, 770, 389 771, 766, 773, 767, 775, 768, 777, 769, 779, 550, 390 781, 363, nil, 783, nil, 784, nil, 785, nil, 786, 391 778, 779, 780, 781, 839, 795, 293, 840, -37, 407, 392 828, 122, nil, nil, nil, nil, nil, 154, nil, nil, 393 nil, nil, -1, nil, nil, nil, 770, nil, 828, nil, 394 819, nil, nil, 829, nil, nil, nil, nil, 805, nil, 395 806, nil, 807, nil, 808, nil, 809, nil, 810, nil, 396 nil, nil, nil, 388, 811, 859, 835, nil, 805, 4, 397 nil, -8, 492, 63, nil, nil, nil, 314, nil, 869, 398 nil, nil, nil, nil, nil, nil, nil, nil, 868, 860, 399 827, nil, nil, nil, nil, 850, nil, 826, nil, nil, 400 nil, nil, nil, 843, nil, 277, nil, nil, 430, 845, 401 868, 869, 870, 480, nil, 849, 708, 513, 884, 815, 402 816, 621, nil, 192, 280, nil, nil, nil, nil, nil, 403 nil, 716 ] 404 404 405 405 racc_action_default = [ 406 -376, -2, -376, -376, -6, -376, -13, -4, -376, -5, 407 -7, -376, -1, -376, -376, 632, -376, -12, -376, -9, 408 -18, -376, -15, -14, -376, -8, -376, -21, -87, -17, 409 -16, -11, -10, -376, -87, -112, -94, -90, -19, -108, 410 -376, -20, -376, -98, -99, -100, -376, -376, -146, -88, 411 -147, -89, -82, -376, -22, -23, -95, -376, -110, -376, 412 -376, -376, -104, -376, -109, -101, -91, -376, -376, -376, 413 -289, -282, -376, -248, -25, -24, -253, -26, -284, -254, 414 -152, -27, -376, -376, -376, -376, -376, -273, -305, -274, 415 -376, -376, -286, -283, -376, -251, -167, -31, -271, -281, 416 -272, -376, -112, -93, -113, -97, -376, -96, -111, -187, 417 -148, -123, -376, -191, -124, -204, -125, -217, -126, -230, 418 -127, -128, -247, -129, -130, -182, -121, -183, -122, -102, 419 -105, -376, -92, -84, -83, -87, -3, -288, -376, -289, 420 -285, -249, -373, -376, -376, -153, -168, -376, -376, -376, 421 -376, -376, -376, -376, -376, -376, -376, -376, -376, -154, 422 -169, -30, -376, -256, -255, -376, -259, -376, -376, -376, 423 -376, -376, -32, -376, -376, -148, -145, -134, -123, -116, 424 -135, -124, -136, -125, -137, -126, -138, -127, -376, -243, 425 -139, -128, -117, -376, -140, -129, -118, -141, -119, -142, 426 -131, -120, -143, -132, -144, -133, -122, -114, -107, -106, 427 -85, -86, -376, -376, -376, -287, -376, -263, -376, -278, 428 -279, -264, -275, -265, -276, -261, -260, -277, -262, -307, 429 -376, -252, -250, -267, -268, -269, -266, -280, -270, -376, 406 -376, -2, -376, -376, -376, -13, -6, -4, -376, -1, 407 -376, -376, -5, -7, -376, 632, -15, -14, -376, -18, 408 -376, -12, -376, -9, -17, -16, -21, -87, -376, -8, 409 -376, -376, -87, -376, -112, -20, -98, -99, -100, -376, 410 -376, -88, -146, -89, -147, -90, -19, -108, -94, -376, 411 -11, -10, -82, -376, -23, -22, -110, -376, -376, -376, 412 -104, -376, -101, -109, -376, -91, -95, -376, -376, -376, 413 -253, -376, -26, -254, -27, -25, -284, -376, -152, -376, 414 -376, -376, -273, -376, -305, -274, -376, -286, -283, -376, 415 -251, -31, -376, -167, -281, -271, -282, -272, -289, -376, 416 -248, -24, -111, -191, -125, -204, -126, -217, -127, -230, 417 -128, -129, -247, -130, -121, -182, -122, -183, -123, -376, 418 -187, -148, -124, -102, -105, -376, -92, -112, -93, -113, 419 -97, -376, -96, -84, -83, -3, -87, -376, -373, -249, 420 -285, -289, -376, -376, -376, -376, -376, -376, -376, -376, 421 -376, -376, -376, -376, -376, -376, -153, -168, -154, -169, 422 -30, -376, -376, -256, -255, -376, -376, -376, -376, -32, 423 -259, -376, -288, -376, -376, -107, -106, -136, -125, -137, 424 -126, -138, -127, -376, -139, -128, -117, -243, -140, -129, 425 -118, -376, -141, -119, -142, -131, -120, -143, -132, -144, 426 -133, -122, -145, -134, -123, -116, -148, -135, -124, -114, 427 -86, -85, -376, -376, -376, -287, -376, -279, -376, -278, 428 -263, -264, -275, -265, -276, -260, -277, -261, -262, -307, 429 -376, -252, -250, -268, -269, -266, -267, -280, -270, -376, 430 -376, -376, -376, -376, -376, -115, -376, -376, -376, -376, 430 431 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 431 -115, -376, -376, -376, -376, -376, -376, -376, -376, -376,432 432 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 433 -376, -3 43, -322, -316, -347, -328, -334, -313, -376, -323,434 -3 19, -54, -329, -325, -55, -335, -331, -56, -375, -342,435 -337, -312, -57, -344, -318, -58, -340, -324, -348, -59,436 -353, -3 50, -330, -311, -60, -357, -354, -336, -317, -310,437 -61, -376, -290, -63, -376, -376, -33, -62, -34, -376,438 -376, -1 49, -151, -185, -170, -172, -376, -376, -189, -184,439 - 186, -193, -190, -188, -206, -194, -192, -219, -207, -205,440 - 232, -220, -218, -181, -376, -376, -376, -376, -376, -376,441 -376, - 203, -376, -216, -376, -229, -376, -376, -376, -376,442 -376, - 376, -376, -242, -376, -376, -376, -376, -376, -376,443 -376, - 376, -376, -376, -376, -376, -376, -166, -376, -233,444 - 231, -246, -244, -150, -245, -376, -376, -156, -171, -157,445 -1 55, -28, -376, -257, -376, -376, -376, -376, -376, -376,446 -376, -376, -376, -376, -376, -258, - 68, -376, -376, -29,447 -64, -376, -308, -152, -304, -303, -376, -376, -179, -376,433 -376, -334, -313, -376, -323, -319, -54, -329, -325, -55, 434 -335, -331, -56, -375, -342, -337, -312, -57, -344, -318, 435 -58, -340, -324, -348, -59, -350, -330, -311, -60, -357, 436 -353, -336, -317, -310, -61, -354, -343, -322, -316, -328, 437 -347, -376, -376, -33, -34, -63, -62, -290, -376, -376, 438 -376, -193, -188, -190, -206, -194, -192, -219, -207, -205, 439 -232, -220, -218, -233, -231, -203, -376, -216, -376, -376, 440 -376, -376, -376, -376, -376, -229, -376, -242, -376, -376, 441 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 442 -376, -166, -376, -181, -376, -376, -376, -376, -376, -376, 443 -376, -246, -244, -150, -245, -376, -376, -156, -376, -376, 444 -171, -157, -155, -185, -172, -170, -151, -149, -189, -186, 445 -184, -28, -376, -257, -376, -376, -376, -376, -376, -376, 446 -376, -376, -376, -376, -376, -258, -29, -64, -68, -376, 447 -376, -152, -303, -376, -304, -308, -376, -376, -376, -376, 448 448 -201, -376, -214, -376, -227, -376, -240, -376, -164, -376, 449 - 376, -376, -376, -376, -376, -376, -178, -200, -213, -226,450 - 239, -163, -376, -376, -180, -202, -215, -228, -241, -165,451 - 177, -199, -212, -225, -238, -162, -376, -376, -315, -314,452 -32 0, -321, -327, -326, -333, -332, -339, -338, -346, -345,453 -3 41, -376, -349, -355, -352, -351, -359, -358, -356, -69,454 -376, -376, -376, -376, -3 06, -376, -173, -376, -376, -376,449 -179, -376, -376, -376, -376, -376, -200, -213, -226, -239, 450 -163, -178, -202, -215, -228, -241, -165, -180, -376, -376, 451 -376, -376, -199, -212, -225, -238, -162, -177, -315, -314, 452 -321, -320, -327, -326, -333, -332, -339, -338, -346, -345, 453 -376, -341, -349, -352, -351, -359, -358, -355, -356, -69, 454 -376, -376, -376, -376, -376, -306, -195, -376, -208, -376, 455 455 -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 456 - 195, -376, -208, -376, -221, -376, -234, -376, -376, -158,457 -376, -376, -376, -376, -376, -376, - 43, -305, -87, -53,458 - 44, -376, -310, -376, -31, -72, -70, -36, -37, -372,459 -38, -360, -39, -363, -40, -376, -366, -41, -367, -42,460 -3 69, -376, -35, -376, -309, -175, -174, -376, -196, -376,461 - 209, -376, -222, -376, -235, -376, -376, -159, -197, -210,462 -2 23, -236, -160, -376, -292, -376, -49, -376, -67, -305,463 -376, -52, -50, -376, -376, -44, -71, -65, -376, -370,464 -376, -66, -176, -198, -211, -224, -237, -161, -295, -376,465 -376, -291, -45, -47, -376, -365, -51, -364, -376, -362,466 -361, -368, -371, -73, - 376, -294, -293, -46, -376, -75,456 -376, -376, -221, -376, -234, -376, -158, -376, -173, -376, 457 -376, -376, -376, -376, -376, -376, -87, -44, -310, -376, 458 -31, -376, -72, -70, -36, -37, -38, -360, -39, -372, 459 -363, -40, -376, -366, -41, -42, -369, -367, -376, -35, 460 -305, -43, -53, -376, -309, -197, -210, -196, -376, -209, 461 -376, -222, -376, -235, -376, -159, -376, -174, -376, -223, 462 -236, -160, -175, -376, -292, -376, -376, -67, -376, -305, 463 -52, -50, -376, -376, -44, -71, -65, -376, -370, -376, 464 -49, -66, -198, -211, -224, -237, -161, -176, -376, -295, 465 -376, -291, -45, -365, -47, -376, -51, -376, -364, -362, 466 -361, -368, -371, -73, -294, -376, -293, -46, -376, -75, 467 467 -296, -297, -298, -74, -77, -376, -80, -376, -376, -376, 468 -376, -376, -78, -376, - 48, -76, -299, -300, -301, -302,468 -376, -376, -78, -376, -76, -48, -299, -300, -301, -302, 469 469 -81, -79 ] 470 470 471 471 racc_goto_table = [ 472 9 5, 128, 47, 164, 38, 161, 176, 114, 47, 316,473 54, 411, 116, 173, 198, 111, 107, 313, 64, 103,474 526, 65, 112, 91, 73, 19, 66, 97, 95, 622,475 1 21, 106, 62, 3, 406, 613, 66, 535, 59, 278,476 32, 622, 118, 206, 132, 625, 617, 130, 174, 181,477 1 23, 91, 141, 609, 183, 318, 61, 178, 315, 479,478 217, 81, 207, 221, 179, 223, 188, 225, 226, 192,479 2 28, 196, 191, 576, 77, 201, 475, 64, 75, 120,480 65, 18, 10, 2, 185, 136, 219, 220, 69, 222,481 107, 224, 195, 209, 227, 52, 33, 200, 203, 205,482 17 7, 180, 182, 184, 186, 106, 190, 194, 197, 47,483 19 9, 210, 232, 202, 174, 233, 234, 235, 236, 410,484 204, 187, 27, 20, 166, 140, 13, 6, 215, 565,485 319, 589, 5, 544, 262, 597, 578, nil, nil, nil,486 nil, nil, nil, nil, nil, nil, nil, nil, 253, nil,487 nil, nil, nil, nil, 309, nil, nil, nil, nil, nil,488 nil, nil, nil, 257, nil, nil, nil, nil, 273, nil,489 nil, nil, nil, nil, nil, 255, 382, nil, 384, nil,490 nil, nil, nil, 25 9, nil, nil, nil, 323, nil, nil,491 329, nil, nil, nil, 328, 350, 324, 333, nil, 362,492 nil, 3 70, 376, nil, nil, nil, nil, nil, 387, 345,493 390, nil, 256, 357, nil, 365, 371, nil, 337, nil,494 nil, nil, 342, 388, 348, nil, 331, nil, 360, 336,495 3 68, 374, nil, nil, nil, nil, 346, nil, nil, nil,496 358, 340, 366, 372, 349, nil, nil, nil, 361, nil,497 36 9, 375, nil, 380, 588, nil, nil, nil, nil, nil,498 nil, 415, nil, nil, nil, 334, nil, nil, 339, nil,499 nil, nil, nil, 347, nil, 525, nil, 359, nil, 367,500 373, nil, nil, nil, nil, nil, nil, nil, nil, nil,501 nil, nil, nil, nil, nil, nil, nil, nil, nil, 416,502 nil, nil, nil, 470, nil, nil, nil, nil, nil, nil,503 nil, nil, nil, nil, nil, nil, nil, nil, nil, 457,504 nil, nil, nil, nil, nil, nil, 434, nil, nil, nil,505 nil, nil, nil, 459, 430, nil, nil, nil, nil, nil,506 nil, nil, nil, nil, nil, nil, nil, nil, nil, 460,507 477, nil, nil, nil, 442, nil, nil, nil, nil, nil,508 nil, nil, nil, nil, nil, nil, nil, 467, nil, nil,509 499, nil, 487, 432, 488, nil, nil, 463, nil, nil,510 nil, nil, nil, nil, nil, nil, nil, nil, 46 9, nil,511 nil, nil, nil, nil, nil, 494, nil, 508, nil, nil,512 nil, nil, nil, 490, nil, 505, nil, nil, nil, nil,513 nil, nil, nil, 501, nil, 465, nil, 496, nil, nil,514 nil, nil, nil, 522, nil, nil, 415, nil, nil, nil,515 nil, nil, nil, 507, 566, nil, nil, 273, nil, 556,516 nil, nil, 492, nil, 547, nil, nil, nil, nil, nil,517 nil, nil, 503, nil, nil, nil, 524, nil, nil, nil,518 nil, 259, nil, nil, nil, 553, nil, nil, nil, nil,519 nil, nil, nil, 549, nil, nil, 522, nil, nil, nil,520 nil, nil, nil, nil, nil, nil, 594, 555, nil, nil,521 273, nil, 47, nil, 567, 569, nil, 572, nil, nil,522 349, 361, 369, 375, 415, nil, nil, 607, nil, 524,523 nil, nil, 5 51, nil, 598, 600, nil, nil, nil, nil,472 90, 116, 164, 160, 202, 313, 118, 40, 46, 413, 473 193, 104, 40, 55, 119, 63, 173, 62, 132, 128, 474 65, 90, 315, 122, 523, 60, 23, 110, 86, 111, 475 100, 613, 3, 91, 408, 532, 65, 622, 57, 273, 476 624, 618, 51, 126, 609, 124, 174, 131, 622, 86, 477 108, 139, 314, 217, 219, 59, 312, 222, 106, 224, 478 479, 226, 74, 209, 220, 221, 183, 223, 186, 225, 479 201, 227, 228, 190, 575, 204, 132, 176, 72, 196, 480 178, 474, 101, 205, 22, 13, 2, 135, 69, 52, 481 31, 195, 208, 198, 200, 203, 185, 207, 189, 177, 482 179, 181, 184, 188, 192, 131, 63, 194, 62, 232, 483 197, 199, 233, 234, 235, 236, 40, 211, 174, 182, 484 407, 26, 19, 170, 140, 11, 5, 180, 215, 565, 485 588, 4, 544, 598, 256, 319, 577, nil, nil, 257, 486 nil, nil, 372, nil, 374, nil, nil, nil, nil, nil, 487 nil, nil, nil, nil, nil, nil, 303, nil, nil, nil, 488 252, 308, 253, nil, nil, nil, nil, nil, nil, nil, 489 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 490 nil, nil, nil, 250, nil, nil, nil, nil, nil, nil, 491 nil, 249, nil, 322, 343, nil, nil, 353, 359, 344, 492 nil, 369, 354, 360, nil, 377, 370, 382, nil, nil, 493 nil, 380, 327, nil, 385, nil, 332, 330, nil, 334, 494 341, 388, 342, 351, 357, 352, 358, 367, nil, 368, 495 383, nil, nil, 324, 390, nil, 329, nil, nil, 321, 496 nil, nil, 326, 340, nil, nil, 350, 356, nil, nil, 497 366, 339, 589, nil, 349, 355, nil, nil, 365, nil, 498 nil, nil, nil, 412, nil, nil, nil, nil, nil, nil, 499 nil, 522, nil, nil, nil, nil, 471, nil, nil, nil, 500 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 501 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 502 nil, nil, nil, nil, nil, 448, nil, nil, nil, nil, 503 nil, nil, 450, nil, nil, 432, nil, nil, nil, 434, 504 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 505 418, nil, nil, nil, nil, 459, 416, nil, nil, nil, 506 nil, nil, 461, nil, nil, nil, nil, nil, nil, nil, 507 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 508 nil, nil, nil, nil, nil, nil, 467, 476, nil, 469, 509 nil, nil, 498, nil, nil, nil, nil, nil, nil, 500, 510 nil, nil, nil, nil, nil, nil, nil, nil, 465, nil, 511 nil, nil, 507, nil, 494, 463, nil, nil, 496, 509, 512 nil, nil, 503, nil, nil, nil, 505, nil, nil, nil, 513 nil, 489, nil, nil, nil, 492, nil, 487, nil, nil, 514 nil, 490, nil, nil, nil, 518, nil, 412, nil, nil, 515 308, nil, nil, nil, nil, nil, nil, nil, nil, nil, 516 nil, 253, 556, nil, nil, nil, nil, nil, nil, 558, 517 nil, nil, nil, nil, nil, nil, nil, nil, nil, 580, 518 nil, nil, 520, nil, 552, nil, nil, nil, 554, nil, 519 nil, nil, nil, nil, nil, 518, nil, nil, nil, nil, 520 308, 342, 352, 358, 368, 550, nil, nil, 595, nil, 521 nil, 548, nil, nil, nil, nil, 40, 566, nil, 569, 522 nil, 571, nil, nil, nil, nil, 412, nil, 607, nil, 523 nil, nil, 520, nil, nil, 597, 600, nil, nil, nil, 524 524 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 525 525 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, … … 530 530 531 531 racc_goto_check = [ 532 56, 80, 23, 34, 15, 22, 103, 82, 23, 24,533 15, 114, 83, 108, 77, 81, 58, 48, 71, 61,534 26, 65, 70, 55, 104, 14, 59, 23, 56, 54,535 86, 23, 68, 1, 51, 53, 59, 50, 57, 39,536 14, 54, 84, 80, 59, 53, 37, 68, 56, 82,537 8 7, 55, 104, 36, 83, 25, 67, 81, 20, 52,538 108, 18, 73, 108, 70, 108, 74, 108, 108, 75,539 108, 76, 86, 26, 17, 78, 79, 71, 16, 85,540 65, 13, 12, 11, 84, 10, 109, 109, 9, 109,541 58, 109, 87, 61, 109, 8, 7, 89, 90, 91,542 9 2, 93, 94, 95, 96, 23, 97, 98, 99, 23,543 10 0, 15, 56, 101, 56, 56, 56, 56, 56, 48,544 102, 85, 6, 5, 105, 107, 4, 3, 111, 112,545 1 08, 113, 2, 115, 80, 126, 128, nil, nil, nil,546 nil, nil, nil, nil, nil, nil, nil, nil, 81, nil,547 nil, nil, nil, nil, 80, nil, nil, nil, nil, nil,548 nil, nil, nil, 86, nil, nil, nil, nil, 81, nil,549 nil, nil, nil, nil, nil, 84, 77, nil, 77, nil,550 nil, nil, nil, 8 7, nil, nil, nil, 82, nil, nil,551 82, nil, nil, nil, 83, 80, 81, 83, nil, 80,552 nil, 80, 8 0, nil, nil, nil, nil, nil, 80, 81,553 80, nil, 85, 81, nil, 81, 81, nil, 86, nil,554 nil, nil, 86, 81, 86, nil, 84, nil, 86, 84,555 8 6, 86, nil, nil, nil, nil, 84, nil, nil, nil,556 84, 87, 84, 84, 87, nil, nil, nil, 87, nil,557 8 7, 87, nil, 87, 114, nil, nil, nil, nil, nil,558 nil, 80, nil, nil, nil, 85, nil, nil, 85, nil,559 nil, nil, nil, 85, nil, 24, nil, 85, nil, 85,560 85, nil, nil, nil, nil, nil, nil, nil, nil, nil,561 nil, nil, nil, nil, nil, nil, nil, nil, nil, 81,562 nil, nil, nil, 103, nil, nil, nil, nil, nil, nil,563 nil, nil, nil, nil, nil, nil, nil, nil, nil, 80,564 nil, nil, nil, nil, nil, nil, 86, nil, nil, nil,565 nil, nil, nil, 80, 84, nil, nil, nil, nil, nil,566 nil, nil, nil, nil, nil, nil, nil, nil, nil, 81,567 82, nil, nil, nil, 87, nil, nil, nil, nil, nil,568 nil, nil, nil, nil, nil, nil, nil, 86, nil, nil,569 80, nil, 81, 85, 81, nil, nil, 84, nil, nil,570 nil, nil, nil, nil, nil, nil, nil, nil, 8 7, nil,571 nil, nil, nil, nil, nil, 86, nil, 80, nil, nil,572 nil, nil, nil, 84, nil, 86, nil, nil, nil, nil,573 nil, nil, nil, 84, nil, 85, nil, 87, nil, nil,574 nil, nil, nil, 80, nil, nil, 80, nil, nil, nil,575 nil, nil, nil, 87, 22, nil, nil, 81, nil, 80,576 nil, nil, 85, nil, 81, nil, nil, nil, nil, nil,577 nil, nil, 85, nil, nil, nil, 23, nil, nil, nil,578 nil, 87, nil, nil, nil, 86, nil, nil, nil, nil,579 nil, nil, nil, 84, nil, nil, 80, nil, nil, nil,580 nil, nil, nil, nil, nil, nil, 22, 87, nil, nil,581 81, nil, 23, nil, 15, 23, nil, 23, nil, nil,582 87, 87, 87, 87, 80, nil, nil, 34, nil, 23,583 nil, nil, 85, nil, 80, 80, nil, nil, nil, nil,532 56, 80, 34, 22, 103, 24, 81, 23, 15, 114, 533 77, 83, 23, 15, 70, 71, 108, 65, 58, 61, 534 59, 56, 48, 82, 26, 68, 14, 86, 55, 87, 535 104, 53, 1, 23, 51, 50, 59, 54, 57, 39, 536 53, 37, 14, 59, 36, 68, 56, 23, 54, 55, 537 85, 104, 25, 109, 109, 67, 20, 109, 84, 109, 538 52, 109, 18, 73, 108, 108, 74, 108, 75, 108, 539 80, 108, 108, 76, 26, 81, 58, 61, 17, 78, 540 83, 79, 16, 70, 13, 12, 11, 10, 9, 8, 541 7, 89, 82, 90, 91, 92, 86, 93, 87, 94, 542 95, 96, 97, 98, 99, 23, 71, 100, 65, 56, 543 101, 102, 56, 56, 56, 56, 23, 15, 56, 85, 544 48, 6, 5, 105, 107, 4, 3, 84, 111, 112, 545 113, 2, 115, 126, 80, 108, 128, nil, nil, 81, 546 nil, nil, 77, nil, 77, nil, nil, nil, nil, nil, 547 nil, nil, nil, nil, nil, nil, 80, nil, nil, nil, 548 86, 81, 87, nil, nil, nil, nil, nil, nil, nil, 549 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 550 nil, nil, nil, 85, nil, nil, nil, nil, nil, nil, 551 nil, 84, nil, 83, 80, nil, nil, 80, 80, 81, 552 nil, 80, 81, 81, nil, 80, 81, 80, nil, nil, 553 nil, 81, 86, nil, 81, nil, 86, 87, nil, 87, 554 86, 83, 87, 86, 86, 87, 87, 86, nil, 87, 555 82, nil, nil, 85, 82, nil, 85, nil, nil, 84, 556 nil, nil, 84, 85, nil, nil, 85, 85, nil, nil, 557 85, 84, 114, nil, 84, 84, nil, nil, 84, nil, 558 nil, nil, nil, 80, nil, nil, nil, nil, nil, nil, 559 nil, 24, nil, nil, nil, nil, 103, nil, nil, nil, 560 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 561 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 562 nil, nil, nil, nil, nil, 80, nil, nil, nil, nil, 563 nil, nil, 81, nil, nil, 86, nil, nil, nil, 87, 564 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 565 85, nil, nil, nil, nil, 80, 84, nil, nil, nil, 566 nil, nil, 81, nil, nil, nil, nil, nil, nil, nil, 567 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 568 nil, nil, nil, nil, nil, nil, 86, 82, nil, 87, 569 nil, nil, 80, nil, nil, nil, nil, nil, nil, 81, 570 nil, nil, nil, nil, nil, nil, nil, nil, 85, nil, 571 nil, nil, 80, nil, 86, 84, nil, nil, 87, 81, 572 nil, nil, 86, nil, nil, nil, 87, nil, nil, nil, 573 nil, 85, nil, nil, nil, 85, nil, 84, nil, nil, 574 nil, 84, nil, nil, nil, 80, nil, 80, nil, nil, 575 81, nil, nil, nil, nil, nil, nil, nil, nil, nil, 576 nil, 87, 80, nil, nil, nil, nil, nil, nil, 81, 577 nil, nil, nil, nil, nil, nil, nil, nil, nil, 22, 578 nil, nil, 23, nil, 86, nil, nil, nil, 87, nil, 579 nil, nil, nil, nil, nil, 80, nil, nil, nil, nil, 580 81, 87, 87, 87, 87, 85, nil, nil, 22, nil, 581 nil, 84, nil, nil, nil, nil, 23, 15, nil, 23, 582 nil, 23, nil, nil, nil, nil, 80, nil, 34, nil, 583 nil, nil, 23, nil, nil, 80, 80, nil, nil, nil, 584 584 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 585 585 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, … … 590 590 591 591 racc_goto_pointer = [ 592 nil, 3 3, 132, 127, 120, 110, 102, 69, 62, 36,593 1 6, 83, 78, 70, 14, -24, 25, 21, 8, nil,594 -1 58, nil, -83, -26, -207, -161, -462, nil, nil, nil,595 nil, nil, nil, nil, -87, nil, -55 0, -563, nil, -174,596 nil, nil, nil, nil, nil, nil, nil, nil, -19 9, nil,597 -44 5, -278, -347, -573, -584, -30, -53, -4, -41, -23,598 nil, - 38, nil, nil, nil, -26, nil, 10, -14, nil,599 - 38, -29, nil, -44, -36, -33, -31, -88, -27, -326,600 -5 9, -45, -53, -48, -18, 19, -30, -10, nil, -5,601 -4, -3, -2, -1, 0, 1, 2, 4, 5, 6,602 8, 11, 18, -96, -29, 30, nil, 47, -88, -63,603 nil, -1 6, -386, -432, -309, -352, nil, nil, nil, nil,604 nil, nil, nil, nil, nil, nil, -43 8, nil, -404]592 nil, 32, 131, 126, 120, 111, 102, 64, 58, 36, 593 18, 86, 79, 70, 12, -19, 29, 25, 9, nil, 594 -160, nil, -81, -20, -211, -164, -458, nil, nil, nil, 595 nil, nil, nil, nil, -87, nil, -559, -568, nil, -174, 596 nil, nil, nil, nil, nil, nil, nil, nil, -194, nil, 597 -447, -283, -348, -577, -576, -25, -53, 5, -49, -21, 598 nil, -48, nil, nil, nil, -23, nil, 16, -14, nil, 599 -44, -25, nil, -68, -61, -59, -54, -117, -48, -320, 600 -57, -52, -35, -47, 0, -8, -31, -29, nil, -36, 601 -34, -33, -32, -30, -28, -27, -26, -25, -24, -23, 602 -20, -17, -16, -123, -23, 31, nil, 48, -83, -92, 603 nil, -15, -386, -433, -311, -352, nil, nil, nil, nil, 604 nil, nil, nil, nil, nil, nil, -439, nil, -400 ] 605 605 606 606 racc_goto_default = [ 607 607 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 608 nil, nil, nil, nil, nil, nil, nil, 5 42, nil, 84,609 nil, 8 8, nil, 142, nil, nil, nil, 527, 528, 530,610 5 32, 534, 537, 539, 93, 541, nil, nil, 517, 519,611 2 81, 284, 287, 292, 295, 299, 304, 310, nil, 314,612 nil, nil, nil, nil, 614, 615, 616, 4 9, 51, 37,613 4 0, nil, 105, 43, 44, 45, 46, nil, nil, 63,614 nil, 39, 42, 104, nil, nil, nil, nil, nil, 126,615 9 9, 71, nil, nil, 279, 282, 285, 289, 124, 298,616 303, 308, nil, nil, nil, nil, nil, nil, 291, 294,617 29 7, 302, 307, 271, nil, 76, 79, 82, 85, 87,618 8 9, 92, nil, nil, nil, 412, 277, 280, 283, 286,619 2 90, 293, 296, 301, 305, 531, 533, 536, nil ]608 nil, nil, nil, nil, nil, nil, nil, 539, nil, 79, 609 nil, 84, nil, 138, nil, nil, nil, 524, 525, 526, 610 528, 531, 534, 535, 88, 538, nil, nil, 540, 542, 611 276, 279, 282, 287, 290, 294, 298, 304, nil, 318, 612 nil, nil, nil, nil, 614, 615, 616, 41, 43, 45, 613 49, nil, 130, 36, 37, 38, 39, nil, nil, 61, 614 nil, 47, 33, 129, nil, nil, nil, nil, nil, 114, 615 94, 96, nil, nil, 274, 277, 280, 284, 113, 293, 616 297, 302, nil, nil, nil, nil, nil, nil, 286, 289, 617 292, 296, 301, 306, nil, 70, 73, 77, 80, 82, 618 85, 87, nil, nil, nil, 415, 272, 275, 278, 281, 619 285, 288, 291, 295, 299, 527, 530, 533, nil ] 620 620 621 621 racc_reduce_table = [ 622 622 0, 0, :racc_error, 623 2, 96, :_reduce_1, 624 1, 96, :_reduce_none, 625 8, 97, :_reduce_3, 626 2, 98, :_reduce_4, 627 2, 98, :_reduce_5, 628 1, 106, :_reduce_6, 629 2, 106, :_reduce_7, 630 3, 107, :_reduce_8, 631 1, 108, :_reduce_9, 632 3, 108, :_reduce_10, 633 3, 109, :_reduce_11, 634 1, 109, :_reduce_12, 635 0, 99, :_reduce_none, 636 2, 99, :_reduce_14, 623 2, 94, :_reduce_1, 624 1, 94, :_reduce_none, 625 8, 95, :_reduce_3, 626 2, 96, :_reduce_4, 627 2, 96, :_reduce_5, 628 1, 104, :_reduce_6, 629 2, 104, :_reduce_7, 630 3, 105, :_reduce_8, 631 1, 106, :_reduce_9, 632 3, 106, :_reduce_10, 633 3, 107, :_reduce_11, 634 1, 107, :_reduce_12, 635 0, 97, :_reduce_none, 636 2, 97, :_reduce_14, 637 2, 97, :_reduce_none, 638 2, 98, :_reduce_16, 639 2, 98, :_reduce_none, 640 0, 99, :_reduce_18, 641 2, 99, :_reduce_19, 637 642 2, 99, :_reduce_none, 638 2, 100, :_reduce_16, 643 0, 100, :_reduce_none, 644 2, 100, :_reduce_22, 639 645 2, 100, :_reduce_none, 640 0, 101, :_reduce_18, 641 2, 101, :_reduce_19, 646 2, 101, :_reduce_24, 642 647 2, 101, :_reduce_none, 648 1, 109, :_reduce_26, 649 1, 109, :_reduce_27, 650 5, 110, :_reduce_28, 651 5, 110, :_reduce_29, 652 2, 112, :_reduce_30, 653 1, 114, :_reduce_31, 654 2, 114, :_reduce_32, 655 1, 113, :_reduce_none, 656 1, 113, :_reduce_34, 657 1, 119, :_reduce_35, 658 1, 119, :_reduce_36, 659 1, 119, :_reduce_37, 660 1, 119, :_reduce_38, 661 1, 119, :_reduce_39, 662 1, 119, :_reduce_40, 663 1, 119, :_reduce_41, 664 1, 119, :_reduce_42, 665 1, 119, :_reduce_none, 666 1, 119, :_reduce_none, 667 3, 126, :_reduce_45, 668 4, 120, :_reduce_46, 669 3, 120, :_reduce_none, 670 6, 121, :_reduce_48, 671 2, 128, :_reduce_49, 672 2, 131, :_reduce_50, 673 3, 131, :_reduce_none, 674 2, 131, :_reduce_none, 675 1, 125, :_reduce_53, 676 1, 132, :_reduce_54, 677 1, 132, :_reduce_55, 678 1, 132, :_reduce_56, 679 1, 132, :_reduce_57, 680 1, 132, :_reduce_58, 681 1, 132, :_reduce_59, 682 1, 132, :_reduce_60, 683 1, 132, :_reduce_61, 684 1, 117, :_reduce_none, 685 1, 118, :_reduce_63, 686 2, 118, :_reduce_64, 687 5, 141, :_reduce_65, 688 5, 141, :_reduce_66, 689 5, 141, :_reduce_67, 690 2, 142, :_reduce_68, 691 3, 142, :_reduce_69, 692 1, 143, :_reduce_70, 693 2, 143, :_reduce_71, 694 1, 143, :_reduce_72, 695 0, 129, :_reduce_none, 696 2, 129, :_reduce_74, 697 0, 130, :_reduce_none, 698 2, 130, :_reduce_76, 699 1, 146, :_reduce_none, 700 2, 146, :_reduce_none, 701 3, 147, :_reduce_none, 702 1, 147, :_reduce_none, 703 3, 147, :_reduce_none, 643 704 0, 102, :_reduce_none, 644 2, 102, :_reduce_22,645 705 2, 102, :_reduce_none, 646 2, 103, :_reduce_24, 706 2, 102, :_reduce_none, 707 2, 103, :_reduce_85, 647 708 2, 103, :_reduce_none, 648 1, 111, :_reduce_26, 649 1, 111, :_reduce_27, 650 5, 112, :_reduce_28, 651 5, 112, :_reduce_29, 652 2, 114, :_reduce_30, 653 1, 116, :_reduce_31, 654 2, 116, :_reduce_32, 655 1, 115, :_reduce_none, 656 1, 115, :_reduce_34, 657 1, 121, :_reduce_35, 658 1, 121, :_reduce_36, 659 1, 121, :_reduce_37, 660 1, 121, :_reduce_38, 661 1, 121, :_reduce_39, 662 1, 121, :_reduce_40, 663 1, 121, :_reduce_41, 664 1, 121, :_reduce_42, 665 1, 121, :_reduce_none, 666 1, 121, :_reduce_none, 667 3, 128, :_reduce_45, 668 4, 122, :_reduce_46, 669 3, 122, :_reduce_none, 670 6, 123, :_reduce_48, 671 2, 130, :_reduce_49, 672 2, 133, :_reduce_50, 673 3, 133, :_reduce_none, 674 2, 133, :_reduce_none, 675 1, 127, :_reduce_53, 676 1, 134, :_reduce_54, 677 1, 134, :_reduce_55, 678 1, 134, :_reduce_56, 679 1, 134, :_reduce_57, 680 1, 134, :_reduce_58, 681 1, 134, :_reduce_59, 682 1, 134, :_reduce_60, 683 1, 134, :_reduce_61, 684 1, 119, :_reduce_none, 685 1, 120, :_reduce_63, 686 2, 120, :_reduce_64, 687 5, 143, :_reduce_65, 688 5, 143, :_reduce_66, 689 5, 143, :_reduce_67, 690 2, 144, :_reduce_68, 691 3, 144, :_reduce_69, 692 1, 145, :_reduce_70, 693 2, 145, :_reduce_71, 694 1, 145, :_reduce_72, 695 0, 131, :_reduce_none, 696 2, 131, :_reduce_74, 697 0, 132, :_reduce_none, 698 2, 132, :_reduce_76, 699 1, 148, :_reduce_none, 700 2, 148, :_reduce_none, 701 3, 149, :_reduce_none, 702 1, 149, :_reduce_none, 703 3, 149, :_reduce_none, 704 0, 104, :_reduce_none, 705 2, 104, :_reduce_none, 706 2, 104, :_reduce_none, 707 2, 105, :_reduce_85, 708 2, 105, :_reduce_none, 709 0, 110, :_reduce_none, 710 1, 110, :_reduce_88, 711 1, 110, :_reduce_89, 712 1, 152, :_reduce_90, 713 2, 152, :_reduce_91, 714 3, 152, :_reduce_92, 715 3, 154, :_reduce_93, 716 1, 155, :_reduce_94, 717 2, 155, :_reduce_none, 718 1, 156, :_reduce_96, 719 1, 156, :_reduce_97, 720 1, 153, :_reduce_98, 721 1, 153, :_reduce_99, 722 1, 159, :_reduce_100, 723 2, 159, :_reduce_101, 724 3, 160, :_reduce_102, 725 1, 161, :_reduce_103, 726 1, 162, :_reduce_104, 727 2, 162, :_reduce_105, 728 3, 163, :_reduce_106, 729 3, 164, :_reduce_107, 730 1, 158, :_reduce_108, 731 2, 158, :_reduce_109, 732 2, 166, :_reduce_110, 733 3, 166, :_reduce_111, 734 1, 167, :_reduce_none, 735 1, 157, :_reduce_113, 736 2, 157, :_reduce_114, 737 3, 168, :_reduce_115, 738 1, 169, :_reduce_116, 739 1, 169, :_reduce_117, 740 1, 169, :_reduce_118, 741 1, 169, :_reduce_119, 742 1, 169, :_reduce_120, 743 1, 165, :_reduce_121, 744 1, 165, :_reduce_122, 745 1, 165, :_reduce_123, 746 1, 165, :_reduce_124, 747 1, 165, :_reduce_125, 748 1, 165, :_reduce_126, 749 1, 165, :_reduce_127, 750 1, 165, :_reduce_128, 751 1, 165, :_reduce_129, 752 1, 165, :_reduce_130, 753 1, 170, :_reduce_131, 754 1, 170, :_reduce_132, 755 1, 170, :_reduce_133, 756 1, 170, :_reduce_134, 757 1, 170, :_reduce_135, 758 1, 170, :_reduce_136, 759 1, 170, :_reduce_137, 760 1, 170, :_reduce_138, 761 1, 170, :_reduce_139, 762 1, 171, :_reduce_none, 763 1, 171, :_reduce_none, 764 1, 171, :_reduce_none, 765 1, 171, :_reduce_none, 766 1, 171, :_reduce_none, 767 1, 171, :_reduce_none, 768 1, 118, :_reduce_146, 769 1, 118, :_reduce_147, 770 1, 174, :_reduce_148, 771 3, 184, :_reduce_149, 772 3, 184, :_reduce_150, 773 3, 184, :_reduce_151, 774 1, 175, :_reduce_152, 775 2, 175, :_reduce_153, 776 2, 175, :_reduce_154, 709 0, 108, :_reduce_none, 710 1, 108, :_reduce_88, 711 1, 108, :_reduce_89, 712 1, 150, :_reduce_90, 713 2, 150, :_reduce_91, 714 3, 150, :_reduce_92, 715 3, 152, :_reduce_93, 716 1, 153, :_reduce_94, 717 2, 153, :_reduce_none, 718 1, 154, :_reduce_96, 719 1, 154, :_reduce_97, 720 1, 151, :_reduce_98, 721 1, 151, :_reduce_99, 722 1, 157, :_reduce_100, 723 2, 157, :_reduce_101, 724 3, 158, :_reduce_102, 725 1, 159, :_reduce_103, 726 1, 160, :_reduce_104, 727 2, 160, :_reduce_105, 728 3, 161, :_reduce_106, 729 3, 162, :_reduce_107, 730 1, 156, :_reduce_108, 731 2, 156, :_reduce_109, 732 2, 164, :_reduce_110, 733 3, 164, :_reduce_111, 734 1, 165, :_reduce_none, 735 1, 155, :_reduce_113, 736 2, 155, :_reduce_114, 737 3, 166, :_reduce_115, 738 1, 167, :_reduce_116, 739 1, 167, :_reduce_117, 740 1, 167, :_reduce_118, 741 1, 167, :_reduce_119, 742 1, 167, :_reduce_120, 743 1, 163, :_reduce_121, 744 1, 163, :_reduce_122, 745 1, 163, :_reduce_123, 746 1, 163, :_reduce_124, 747 1, 163, :_reduce_125, 748 1, 163, :_reduce_126, 749 1, 163, :_reduce_127, 750 1, 163, :_reduce_128, 751 1, 163, :_reduce_129, 752 1, 163, :_reduce_130, 753 1, 168, :_reduce_131, 754 1, 168, :_reduce_132, 755 1, 168, :_reduce_133, 756 1, 168, :_reduce_134, 757 1, 168, :_reduce_135, 758 1, 168, :_reduce_136, 759 1, 168, :_reduce_137, 760 1, 168, :_reduce_138, 761 1, 168, :_reduce_139, 762 1, 169, :_reduce_none, 763 1, 169, :_reduce_none, 764 1, 169, :_reduce_none, 765 1, 169, :_reduce_none, 766 1, 169, :_reduce_none, 767 1, 169, :_reduce_none, 768 1, 116, :_reduce_146, 769 1, 116, :_reduce_147, 770 1, 172, :_reduce_148, 771 3, 182, :_reduce_149, 772 3, 182, :_reduce_150, 773 3, 182, :_reduce_151, 774 1, 173, :_reduce_152, 775 2, 173, :_reduce_153, 776 2, 173, :_reduce_154, 777 3, 183, :_reduce_none, 778 3, 183, :_reduce_none, 779 3, 183, :_reduce_none, 780 5, 191, :_reduce_none, 781 6, 191, :_reduce_none, 782 6, 191, :_reduce_none, 783 7, 191, :_reduce_none, 784 4, 191, :_reduce_none, 785 4, 191, :_reduce_none, 786 4, 191, :_reduce_none, 787 4, 191, :_reduce_none, 788 3, 191, :_reduce_none, 789 1, 174, :_reduce_167, 790 2, 174, :_reduce_168, 791 2, 174, :_reduce_169, 792 3, 184, :_reduce_none, 793 3, 184, :_reduce_none, 794 3, 184, :_reduce_none, 795 5, 192, :_reduce_none, 796 6, 192, :_reduce_none, 797 6, 192, :_reduce_none, 798 7, 192, :_reduce_none, 799 4, 192, :_reduce_none, 800 4, 192, :_reduce_none, 801 4, 192, :_reduce_none, 802 4, 192, :_reduce_none, 803 3, 192, :_reduce_none, 804 1, 175, :_reduce_182, 805 1, 175, :_reduce_183, 777 806 3, 185, :_reduce_none, 778 807 3, 185, :_reduce_none, 779 808 3, 185, :_reduce_none, 809 1, 176, :_reduce_none, 810 3, 186, :_reduce_none, 811 3, 186, :_reduce_none, 812 3, 186, :_reduce_none, 813 1, 177, :_reduce_191, 814 3, 187, :_reduce_none, 815 3, 187, :_reduce_none, 816 3, 187, :_reduce_none, 780 817 5, 193, :_reduce_none, 781 818 6, 193, :_reduce_none, … … 787 824 4, 193, :_reduce_none, 788 825 3, 193, :_reduce_none, 789 1, 176, :_reduce_167, 790 2, 176, :_reduce_168, 791 2, 176, :_reduce_169, 792 3, 186, :_reduce_none, 793 3, 186, :_reduce_none, 794 3, 186, :_reduce_none, 826 1, 178, :_reduce_none, 827 3, 188, :_reduce_none, 828 3, 188, :_reduce_none, 829 3, 188, :_reduce_none, 795 830 5, 194, :_reduce_none, 796 831 6, 194, :_reduce_none, … … 802 837 4, 194, :_reduce_none, 803 838 3, 194, :_reduce_none, 804 1, 177, :_reduce_182, 805 1, 177, :_reduce_183, 806 3, 187, :_reduce_none, 807 3, 187, :_reduce_none, 808 3, 187, :_reduce_none, 809 1, 178, :_reduce_none, 810 3, 188, :_reduce_none, 811 3, 188, :_reduce_none, 812 3, 188, :_reduce_none, 813 1, 179, :_reduce_191, 839 1, 179, :_reduce_217, 814 840 3, 189, :_reduce_none, 815 841 3, 189, :_reduce_none, … … 824 850 4, 195, :_reduce_none, 825 851 3, 195, :_reduce_none, 826 1, 180, :_reduce_ none,852 1, 180, :_reduce_230, 827 853 3, 190, :_reduce_none, 828 854 3, 190, :_reduce_none, … … 837 863 4, 196, :_reduce_none, 838 864 3, 196, :_reduce_none, 839 1, 181, :_reduce_none, 840 3, 191, :_reduce_none, 841 3, 191, :_reduce_none, 842 3, 191, :_reduce_none, 843 5, 197, :_reduce_none, 844 6, 197, :_reduce_none, 845 6, 197, :_reduce_none, 846 7, 197, :_reduce_none, 847 4, 197, :_reduce_none, 848 4, 197, :_reduce_none, 849 4, 197, :_reduce_none, 850 4, 197, :_reduce_none, 865 1, 170, :_reduce_243, 866 3, 171, :_reduce_none, 867 3, 171, :_reduce_none, 868 3, 171, :_reduce_none, 869 1, 181, :_reduce_247, 870 1, 111, :_reduce_none, 871 2, 111, :_reduce_none, 851 872 3, 197, :_reduce_none, 852 1, 182, :_reduce_230, 853 3, 192, :_reduce_none, 854 3, 192, :_reduce_none, 855 3, 192, :_reduce_none, 856 5, 198, :_reduce_none, 857 6, 198, :_reduce_none, 858 6, 198, :_reduce_none, 859 7, 198, :_reduce_none, 860 4, 198, :_reduce_none, 861 4, 198, :_reduce_none, 862 4, 198, :_reduce_none, 863 4, 198, :_reduce_none, 873 1, 197, :_reduce_none, 874 3, 197, :_reduce_none, 875 1, 149, :_reduce_none, 876 1, 149, :_reduce_none, 877 2, 199, :_reduce_none, 878 2, 199, :_reduce_none, 879 5, 199, :_reduce_none, 880 5, 199, :_reduce_none, 881 2, 199, :_reduce_none, 882 3, 199, :_reduce_none, 883 3, 199, :_reduce_none, 884 3, 199, :_reduce_none, 885 3, 199, :_reduce_none, 886 3, 199, :_reduce_none, 887 3, 199, :_reduce_none, 888 3, 199, :_reduce_none, 889 3, 199, :_reduce_none, 890 3, 199, :_reduce_none, 891 3, 199, :_reduce_none, 864 892 3, 198, :_reduce_none, 865 1, 172, :_reduce_243, 866 3, 173, :_reduce_none, 867 3, 173, :_reduce_none, 868 3, 173, :_reduce_none, 869 1, 183, :_reduce_247, 870 1, 113, :_reduce_none, 871 2, 113, :_reduce_none, 872 3, 199, :_reduce_none, 873 1, 199, :_reduce_none, 874 3, 199, :_reduce_none, 875 1, 151, :_reduce_none, 876 1, 151, :_reduce_none, 877 2, 201, :_reduce_none, 878 2, 201, :_reduce_none, 879 5, 201, :_reduce_none, 880 5, 201, :_reduce_none, 881 2, 201, :_reduce_none, 882 3, 201, :_reduce_none, 883 3, 201, :_reduce_none, 884 3, 201, :_reduce_none, 885 3, 201, :_reduce_none, 886 3, 201, :_reduce_none, 887 3, 201, :_reduce_none, 888 3, 201, :_reduce_none, 889 3, 201, :_reduce_none, 890 3, 201, :_reduce_none, 891 3, 201, :_reduce_none, 893 1, 198, :_reduce_none, 894 1, 198, :_reduce_none, 895 1, 201, :_reduce_none, 896 1, 201, :_reduce_none, 897 3, 203, :_reduce_none, 898 3, 203, :_reduce_none, 899 3, 203, :_reduce_none, 900 3, 203, :_reduce_none, 901 3, 203, :_reduce_none, 902 3, 202, :_reduce_none, 903 1, 202, :_reduce_none, 904 1, 202, :_reduce_none, 905 1, 202, :_reduce_none, 906 1, 127, :_reduce_none, 907 2, 127, :_reduce_none, 908 1, 200, :_reduce_none, 892 909 3, 200, :_reduce_none, 893 1, 200, :_reduce_none, 894 1, 200, :_reduce_none, 895 1, 203, :_reduce_none, 896 1, 203, :_reduce_none, 897 3, 205, :_reduce_none, 898 3, 205, :_reduce_none, 899 3, 205, :_reduce_none, 900 3, 205, :_reduce_none, 901 3, 205, :_reduce_none, 902 3, 204, :_reduce_none, 903 1, 204, :_reduce_none, 904 1, 204, :_reduce_none, 905 1, 204, :_reduce_none, 906 1, 129, :_reduce_none, 907 2, 129, :_reduce_none, 908 1, 202, :_reduce_none, 909 3, 202, :_reduce_none, 910 2, 206, :_reduce_288, 911 1, 206, :_reduce_289, 912 0, 146, :_reduce_290, 913 5, 146, :_reduce_291, 914 1, 207, :_reduce_292, 915 3, 207, :_reduce_293, 916 5, 147, :_reduce_294, 917 1, 208, :_reduce_none, 918 3, 208, :_reduce_none, 919 3, 208, :_reduce_none, 920 3, 208, :_reduce_none, 921 5, 208, :_reduce_none, 922 5, 208, :_reduce_none, 923 5, 208, :_reduce_none, 924 5, 208, :_reduce_none, 925 1, 210, :_reduce_303, 926 1, 210, :_reduce_304, 927 0, 117, :_reduce_none, 928 5, 117, :_reduce_306, 929 2, 117, :_reduce_none, 930 1, 209, :_reduce_308, 931 3, 209, :_reduce_309, 910 2, 204, :_reduce_288, 911 1, 204, :_reduce_289, 912 0, 144, :_reduce_290, 913 5, 144, :_reduce_291, 914 1, 205, :_reduce_292, 915 3, 205, :_reduce_293, 916 5, 145, :_reduce_294, 917 1, 206, :_reduce_none, 918 3, 206, :_reduce_none, 919 3, 206, :_reduce_none, 920 3, 206, :_reduce_none, 921 5, 206, :_reduce_none, 922 5, 206, :_reduce_none, 923 5, 206, :_reduce_none, 924 5, 206, :_reduce_none, 925 1, 208, :_reduce_303, 926 1, 208, :_reduce_304, 927 0, 115, :_reduce_none, 928 5, 115, :_reduce_306, 929 2, 115, :_reduce_none, 930 1, 207, :_reduce_308, 931 3, 207, :_reduce_309, 932 1, 209, :_reduce_none, 933 1, 209, :_reduce_none, 934 1, 209, :_reduce_none, 935 1, 133, :_reduce_none, 936 3, 133, :_reduce_none, 937 3, 133, :_reduce_none, 938 1, 210, :_reduce_none, 939 1, 210, :_reduce_none, 940 1, 210, :_reduce_none, 941 1, 134, :_reduce_none, 942 3, 134, :_reduce_none, 943 3, 134, :_reduce_none, 932 944 1, 211, :_reduce_none, 933 945 1, 211, :_reduce_none, … … 949 961 3, 137, :_reduce_none, 950 962 1, 214, :_reduce_none, 963 3, 214, :_reduce_none, 951 964 1, 214, :_reduce_none, 952 965 1, 214, :_reduce_none, … … 954 967 3, 138, :_reduce_none, 955 968 3, 138, :_reduce_none, 956 1, 21 5, :_reduce_none,957 1, 21 5, :_reduce_none,958 1, 215, :_reduce_none,969 1, 216, :_reduce_none, 970 1, 216, :_reduce_none, 971 3, 216, :_reduce_none, 959 972 1, 139, :_reduce_none, 960 973 3, 139, :_reduce_none, 961 974 3, 139, :_reduce_none, 962 1, 216, :_reduce_none, 963 3, 216, :_reduce_none, 964 1, 216, :_reduce_none, 965 1, 216, :_reduce_none, 966 1, 140, :_reduce_none, 967 3, 140, :_reduce_none, 968 3, 140, :_reduce_none, 969 1, 218, :_reduce_none, 975 1, 217, :_reduce_353, 976 1, 217, :_reduce_354, 977 3, 217, :_reduce_355, 978 3, 217, :_reduce_356, 979 1, 140, :_reduce_357, 980 3, 140, :_reduce_358, 981 3, 140, :_reduce_359, 982 1, 124, :_reduce_none, 983 3, 124, :_reduce_none, 984 3, 124, :_reduce_none, 970 985 1, 218, :_reduce_none, 971 986 3, 218, :_reduce_none, 972 1, 141, :_reduce_none, 973 3, 141, :_reduce_none, 974 3, 141, :_reduce_none, 975 1, 219, :_reduce_353, 976 1, 219, :_reduce_354, 977 3, 219, :_reduce_355, 978 3, 219, :_reduce_356, 979 1, 142, :_reduce_357, 980 3, 142, :_reduce_358, 981 3, 142, :_reduce_359, 982 1, 126, :_reduce_none, 983 3, 126, :_reduce_none, 984 3, 126, :_reduce_none, 985 1, 220, :_reduce_none, 986 3, 220, :_reduce_none, 987 3, 221, :_reduce_365, 988 1, 125, :_reduce_366, 989 1, 125, :_reduce_367, 990 3, 222, :_reduce_368, 991 0, 223, :_reduce_none, 992 1, 223, :_reduce_none, 993 2, 223, :_reduce_none, 994 1, 124, :_reduce_372, 995 1, 150, :_reduce_373, 996 1, 150, :_reduce_374, 997 1, 217, :_reduce_375 ] 987 3, 219, :_reduce_365, 988 1, 123, :_reduce_366, 989 1, 123, :_reduce_367, 990 3, 220, :_reduce_368, 991 0, 221, :_reduce_none, 992 1, 221, :_reduce_none, 993 2, 221, :_reduce_none, 994 1, 122, :_reduce_372, 995 1, 148, :_reduce_373, 996 1, 148, :_reduce_374, 997 1, 215, :_reduce_375 ] 998 998 999 999 racc_reduce_n = 376 … … 1037 1037 :c_complx_object_head => 33, 1038 1038 :SYM_MATCHES => 34, 1039 :S TART_REGEXP_BLOCK=> 35,1039 :Slash_code => 35, 1040 1040 :REGEXP_BODY => 36, 1041 :END_REGEXP_BLOCK => 37, 1042 :ERR_C_DOMAIN_TYPE => 38, 1043 :START_V_C_DOMAIN_TYPE_BLOCK => 39, 1044 :END_V_C_DOMAIN_TYPE_BLOCK => 40, 1045 :SYM_USE_NODE => 41, 1046 :SYM_ALLOW_ARCHETYPE => 42, 1047 :Star_code => 43, 1048 :V_ATTRIBUTE_IDENTIFIER => 44, 1049 :SYM_INCLUDE => 45, 1050 :SYM_EXCLUDE => 46, 1051 ":" => 47, 1052 :SYM_INVARIANT => 48, 1053 :V_ASSERTION_TEXT => 49, 1054 :SYM_ONTOLOGY => 50, 1055 :Left_bracket_code => 51, 1056 :Right_bracket_code => 52, 1057 :V_TYPE_IDENTIFIER => 53, 1058 :V_GENERIC_TYPE_IDENTIFIER => 54, 1059 :V_STRING => 55, 1060 :Comma_code => 56, 1061 :SYM_LIST_CONTINUE => 57, 1062 :V_INTEGER => 58, 1063 :Plus_code => 59, 1064 :Minus_code => 60, 1065 :SYM_INTERVAL_DELIM => 61, 1066 :SYM_ELLIPSIS => 62, 1067 :V_REAL => 63, 1068 :SYM_TRUE => 64, 1069 :SYM_FALSE => 65, 1070 :V_CHARACTER => 66, 1071 :V_ISO8601_EXTENDED_DATE => 67, 1072 :V_ISO8601_EXTENDED_TIME => 68, 1073 :V_ISO8601_EXTENDED_DATE_TIME => 69, 1074 :V_ISO8601_DURATION => 70, 1075 :V_QUALIFIED_TERM_CODE_REF => 71, 1076 :V_URI => 72, 1077 :SYM_EXISTS => 73, 1078 :SYM_NOT => 74, 1079 "=" => 75, 1080 :SYM_AND => 76, 1081 :SYM_OR => 77, 1082 :SYM_XOR => 78, 1083 :SYM_IMPLIES => 79, 1084 :Slash_code => 80, 1085 "^" => 81, 1086 :SYM_EXISTENCE => 82, 1087 :SYM_CARDINALITY => 83, 1088 :SYM_ORDERED => 84, 1089 :SYM_UNORDERED => 85, 1090 :SYM_UNIQUE => 86, 1091 :SYM_OCCURRENCES => 87, 1092 :V_ISO8601_DATE_CONSTRAINT_PATTERN => 88, 1093 :V_ISO8601_TIME_CONSTRAINT_PATTERN => 89, 1094 :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN => 90, 1095 :START_TERM_CODE_CONSTRAINT => 91, 1096 :END_TERM_CODE_CONSTRAINT => 92, 1097 :TERM_CODE => 93, 1098 :V_ISO8601_DURATION_CONSTRAINT_PATTERN => 94 } 1099 1100 racc_nt_base = 95 1041 :ERR_C_DOMAIN_TYPE => 37, 1042 :START_V_C_DOMAIN_TYPE_BLOCK => 38, 1043 :END_V_C_DOMAIN_TYPE_BLOCK => 39, 1044 :SYM_USE_NODE => 40, 1045 :SYM_ALLOW_ARCHETYPE => 41, 1046 :Star_code => 42, 1047 :V_ATTRIBUTE_IDENTIFIER => 43, 1048 :SYM_INCLUDE => 44, 1049 :SYM_EXCLUDE => 45, 1050 ":" => 46, 1051 :SYM_INVARIANT => 47, 1052 :V_ASSERTION_TEXT => 48, 1053 :SYM_ONTOLOGY => 49, 1054 :Left_bracket_code => 50, 1055 :Right_bracket_code => 51, 1056 :V_TYPE_IDENTIFIER => 52, 1057 :V_GENERIC_TYPE_IDENTIFIER => 53, 1058 :V_STRING => 54, 1059 :Comma_code => 55, 1060 :SYM_LIST_CONTINUE => 56, 1061 :V_INTEGER => 57, 1062 :Plus_code => 58, 1063 :Minus_code => 59, 1064 :SYM_INTERVAL_DELIM => 60, 1065 :SYM_ELLIPSIS => 61, 1066 :V_REAL => 62, 1067 :SYM_TRUE => 63, 1068 :SYM_FALSE => 64, 1069 :V_CHARACTER => 65, 1070 :V_ISO8601_EXTENDED_DATE => 66, 1071 :V_ISO8601_EXTENDED_TIME => 67, 1072 :V_ISO8601_EXTENDED_DATE_TIME => 68, 1073 :V_ISO8601_DURATION => 69, 1074 :V_QUALIFIED_TERM_CODE_REF => 70, 1075 :V_URI => 71, 1076 :SYM_EXISTS => 72, 1077 :SYM_NOT => 73, 1078 "=" => 74, 1079 :SYM_AND => 75, 1080 :SYM_OR => 76, 1081 :SYM_XOR => 77, 1082 :SYM_IMPLIES => 78, 1083 "^" => 79, 1084 :SYM_EXISTENCE => 80, 1085 :SYM_CARDINALITY => 81, 1086 :SYM_ORDERED => 82, 1087 :SYM_UNORDERED => 83, 1088 :SYM_UNIQUE => 84, 1089 :SYM_OCCURRENCES => 85, 1090 :V_ISO8601_DATE_CONSTRAINT_PATTERN => 86, 1091 :V_ISO8601_TIME_CONSTRAINT_PATTERN => 87, 1092 :V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN => 88, 1093 :START_TERM_CODE_CONSTRAINT => 89, 1094 :END_TERM_CODE_CONSTRAINT => 90, 1095 :TERM_CODE => 91, 1096 :V_ISO8601_DURATION_CONSTRAINT_PATTERN => 92 } 1097 1098 racc_nt_base = 93 1101 1099 1102 1100 racc_use_result_var = true … … 1154 1152 "c_complx_object_head", 1155 1153 "SYM_MATCHES", 1156 "S TART_REGEXP_BLOCK",1154 "Slash_code", 1157 1155 "REGEXP_BODY", 1158 "END_REGEXP_BLOCK",1159 1156 "ERR_C_DOMAIN_TYPE", 1160 1157 "START_V_C_DOMAIN_TYPE_BLOCK", … … 1199 1196 "SYM_XOR", 1200 1197 "SYM_IMPLIES", 1201 "Slash_code",1202 1198 "\"^\"", 1203 1199 "SYM_EXISTENCE", … … 1541 1537 .,., 1542 1538 1543 module_eval(<<'.,.,', 'parser.y', 16 8)1539 module_eval(<<'.,.,', 'parser.y', 169) 1544 1540 def _reduce_28(val, _values, result) 1545 1541 result = OpenEhr::AM::Archetype::ConstraintModel::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object| … … 1553 1549 .,., 1554 1550 1555 module_eval(<<'.,.,', 'parser.y', 17 6)1551 module_eval(<<'.,.,', 'parser.y', 177) 1556 1552 def _reduce_29(val, _values, result) 1557 1553 result = OpenEhr::AM::Archetype::ConstraintModel::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object| … … 1565 1561 .,., 1566 1562 1567 module_eval(<<'.,.,', 'parser.y', 18 7)1563 module_eval(<<'.,.,', 'parser.y', 188) 1568 1564 def _reduce_30(val, _values, result) 1569 1565 result = {:c_complex_object_id => val[0], :c_occurrences => val[1]} … … 1573 1569 .,., 1574 1570 1575 module_eval(<<'.,.,', 'parser.y', 19 2)1571 module_eval(<<'.,.,', 'parser.y', 193) 1576 1572 def _reduce_31(val, _values, result) 1577 1573 result = {:type_identifier => val[0]} … … 1581 1577 .,., 1582 1578 1583 module_eval(<<'.,.,', 'parser.y', 19 6)1579 module_eval(<<'.,.,', 'parser.y', 197) 1584 1580 def _reduce_32(val, _values, result) 1585 1581 result = {:type_identifier => val[0], :local_term_code_ref => val[1]} … … 1591 1587 # reduce 33 omitted 1592 1588 1593 module_eval(<<'.,.,', 'parser.y', 20 2)1589 module_eval(<<'.,.,', 'parser.y', 203) 1594 1590 def _reduce_34(val, _values, result) 1595 1591 result = OpenEhr::AM::Archetype::ConstraintModel::C_COMPLEX_OBJECT.new(:attributes => val[0]) … … 1599 1595 .,., 1600 1596 1601 module_eval(<<'.,.,', 'parser.y', 22 0)1597 module_eval(<<'.,.,', 'parser.y', 221) 1602 1598 def _reduce_35(val, _values, result) 1603 1599 @@logger.debug("#{__FILE__}:#{__LINE__}: c_complex_object = #{val[0].inspect} at #{@filename}:#{@lineno}") … … 1608 1604 .,., 1609 1605 1610 module_eval(<<'.,.,', 'parser.y', 22 5)1606 module_eval(<<'.,.,', 'parser.y', 226) 1611 1607 def _reduce_36(val, _values, result) 1612 1608 result = OpenEhr::AM::Archetype::ConstraintModel::ARCHETYPE_INTERNAL_REF.create do |archetype_internal_ref| … … 1620 1616 .,., 1621 1617 1622 module_eval(<<'.,.,', 'parser.y', 23 3)1618 module_eval(<<'.,.,', 'parser.y', 234) 1623 1619 def _reduce_37(val, _values, result) 1624 1620 result = val[0] … … 1628 1624 .,., 1629 1625 1630 module_eval(<<'.,.,', 'parser.y', 23 7)1626 module_eval(<<'.,.,', 'parser.y', 238) 1631 1627 def _reduce_38(val, _values, result) 1632 1628 result = OpenEhr::AM::Archetype::ConstraintModel::CONSTRAINT_REF.create do |constraint_ref| … … 1638 1634 .,., 1639 1635 1640 module_eval(<<'.,.,', 'parser.y', 24 3)1636 module_eval(<<'.,.,', 'parser.y', 244) 1641 1637 def _reduce_39(val, _values, result) 1642 1638 result = val[0] … … 1646 1642 .,., 1647 1643 1648 module_eval(<<'.,.,', 'parser.y', 24 7)1644 module_eval(<<'.,.,', 'parser.y', 248) 1649 1645 def _reduce_40(val, _values, result) 1650 1646 result = val[0] … … 1654 1650 .,., 1655 1651 1656 module_eval(<<'.,.,', 'parser.y', 25 1)1652 module_eval(<<'.,.,', 'parser.y', 252) 1657 1653 def _reduce_41(val, _values, result) 1658 1654 result = val[0] … … 1662 1658 .,., 1663 1659 1664 module_eval(<<'.,.,', 'parser.y', 25 5)1660 module_eval(<<'.,.,', 'parser.y', 256) 1665 1661 def _reduce_42(val, _values, result) 1666 1662 result = val[0] … … 1674 1670 # reduce 44 omitted 1675 1671 1676 module_eval(<<'.,.,', 'parser.y', 28 8)1672 module_eval(<<'.,.,', 'parser.y', 289) 1677 1673 def _reduce_45(val, _values, result) 1678 1674 result = val[1] … … 1682 1678 .,., 1683 1679 1684 module_eval(<<'.,.,', 'parser.y', 29 4)1680 module_eval(<<'.,.,', 'parser.y', 295) 1685 1681 def _reduce_46(val, _values, result) 1686 1682 result = {:type_identifier => val[1], :c_occurrences => val[2], :absolute_path => val[3] } … … 1692 1688 # reduce 47 omitted 1693 1689 1694 module_eval(<<'.,.,', 'parser.y', 30 1)1690 module_eval(<<'.,.,', 'parser.y', 302) 1695 1691 def _reduce_48(val, _values, result) 1696 1692 result = OpenEhr::AM::Archetype::ConstraintModel::ARCHETYPE_SLOT.create do |archetype_slot| … … 1705 1701 .,., 1706 1702 1707 module_eval(<<'.,.,', 'parser.y', 31 0)1703 module_eval(<<'.,.,', 'parser.y', 311) 1708 1704 def _reduce_49(val, _values, result) 1709 1705 result = {:c_archetype_slot_id => val[0],:c_occurrences => val[1]} … … 1713 1709 .,., 1714 1710 1715 module_eval(<<'.,.,', 'parser.y', 31 5)1711 module_eval(<<'.,.,', 'parser.y', 316) 1716 1712 def _reduce_50(val, _values, result) 1717 1713 result = val[1] … … 1725 1721 # reduce 52 omitted 1726 1722 1727 module_eval(<<'.,.,', 'parser.y', 32 3)1723 module_eval(<<'.,.,', 'parser.y', 324) 1728 1724 def _reduce_53(val, _values, result) 1729 1725 assert_at(__FILE__,__LINE__){val[0].kind_of?(OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_PRIMITIVE)} … … 1736 1732 .,., 1737 1733 1738 module_eval(<<'.,.,', 'parser.y', 33 1)1734 module_eval(<<'.,.,', 'parser.y', 332) 1739 1735 def _reduce_54(val, _values, result) 1740 1736 @@logger.debug("#{__FILE__}:#{__LINE__}: c_integer = #{val[0]} at #{@filename}:#{@lineno}") … … 1749 1745 .,., 1750 1746 1751 module_eval(<<'.,.,', 'parser.y', 34 0)1747 module_eval(<<'.,.,', 'parser.y', 341) 1752 1748 def _reduce_55(val, _values, result) 1753 1749 @@logger.debug("#{__FILE__}:#{__LINE__}: c_real = #{val[0]} at #{@filename}:#{@lineno}") … … 1758 1754 .,., 1759 1755 1760 module_eval(<<'.,.,', 'parser.y', 34 5)1756 module_eval(<<'.,.,', 'parser.y', 346) 1761 1757 def _reduce_56(val, _values, result) 1762 1758 @@logger.debug("#{__FILE__}:#{__LINE__}: c_date = #{val[0]} at #{@filename}:#{@lineno}") … … 1767 1763 .,., 1768 1764 1769 module_eval(<<'.,.,', 'parser.y', 35 0)1765 module_eval(<<'.,.,', 'parser.y', 351) 1770 1766 def _reduce_57(val, _values, result) 1771 1767 @@logger.debug("#{__FILE__}:#{__LINE__}: c_time = #{val[0]} at #{@filename}:#{@lineno}") … … 1776 1772 .,., 1777 1773 1778 module_eval(<<'.,.,', 'parser.y', 35 5)1774 module_eval(<<'.,.,', 'parser.y', 356) 1779 1775 def _reduce_58(val, _values, result) 1780 1776 @@logger.debug("#{__FILE__}:#{__LINE__}: c_date_time = #{val[0]} at #{@filename}:#{@lineno}") … … 1785 1781 .,., 1786 1782 1787 module_eval(<<'.,.,', 'parser.y', 36 0)1783 module_eval(<<'.,.,', 'parser.y', 361) 1788 1784 def _reduce_59(val, _values, result) 1789 1785 @@logger.debug("#{__FILE__}:#{__LINE__}: c_duration = #{val[0]} at #{@filename}:#{@lineno}") … … 1794 1790 .,., 1795 1791 1796 module_eval(<<'.,.,', 'parser.y', 36 5)1792 module_eval(<<'.,.,', 'parser.y', 366) 1797 1793 def _reduce_60(val, _values, result) 1798 1794 @@logger.debug("#{__FILE__}:#{__LINE__}: c_string = #{val[0]} at #{@filename}:#{@lineno}") … … 1803 1799 .,., 1804 1800 1805 module_eval(<<'.,.,', 'parser.y', 37 0)1801 module_eval(<<'.,.,', 'parser.y', 371) 1806 1802 def _reduce_61(val, _values, result) 1807 1803 assert_at(__FILE__,__LINE__){val[0].instance_of?(OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_BOOLEAN)} … … 1815 1811 # reduce 62 omitted 1816 1812 1817 module_eval(<<'.,.,', 'parser.y', 38 2)1813 module_eval(<<'.,.,', 'parser.y', 383) 1818 1814 def _reduce_63(val, _values, result) 1819 1815 result = [val[0]] … … 1823 1819 .,., 1824 1820 1825 module_eval(<<'.,.,', 'parser.y', 38 6)1821 module_eval(<<'.,.,', 'parser.y', 387) 1826 1822 def _reduce_64(val, _values, result) 1827 1823 result = (val[0] << val[1]) … … 1831 1827 .,., 1832 1828 1833 module_eval(<<'.,.,', 'parser.y', 39 2)1829 module_eval(<<'.,.,', 'parser.y', 393) 1834 1830 def _reduce_65(val, _values, result) 1835 1831 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEhr::AM::Archetype::ConstraintModel::C_ATTRIBUTE)} … … 1842 1838 .,., 1843 1839 1844 module_eval(<<'.,.,', 'parser.y', 399)1840 module_eval(<<'.,.,', 'parser.y', 401) 1845 1841 def _reduce_66(val, _values, result) 1846 1842 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEhr::AM::Archetype::ConstraintModel::C_ATTRIBUTE)} … … 1851 1847 .,., 1852 1848 1853 module_eval(<<'.,.,', 'parser.y', 40 4)1849 module_eval(<<'.,.,', 'parser.y', 406) 1854 1850 def _reduce_67(val, _values, result) 1855 1851 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEhr::AM::Archetype::ConstraintModel::C_ATTRIBUTE)} … … 1860 1856 .,., 1861 1857 1862 module_eval(<<'.,.,', 'parser.y', 41 1)1858 module_eval(<<'.,.,', 'parser.y', 413) 1863 1859 def _reduce_68(val, _values, result) 1864 1860 @@logger.debug("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}, c_existence = #{val[1]} at #{@filename}") … … 1873 1869 .,., 1874 1870 1875 module_eval(<<'.,.,', 'parser.y', 42 0)1871 module_eval(<<'.,.,', 'parser.y', 422) 1876 1872 def _reduce_69(val, _values, result) 1877 1873 assert_at(__FILE__,__LINE__){ val[2].instance_of?(OpenEhr::AM::Archetype::ConstraintModel::CARDINALITY) } … … 1887 1883 .,., 1888 1884 1889 module_eval(<<'.,.,', 'parser.y', 43 1)1885 module_eval(<<'.,.,', 'parser.y', 433) 1890 1886 def _reduce_70(val, _values, result) 1891 1887 result = Array[val[0]] … … 1895 1891 .,., 1896 1892 1897 module_eval(<<'.,.,', 'parser.y', 43 5)1893 module_eval(<<'.,.,', 'parser.y', 437) 1898 1894 def _reduce_71(val, _values, result) 1899 1895 result = (val[0] << val[1]) … … 1903 1899 .,., 1904 1900 1905 module_eval(<<'.,.,', 'parser.y', 4 39)1901 module_eval(<<'.,.,', 'parser.y', 441) 1906 1902 def _reduce_72(val, _values, result) 1907 1903 result = Array[val[0]] … … 1913 1909 # reduce 73 omitted 1914 1910 1915 module_eval(<<'.,.,', 'parser.y', 44 7)1911 module_eval(<<'.,.,', 'parser.y', 449) 1916 1912 def _reduce_74(val, _values, result) 1917 1913 result = val[1] … … 1923 1919 # reduce 75 omitted 1924 1920 1925 module_eval(<<'.,.,', 'parser.y', 45 5)1921 module_eval(<<'.,.,', 'parser.y', 457) 1926 1922 def _reduce_76(val, _values, result) 1927 1923 result = val[1] … … 1947 1943 # reduce 84 omitted 1948 1944 1949 module_eval(<<'.,.,', 'parser.y', 47 5)1945 module_eval(<<'.,.,', 'parser.y', 477) 1950 1946 def _reduce_85(val, _values, result) 1951 1947 dadl_section = val[1] … … 1960 1956 # reduce 87 omitted 1961 1957 1962 module_eval(<<'.,.,', 'parser.y', 48 5)1958 module_eval(<<'.,.,', 'parser.y', 487) 1963 1959 def _reduce_88(val, _values, result) 1964 1960 @@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section attr_vals = \n#{val[0].to_yaml}") … … 1969 1965 .,., 1970 1966 1971 module_eval(<<'.,.,', 'parser.y', 49 0)1967 module_eval(<<'.,.,', 'parser.y', 492) 1972 1968 def _reduce_89(val, _values, result) 1973 1969 @@logger.debug("#{__FILE__}:#{__LINE__}:dadl_section complex_object_block = \n#{val[0].to_yaml}") … … 1978 1974 .,., 1979 1975 1980 module_eval(<<'.,.,', 'parser.y', 49 7)1976 module_eval(<<'.,.,', 'parser.y', 499) 1981 1977 def _reduce_90(val, _values, result) 1982 1978 result = Array[val[0]] … … 1986 1982 .,., 1987 1983 1988 module_eval(<<'.,.,', 'parser.y', 50 1)1984 module_eval(<<'.,.,', 'parser.y', 503) 1989 1985 def _reduce_91(val, _values, result) 1990 1986 result = (val[0] << val[1]) … … 1994 1990 .,., 1995 1991 1996 module_eval(<<'.,.,', 'parser.y', 50 5)1992 module_eval(<<'.,.,', 'parser.y', 507) 1997 1993 def _reduce_92(val, _values, result) 1998 1994 result = (val[0] << val[2]) … … 2002 1998 .,., 2003 1999 2004 module_eval(<<'.,.,', 'parser.y', 51 0)2000 module_eval(<<'.,.,', 'parser.y', 512) 2005 2001 def _reduce_93(val, _values, result) 2006 2002 @@logger.debug("#{__FILE__}:#{__LINE__}:attr_val\n attr_id = #{val[0]}, object_block = #{val[1]}") … … 2011 2007 .,., 2012 2008 2013 module_eval(<<'.,.,', 'parser.y', 51 6)2009 module_eval(<<'.,.,', 'parser.y', 518) 2014 2010 def _reduce_94(val, _values, result) 2015 2011 @@logger.debug("#{__FILE__}:#{__LINE__}: V_ATTRIBUTE_IDENTIFIER = #{val[0]}") … … 2022 2018 # reduce 95 omitted 2023 2019 2024 module_eval(<<'.,.,', 'parser.y', 52 3)2020 module_eval(<<'.,.,', 'parser.y', 525) 2025 2021 def _reduce_96(val, _values, result) 2026 2022 result = val[0] … … 2030 2026 .,., 2031 2027 2032 module_eval(<<'.,.,', 'parser.y', 52 7)2028 module_eval(<<'.,.,', 'parser.y', 529) 2033 2029 def _reduce_97(val, _values, result) 2034 2030 result = val[0] … … 2038 2034 .,., 2039 2035 2040 module_eval(<<'.,.,', 'parser.y', 53 2)2036 module_eval(<<'.,.,', 'parser.y', 534) 2041 2037 def _reduce_98(val, _values, result) 2042 2038 result = val[0] … … 2046 2042 .,., 2047 2043 2048 module_eval(<<'.,.,', 'parser.y', 53 6)2044 module_eval(<<'.,.,', 'parser.y', 538) 2049 2045 def _reduce_99(val, _values, result) 2050 2046 result = val[0] … … 2054 2050 .,., 2055 2051 2056 module_eval(<<'.,.,', 'parser.y', 54 1)2052 module_eval(<<'.,.,', 'parser.y', 543) 2057 2053 def _reduce_100(val, _values, result) 2058 2054 result = {:untyped_multiple_attr_object_block => val[0]} … … 2062 2058 .,., 2063 2059 2064 module_eval(<<'.,.,', 'parser.y', 54 5)2060 module_eval(<<'.,.,', 'parser.y', 547) 2065 2061 def _reduce_101(val, _values, result) 2066 2062 result = {:type_identifier => val[0], :untyped_multiple_attr_object_block => val[1]} … … 2070 2066 .,., 2071 2067 2072 module_eval(<<'.,.,', 'parser.y', 55 0)2068 module_eval(<<'.,.,', 'parser.y', 552) 2073 2069 def _reduce_102(val, _values, result) 2074 2070 result = {:multiple_attr_object_block_head => val[0], :keyed_objects => val[1]} … … 2078 2074 .,., 2079 2075 2080 module_eval(<<'.,.,', 'parser.y', 55 5)2076 module_eval(<<'.,.,', 'parser.y', 557) 2081 2077 def _reduce_103(val, _values, result) 2082 2078 result = val[0] … … 2086 2082 .,., 2087 2083 2088 module_eval(<<'.,.,', 'parser.y', 56 0)2084 module_eval(<<'.,.,', 'parser.y', 562) 2089 2085 def _reduce_104(val, _values, result) 2090 2086 result = Array[val[0]] … … 2094 2090 .,., 2095 2091 2096 module_eval(<<'.,.,', 'parser.y', 56 4)2092 module_eval(<<'.,.,', 'parser.y', 566) 2097 2093 def _reduce_105(val, _values, result) 2098 2094 result = (val[0] << val[1]) … … 2102 2098 .,., 2103 2099 2104 module_eval(<<'.,.,', 'parser.y', 5 69)2100 module_eval(<<'.,.,', 'parser.y', 571) 2105 2101 def _reduce_106(val, _values, result) 2106 2102 @@logger.debug("#{__FILE__}:#{__LINE__}: keyed_object = #{val[0]} at #{@filename}:#{@lineno}") … … 2111 2107 .,., 2112 2108 2113 module_eval(<<'.,.,', 'parser.y', 57 5)2109 module_eval(<<'.,.,', 'parser.y', 577) 2114 2110 def _reduce_107(val, _values, result) 2115 2111 @@logger.debug("object_key: [#{val[1]}] at #{@filename}:#{@lineno}") … … 2120 2116 .,., 2121 2117 2122 module_eval(<<'.,.,', 'parser.y', 58 1)2118 module_eval(<<'.,.,', 'parser.y', 583) 2123 2119 def _reduce_108(val, _values, result) 2124 2120 result = {:untyped_single_attr_object_block => val[0]} … … 2128 2124 .,., 2129 2125 2130 module_eval(<<'.,.,', 'parser.y', 58 5)2126 module_eval(<<'.,.,', 'parser.y', 587) 2131 2127 def _reduce_109(val, _values, result) 2132 2128 result = {:type_identifier => val[0], :untyped_single_attr_object_block => val[1]} … … 2136 2132 .,., 2137 2133 2138 module_eval(<<'.,.,', 'parser.y', 59 0)2134 module_eval(<<'.,.,', 'parser.y', 592) 2139 2135 def _reduce_110(val, _values, result) 2140 2136 @@logger.debug("#{__FILE__}:#{__LINE__}: single_attr_object_complex_head = #{val[0]} at #{@filename}:#{@lineno}") … … 2145 2141 .,., 2146 2142 2147 module_eval(<<'.,.,', 'parser.y', 59 5)2143 module_eval(<<'.,.,', 'parser.y', 597) 2148 2144 def _reduce_111(val, _values, result) 2149 2145 @@logger.debug("#{__FILE__}:#{__LINE__}: attr_vals = #{val[1]} at #{@filename}:#{@lineno}") … … 2156 2152 # reduce 112 omitted 2157 2153 2158 module_eval(<<'.,.,', 'parser.y', 60 1)2154 module_eval(<<'.,.,', 'parser.y', 603) 2159 2155 def _reduce_113(val, _values, result) 2160 2156 @@logger.debug("#{__FILE__}:#{__LINE__}: untyped_primitive_object_block = #{val[0]} at #{@filename}:#{@lineno}") … … 2165 2161 .,., 2166 2162 2167 module_eval(<<'.,.,', 'parser.y', 60 6)2163 module_eval(<<'.,.,', 'parser.y', 608) 2168 2164 def _reduce_114(val, _values, result) 2169 2165 @@logger.debug("#{__FILE__}:#{__LINE__}: type_identifier = #{val[0]}, untyped_primitive_object_block = #{val[1]} at #{@filename}:#{@lineno}") … … 2174 2170 .,., 2175 2171 2176 module_eval(<<'.,.,', 'parser.y', 61 1)2172 module_eval(<<'.,.,', 'parser.y', 613) 2177 2173 def _reduce_115(val, _values, result) 2178 2174 @@logger.debug("#{__FILE__}:#{__LINE__}: primitive_object_block = <#{val[1]}> at #{@filename}:#{@lineno}") … … 2183 2179 .,., 2184 2180 2185 module_eval(<<'.,.,', 'parser.y', 61 6)2181 module_eval(<<'.,.,', 'parser.y', 618) 2186 2182 def _reduce_116(val, _values, result) 2187 2183 result = val[0] … … 2191 2187 .,., 2192 2188 2193 module_eval(<<'.,.,', 'parser.y', 62 0)2189 module_eval(<<'.,.,', 'parser.y', 622) 2194 2190 def _reduce_117(val, _values, result) 2195 2191 result = val[0] … … 2199 2195 .,., 2200 2196 2201 module_eval(<<'.,.,', 'parser.y', 62 4)2197 module_eval(<<'.,.,', 'parser.y', 626) 2202 2198 def _reduce_118(val, _values, result) 2203 2199 result = val[0] … … 2207 2203 .,., 2208 2204 2209 module_eval(<<'.,.,', 'parser.y', 6 28)2205 module_eval(<<'.,.,', 'parser.y', 630) 2210 2206 def _reduce_119(val, _values, result) 2211 2207 result = val[0] … … 2215 2211 .,., 2216 2212 2217 module_eval(<<'.,.,', 'parser.y', 63 2)2213 module_eval(<<'.,.,', 'parser.y', 634) 2218 2214 def _reduce_120(val, _values, result) 2219 2215 result = val[0] … … 2223 2219 .,., 2224 2220 2225 module_eval(<<'.,.,', 'parser.y', 63 6)2221 module_eval(<<'.,.,', 'parser.y', 638) 2226 2222 def _reduce_121(val, _values, result) 2227 2223 @@logger.debug("string_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2232 2228 .,., 2233 2229 2234 module_eval(<<'.,.,', 'parser.y', 64 1)2230 module_eval(<<'.,.,', 'parser.y', 643) 2235 2231 def _reduce_122(val, _values, result) 2236 2232 @@logger.debug("integer_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2241 2237 .,., 2242 2238 2243 module_eval(<<'.,.,', 'parser.y', 64 6)2239 module_eval(<<'.,.,', 'parser.y', 648) 2244 2240 def _reduce_123(val, _values, result) 2245 2241 @@logger.debug("real_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2250 2246 .,., 2251 2247 2252 module_eval(<<'.,.,', 'parser.y', 65 1)2248 module_eval(<<'.,.,', 'parser.y', 653) 2253 2249 def _reduce_124(val, _values, result) 2254 2250 @@logger.debug("boolean_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2259 2255 .,., 2260 2256 2261 module_eval(<<'.,.,', 'parser.y', 65 6)2257 module_eval(<<'.,.,', 'parser.y', 658) 2262 2258 def _reduce_125(val, _values, result) 2263 2259 @@logger.debug("character_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2268 2264 .,., 2269 2265 2270 module_eval(<<'.,.,', 'parser.y', 66 1)2266 module_eval(<<'.,.,', 'parser.y', 663) 2271 2267 def _reduce_126(val, _values, result) 2272 2268 @@logger.debug("date_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2277 2273 .,., 2278 2274 2279 module_eval(<<'.,.,', 'parser.y', 66 6)2275 module_eval(<<'.,.,', 'parser.y', 668) 2280 2276 def _reduce_127(val, _values, result) 2281 2277 @@logger.debug("time_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2286 2282 .,., 2287 2283 2288 module_eval(<<'.,.,', 'parser.y', 67 1)2284 module_eval(<<'.,.,', 'parser.y', 673) 2289 2285 def _reduce_128(val, _values, result) 2290 2286 @@logger.debug("date_time_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2295 2291 .,., 2296 2292 2297 module_eval(<<'.,.,', 'parser.y', 67 6)2293 module_eval(<<'.,.,', 'parser.y', 678) 2298 2294 def _reduce_129(val, _values, result) 2299 2295 @@logger.debug("duration_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2304 2300 .,., 2305 2301 2306 module_eval(<<'.,.,', 'parser.y', 68 1)2302 module_eval(<<'.,.,', 'parser.y', 683) 2307 2303 def _reduce_130(val, _values, result) 2308 2304 @@logger.debug("uri_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2313 2309 .,., 2314 2310 2315 module_eval(<<'.,.,', 'parser.y', 68 7)2311 module_eval(<<'.,.,', 'parser.y', 689) 2316 2312 def _reduce_131(val, _values, result) 2317 2313 @@logger.debug("string_list_value: #{val[0]} at #{@filename}:#{@lineno}") … … 2322 2318 .,., 2323 2319 2324 module_eval(<<'.,.,', 'parser.y', 69 2)2320 module_eval(<<'.,.,', 'parser.y', 694) 2325 2321 def _reduce_132(val, _values, result) 2326 2322 result = val[0] … … 2330 2326 .,., 2331 2327 2332 module_eval(<<'.,.,', 'parser.y', 69 6)2328 module_eval(<<'.,.,', 'parser.y', 698) 2333 2329 def _reduce_133(val, _values, result) 2334 2330 result = val[0] … … 2338 2334 .,., 2339 2335 2340 module_eval(<<'.,.,', 'parser.y', 70 0)2336 module_eval(<<'.,.,', 'parser.y', 702) 2341 2337 def _reduce_134(val, _values, result) 2342 2338 result = val[0] … … 2346 2342 .,., 2347 2343 2348 module_eval(<<'.,.,', 'parser.y', 70 4)2344 module_eval(<<'.,.,', 'parser.y', 706) 2349 2345 def _reduce_135(val, _values, result) 2350 2346 result = val[0] … … 2354 2350 .,., 2355 2351 2356 module_eval(<<'.,.,', 'parser.y', 7 08)2352 module_eval(<<'.,.,', 'parser.y', 710) 2357 2353 def _reduce_136(val, _values, result) 2358 2354 result = val[0] … … 2362 2358 .,., 2363 2359 2364 module_eval(<<'.,.,', 'parser.y', 71 2)2360 module_eval(<<'.,.,', 'parser.y', 714) 2365 2361 def _reduce_137(val, _values, result) 2366 2362 result = val[0] … … 2370 2366 .,., 2371 2367 2372 module_eval(<<'.,.,', 'parser.y', 71 6)2368 module_eval(<<'.,.,', 'parser.y', 718) 2373 2369 def _reduce_138(val, _values, result) 2374 2370 result = val[0] … … 2378 2374 .,., 2379 2375 2380 module_eval(<<'.,.,', 'parser.y', 72 0)2376 module_eval(<<'.,.,', 'parser.y', 722) 2381 2377 def _reduce_139(val, _values, result) 2382 2378 result = val[0] … … 2398 2394 # reduce 145 omitted 2399 2395 2400 module_eval(<<'.,.,', 'parser.y', 73 2)2396 module_eval(<<'.,.,', 'parser.y', 734) 2401 2397 def _reduce_146(val, _values, result) 2402 2398 @@logger.debug("V_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") … … 2407 2403 .,., 2408 2404 2409 module_eval(<<'.,.,', 'parser.y', 73 7)2405 module_eval(<<'.,.,', 'parser.y', 739) 2410 2406 def _reduce_147(val, _values, result) 2411 2407 @@logger.debug("V_GENERIC_TYPE_IDENTIFIER: #{val[0]} at #{@filename}:#{@lineno}") … … 2416 2412 .,., 2417 2413 2418 module_eval(<<'.,.,', 'parser.y', 74 3)2414 module_eval(<<'.,.,', 'parser.y', 745) 2419 2415 def _reduce_148(val, _values, result) 2420 2416 @@logger.debug("V_STRING: #{val[0]} at #{@filename}:#{@lineno}") … … 2425 2421 .,., 2426 2422 2427 module_eval(<<'.,.,', 'parser.y', 7 49)2423 module_eval(<<'.,.,', 'parser.y', 751) 2428 2424 def _reduce_149(val, _values, result) 2429 2425 result = [val[0],val[2]] … … 2433 2429 .,., 2434 2430 2435 module_eval(<<'.,.,', 'parser.y', 75 3)2431 module_eval(<<'.,.,', 'parser.y', 755) 2436 2432 def _reduce_150(val, _values, result) 2437 2433 result = val[0] << val[2] … … 2441 2437 .,., 2442 2438 2443 module_eval(<<'.,.,', 'parser.y', 75 7)2439 module_eval(<<'.,.,', 'parser.y', 759) 2444 2440 def _reduce_151(val, _values, result) 2445 2441 result = val[0] … … 2449 2445 .,., 2450 2446 2451 module_eval(<<'.,.,', 'parser.y', 76 2)2447 module_eval(<<'.,.,', 'parser.y', 764) 2452 2448 def _reduce_152(val, _values, result) 2453 2449 begin … … 2462 2458 .,., 2463 2459 2464 module_eval(<<'.,.,', 'parser.y', 77 1)2460 module_eval(<<'.,.,', 'parser.y', 773) 2465 2461 def _reduce_153(val, _values, result) 2466 2462 begin … … 2475 2471 .,., 2476 2472 2477 module_eval(<<'.,.,', 'parser.y', 78 0)2473 module_eval(<<'.,.,', 'parser.y', 782) 2478 2474 def _reduce_154(val, _values, result) 2479 2475 begin … … 2512 2508 # reduce 166 omitted 2513 2509 2514 module_eval(<<'.,.,', 'parser.y', 80 6)2510 module_eval(<<'.,.,', 'parser.y', 808) 2515 2511 def _reduce_167(val, _values, result) 2516 2512 begin … … 2525 2521 .,., 2526 2522 2527 module_eval(<<'.,.,', 'parser.y', 81 5)2523 module_eval(<<'.,.,', 'parser.y', 817) 2528 2524 def _reduce_168(val, _values, result) 2529 2525 begin … … 2538 2534 .,., 2539 2535 2540 module_eval(<<'.,.,', 'parser.y', 82 4)2536 module_eval(<<'.,.,', 'parser.y', 826) 2541 2537 def _reduce_169(val, _values, result) 2542 2538 begin … … 2575 2571 # reduce 181 omitted 2576 2572 2577 module_eval(<<'.,.,', 'parser.y', 8 49)2573 module_eval(<<'.,.,', 'parser.y', 851) 2578 2574 def _reduce_182(val, _values, result) 2579 2575 result = true … … 2583 2579 .,., 2584 2580 2585 module_eval(<<'.,.,', 'parser.y', 85 3)2581 module_eval(<<'.,.,', 'parser.y', 855) 2586 2582 def _reduce_183(val, _values, result) 2587 2583 result = false … … 2605 2601 # reduce 190 omitted 2606 2602 2607 module_eval(<<'.,.,', 'parser.y', 8 68)2603 module_eval(<<'.,.,', 'parser.y', 870) 2608 2604 def _reduce_191(val, _values, result) 2609 2605 result = val[0] … … 2663 2659 # reduce 216 omitted 2664 2660 2665 # reduce 217 omitted 2661 module_eval(<<'.,.,', 'parser.y', 905) 2662 def _reduce_217(val, _values, result) 2663 @@logger.debug("V_ISO8601_EXTENDED_DATE_TIME: #{val[0]} at #{@filename}:#{@lineno}") 2664 result = val[0] 2665 2666 result 2667 end 2668 .,., 2666 2669 2667 2670 # reduce 218 omitted … … 2689 2692 # reduce 229 omitted 2690 2693 2691 module_eval(<<'.,.,', 'parser.y', 9 19)2694 module_eval(<<'.,.,', 'parser.y', 925) 2692 2695 def _reduce_230(val, _values, result) 2693 2696 @@logger.debug("V_ISO8601_DURATION: #{val[0]} at #{@filename}:#{@lineno}") … … 2722 2725 # reduce 242 omitted 2723 2726 2724 module_eval(<<'.,.,', 'parser.y', 9 39)2727 module_eval(<<'.,.,', 'parser.y', 945) 2725 2728 def _reduce_243(val, _values, result) 2726 2729 @@logger.debug("#{__FILE__}:#{__LINE__}: V_QUALIFIED_TERM_CODE_REF = #{val[0]} at #{@filename}:#{@lineno}") … … 2737 2740 # reduce 246 omitted 2738 2741 2739 module_eval(<<'.,.,', 'parser.y', 9 49)2742 module_eval(<<'.,.,', 'parser.y', 955) 2740 2743 def _reduce_247(val, _values, result) 2741 2744 @@logger.debug("#{__FILE__}:#{__LINE__}: V_URI = #{val[0]} at #{@filename}:#{@lineno}") … … 2826 2829 # reduce 287 omitted 2827 2830 2828 module_eval(<<'.,.,', 'parser.y', 10 19)2831 module_eval(<<'.,.,', 'parser.y', 1026) 2829 2832 def _reduce_288(val, _values, result) 2830 2833 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") … … 2834 2837 .,., 2835 2838 2836 module_eval(<<'.,.,', 'parser.y', 10 23)2839 module_eval(<<'.,.,', 'parser.y', 1030) 2837 2840 def _reduce_289(val, _values, result) 2838 2841 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{val[0]} at #{@filename}") … … 2842 2845 .,., 2843 2846 2844 module_eval(<<'.,.,', 'parser.y', 10 34)2847 module_eval(<<'.,.,', 'parser.y', 1041) 2845 2848 def _reduce_290(val, _values, result) 2846 2849 result = Range.new(1,1) … … 2850 2853 .,., 2851 2854 2852 module_eval(<<'.,.,', 'parser.y', 10 38)2855 module_eval(<<'.,.,', 'parser.y', 1045) 2853 2856 def _reduce_291(val, _values, result) 2854 2857 result = val[3] … … 2858 2861 .,., 2859 2862 2860 module_eval(<<'.,.,', 'parser.y', 10 43)2863 module_eval(<<'.,.,', 'parser.y', 1050) 2861 2864 def _reduce_292(val, _values, result) 2862 2865 begin … … 2871 2874 .,., 2872 2875 2873 module_eval(<<'.,.,', 'parser.y', 105 2)2876 module_eval(<<'.,.,', 'parser.y', 1059) 2874 2877 def _reduce_293(val, _values, result) 2875 2878 begin … … 2885 2888 .,., 2886 2889 2887 module_eval(<<'.,.,', 'parser.y', 10 63)2890 module_eval(<<'.,.,', 'parser.y', 1070) 2888 2891 def _reduce_294(val, _values, result) 2889 2892 result = OpenEhr::AM::Archetype::ConstraintModel::CARDINALITY.new … … 2909 2912 # reduce 302 omitted 2910 2913 2911 module_eval(<<'.,.,', 'parser.y', 10 77)2914 module_eval(<<'.,.,', 'parser.y', 1084) 2912 2915 def _reduce_303(val, _values, result) 2913 2916 result = val[0] … … 2917 2920 .,., 2918 2921 2919 module_eval(<<'.,.,', 'parser.y', 108 1)2922 module_eval(<<'.,.,', 'parser.y', 1088) 2920 2923 def _reduce_304(val, _values, result) 2921 2924 result = val[0] … … 2927 2930 # reduce 305 omitted 2928 2931 2929 module_eval(<<'.,.,', 'parser.y', 10 88)2932 module_eval(<<'.,.,', 'parser.y', 1095) 2930 2933 def _reduce_306(val, _values, result) 2931 2934 case val[3] … … 2942 2945 # reduce 307 omitted 2943 2946 2944 module_eval(<<'.,.,', 'parser.y', 1 099)2947 module_eval(<<'.,.,', 'parser.y', 1106) 2945 2948 def _reduce_308(val, _values, result) 2946 2949 result = val[0] … … 2950 2953 .,., 2951 2954 2952 module_eval(<<'.,.,', 'parser.y', 11 03)2955 module_eval(<<'.,.,', 'parser.y', 1110) 2953 2956 def _reduce_309(val, _values, result) 2954 2957 result = OpenEhr::RM::Support::AssumedTypes::Interval.new(val[0], val[2]) … … 3044 3047 # reduce 352 omitted 3045 3048 3046 module_eval(<<'.,.,', 'parser.y', 11 69)3049 module_eval(<<'.,.,', 'parser.y', 1176) 3047 3050 def _reduce_353(val, _values, result) 3048 3051 result = OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_BOOLEAN.new(:true_valid => true) … … 3052 3055 .,., 3053 3056 3054 module_eval(<<'.,.,', 'parser.y', 11 73)3057 module_eval(<<'.,.,', 'parser.y', 1180) 3055 3058 def _reduce_354(val, _values, result) 3056 3059 result = OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_BOOLEAN.new(:true_valid => false) … … 3060 3063 .,., 3061 3064 3062 module_eval(<<'.,.,', 'parser.y', 11 77)3065 module_eval(<<'.,.,', 'parser.y', 1184) 3063 3066 def _reduce_355(val, _values, result) 3064 3067 result = OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_BOOLEAN.new(:true_valid => true,:false_valid => false) … … 3068 3071 .,., 3069 3072 3070 module_eval(<<'.,.,', 'parser.y', 118 1)3073 module_eval(<<'.,.,', 'parser.y', 1188) 3071 3074 def _reduce_356(val, _values, result) 3072 3075 result = OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_BOOLEAN.new(:true_valid => false,:false_valid => true) … … 3076 3079 .,., 3077 3080 3078 module_eval(<<'.,.,', 'parser.y', 11 86)3081 module_eval(<<'.,.,', 'parser.y', 1193) 3079 3082 def _reduce_357(val, _values, result) 3080 3083 result = val[0] … … 3084 3087 .,., 3085 3088 3086 module_eval(<<'.,.,', 'parser.y', 119 0)3089 module_eval(<<'.,.,', 'parser.y', 1197) 3087 3090 def _reduce_358(val, _values, result) 3088 3091 raise 'Not implemented yet' … … 3092 3095 .,., 3093 3096 3094 module_eval(<<'.,.,', 'parser.y', 1 194)3097 module_eval(<<'.,.,', 'parser.y', 1201) 3095 3098 def _reduce_359(val, _values, result) 3096 3099 raise 'Not implemented yet' … … 3110 3113 # reduce 364 omitted 3111 3114 3112 module_eval(<<'.,.,', 'parser.y', 12 06)3115 module_eval(<<'.,.,', 'parser.y', 1213) 3113 3116 def _reduce_365(val, _values, result) 3114 3117 @in_interval = false … … 3119 3122 .,., 3120 3123 3121 module_eval(<<'.,.,', 'parser.y', 12 13)3124 module_eval(<<'.,.,', 'parser.y', 1220) 3122 3125 def _reduce_366(val, _values, result) 3123 3126 result = val[0] … … 3127 3130 .,., 3128 3131 3129 module_eval(<<'.,.,', 'parser.y', 12 17)3132 module_eval(<<'.,.,', 'parser.y', 1224) 3130 3133 def _reduce_367(val, _values, result) 3131 3134 result = val[0] … … 3135 3138 .,., 3136 3139 3137 module_eval(<<'.,.,', 'parser.y', 12 23)3140 module_eval(<<'.,.,', 'parser.y', 1230) 3138 3141 def _reduce_368(val, _values, result) 3139 3142 @@logger.debug("#{__FILE__}:#{__LINE__}, START_TERM_CODE_CONSTRAINT = #{val[0]} at #{@filename}") … … 3152 3155 # reduce 371 omitted 3153 3156 3154 module_eval(<<'.,.,', 'parser.y', 12 39)3157 module_eval(<<'.,.,', 'parser.y', 1246) 3155 3158 def _reduce_372(val, _values, result) 3156 3159 result = val[0] … … 3160 3163 .,., 3161 3164 3162 module_eval(<<'.,.,', 'parser.y', 12 44)3165 module_eval(<<'.,.,', 'parser.y', 1251) 3163 3166 def _reduce_373(val, _values, result) 3164 3167 result = val[0] … … 3168 3171 .,., 3169 3172 3170 module_eval(<<'.,.,', 'parser.y', 12 48)3173 module_eval(<<'.,.,', 'parser.y', 1255) 3171 3174 def _reduce_374(val, _values, result) 3172 3175 @@logger.debug("#{__FILE__}:#{__LINE__}, V_ATTRIBUTE_IDENTIFIER = #{word} at #{@filename}") … … 3177 3180 .,., 3178 3181 3179 module_eval(<<'.,.,', 'parser.y', 12 59)3182 module_eval(<<'.,.,', 'parser.y', 1266) 3180 3183 def _reduce_375(val, _values, result) 3181 3184 result = OpenEhr::AM::Archetype::ConstraintModel::Primitive::C_DURATION.new #val[0] -
ruby/trunk/lib/adl_parser/lib/parser.y
r318 r320 165 165 166 166 #c_complex_object: c_complex_object_head SYM_MATCHES SYM_START_CBLOCK c_complex_object_body SYM_END_CBLOCK 167 c_complex_object: c_complx_object_head SYM_MATCHES START_REGEXP_BLOCK REGEXP_BODY END_REGEXP_BLOCK # added by akimichi 167 #c_complex_object: c_complx_object_head SYM_MATCHES START_REGEXP_BLOCK REGEXP_BODY END_REGEXP_BLOCK # added by akimichi 168 c_complex_object: c_complx_object_head SYM_MATCHES Slash_code REGEXP_BODY Slash_code # added by akimichi 168 169 { 169 170 result = OpenEhr::AM::Archetype::ConstraintModel::C_COMPLEX_OBJECT.create(:attributes => val[3]) do |c_complex_object| … … 396 397 result = c_attribute 397 398 } 398 | c_attr_head SYM_MATCHES START_REGEXP_BLOCK REGEXP_BODY END_REGEXP_BLOCK # added by akimichi 399 # | c_attr_head SYM_MATCHES START_REGEXP_BLOCK REGEXP_BODY END_REGEXP_BLOCK # added by akimichi 400 | c_attr_head SYM_MATCHES Slash_code REGEXP_BODY Slash_code # added by akimichi 399 401 { 400 402 assert_at(__FILE__,__LINE__){ val[0].kind_of?(OpenEhr::AM::Archetype::ConstraintModel::C_ATTRIBUTE)} … … 901 903 902 904 date_time_value: V_ISO8601_EXTENDED_DATE_TIME 905 { 906 @@logger.debug("V_ISO8601_EXTENDED_DATE_TIME: #{val[0]} at #{@filename}:#{@lineno}") 907 result = val[0] 908 } 903 909 904 910 date_time_list_value: date_time_value Comma_code date_time_value … … 971 977 | SYM_EXISTS error 972 978 | relative_path SYM_MATCHES SYM_START_CBLOCK c_primitive SYM_END_CBLOCK 973 | relative_path SYM_MATCHES START_REGEXP_BLOCK REGEXP_BODY END_REGEXP_BLOCK # added by akimichi 979 # | relative_path SYM_MATCHES START_REGEXP_BLOCK REGEXP_BODY END_REGEXP_BLOCK # added by akimichi 980 | relative_path SYM_MATCHES Slash_code REGEXP_BODY Slash_code # added by akimichi 974 981 | SYM_NOT boolean_leaf 975 982 | arithmetic_expression '=' arithmetic_expression … … 1298 1305 1299 1306 ###----------/* keywords */ --------------------------------------------- 1300 @@adl_reserved = {1301 'archetype' => :SYM_ARCHETYPE,1302 'adl_version' => :SYM_ADL_VERSION,1303 'controlled' => :SYM_IS_CONTROLLED,1304 'specialize' => :SYM_SPECIALIZE,1305 'concept' => :SYM_CONCEPT,1306 'language' => :SYM_LANGUAGE,1307 'description' => :SYM_DESCRIPTION,1308 'definition' => :SYM_DEFINITION,1309 'invariant' => :SYM_INVARIANT,1310 'ontology' => :SYM_ONTOLOGY,1311 'matches' => :SYM_MATCHES,1312 'is_in' => :SYM_MATCHES,1313 'occurrences' => :SYM_OCCURRENCES,1314 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE1315 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE1316 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY1317 }1318 1319 @@dadl_reserved = {1320 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE1321 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE1322 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY1323 }1324 1325 @@cadl_reserved = {1326 'then' => :SYM_THEN, # [Tt][Hh][Ee][Nn]1327 'else' => :SYM_ELSE, # [Ee][Ll][Ss][Ee]1328 'and' => :SYM_AND, # [Aa][Nn][Dd]1329 'or' => :SYM_OR, # [Oo][Rr]1330 'xor' => :SYM_XOR, # [Xx][Oo][Rr]1331 'not' => :SYM_NOT, # [Nn][Oo][Tt]1332 'implies' => :SYM_IMPLIES, # [Ii][Mm][Pp][Ll][Ii][Ee][Ss]1333 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE1334 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE1335 'forall' => :SYM_FORALL, # [Ff][Oo][Rr][_][Aa][Ll][Ll]1336 'exists' => :SYM_EXISTS, # [Ee][Xx][Ii][Ss][Tt][Ss]1337 'existence' => :SYM_EXISTENCE, # [Ee][Xx][Iu][Ss][Tt][Ee][Nn][Cc][Ee]1338 'occurrences' => :SYM_OCCURRENCES, # [Oo][Cc][Cc][Uu][Rr][Rr][Ee][Nn][Cc][Ee][Ss]1339 'cardinality' => :SYM_CARDINALITY, # [Cc][Aa][Rr][Dd][Ii][Nn][Aa][Ll][Ii][Tt][Yy]1340 'ordered' => :SYM_ORDERED, # [Oo][Rr][Dd][Ee][Rr][Ee][Dd]1341 'unordered' => :SYM_UNORDERED, # [Uu][Nn][Oo][Rr][Dd][Ee][Rr][Ee][Dd]1342 'unique' => :SYM_UNIQUE, # [Uu][Nn][Ii][Qq][Uu][Ee]1343 'matches' => :SYM_MATCHES, # [Mm][Aa][Tt][Cc][Hh][Ee][Ss]1344 'is_in' => :SYM_MATCHES, # [Ii][Ss][_][Ii][Nn]1345 'invariant' => :SYM_INVARIANT, # [Ii][Nn][Vv][Aa][Rr][Ii][Aa][Nn][Tt]1346 'infinity' => :SYM_INFINITY, # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY1347 'use_node' => :SYM_USE_NODE, # [Uu][Ss][Ee][_][Nn][Oo][Dd][Ee]1348 'use_archetype' => :SYM_ALLOW_ARCHETYPE, # [Uu][Ss][Ee][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee]1349 'allow_archetype' => :SYM_ALLOW_ARCHETYPE, # [Aa][Ll][Ll][Oo][Ww][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee]1350 'include' => :SYM_INCLUDE, # [Ii][Nn][Cc][Ll][Uu][Dd][Ee]1351 'exclude' => :SYM_EXCLUDE # [Ee][Xx][Cc][Ll][Uu][Dd][Ee]1352 }1307 ### @@adl_reserved = { 1308 ### 'archetype' => :SYM_ARCHETYPE, 1309 ### 'adl_version' => :SYM_ADL_VERSION, 1310 ### 'controlled' => :SYM_IS_CONTROLLED, 1311 ### 'specialize' => :SYM_SPECIALIZE, 1312 ### 'concept' => :SYM_CONCEPT, 1313 ### 'language' => :SYM_LANGUAGE, 1314 ### 'description' => :SYM_DESCRIPTION, 1315 ### 'definition' => :SYM_DEFINITION, 1316 ### 'invariant' => :SYM_INVARIANT, 1317 ### 'ontology' => :SYM_ONTOLOGY, 1318 ### 'matches' => :SYM_MATCHES, 1319 ### 'is_in' => :SYM_MATCHES, 1320 ### 'occurrences' => :SYM_OCCURRENCES, 1321 ### 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE 1322 ### 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE 1323 ### 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY 1324 ### } 1325 1326 ### @@dadl_reserved = { 1327 ### 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE 1328 ### 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE 1329 ### 'infinity' => :SYM_INFINITY # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY 1330 ### } 1331 1332 ### @@cadl_reserved = { 1333 ### 'then' => :SYM_THEN, # [Tt][Hh][Ee][Nn] 1334 ### 'else' => :SYM_ELSE, # [Ee][Ll][Ss][Ee] 1335 ### 'and' => :SYM_AND, # [Aa][Nn][Dd] 1336 ### 'or' => :SYM_OR, # [Oo][Rr] 1337 ### 'xor' => :SYM_XOR, # [Xx][Oo][Rr] 1338 ### 'not' => :SYM_NOT, # [Nn][Oo][Tt] 1339 ### 'implies' => :SYM_IMPLIES, # [Ii][Mm][Pp][Ll][Ii][Ee][Ss] 1340 ### 'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE 1341 ### 'false' => :SYM_FALSE, # [Ff][Aa][Ll][Ss][Ee] -- -> SYM_FALSE 1342 ### 'forall' => :SYM_FORALL, # [Ff][Oo][Rr][_][Aa][Ll][Ll] 1343 ### 'exists' => :SYM_EXISTS, # [Ee][Xx][Ii][Ss][Tt][Ss] 1344 ### 'existence' => :SYM_EXISTENCE, # [Ee][Xx][Iu][Ss][Tt][Ee][Nn][Cc][Ee] 1345 ### 'occurrences' => :SYM_OCCURRENCES, # [Oo][Cc][Cc][Uu][Rr][Rr][Ee][Nn][Cc][Ee][Ss] 1346 ### 'cardinality' => :SYM_CARDINALITY, # [Cc][Aa][Rr][Dd][Ii][Nn][Aa][Ll][Ii][Tt][Yy] 1347 ### 'ordered' => :SYM_ORDERED, # [Oo][Rr][Dd][Ee][Rr][Ee][Dd] 1348 ### 'unordered' => :SYM_UNORDERED, # [Uu][Nn][Oo][Rr][Dd][Ee][Rr][Ee][Dd] 1349 ### 'unique' => :SYM_UNIQUE, # [Uu][Nn][Ii][Qq][Uu][Ee] 1350 ### 'matches' => :SYM_MATCHES, # [Mm][Aa][Tt][Cc][Hh][Ee][Ss] 1351 ### 'is_in' => :SYM_MATCHES, # [Ii][Ss][_][Ii][Nn] 1352 ### 'invariant' => :SYM_INVARIANT, # [Ii][Nn][Vv][Aa][Rr][Ii][Aa][Nn][Tt] 1353 ### 'infinity' => :SYM_INFINITY, # [Ii][Nn][Ff][Ii][Nn][Ii][Tt][Yy] -- -> SYM_INFINITY 1354 ### 'use_node' => :SYM_USE_NODE, # [Uu][Ss][Ee][_][Nn][Oo][Dd][Ee] 1355 ### 'use_archetype' => :SYM_ALLOW_ARCHETYPE, # [Uu][Ss][Ee][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee] 1356 ### 'allow_archetype' => :SYM_ALLOW_ARCHETYPE, # [Aa][Ll][Ll][Oo][Ww][_][Aa][Rr][Cc][Hh][Ee][Tt][Yy][Pp][Ee] 1357 ### 'include' => :SYM_INCLUDE, # [Ii][Nn][Cc][Ll][Uu][Dd][Ee] 1358 ### 'exclude' => :SYM_EXCLUDE # [Ee][Xx][Cc][Ll][Uu][Dd][Ee] 1359 ### } 1353 1360 1354 1361 -
ruby/trunk/lib/adl_parser/test/parser_test.rb
r319 r320 6 6 end 7 7 8 must "assert parser instance" do9 assert_instance_of ::OpenEhr::ADL::Parser,@parser10 end8 # must "assert parser instance" do 9 # assert_instance_of ::OpenEhr::ADL::Parser,@parser 10 # end 11 11 12 12 # must "openEHR-EHR-CLUSTER.exam-uterus.v1.adl be properly parsed" do … … 265 265 end 266 266 267 # must "adl-test-ENTRY.basic_types.v1.adl be properly parsed" do 268 # file = File.read("#{TEST_ROOT_DIR}/adl/adl-test-ENTRY.basic_types.v1.adl") 269 # assert_nothing_raised do 270 # ast = @parser.parse(file, 'adl-test-ENTRY.basic_types.v1') 271 # assert_instance_of OpenEhr::RM::Support::Identification::ArchetypeID, ast.archetype_id 272 # end 273 # end 274 267 275 end -
ruby/trunk/lib/adl_parser/test/scanner_test.rb
r319 r320 74 74 end 75 75 76 must "assert CADLScanner scanner scan V_STRING" do 77 @scanner.scan("\"string\"") do |sym, val| 78 assert_equal :V_STRING,sym 79 assert_equal "string",val 80 end 81 @scanner.scan("\"1605E211E9BFB4093A72CCE7A9792FF9\"") do |sym, val| 82 assert_equal :V_STRING,sym 83 assert_equal "1605E211E9BFB4093A72CCE7A9792FF9",val 84 end 85 end 86 76 87 must "assert CADLScanner scanner scan V_QUALIFIED_TERM_CODE_REF" do 77 88 @scanner.scan("[ICD10AM(1998)::F23]") do |sym, val| 78 89 assert_equal :V_QUALIFIED_TERM_CODE_REF,sym 79 90 assert_equal "ICD10AM(1998)::F23",val 91 end 92 end 93 94 95 must "assert CADLScanner scanner scan V_ISO8601_DURATION_CONSTRAINT_PATTERN" do 96 @scanner.scan("PW") do |sym, val| 97 assert_equal :V_ISO8601_DURATION_CONSTRAINT_PATTERN,sym 98 assert_equal "PW",val 99 end 100 @scanner.scan("PTs") do |sym, val| 101 assert_equal :V_ISO8601_DURATION_CONSTRAINT_PATTERN,sym 102 assert_equal "PTs",val 80 103 end 81 104 end … … 89 112 @scanner.scan("P1D") do |sym, val| 90 113 assert_equal :V_ISO8601_DURATION,sym 91 assert_equal "PT1M",val 114 assert_equal "P1D",val 115 end 116 117 @scanner.scan("PT1H30M") do |sym, val| 118 assert_equal :V_ISO8601_DURATION,sym 119 assert_equal "PT1H30M",val 92 120 end 93 121 end 94 122 95 must "assert CADLScanner scanner scan V_STRING" do 96 @scanner.scan("\"string\"") do |sym, val| 97 assert_equal :V_STRING,sym 98 assert_equal "string",val 99 end 100 @scanner.scan("\"1605E211E9BFB4093A72CCE7A9792FF9\"") do |sym, val| 101 assert_equal :V_STRING,sym 102 assert_equal "1605E211E9BFB4093A72CCE7A9792FF9",val 123 must "assert CADLScanner scanner scan V_ISO8601_EXTENDED_DATE_TIME" do 124 @scanner.scan("2000-01-01T01:00:00") do |sym, val| 125 assert_equal :V_ISO8601_EXTENDED_DATE_TIME,sym 126 assert_equal "2000-01-01T01:00:00",val 103 127 end 104 128 end 105 129 106 must "assert CADLScanner scanner scan V_ISO8601_DURATION_CONSTRAINT_PATTERN" do107 @scanner.scan("PW") do |sym, val|108 assert_equal :V_ISO8601_DURATION_CONSTRAINT_PATTERN,sym109 assert_equal "PW",val110 end111 end112 130 end 113 131 … … 155 173 end 156 174 end 175 176 class RegexScannerTest < Test::Unit::TestCase 177 def setup 178 @scanner = OpenEhr::ADL::Scanner::RegexScanner.new([:regexp], "filename") 179 end 180 181 must "assert RegexScanner scanner scan " do 182 @scanner.scan("this|that|something else") do |sym, val| 183 assert_equal :REGEXP_BODY,sym 184 assert_equal "this|that|something else",val 185 end 186 end 187 end
Note:
See TracChangeset
for help on using the changeset viewer.