summaryrefslogtreecommitdiff
path: root/test/racc
diff options
context:
space:
mode:
Diffstat (limited to 'test/racc')
-rw-r--r--test/racc/assets/cadenza.y170
-rw-r--r--test/racc/assets/cast.y926
-rw-r--r--test/racc/assets/chk.y126
-rw-r--r--test/racc/assets/conf.y16
-rw-r--r--test/racc/assets/csspool.y729
-rw-r--r--test/racc/assets/digraph.y29
-rw-r--r--test/racc/assets/echk.y118
-rw-r--r--test/racc/assets/edtf.y583
-rw-r--r--test/racc/assets/err.y60
-rw-r--r--test/racc/assets/error_recovery.y35
-rw-r--r--test/racc/assets/expect.y7
-rw-r--r--test/racc/assets/firstline.y4
-rw-r--r--test/racc/assets/huia.y318
-rw-r--r--test/racc/assets/ichk.y102
-rw-r--r--test/racc/assets/ifelse.y14
-rw-r--r--test/racc/assets/intp.y546
-rw-r--r--test/racc/assets/journey.y47
-rw-r--r--test/racc/assets/liquor.y313
-rw-r--r--test/racc/assets/machete.y423
-rw-r--r--test/racc/assets/macruby.y2197
-rw-r--r--test/racc/assets/mailp.y437
-rw-r--r--test/racc/assets/mediacloth.y599
-rw-r--r--test/racc/assets/mof.y649
-rw-r--r--test/racc/assets/namae.y302
-rw-r--r--test/racc/assets/nasl.y626
-rw-r--r--test/racc/assets/newsyn.y25
-rw-r--r--test/racc/assets/noend.y4
-rw-r--r--test/racc/assets/nokogiri-css.y255
-rw-r--r--test/racc/assets/nonass.y41
-rw-r--r--test/racc/assets/normal.y27
-rw-r--r--test/racc/assets/norule.y4
-rw-r--r--test/racc/assets/nullbug1.y25
-rw-r--r--test/racc/assets/nullbug2.y15
-rw-r--r--test/racc/assets/opal.y1807
-rw-r--r--test/racc/assets/opt.y123
-rw-r--r--test/racc/assets/percent.y35
-rw-r--r--test/racc/assets/php_serialization.y98
-rw-r--r--test/racc/assets/recv.y97
-rw-r--r--test/racc/assets/riml.y665
-rw-r--r--test/racc/assets/rrconf.y14
-rw-r--r--test/racc/assets/ruby18.y1943
-rw-r--r--test/racc/assets/ruby19.y2174
-rw-r--r--test/racc/assets/ruby20.y2350
-rw-r--r--test/racc/assets/ruby21.y2359
-rw-r--r--test/racc/assets/ruby22.y2381
-rw-r--r--test/racc/assets/scan.y72
-rw-r--r--test/racc/assets/syntax.y50
-rw-r--r--test/racc/assets/tp_plus.y622
-rw-r--r--test/racc/assets/twowaysql.y278
-rw-r--r--test/racc/assets/unterm.y5
-rw-r--r--test/racc/assets/useless.y12
-rw-r--r--test/racc/assets/yyerr.y46
-rw-r--r--test/racc/bench.y36
-rw-r--r--test/racc/helper.rb115
-rw-r--r--test/racc/infini.y8
-rw-r--r--test/racc/regress/README.txt7
-rw-r--r--test/racc/regress/cadenza796
-rw-r--r--test/racc/regress/cast3428
-rw-r--r--test/racc/regress/csspool2314
-rw-r--r--test/racc/regress/edtf1794
-rw-r--r--test/racc/regress/huia1392
-rw-r--r--test/racc/regress/journey222
-rw-r--r--test/racc/regress/liquor885
-rw-r--r--test/racc/regress/machete833
-rw-r--r--test/racc/regress/mediacloth1463
-rw-r--r--test/racc/regress/mof1368
-rw-r--r--test/racc/regress/namae634
-rw-r--r--test/racc/regress/nasl2058
-rw-r--r--test/racc/regress/nokogiri-css836
-rw-r--r--test/racc/regress/opal6431
-rw-r--r--test/racc/regress/php_serialization336
-rw-r--r--test/racc/regress/riml3283
-rw-r--r--test/racc/regress/ruby186344
-rw-r--r--test/racc/regress/ruby227460
-rw-r--r--test/racc/regress/tp_plus1933
-rw-r--r--test/racc/regress/twowaysql556
-rw-r--r--test/racc/scandata/brace7
-rw-r--r--test/racc/scandata/gvar1
-rw-r--r--test/racc/scandata/normal4
-rw-r--r--test/racc/scandata/percent18
-rw-r--r--test/racc/scandata/slash10
-rw-r--r--test/racc/src.intp34
-rw-r--r--test/racc/start.y20
-rw-r--r--test/racc/test_chk_y.rb52
-rw-r--r--test/racc/test_grammar_file_parser.rb15
-rw-r--r--test/racc/test_racc_command.rb339
-rw-r--r--test/racc/test_scan_y.rb52
-rw-r--r--test/racc/testscanner.rb51
88 files changed, 0 insertions, 70038 deletions
diff --git a/test/racc/assets/cadenza.y b/test/racc/assets/cadenza.y
deleted file mode 100644
index 1940ead225..0000000000
--- a/test/racc/assets/cadenza.y
+++ /dev/null
@@ -1,170 +0,0 @@
-# This grammar is released under an MIT license
-# Author: William Howard (http://github.com/whoward)
-# Source: https://github.com/whoward/cadenza/blob/master/src/cadenza.y
-
-class Cadenza::RaccParser
-
-/* expect this many shift/reduce conflicts */
-expect 37
-
-rule
- target
- : document
- | /* none */ { result = nil }
- ;
-
- parameter_list
- : logical_expression { result = [val[0]] }
- | parameter_list ',' logical_expression { result = val[0].push(val[2]) }
- ;
-
- /* this has a shift/reduce conflict but since Racc will shift in this case it is the correct behavior */
- primary_expression
- : IDENTIFIER { result = VariableNode.new(val[0].value) }
- | IDENTIFIER parameter_list { result = VariableNode.new(val[0].value, val[1]) }
- | INTEGER { result = ConstantNode.new(val[0].value) }
- | REAL { result = ConstantNode.new(val[0].value) }
- | STRING { result = ConstantNode.new(val[0].value) }
- | '(' filtered_expression ')' { result = val[1] }
- ;
-
- multiplicative_expression
- : primary_expression
- | multiplicative_expression '*' primary_expression { result = OperationNode.new(val[0], "*", val[2]) }
- | multiplicative_expression '/' primary_expression { result = OperationNode.new(val[0], "/", val[2]) }
- ;
-
- additive_expression
- : multiplicative_expression
- | additive_expression '+' multiplicative_expression { result = OperationNode.new(val[0], "+", val[2]) }
- | additive_expression '-' multiplicative_expression { result = OperationNode.new(val[0], "-", val[2]) }
- ;
-
- boolean_expression
- : additive_expression
- | boolean_expression OP_EQ additive_expression { result = OperationNode.new(val[0], "==", val[2]) }
- | boolean_expression OP_NEQ additive_expression { result = OperationNode.new(val[0], "!=", val[2]) }
- | boolean_expression OP_LEQ additive_expression { result = OperationNode.new(val[0], "<=", val[2]) }
- | boolean_expression OP_GEQ additive_expression { result = OperationNode.new(val[0], ">=", val[2]) }
- | boolean_expression '>' additive_expression { result = OperationNode.new(val[0], ">", val[2]) }
- | boolean_expression '<' additive_expression { result = OperationNode.new(val[0], "<", val[2]) }
- ;
-
- inverse_expression
- : boolean_expression
- | NOT boolean_expression { result = BooleanInverseNode.new(val[1]) }
- ;
-
- logical_expression
- : inverse_expression
- | logical_expression AND inverse_expression { result = OperationNode.new(val[0], "and", val[2]) }
- | logical_expression OR inverse_expression { result = OperationNode.new(val[0], "or", val[2]) }
- ;
-
- filter
- : IDENTIFIER { result = FilterNode.new(val[0].value) }
- | IDENTIFIER ':' parameter_list { result = FilterNode.new(val[0].value, val[2]) }
- ;
-
- filter_list
- : filter { result = [val[0]] }
- | filter_list '|' filter { result = val[0].push(val[2]) }
- ;
-
- filtered_expression
- : logical_expression
- | logical_expression '|' filter_list { result = FilteredValueNode.new(val[0], val[2]) }
- ;
-
- inject_statement
- : VAR_OPEN filtered_expression VAR_CLOSE { result = val[1] }
- ;
-
- if_tag
- : STMT_OPEN IF logical_expression STMT_CLOSE { open_scope!; result = val[2] }
- | STMT_OPEN UNLESS logical_expression STMT_CLOSE { open_scope!; result = BooleanInverseNode.new(val[2]) }
- ;
-
- else_tag
- : STMT_OPEN ELSE STMT_CLOSE { result = close_scope!; open_scope! }
- ;
-
- end_if_tag
- : STMT_OPEN ENDIF STMT_CLOSE { result = close_scope! }
- | STMT_OPEN ENDUNLESS STMT_CLOSE { result = close_scope! }
- ;
-
- if_block
- : if_tag end_if_tag { result = IfNode.new(val[0], val[1]) }
- | if_tag document end_if_tag { result = IfNode.new(val[0], val[2]) }
- | if_tag else_tag document end_if_tag { result = IfNode.new(val[0], val[1], val[3]) }
- | if_tag document else_tag end_if_tag { result = IfNode.new(val[0], val[2], val[3]) }
- | if_tag document else_tag document end_if_tag { result = IfNode.new(val[0], val[2], val[4]) }
- ;
-
- for_tag
- : STMT_OPEN FOR IDENTIFIER IN filtered_expression STMT_CLOSE { open_scope!; result = [val[2].value, val[4]] }
- ;
-
- end_for_tag
- : STMT_OPEN ENDFOR STMT_CLOSE { result = close_scope! }
- ;
-
- /* this has a shift/reduce conflict but since Racc will shift in this case it is the correct behavior */
- for_block
- : for_tag end_for_tag { result = ForNode.new(VariableNode.new(val[0].first), val[0].last, val[1]) }
- | for_tag document end_for_tag { result = ForNode.new(VariableNode.new(val[0].first), val[0].last, val[2]) }
- ;
-
- block_tag
- : STMT_OPEN BLOCK IDENTIFIER STMT_CLOSE { result = open_block_scope!(val[2].value) }
- ;
-
- end_block_tag
- : STMT_OPEN ENDBLOCK STMT_CLOSE { result = close_block_scope! }
- ;
-
- /* this has a shift/reduce conflict but since Racc will shift in this case it is the correct behavior */
- block_block
- : block_tag end_block_tag { result = BlockNode.new(val[0], val[1]) }
- | block_tag document end_block_tag { result = BlockNode.new(val[0], val[2]) }
- ;
-
- generic_block_tag
- : STMT_OPEN IDENTIFIER STMT_CLOSE { open_scope!; result = [val[1].value, []] }
- | STMT_OPEN IDENTIFIER parameter_list STMT_CLOSE { open_scope!; result = [val[1].value, val[2]] }
- ;
-
- end_generic_block_tag
- : STMT_OPEN END STMT_CLOSE { result = close_scope! }
- ;
-
- generic_block
- : generic_block_tag document end_generic_block_tag { result = GenericBlockNode.new(val[0].first, val[2], val[0].last) }
- ;
-
- extends_statement
- : STMT_OPEN EXTENDS STRING STMT_CLOSE { result = val[2].value }
- | STMT_OPEN EXTENDS IDENTIFIER STMT_CLOSE { result = VariableNode.new(val[2].value) }
- ;
-
- document_component
- : TEXT_BLOCK { result = TextNode.new(val[0].value) }
- | inject_statement
- | if_block
- | for_block
- | generic_block
- | block_block
- ;
-
- document
- : document_component { push val[0] }
- | document document_component { push val[1] }
- | extends_statement { document.extends = val[0] }
- | document extends_statement { document.extends = val[1] }
- ;
-
----- header ----
-# racc_parser.rb : generated by racc
-
----- inner ----
diff --git a/test/racc/assets/cast.y b/test/racc/assets/cast.y
deleted file mode 100644
index d180c09e14..0000000000
--- a/test/racc/assets/cast.y
+++ /dev/null
@@ -1,926 +0,0 @@
-# The MIT License
-#
-# Copyright (c) George Ogata
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-class C::Parser
-# shift/reduce conflict on "if (c) if (c) ; else ; else ;"
-expect 1
-rule
-
-# A.2.4 External definitions
-
-# Returns TranslationUnit
-translation_unit
- : external_declaration {result = TranslationUnit.new_at(val[0].pos, NodeChain[val[0]])}
- | translation_unit external_declaration {result = val[0]; result.entities << val[1]}
-
-# Returns Declaration|FunctionDef
-external_declaration
- : function_definition {result = val[0]}
- | declaration {result = val[0]}
-
-# Returns FunctionDef
-function_definition
- : declaration_specifiers declarator declaration_list compound_statement {result = make_function_def(val[0][0], val[0][1], val[1], val[2], val[3])}
- | declaration_specifiers declarator compound_statement {result = make_function_def(val[0][0], val[0][1], val[1], nil , val[2])}
-
-# Returns [Declaration]
-declaration_list
- : declaration {result = [val[0]]}
- | declaration_list declaration {result = val[0] << val[1]}
-
-# A.2.3 Statements
-
-# Returns Statement
-statement
- : labeled_statement {result = val[0]}
- | compound_statement {result = val[0]}
- | expression_statement {result = val[0]}
- | selection_statement {result = val[0]}
- | iteration_statement {result = val[0]}
- | jump_statement {result = val[0]}
-
-# Returns Statement
-labeled_statement
- : identifier COLON statement {val[2].labels.unshift(PlainLabel.new_at(val[0].pos, val[0].val)); result = val[2]}
- | CASE constant_expression COLON statement {val[3].labels.unshift(Case .new_at(val[0].pos, val[1] )); result = val[3]}
- | DEFAULT COLON statement {val[2].labels.unshift(Default .new_at(val[0].pos )); result = val[2]}
- # type names can also be used as labels
- | typedef_name COLON statement {val[2].labels.unshift(PlainLabel.new_at(val[0].pos, val[0].name)); result = val[2]}
-
-# Returns Block
-compound_statement
- : LBRACE block_item_list RBRACE {result = Block.new_at(val[0].pos, val[1])}
- | LBRACE RBRACE {result = Block.new_at(val[0].pos )}
-
-# Returns NodeChain[Declaration|Statement]
-block_item_list
- : block_item {result = NodeChain[val[0]]}
- | block_item_list block_item {result = val[0] << val[1]}
-
-# Returns Declaration|Statement
-block_item
- : declaration {result = val[0]}
- | statement {result = val[0]}
-
-# Returns ExpressionStatement
-expression_statement
- : expression SEMICOLON {result = ExpressionStatement.new_at(val[0].pos, val[0])}
- | SEMICOLON {result = ExpressionStatement.new_at(val[0].pos )}
-
-# Returns Statement
-selection_statement
- : IF LPAREN expression RPAREN statement {result = If .new_at(val[0].pos, val[2], val[4] )}
- | IF LPAREN expression RPAREN statement ELSE statement {result = If .new_at(val[0].pos, val[2], val[4], val[6])}
- | SWITCH LPAREN expression RPAREN statement {result = Switch.new_at(val[0].pos, val[2], val[4] )}
-
-# Returns Statement
-iteration_statement
- : WHILE LPAREN expression RPAREN statement {result = While.new_at(val[0].pos, val[2], val[4] )}
- | DO statement WHILE LPAREN expression RPAREN SEMICOLON {result = While.new_at(val[0].pos, val[4], val[1], :do => true )}
- | FOR LPAREN expression SEMICOLON expression SEMICOLON expression RPAREN statement {result = For.new_at(val[0].pos, val[2], val[4], val[6], val[8])}
- | FOR LPAREN expression SEMICOLON expression SEMICOLON RPAREN statement {result = For.new_at(val[0].pos, val[2], val[4], nil , val[7])}
- | FOR LPAREN expression SEMICOLON SEMICOLON expression RPAREN statement {result = For.new_at(val[0].pos, val[2], nil , val[5], val[7])}
- | FOR LPAREN expression SEMICOLON SEMICOLON RPAREN statement {result = For.new_at(val[0].pos, val[2], nil , nil , val[6])}
- | FOR LPAREN SEMICOLON expression SEMICOLON expression RPAREN statement {result = For.new_at(val[0].pos, nil , val[3], val[5], val[7])}
- | FOR LPAREN SEMICOLON expression SEMICOLON RPAREN statement {result = For.new_at(val[0].pos, nil , val[3], nil , val[6])}
- | FOR LPAREN SEMICOLON SEMICOLON expression RPAREN statement {result = For.new_at(val[0].pos, nil , nil , val[4], val[6])}
- | FOR LPAREN SEMICOLON SEMICOLON RPAREN statement {result = For.new_at(val[0].pos, nil , nil , nil , val[5])}
- | FOR LPAREN declaration expression SEMICOLON expression RPAREN statement {result = For.new_at(val[0].pos, val[2], val[3], val[5], val[7])}
- | FOR LPAREN declaration expression SEMICOLON RPAREN statement {result = For.new_at(val[0].pos, val[2], val[3], nil , val[6])}
- | FOR LPAREN declaration SEMICOLON expression RPAREN statement {result = For.new_at(val[0].pos, val[2], nil , val[4], val[6])}
- | FOR LPAREN declaration SEMICOLON RPAREN statement {result = For.new_at(val[0].pos, val[2], nil , nil , val[5])}
-
-# Returns Statement
-jump_statement
- : GOTO identifier SEMICOLON {result = Goto .new_at(val[0].pos, val[1].val)}
- | CONTINUE SEMICOLON {result = Continue.new_at(val[0].pos )}
- | BREAK SEMICOLON {result = Break .new_at(val[0].pos )}
- | RETURN expression SEMICOLON {result = Return .new_at(val[0].pos, val[1] )}
- | RETURN SEMICOLON {result = Return .new_at(val[0].pos )}
- # type names can also be used as labels
- | GOTO typedef_name SEMICOLON {result = Goto .new_at(val[0].pos, val[1].name)}
-
-# A.2.2 Declarations
-
-# Returns Declaration
-declaration
- : declaration_specifiers init_declarator_list SEMICOLON {result = make_declaration(val[0][0], val[0][1], val[1])}
- | declaration_specifiers SEMICOLON {result = make_declaration(val[0][0], val[0][1], NodeArray[])}
-
-# Returns {Pos, [Symbol]}
-declaration_specifiers
- : storage_class_specifier declaration_specifiers {val[1][1] << val[0][1]; result = val[1]}
- | storage_class_specifier {result = [val[0][0], [val[0][1]]]}
- | type_specifier declaration_specifiers {val[1][1] << val[0][1]; result = val[1]}
- | type_specifier {result = [val[0][0], [val[0][1]]]}
- | type_qualifier declaration_specifiers {val[1][1] << val[0][1]; result = val[1]}
- | type_qualifier {result = [val[0][0], [val[0][1]]]}
- | function_specifier declaration_specifiers {val[1][1] << val[0][1]; result = val[1]}
- | function_specifier {result = [val[0][0], [val[0][1]]]}
-
-# Returns NodeArray[Declarator]
-init_declarator_list
- : init_declarator {result = NodeArray[val[0]]}
- | init_declarator_list COMMA init_declarator {result = val[0] << val[2]}
-
-# Returns Declarator
-init_declarator
- : declarator {result = val[0]}
- | declarator EQ initializer {val[0].init = val[2]; result = val[0]}
-
-# Returns [Pos, Symbol]
-storage_class_specifier
- : TYPEDEF {result = [val[0].pos, :typedef ]}
- | EXTERN {result = [val[0].pos, :extern ]}
- | STATIC {result = [val[0].pos, :static ]}
- | AUTO {result = [val[0].pos, :auto ]}
- | REGISTER {result = [val[0].pos, :register]}
-
-# Returns [Pos, Type|Symbol]
-type_specifier
- : VOID {result = [val[0].pos, :void ]}
- | CHAR {result = [val[0].pos, :char ]}
- | SHORT {result = [val[0].pos, :short ]}
- | INT {result = [val[0].pos, :int ]}
- | LONG {result = [val[0].pos, :long ]}
- | FLOAT {result = [val[0].pos, :float ]}
- | DOUBLE {result = [val[0].pos, :double ]}
- | SIGNED {result = [val[0].pos, :signed ]}
- | UNSIGNED {result = [val[0].pos, :unsigned ]}
- | BOOL {result = [val[0].pos, :_Bool ]}
- | COMPLEX {result = [val[0].pos, :_Complex ]}
- | IMAGINARY {result = [val[0].pos, :_Imaginary]}
- | struct_or_union_specifier {result = [val[0].pos, val[0] ]}
- | enum_specifier {result = [val[0].pos, val[0] ]}
- | typedef_name {result = [val[0].pos, val[0] ]}
-
-# Returns Struct|Union
-struct_or_union_specifier
- : struct_or_union identifier LBRACE struct_declaration_list RBRACE {result = val[0][1].new_at(val[0][0], val[1].val, val[3])}
- | struct_or_union LBRACE struct_declaration_list RBRACE {result = val[0][1].new_at(val[0][0], nil , val[2])}
- | struct_or_union identifier {result = val[0][1].new_at(val[0][0], val[1].val, nil )}
- # type names can also be used as struct identifiers
- | struct_or_union typedef_name LBRACE struct_declaration_list RBRACE {result = val[0][1].new_at(val[0][0], val[1].name, val[3])}
- | struct_or_union typedef_name {result = val[0][1].new_at(val[0][0], val[1].name, nil )}
-
-# Returns [Pos, Class]
-struct_or_union
- : STRUCT {result = [val[0].pos, Struct]}
- | UNION {result = [val[0].pos, Union ]}
-
-# Returns NodeArray[Declaration]
-struct_declaration_list
- : struct_declaration {result = NodeArray[val[0]]}
- | struct_declaration_list struct_declaration {val[0] << val[1]; result = val[0]}
-
-# Returns Declaration
-struct_declaration
- : specifier_qualifier_list struct_declarator_list SEMICOLON {result = make_declaration(val[0][0], val[0][1], val[1])}
-
-# Returns {Pos, [Symbol]}
-specifier_qualifier_list
- : type_specifier specifier_qualifier_list {val[1][1] << val[0][1]; result = val[1]}
- | type_specifier {result = [val[0][0], [val[0][1]]]}
- | type_qualifier specifier_qualifier_list {val[1][1] << val[0][1]; result = val[1]}
- | type_qualifier {result = [val[0][0], [val[0][1]]]}
-
-# Returns NodeArray[Declarator]
-struct_declarator_list
- : struct_declarator {result = NodeArray[val[0]]}
- | struct_declarator_list COMMA struct_declarator {result = val[0] << val[2]}
-
-# Returns Declarator
-struct_declarator
- : declarator {result = val[0]}
- | declarator COLON constant_expression {result = val[0]; val[0].num_bits = val[2]}
- | COLON constant_expression {result = Declarator.new_at(val[0].pos, :num_bits => val[1])}
-
-# Returns Enum
-enum_specifier
- : ENUM identifier LBRACE enumerator_list RBRACE {result = Enum.new_at(val[0].pos, val[1].val, val[3])}
- | ENUM LBRACE enumerator_list RBRACE {result = Enum.new_at(val[0].pos, nil , val[2])}
- | ENUM identifier LBRACE enumerator_list COMMA RBRACE {result = Enum.new_at(val[0].pos, val[1].val, val[3])}
- | ENUM LBRACE enumerator_list COMMA RBRACE {result = Enum.new_at(val[0].pos, nil , val[2])}
- | ENUM identifier {result = Enum.new_at(val[0].pos, val[1].val, nil )}
- # type names can also be used as enum names
- | ENUM typedef_name LBRACE enumerator_list RBRACE {result = Enum.new_at(val[0].pos, val[1].name, val[3])}
- | ENUM typedef_name LBRACE enumerator_list COMMA RBRACE {result = Enum.new_at(val[0].pos, val[1].name, val[3])}
- | ENUM typedef_name {result = Enum.new_at(val[0].pos, val[1].name, nil )}
-
-# Returns NodeArray[Enumerator]
-enumerator_list
- : enumerator {result = NodeArray[val[0]]}
- | enumerator_list COMMA enumerator {result = val[0] << val[2]}
-
-# Returns Enumerator
-enumerator
- : enumeration_constant {result = Enumerator.new_at(val[0].pos, val[0].val, nil )}
- | enumeration_constant EQ constant_expression {result = Enumerator.new_at(val[0].pos, val[0].val, val[2])}
-
-# Returns [Pos, Symbol]
-type_qualifier
- : CONST {result = [val[0].pos, :const ]}
- | RESTRICT {result = [val[0].pos, :restrict]}
- | VOLATILE {result = [val[0].pos, :volatile]}
-
-# Returns [Pos, Symbol]
-function_specifier
- : INLINE {result = [val[0].pos, :inline]}
-
-# Returns Declarator
-declarator
- : pointer direct_declarator {result = add_decl_type(val[1], val[0])}
- | direct_declarator {result = val[0]}
-
-# Returns Declarator
-direct_declarator
- : identifier {result = Declarator.new_at(val[0].pos, nil, val[0].val)}
- | LPAREN declarator RPAREN {result = val[1]}
- | direct_declarator LBRACKET type_qualifier_list assignment_expression RBRACKET {result = add_decl_type(val[0], Array.new_at(val[0].pos ))} # TODO
- | direct_declarator LBRACKET type_qualifier_list RBRACKET {result = add_decl_type(val[0], Array.new_at(val[0].pos ))} # TODO
- | direct_declarator LBRACKET assignment_expression RBRACKET {result = add_decl_type(val[0], Array.new_at(val[0].pos, nil, val[2]))}
- | direct_declarator LBRACKET RBRACKET {result = add_decl_type(val[0], Array.new_at(val[0].pos ))}
- | direct_declarator LBRACKET STATIC type_qualifier_list assignment_expression RBRACKET {result = add_decl_type(val[0], Array.new_at(val[0].pos ))} # TODO
- | direct_declarator LBRACKET STATIC assignment_expression RBRACKET {result = add_decl_type(val[0], Array.new_at(val[0].pos ))} # TODO
- | direct_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET {result = add_decl_type(val[0], Array.new_at(val[0].pos ))} # TODO
- | direct_declarator LBRACKET type_qualifier_list MUL RBRACKET {result = add_decl_type(val[0], Array.new_at(val[0].pos ))} # TODO
- | direct_declarator LBRACKET MUL RBRACKET {result = add_decl_type(val[0], Array.new_at(val[0].pos ))} # TODO
- | direct_declarator LPAREN parameter_type_list RPAREN {result = add_decl_type(val[0], Function.new_at(val[0].pos, nil, param_list(*val[2]), :var_args => val[2][1]))}
- | direct_declarator LPAREN identifier_list RPAREN {result = add_decl_type(val[0], Function.new_at(val[0].pos, nil, val[2]))}
- | direct_declarator LPAREN RPAREN {result = add_decl_type(val[0], Function.new_at(val[0].pos ))}
-
-# Returns Pointer
-pointer
- : MUL type_qualifier_list {result = add_type_quals(Pointer.new_at(val[0].pos), val[1][1]) }
- | MUL {result = Pointer.new_at(val[0].pos) }
- | MUL type_qualifier_list pointer {p = add_type_quals(Pointer.new_at(val[0].pos), val[1][1]); val[2].direct_type = p; result = val[2]}
- | MUL pointer {p = Pointer.new_at(val[0].pos) ; val[1].direct_type = p; result = val[1]}
-
-# Returns {Pos, [Symbol]}
-type_qualifier_list
- : type_qualifier {result = [val[0][0], [val[0][1]]]}
- | type_qualifier_list type_qualifier {val[0][1] << val[1][1]; result = val[0]}
-
-# Returns [NodeArray[Parameter], var_args?]
-parameter_type_list
- : parameter_list {result = [val[0], false]}
- | parameter_list COMMA ELLIPSIS {result = [val[0], true ]}
-
-# Returns NodeArray[Parameter]
-parameter_list
- : parameter_declaration {result = NodeArray[val[0]]}
- | parameter_list COMMA parameter_declaration {result = val[0] << val[2]}
-
-# Returns Parameter
-parameter_declaration
- : declaration_specifiers declarator {ind_type = val[1].indirect_type and ind_type.detach
- result = make_parameter(val[0][0], val[0][1], ind_type, val[1].name)}
- | declaration_specifiers abstract_declarator {result = make_parameter(val[0][0], val[0][1], val[1] , nil )}
- | declaration_specifiers {result = make_parameter(val[0][0], val[0][1], nil , nil )}
-
-# Returns NodeArray[Parameter]
-identifier_list
- : identifier {result = NodeArray[Parameter.new_at(val[0].pos, nil, val[0].val)]}
- | identifier_list COMMA identifier {result = val[0] << Parameter.new_at(val[2].pos, nil, val[2].val)}
-
-# Returns Type
-type_name
- : specifier_qualifier_list abstract_declarator {val[1].direct_type = make_direct_type(val[0][0], val[0][1]); result = val[1]}
- | specifier_qualifier_list {result = make_direct_type(val[0][0], val[0][1]) }
-
-# Returns Type
-abstract_declarator
- : pointer {result = val[0]}
- | pointer direct_abstract_declarator {val[1].direct_type = val[0]; result = val[1]}
- | direct_abstract_declarator {result = val[0]}
-
-# Returns Type
-direct_abstract_declarator
- : LPAREN abstract_declarator RPAREN {result = val[1]}
- | direct_abstract_declarator LBRACKET assignment_expression RBRACKET {val[0].direct_type = Array.new_at(val[0].pos, nil, val[2]); result = val[0]}
- | direct_abstract_declarator LBRACKET RBRACKET {val[0].direct_type = Array.new_at(val[0].pos, nil, nil ); result = val[0]}
- | LBRACKET assignment_expression RBRACKET {result = Array.new_at(val[0].pos, nil, val[1])}
- | LBRACKET RBRACKET {result = Array.new_at(val[0].pos )}
- | direct_abstract_declarator LBRACKET MUL RBRACKET {val[0].direct_type = Array.new_at(val[0].pos); result = val[0]} # TODO
- | LBRACKET MUL RBRACKET {result = Array.new_at(val[0].pos)} # TODO
- | direct_abstract_declarator LPAREN parameter_type_list RPAREN {val[0].direct_type = Function.new_at(val[0].pos, nil, param_list(*val[2]), val[2][1]); result = val[0]}
- | direct_abstract_declarator LPAREN RPAREN {val[0].direct_type = Function.new_at(val[0].pos ); result = val[0]}
- | LPAREN parameter_type_list RPAREN {result = Function.new_at(val[0].pos, nil, param_list(*val[1]), val[1][1])}
- | LPAREN RPAREN {result = Function.new_at(val[0].pos )}
-
-# Returns CustomType
-typedef_name
- #: identifier -- insufficient since we must distinguish between type
- # names and var names (otherwise we have a conflict)
- : TYPENAME {result = CustomType.new_at(val[0].pos, val[0].val)}
-
-# Returns Expression
-initializer
- : assignment_expression {result = val[0]}
- | LBRACE initializer_list RBRACE {result = CompoundLiteral.new_at(val[0].pos, nil, val[1])}
- | LBRACE initializer_list COMMA RBRACE {result = CompoundLiteral.new_at(val[0].pos, nil, val[1])}
-
-# Returns NodeArray[MemberInit]
-initializer_list
- : designation initializer {result = NodeArray[MemberInit.new_at(val[0][0] , val[0][1], val[1])]}
- | initializer {result = NodeArray[MemberInit.new_at(val[0].pos, nil , val[0])]}
- | initializer_list COMMA designation initializer {result = val[0] << MemberInit.new_at(val[2][0] , val[2][1], val[3])}
- | initializer_list COMMA initializer {result = val[0] << MemberInit.new_at(val[2].pos, nil , val[2])}
-
-# Returns {Pos, NodeArray[Expression|Token]}
-designation
- : designator_list EQ {result = val[0]}
-
-# Returns {Pos, NodeArray[Expression|Token]}
-designator_list
- : designator {result = val[0]; val[0][1] = NodeArray[val[0][1]]}
- | designator_list designator {result = val[0]; val[0][1] << val[1][1]}
-
-# Returns {Pos, Expression|Member}
-designator
- : LBRACKET constant_expression RBRACKET {result = [val[1].pos, val[1] ]}
- | DOT identifier {result = [val[1].pos, Member.new_at(val[1].pos, val[1].val)]}
-
-# A.2.1 Expressions
-
-# Returns Expression
-primary_expression
- : identifier {result = Variable.new_at(val[0].pos, val[0].val)}
- | constant {result = val[0]}
- | string_literal {result = val[0]}
- # GCC EXTENSION: allow a compound statement in parentheses as an expression
- | LPAREN expression RPAREN {result = val[1]}
- | LPAREN compound_statement RPAREN {block_expressions_enabled? or parse_error val[0].pos, "compound statement found where expression expected"
- result = BlockExpression.new(val[1]); result.pos = val[0].pos}
-
-# Returns Expression
-postfix_expression
- : primary_expression {result = val[0]}
- | postfix_expression LBRACKET expression RBRACKET {result = Index .new_at(val[0].pos, val[0], val[2])}
- | postfix_expression LPAREN argument_expression_list RPAREN {result = Call .new_at(val[0].pos, val[0], val[2] )}
- | postfix_expression LPAREN RPAREN {result = Call .new_at(val[0].pos, val[0], NodeArray[])}
- | postfix_expression DOT identifier {result = Dot .new_at(val[0].pos, val[0], Member.new(val[2].val))}
- | postfix_expression ARROW identifier {result = Arrow .new_at(val[0].pos, val[0], Member.new(val[2].val))}
- | postfix_expression INC {result = PostInc .new_at(val[0].pos, val[0] )}
- | postfix_expression DEC {result = PostDec .new_at(val[0].pos, val[0] )}
- | LPAREN type_name RPAREN LBRACE initializer_list RBRACE {result = CompoundLiteral.new_at(val[0].pos, val[1], val[4])}
- | LPAREN type_name RPAREN LBRACE initializer_list COMMA RBRACE {result = CompoundLiteral.new_at(val[0].pos, val[1], val[4])}
-
-# Returns [Expression|Type]
-argument_expression_list
- : argument_expression {result = NodeArray[val[0]]}
- | argument_expression_list COMMA argument_expression {result = val[0] << val[2]}
-
-# Returns Expression|Type -- EXTENSION: allow type names here too, to support some standard library macros (e.g., va_arg [7.15.1.1])
-argument_expression
- : assignment_expression {result = val[0]}
- | type_name {result = val[0]}
-
-# Returns Expression
-unary_expression
- : postfix_expression {result = val[0]}
- | INC unary_expression {result = PreInc.new_at(val[0].pos, val[1])}
- | DEC unary_expression {result = PreDec.new_at(val[0].pos, val[1])}
- | unary_operator cast_expression {result = val[0][0].new_at(val[0][1], val[1])}
- | SIZEOF unary_expression {result = Sizeof.new_at(val[0].pos, val[1])}
- | SIZEOF LPAREN type_name RPAREN {result = Sizeof.new_at(val[0].pos, val[2])}
-
-# Returns [Class, Pos]
-unary_operator
- : AND {result = [Address , val[0].pos]}
- | MUL {result = [Dereference, val[0].pos]}
- | ADD {result = [Positive , val[0].pos]}
- | SUB {result = [Negative , val[0].pos]}
- | NOT {result = [BitNot , val[0].pos]}
- | BANG {result = [Not , val[0].pos]}
-
-# Returns Expression
-cast_expression
- : unary_expression {result = val[0]}
- | LPAREN type_name RPAREN cast_expression {result = Cast.new_at(val[0].pos, val[1], val[3])}
-
-# Returns Expression
-multiplicative_expression
- : cast_expression {result = val[0]}
- | multiplicative_expression MUL cast_expression {result = Multiply.new_at(val[0].pos, val[0], val[2])}
- | multiplicative_expression DIV cast_expression {result = Divide .new_at(val[0].pos, val[0], val[2])}
- | multiplicative_expression MOD cast_expression {result = Mod .new_at(val[0].pos, val[0], val[2])}
-
-# Returns Expression
-additive_expression
- : multiplicative_expression {result = val[0]}
- | additive_expression ADD multiplicative_expression {result = Add .new_at(val[0].pos, val[0], val[2])}
- | additive_expression SUB multiplicative_expression {result = Subtract.new_at(val[0].pos, val[0], val[2])}
-
-# Returns Expression
-shift_expression
- : additive_expression {result = val[0]}
- | shift_expression LSHIFT additive_expression {result = ShiftLeft .new_at(val[0].pos, val[0], val[2])}
- | shift_expression RSHIFT additive_expression {result = ShiftRight.new_at(val[0].pos, val[0], val[2])}
-
-# Returns Expression
-relational_expression
- : shift_expression {result = val[0]}
- | relational_expression LT shift_expression {result = Less.new_at(val[0].pos, val[0], val[2])}
- | relational_expression GT shift_expression {result = More.new_at(val[0].pos, val[0], val[2])}
- | relational_expression LEQ shift_expression {result = LessOrEqual.new_at(val[0].pos, val[0], val[2])}
- | relational_expression GEQ shift_expression {result = MoreOrEqual.new_at(val[0].pos, val[0], val[2])}
-
-# Returns Expression
-equality_expression
- : relational_expression {result = val[0]}
- | equality_expression EQEQ relational_expression {result = Equal .new_at(val[0].pos, val[0], val[2])}
- | equality_expression NEQ relational_expression {result = NotEqual.new_at(val[0].pos, val[0], val[2])}
-
-# Returns Expression
-and_expression
- : equality_expression {result = val[0]}
- | and_expression AND equality_expression {result = BitAnd.new_at(val[0].pos, val[0], val[2])}
-
-# Returns Expression
-exclusive_or_expression
- : and_expression {result = val[0]}
- | exclusive_or_expression XOR and_expression {result = BitXor.new_at(val[0].pos, val[0], val[2])}
-
-# Returns Expression
-inclusive_or_expression
- : exclusive_or_expression {result = val[0]}
- | inclusive_or_expression OR exclusive_or_expression {result = BitOr.new_at(val[0].pos, val[0], val[2])}
-
-# Returns Expression
-logical_and_expression
- : inclusive_or_expression {result = val[0]}
- | logical_and_expression ANDAND inclusive_or_expression {result = And.new_at(val[0].pos, val[0], val[2])}
-
-# Returns Expression
-logical_or_expression
- : logical_and_expression {result = val[0]}
- | logical_or_expression OROR logical_and_expression {result = Or.new_at(val[0].pos, val[0], val[2])}
-
-# Returns Expression
-conditional_expression
- : logical_or_expression {result = val[0]}
- | logical_or_expression QUESTION expression COLON conditional_expression {result = Conditional.new_at(val[0].pos, val[0], val[2], val[4])}
-
-# Returns Expression
-assignment_expression
- : conditional_expression {result = val[0]}
- | unary_expression assignment_operator assignment_expression {result = val[1].new_at(val[0].pos, val[0], val[2])}
-
-# Returns Class
-assignment_operator
- : EQ {result = Assign}
- | MULEQ {result = MultiplyAssign}
- | DIVEQ {result = DivideAssign}
- | MODEQ {result = ModAssign}
- | ADDEQ {result = AddAssign}
- | SUBEQ {result = SubtractAssign}
- | LSHIFTEQ {result = ShiftLeftAssign}
- | RSHIFTEQ {result = ShiftRightAssign}
- | ANDEQ {result = BitAndAssign}
- | XOREQ {result = BitXorAssign}
- | OREQ {result = BitOrAssign}
-
-# Returns Expression
-expression
- : assignment_expression {result = val[0]}
- | expression COMMA assignment_expression {
- if val[0].is_a? Comma
- if val[2].is_a? Comma
- val[0].exprs.push(*val[2].exprs)
- else
- val[0].exprs << val[2]
- end
- result = val[0]
- else
- if val[2].is_a? Comma
- val[2].exprs.unshift(val[0])
- val[2].pos = val[0].pos
- result = val[2]
- else
- result = Comma.new_at(val[0].pos, NodeArray[val[0], val[2]])
- end
- end
- }
-
-# Returns Expression
-constant_expression
- : conditional_expression {result = val[0]}
-
-# A.1.1 -- Lexical elements
-#
-# token
-# : keyword (raw string)
-# | identifier expanded below
-# | constant expanded below
-# | string_literal expanded below
-# | punctuator (raw string)
-#
-# preprocessing-token (skip)
-
-# Returns Token
-identifier
- : ID {result = val[0]}
-
-# Returns Literal
-constant
- : ICON {result = val[0].val; result.pos = val[0].pos}
- | FCON {result = val[0].val; result.pos = val[0].pos}
- #| enumeration_constant -- these are parsed as identifiers at all
- # places the `constant' nonterminal appears
- | CCON {result = val[0].val; result.pos = val[0].pos}
-
-# Returns Token
-enumeration_constant
- : ID {result = val[0]}
-
-# Returns StringLiteral
-# Also handles string literal concatenation (6.4.5.4)
-string_literal
- : string_literal SCON {val[0].val << val[1].val.val; result = val[0]}
- | SCON { result = val[0].val; result.pos = val[0].pos }
-
----- inner
- # A.1.9 -- Preprocessing numbers -- skip
- # A.1.8 -- Header names -- skip
-
- # A.1.7 -- Puncuators -- we don't bother with {##,#,%:,%:%:} since
- # we don't do preprocessing
- @@punctuators = %r'\+\+|-[->]|&&|\|\||\.\.\.|(?:<<|>>|[<>=!*/%+\-&^|])=?|[\[\](){}.~?:;,]'
- @@digraphs = %r'<[:%]|[:%]>'
-
- # A.1.6 -- String Literals -- simple for us because we don't decode
- # the string (and indeed accept some illegal strings)
- @@string_literal = %r'L?"(?:[^\\]|\\.)*?"'m
-
- # A.1.5 -- Constants
- @@decimal_floating_constant = %r'(?:(?:\d*\.\d+|\d+\.)(?:e[-+]?\d+)?|\d+e[-+]?\d+)[fl]?'i
- @@hexadecimal_floating_constant = %r'0x(?:(?:[0-9a-f]*\.[0-9a-f]+|[0-9a-f]+\.)|[0-9a-f]+)p[-+]?\d+[fl]?'i
-
- @@integer_constant = %r'(?:[1-9][0-9]*|0x[0-9a-f]+|0[0-7]*)(?:ul?l?|ll?u?)?'i
- @@floating_constant = %r'#{@@decimal_floating_constant}|#{@@hexadecimal_floating_constant}'
- @@enumeration_constant = %r'[a-zA-Z_\\][a-zA-Z_\\0-9]*'
- @@character_constant = %r"L?'(?:[^\\]|\\.)+?'"
- # (note that as with string-literals, we accept some illegal
- # character-constants)
-
- # A.1.4 -- Universal character names -- skip
-
- # A.1.3 -- Identifiers -- skip, since an identifier is lexically
- # identical to an enumeration constant
-
- # A.1.2 Keywords
- keywords = %w'auto break case char const continue default do
-double else enum extern float for goto if inline int long register
-restrict return short signed sizeof static struct switch typedef union
- unsigned void volatile while _Bool _Complex _Imaginary'
- @@keywords = %r"#{keywords.join('|')}"
-
- def initialize
- @type_names = ::Set.new
-
- @warning_proc = lambda{}
- @pos = C::Node::Pos.new(nil, 1, 0)
- end
- def initialize_copy(x)
- @pos = x.pos.dup
- @type_names = x.type_names.dup
- end
- attr_accessor :pos, :type_names
-
- def parse(str)
- if str.respond_to? :read
- str = str.read
- end
- @str = str
- begin
- prepare_lexer(str)
- return do_parse
- rescue ParseError => e
- e.set_backtrace(caller)
- raise
- end
- end
-
- #
- # Error handler, as used by racc.
- #
- def on_error(error_token_id, error_value, value_stack)
- if error_value == '$'
- parse_error @pos, "unexpected EOF"
- else
- parse_error(error_value.pos,
- "parse error on #{token_to_str(error_token_id)} (#{error_value.val})")
- end
- end
-
- def self.feature(name)
- attr_writer "#{name}_enabled"
- class_eval <<-EOS
- def enable_#{name}
- @#{name}_enabled = true
- end
- def #{name}_enabled?
- @#{name}_enabled
- end
- EOS
- end
- private_class_method :feature
-
- #
- # Allow blocks in parentheses as expressions, as per the gcc
- # extension. [http://rubyurl.com/iB7]
- #
- feature :block_expressions
-
- private # ---------------------------------------------------------
-
- class Token
- attr_accessor :pos, :val
- def initialize(pos, val)
- @pos = pos
- @val = val
- end
- end
- def eat(str)
- lines = str.split(/\r\n|[\r\n]/, -1)
- if lines.length == 1
- @pos.col_num += lines[0].length
- else
- @pos.line_num += lines.length - 1
- @pos.col_num = lines[-1].length
- end
- end
-
- #
- # Make a Declaration from the given specs and declarators.
- #
- def make_declaration(pos, specs, declarators)
- specs.all?{|x| x.is_a?(Symbol) || x.is_a?(Type)} or raise specs.map{|x| x.class}.inspect
- decl = Declaration.new_at(pos, nil, declarators)
-
- # set storage class
- storage_classes = specs.find_all do |x|
- [:typedef, :extern, :static, :auto, :register].include? x
- end
- # 6.7.1p2: at most, one storage-class specifier may be given in
- # the declaration specifiers in a declaration
- storage_classes.length <= 1 or
- begin
- if declarators.length == 0
- for_name = ''
- else
- for_name = "for `#{declarators[0].name}'"
- end
- parse_error pos, "multiple or duplicate storage classes given #{for_name}'"
- end
- decl.storage = storage_classes[0]
-
- # set type (specifiers, qualifiers)
- decl.type = make_direct_type(pos, specs)
-
- # set function specifiers
- decl.inline = specs.include?(:inline)
-
- # look for new type names
- if decl.typedef?
- decl.declarators.each do |d|
- if d.name
- @type_names << d.name
- end
- end
- end
-
- return decl
- end
-
- def make_function_def(pos, specs, func_declarator, decl_list, defn)
- add_decl_type(func_declarator, make_direct_type(pos, specs))
-
- # get types from decl_list if necessary
- function = func_declarator.indirect_type
- function.is_a? Function or
- parse_error pos, "non function type for function `#{func_declarator.name}'"
- params = function.params
- if decl_list
- params.all?{|p| p.type.nil?} or
- parse_error pos, "both prototype and declaration list given for `#{func_declarator.name}'"
- decl_list.each do |declaration|
- declaration.declarators.each do |declarator|
- param = params.find{|p| p.name == declarator.name} or
- parse_error pos, "no parameter named #{declarator.name}"
- if declarator.indirect_type
- param.type = declarator.indirect_type
- param.type.direct_type = declaration.type.dup
- else
- param.type = declaration.type.dup
- end
- end
- end
- params.all?{|p| p.type} or
- begin
- s = params.find_all{|p| p.type.nil?}.map{|p| "`#{p.name}'"}.join(' and ')
- parse_error pos, "types missing for parameters #{s}"
- end
- end
-
- fd = FunctionDef.new_at(pos,
- function.detach,
- func_declarator.name,
- defn,
- :no_prototype => !decl_list.nil?)
-
- # set storage class
- # 6.9.1p4: only extern or static allowed
- specs.each do |s|
- [:typedef, :auto, :register].include?(s) and
- "`#{s}' illegal for function"
- end
- storage_classes = specs.find_all do |s|
- s == :extern || s == :static
- end
- # 6.7.1p2: at most, one storage-class specifier may be given in
- # the declaration specifiers in a declaration
- storage_classes.length <= 1 or
- "multiple or duplicate storage classes given for `#{func_declarator.name}'"
- fd.storage = storage_classes[0] if storage_classes[0]
-
- # set function specifiers
- # 6.7.4p5 'inline' can be repeated
- fd.inline = specs.include?(:inline)
-
- return fd
- end
-
- #
- # Make a direct type from the list of type specifiers and type
- # qualifiers.
- #
- def make_direct_type(pos, specs)
- specs_order = [:signed, :unsigned, :short, :long, :double, :void,
- :char, :int, :float, :_Bool, :_Complex, :_Imaginary]
-
- type_specs = specs.find_all do |x|
- specs_order.include?(x) || !x.is_a?(Symbol)
- end
- type_specs.sort! do |a, b|
- (specs_order.index(a)||100) <=> (specs_order.index(b)||100)
- end
-
- # set type specifiers
- # 6.7.2p2: the specifier list should be one of these
- type =
- case type_specs
- when [:void]
- Void.new
- when [:char]
- Char.new
- when [:signed, :char]
- Char.new :signed => true
- when [:unsigned, :char]
- Char.new :signed => false
- when [:short], [:signed, :short], [:short, :int],
- [:signed, :short, :int]
- Int.new :longness => -1
- when [:unsigned, :short], [:unsigned, :short, :int]
- Int.new :unsigned => true, :longness => -1
- when [:int], [:signed], [:signed, :int]
- Int.new
- when [:unsigned], [:unsigned, :int]
- Int.new :unsigned => true
- when [:long], [:signed, :long], [:long, :int],
- [:signed, :long, :int]
- Int.new :longness => 1
- when [:unsigned, :long], [:unsigned, :long, :int]
- Int.new :longness => 1, :unsigned => true
- when [:long, :long], [:signed, :long, :long],
- [:long, :long, :int], [:signed, :long, :long, :int]
- Int.new :longness => 2
- when [:unsigned, :long, :long], [:unsigned, :long, :long, :int]
- Int.new :longness => 2, :unsigned => true
- when [:float]
- Float.new
- when [:double]
- Float.new :longness => 1
- when [:long, :double]
- Float.new :longness => 2
- when [:_Bool]
- Bool.new
- when [:float, :_Complex]
- Complex.new
- when [:double, :_Complex]
- Complex.new :longness => 1
- when [:long, :double, :_Complex]
- Complex.new :longness => 2
- when [:float, :_Imaginary]
- Imaginary.new
- when [:double, :_Imaginary]
- Imaginary.new :longness => 1
- when [:long, :double, :_Imaginary]
- Imaginary.new :longness => 2
- else
- if type_specs.length == 1 &&
- [CustomType, Struct, Union, Enum].any?{|c| type_specs[0].is_a? c}
- type_specs[0]
- else
- if type_specs == []
- parse_error pos, "no type specifiers given"
- else
- parse_error pos, "invalid type specifier combination: #{type_specs.join(' ')}"
- end
- end
- end
- type.pos ||= pos
-
- # set type qualifiers
- # 6.7.3p4: type qualifiers can be repeated
- type.const = specs.any?{|x| x.equal? :const }
- type.restrict = specs.any?{|x| x.equal? :restrict}
- type.volatile = specs.any?{|x| x.equal? :volatile}
-
- return type
- end
-
- def make_parameter(pos, specs, indirect_type, name)
- type = indirect_type
- if type
- type.direct_type = make_direct_type(pos, specs)
- else
- type = make_direct_type(pos, specs)
- end
- [:typedef, :extern, :static, :auto, :inline].each do |sym|
- specs.include? sym and
- parse_error pos, "parameter `#{declarator.name}' declared `#{sym}'"
- end
- return Parameter.new_at(pos, type, name,
- :register => specs.include?(:register))
- end
-
- def add_type_quals(type, quals)
- type.const = quals.include?(:const )
- type.restrict = quals.include?(:restrict)
- type.volatile = quals.include?(:volatile)
- return type
- end
-
- #
- # Add te given type as the "most direct" type to the given
- # declarator. Return the declarator.
- #
- def add_decl_type(declarator, type)
- if declarator.indirect_type
- declarator.indirect_type.direct_type = type
- else
- declarator.indirect_type = type
- end
- return declarator
- end
-
- def param_list(params, var_args)
- if params.length == 1 &&
- params[0].type.is_a?(Void) &&
- params[0].name.nil?
- return NodeArray[]
- elsif params.empty?
- return nil
- else
- return params
- end
- end
-
- def parse_error(pos, str)
- raise ParseError, "#{pos}: #{str}"
- end
-
----- header
-
-require 'set'
-
-# Error classes
-module C
- class ParseError < StandardError; end
-end
-
-# Local variables:
-# mode: ruby
-# end:
diff --git a/test/racc/assets/chk.y b/test/racc/assets/chk.y
deleted file mode 100644
index 7e0ee20f1e..0000000000
--- a/test/racc/assets/chk.y
+++ /dev/null
@@ -1,126 +0,0 @@
-#
-# racc tester
-#
-
-class Calcp
-
- prechigh
- left '*' '/'
- left '+' '-'
- preclow
-
- convert
- NUMBER 'Number'
- end
-
-rule
-
- target : exp | /* none */ { result = 0 } ;
-
- exp : exp '+' exp { result += val[2]; @plus = 'plus' }
- | exp '-' exp { result -= val[2]; @str = "string test" }
- | exp '*' exp { result *= val[2] }
- | exp '/' exp { result /= val[2] }
- | '(' { $emb = true } exp ')'
- {
- raise 'must not happen' unless $emb
- result = val[2]
- }
- | '-' NUMBER { result = -val[1] }
- | NUMBER
- ;
-
-end
-
-----header
-
-class Number; end
-
-----inner
-
- def parse( src )
- $emb = false
- @plus = nil
- @str = nil
- @src = src
- result = do_parse
- if @plus
- raise 'string parse failed' unless @plus == 'plus'
- end
- if @str
- raise 'string parse failed' unless @str == 'string test'
- end
- result
- end
-
- def next_token
- @src.shift
- end
-
- def initialize
- @yydebug = true
- end
-
-----footer
-
-$parser = Calcp.new
-$test_number = 1
-
-def chk( src, ans )
- result = $parser.parse(src)
- raise "test #{$test_number} fail" unless result == ans
- $test_number += 1
-end
-
-chk(
- [ [Number, 9],
- [false, false],
- [false, false] ], 9
-)
-
-chk(
- [ [Number, 5],
- ['*', nil],
- [Number, 1],
- ['-', nil],
- [Number, 1],
- ['*', nil],
- [Number, 8],
- [false, false],
- [false, false] ], -3
-)
-
-chk(
- [ [Number, 5],
- ['+', nil],
- [Number, 2],
- ['-', nil],
- [Number, 5],
- ['+', nil],
- [Number, 2],
- ['-', nil],
- [Number, 5],
- [false, false],
- [false, false] ], -1
-)
-
-chk(
- [ ['-', nil],
- [Number, 4],
- [false, false],
- [false, false] ], -4
-)
-
-chk(
- [ [Number, 7],
- ['*', nil],
- ['(', nil],
- [Number, 4],
- ['+', nil],
- [Number, 3],
- [')', nil],
- ['-', nil],
- [Number, 9],
- [false, false],
- [false, false] ], 40
-)
diff --git a/test/racc/assets/conf.y b/test/racc/assets/conf.y
deleted file mode 100644
index de9de71d28..0000000000
--- a/test/racc/assets/conf.y
+++ /dev/null
@@ -1,16 +0,0 @@
-
-class A
-rule
-
-a: A c C expr;
-
-b: A B; # useless
-
-c: A;
-c: A;
-
-expr: expr '+' expr
-expr: expr '-' expr
-expr: NUMBER
-
-end
diff --git a/test/racc/assets/csspool.y b/test/racc/assets/csspool.y
deleted file mode 100644
index 3d6af25d85..0000000000
--- a/test/racc/assets/csspool.y
+++ /dev/null
@@ -1,729 +0,0 @@
-class CSSPool::CSS::Parser
-
-token CHARSET_SYM IMPORT_SYM STRING SEMI IDENT S COMMA LBRACE RBRACE STAR HASH
-token LSQUARE RSQUARE EQUAL INCLUDES DASHMATCH LPAREN RPAREN FUNCTION GREATER PLUS
-token SLASH NUMBER MINUS LENGTH PERCENTAGE ANGLE TIME FREQ URI
-token IMPORTANT_SYM MEDIA_SYM NOT ONLY AND NTH_PSEUDO_CLASS
-token DOCUMENT_QUERY_SYM FUNCTION_NO_QUOTE
-token TILDE
-token PREFIXMATCH SUFFIXMATCH SUBSTRINGMATCH
-token NOT_PSEUDO_CLASS
-token KEYFRAMES_SYM
-token MATCHES_PSEUDO_CLASS
-token NAMESPACE_SYM
-token MOZ_PSEUDO_ELEMENT
-token RESOLUTION
-token COLON
-token SUPPORTS_SYM
-token OR
-token VARIABLE_NAME
-token CALC_SYM
-token FONTFACE_SYM
-token UNICODE_RANGE
-token RATIO
-
-rule
- document
- : { @handler.start_document }
- stylesheet
- { @handler.end_document }
- ;
- stylesheet
- : charset stylesheet
- | import stylesheet
- | namespace stylesheet
- | charset
- | import
- | namespace
- | body
- |
- ;
- charset
- : CHARSET_SYM STRING SEMI { @handler.charset interpret_string(val[1]), {} }
- ;
- import
- : IMPORT_SYM import_location medium SEMI {
- @handler.import_style val[2], val[1]
- }
- | IMPORT_SYM import_location SEMI {
- @handler.import_style [], val[1]
- }
- ;
- import_location
- : import_location S
- | STRING { result = Terms::String.new interpret_string val.first }
- | URI { result = Terms::URI.new interpret_uri val.first }
- ;
- namespace
- : NAMESPACE_SYM ident import_location SEMI {
- @handler.namespace val[1], val[2]
- }
- | NAMESPACE_SYM import_location SEMI {
- @handler.namespace nil, val[1]
- }
- ;
- medium
- : medium COMMA IDENT {
- result = val[0] << MediaType.new(val[2])
- }
- | IDENT {
- result = [MediaType.new(val[0])]
- }
- ;
- media_query_list
- : media_query { result = MediaQueryList.new([ val[0] ]) }
- | media_query_list COMMA media_query { result = val[0] << val[2] }
- | { result = MediaQueryList.new }
- ;
- media_query
- : optional_only_or_not media_type optional_and_exprs { result = MediaQuery.new(val[0], val[1], val[2]) }
- | media_expr optional_and_exprs { result = MediaQuery.new(nil, val[0], val[1]) }
- ;
- optional_only_or_not
- : ONLY { result = :only }
- | NOT { result = :not }
- | { result = nil }
- ;
- media_type
- : IDENT { result = MediaType.new(val[0]) }
- ;
- media_expr
- : LPAREN optional_space IDENT optional_space RPAREN { result = MediaType.new(val[2]) }
- | LPAREN optional_space IDENT optional_space COLON optional_space expr RPAREN { result = MediaFeature.new(val[2], val[6][0]) }
- ;
- optional_space
- : S { result = val[0] }
- | { result = nil }
- ;
- optional_and_exprs
- : optional_and_exprs AND media_expr { result = val[0] << val[2] }
- | { result = [] }
- ;
- resolution
- : RESOLUTION {
- unit = val.first.gsub(/[\s\d.]/, '')
- number = numeric(val.first)
- result = Terms::Resolution.new(number, unit)
- }
- ;
- body
- : ruleset body
- | conditional_rule body
- | keyframes_rule body
- | fontface_rule body
- | ruleset
- | conditional_rule
- | keyframes_rule
- | fontface_rule
- ;
- conditional_rule
- : media
- | document_query
- | supports
- ;
- body_in_media
- : body
- | empty_ruleset
- ;
- media
- : start_media body_in_media RBRACE { @handler.end_media val.first }
- ;
- start_media
- : MEDIA_SYM media_query_list LBRACE {
- result = val[1]
- @handler.start_media result
- }
- ;
- document_query
- : start_document_query body RBRACE { @handler.end_document_query(before_pos(val), after_pos(val)) }
- | start_document_query RBRACE { @handler.end_document_query(before_pos(val), after_pos(val)) }
- ;
- start_document_query
- : start_document_query_pos url_match_fns LBRACE {
- @handler.start_document_query(val[1], after_pos(val))
- }
- ;
- start_document_query_pos
- : DOCUMENT_QUERY_SYM {
- @handler.node_start_pos = before_pos(val)
- }
- ;
- url_match_fns
- : url_match_fn COMMA url_match_fns {
- result = [val[0], val[2]].flatten
- }
- | url_match_fn {
- result = val
- }
- ;
- url_match_fn
- : function_no_quote
- | function
- | uri
- ;
- supports
- : start_supports body RBRACE { @handler.end_supports }
- | start_supports RBRACE { @handler.end_supports }
- ;
- start_supports
- : SUPPORTS_SYM supports_condition_root LBRACE {
- @handler.start_supports val[1]
- }
- ;
- supports_condition_root
- : supports_negation { result = val.join('') }
- | supports_conjunction_or_disjunction { result = val.join('') }
- | supports_condition_in_parens { result = val.join('') }
- ;
- supports_condition
- : supports_negation { result = val.join('') }
- | supports_conjunction_or_disjunction { result = val.join('') }
- | supports_condition_in_parens { result = val.join('') }
- ;
- supports_condition_in_parens
- : LPAREN supports_condition RPAREN { result = val.join('') }
- | supports_declaration_condition { result = val.join('') }
- ;
- supports_negation
- : NOT supports_condition_in_parens { result = val.join('') }
- ;
- supports_conjunction_or_disjunction
- : supports_conjunction
- | supports_disjunction
- ;
- supports_conjunction
- : supports_condition_in_parens AND supports_condition_in_parens { result = val.join('') }
- | supports_conjunction_or_disjunction AND supports_condition_in_parens { result = val.join('') }
- ;
- supports_disjunction
- : supports_condition_in_parens OR supports_condition_in_parens { result = val.join('') }
- | supports_conjunction_or_disjunction OR supports_condition_in_parens { result = val.join('') }
- ;
- supports_declaration_condition
- : LPAREN declaration_internal RPAREN { result = val.join('') }
- | LPAREN S declaration_internal RPAREN { result = val.join('') }
- ;
- keyframes_rule
- : start_keyframes_rule keyframes_blocks RBRACE
- | start_keyframes_rule RBRACE
- ;
- start_keyframes_rule
- : KEYFRAMES_SYM IDENT LBRACE {
- @handler.start_keyframes_rule val[1]
- }
- ;
- keyframes_blocks
- : keyframes_block keyframes_blocks
- | keyframes_block
- ;
- keyframes_block
- : start_keyframes_block declarations RBRACE { @handler.end_keyframes_block }
- | start_keyframes_block RBRACE { @handler.end_keyframes_block }
- ;
- start_keyframes_block
- : keyframes_selectors LBRACE {
- @handler.start_keyframes_block val[0]
- }
- ;
- keyframes_selectors
- | keyframes_selector COMMA keyframes_selectors {
- result = val[0] + ', ' + val[2]
- }
- | keyframes_selector
- ;
- keyframes_selector
- : IDENT
- | PERCENTAGE { result = val[0].strip }
- ;
- fontface_rule
- : start_fontface_rule declarations RBRACE { @handler.end_fontface_rule }
- | start_fontface_rule RBRACE { @handler.end_fontface_rule }
- ;
- start_fontface_rule
- : FONTFACE_SYM LBRACE {
- @handler.start_fontface_rule
- }
- ;
- ruleset
- : start_selector declarations RBRACE {
- @handler.end_selector val.first
- }
- | start_selector RBRACE {
- @handler.end_selector val.first
- }
- ;
- empty_ruleset
- : optional_space {
- start = @handler.start_selector([])
- @handler.end_selector(start)
- }
- ;
- start_selector
- : S start_selector { result = val.last }
- | selectors LBRACE {
- @handler.start_selector val.first
- }
- ;
- selectors
- : selector COMMA selectors
- {
- sel = Selector.new(val.first, {})
- result = [sel].concat(val[2])
- }
- | selector
- {
- result = [Selector.new(val.first, {})]
- }
- ;
- selector
- : simple_selector combinator selector
- {
- val.flatten!
- val[2].combinator = val.delete_at 1
- result = val
- }
- | simple_selector
- ;
- combinator
- : S { result = :s }
- | GREATER { result = :> }
- | PLUS { result = :+ }
- | TILDE { result = :~ }
- ;
- simple_selector
- : element_name hcap {
- selector = val.first
- selector.additional_selectors = val.last
- result = [selector]
- }
- | element_name { result = val }
- | hcap
- {
- ss = Selectors::Simple.new nil, nil
- ss.additional_selectors = val.flatten
- result = [ss]
- }
- ;
- simple_selectors
- : simple_selector COMMA simple_selectors { result = [val[0], val[2]].flatten }
- | simple_selector
- ;
- ident_with_namespace
- : IDENT { result = [interpret_identifier(val[0]), nil] }
- | IDENT '|' IDENT { result = [interpret_identifier(val[2]), interpret_identifier(val[0])] }
- | '|' IDENT { result = [interpret_identifier(val[1]), nil] }
- | STAR '|' IDENT { result = [interpret_identifier(val[2]), '*'] }
- ;
- element_name
- : ident_with_namespace { result = Selectors::Type.new val.first[0], nil, val.first[1] }
- | STAR { result = Selectors::Universal.new val.first }
- | '|' STAR { result = Selectors::Universal.new val[1] }
- | STAR '|' STAR { result = Selectors::Universal.new val[2], nil, val[0] }
- | IDENT '|' STAR { result = Selectors::Universal.new val[2], nil, interpret_identifier(val[0]) }
- ;
- hcap
- : hash { result = val }
- | class { result = val }
- | attrib { result = val }
- | pseudo { result = val }
- | hash hcap { result = val.flatten }
- | class hcap { result = val.flatten }
- | attrib hcap { result = val.flatten }
- | pseudo hcap { result = val.flatten }
- ;
- hash
- : HASH {
- result = Selectors::Id.new interpret_identifier val.first.sub(/^#/, '')
- }
- class
- : '.' IDENT {
- result = Selectors::Class.new interpret_identifier val.last
- }
- ;
- attrib
- : LSQUARE ident_with_namespace EQUAL IDENT RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::EQUALS,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace EQUAL STRING RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::EQUALS,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace INCLUDES STRING RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::INCLUDES,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace INCLUDES IDENT RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::INCLUDES,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace DASHMATCH IDENT RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::DASHMATCH,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace DASHMATCH STRING RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::DASHMATCH,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace PREFIXMATCH IDENT RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::PREFIXMATCH,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace PREFIXMATCH STRING RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::PREFIXMATCH,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace SUFFIXMATCH IDENT RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::SUFFIXMATCH,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace SUFFIXMATCH STRING RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::SUFFIXMATCH,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace SUBSTRINGMATCH IDENT RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::SUBSTRINGMATCH,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace SUBSTRINGMATCH STRING RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::SUBSTRINGMATCH,
- val[1][1]
- )
- }
- | LSQUARE ident_with_namespace RSQUARE {
- result = Selectors::Attribute.new(
- val[1][0],
- nil,
- Selectors::Attribute::SET,
- val[1][1]
- )
- }
- ;
- pseudo
- : COLON IDENT {
- result = Selectors::pseudo interpret_identifier(val[1])
- }
- | COLON COLON IDENT {
- result = Selectors::PseudoElement.new(
- interpret_identifier(val[2])
- )
- }
- | COLON FUNCTION RPAREN {
- result = Selectors::PseudoClass.new(
- interpret_identifier(val[1].sub(/\($/, '')),
- ''
- )
- }
- | COLON FUNCTION IDENT RPAREN {
- result = Selectors::PseudoClass.new(
- interpret_identifier(val[1].sub(/\($/, '')),
- interpret_identifier(val[2])
- )
- }
- | COLON NOT_PSEUDO_CLASS simple_selector RPAREN {
- result = Selectors::PseudoClass.new(
- 'not',
- val[2].first.to_s
- )
- }
- | COLON NTH_PSEUDO_CLASS {
- result = Selectors::PseudoClass.new(
- interpret_identifier(val[1].sub(/\(.*/, '')),
- interpret_identifier(val[1].sub(/.*\(/, '').sub(/\).*/, ''))
- )
- }
- | COLON MATCHES_PSEUDO_CLASS simple_selectors RPAREN {
- result = Selectors::PseudoClass.new(
- val[1].split('(').first.strip,
- val[2].join(', ')
- )
- }
- | COLON MOZ_PSEUDO_ELEMENT optional_space any_number_of_idents optional_space RPAREN {
- result = Selectors::PseudoElement.new(
- interpret_identifier(val[1].sub(/\($/, ''))
- )
- }
- | COLON COLON MOZ_PSEUDO_ELEMENT optional_space any_number_of_idents optional_space RPAREN {
- result = Selectors::PseudoElement.new(
- interpret_identifier(val[2].sub(/\($/, ''))
- )
- }
- ;
- any_number_of_idents
- :
- | multiple_idents
- ;
- multiple_idents
- : IDENT
- | IDENT COMMA multiple_idents
- ;
- # declarations can be separated by one *or more* semicolons. semi-colons at the start or end of a ruleset are also allowed
- one_or_more_semis
- : SEMI
- | SEMI one_or_more_semis
- ;
- declarations
- : declaration one_or_more_semis declarations
- | one_or_more_semis declarations
- | declaration one_or_more_semis
- | declaration
- | one_or_more_semis
- ;
- declaration
- : declaration_internal { @handler.property val.first }
- ;
- declaration_internal
- : property COLON expr prio
- { result = Declaration.new(val.first, val[2], val[3]) }
- | property COLON S expr prio
- { result = Declaration.new(val.first, val[3], val[4]) }
- | property S COLON expr prio
- { result = Declaration.new(val.first, val[3], val[4]) }
- | property S COLON S expr prio
- { result = Declaration.new(val.first, val[4], val[5]) }
- ;
- prio
- : IMPORTANT_SYM { result = true }
- | { result = false }
- ;
- property
- : IDENT { result = interpret_identifier val[0] }
- | STAR IDENT { result = interpret_identifier val.join }
- | VARIABLE_NAME { result = interpret_identifier val[0] }
- ;
- operator
- : COMMA
- | SLASH
- | EQUAL
- ;
- expr
- : term operator expr {
- result = [val.first, val.last].flatten
- val.last.first.operator = val[1]
- }
- | term expr { result = val.flatten }
- | term { result = val }
- ;
- term
- : ident
- | ratio
- | numeric
- | string
- | uri
- | hexcolor
- | calc
- | function
- | resolution
- | VARIABLE_NAME
- | uranges
- ;
- function
- : function S { result = val.first }
- | FUNCTION expr RPAREN {
- name = interpret_identifier val.first.sub(/\($/, '')
- if name == 'rgb'
- result = Terms::Rgb.new(*val[1])
- else
- result = Terms::Function.new name, val[1]
- end
- }
- | FUNCTION RPAREN {
- name = interpret_identifier val.first.sub(/\($/, '')
- result = Terms::Function.new name
- }
- ;
- function_no_quote
- : function_no_quote S { result = val.first }
- | FUNCTION_NO_QUOTE {
- parts = val.first.split('(')
- name = interpret_identifier parts.first
- result = Terms::Function.new(name, [Terms::String.new(interpret_string_no_quote(parts.last))])
- }
- ;
- uranges
- : UNICODE_RANGE COMMA uranges
- | UNICODE_RANGE
- ;
- calc
- : CALC_SYM calc_sum RPAREN optional_space {
- result = Terms::Math.new(val.first.split('(').first, val[1])
- }
- ;
- # plus and minus are supposed to have whitespace around them, per http://dev.w3.org/csswg/css-values/#calc-syntax, but the numbers are eating trailing whitespace, so we inject it back in
- calc_sum
- : calc_product
- | calc_product PLUS calc_sum { val.insert(1, ' '); result = val.join('') }
- | calc_product MINUS calc_sum { val.insert(1, ' '); result = val.join('') }
- ;
- calc_product
- : calc_value
- | calc_value optional_space STAR calc_value { result = val.join('') }
- | calc_value optional_space SLASH calc_value { result = val.join('') }
- ;
- calc_value
- : numeric { result = val.join('') }
- | function { result = val.join('') } # for var() variable references
- | LPAREN calc_sum RPAREN { result = val.join('') }
- ;
- hexcolor
- : hexcolor S { result = val.first }
- | HASH { result = Terms::Hash.new val.first.sub(/^#/, '') }
- ;
- uri
- : uri S { result = val.first }
- | URI { result = Terms::URI.new interpret_uri val.first }
- ;
- string
- : string S { result = val.first }
- | STRING { result = Terms::String.new interpret_string val.first }
- ;
- numeric
- : unary_operator numeric {
- result = val[1]
- val[1].unary_operator = val.first
- }
- | NUMBER {
- result = Terms::Number.new numeric val.first
- }
- | PERCENTAGE {
- result = Terms::Number.new numeric(val.first), nil, '%'
- }
- | LENGTH {
- unit = val.first.gsub(/[\s\d.]/, '')
- result = Terms::Number.new numeric(val.first), nil, unit
- }
- | ANGLE {
- unit = val.first.gsub(/[\s\d.]/, '')
- result = Terms::Number.new numeric(val.first), nil, unit
- }
- | TIME {
- unit = val.first.gsub(/[\s\d.]/, '')
- result = Terms::Number.new numeric(val.first), nil, unit
- }
- | FREQ {
- unit = val.first.gsub(/[\s\d.]/, '')
- result = Terms::Number.new numeric(val.first), nil, unit
- }
- ;
- ratio
- : RATIO {
- result = Terms::Ratio.new(val[0], val[1])
- }
- ;
- unary_operator
- : MINUS { result = :minus }
- | PLUS { result = :plus }
- ;
- ident
- : ident S { result = val.first }
- | IDENT { result = Terms::Ident.new interpret_identifier val.first }
- ;
-
----- inner
-
-def numeric thing
- thing = thing.gsub(/[^\d.]/, '')
- Integer(thing) rescue Float(thing)
-end
-
-def interpret_identifier s
- interpret_escapes s
-end
-
-def interpret_uri s
- interpret_escapes s.match(/^url\((.*)\)$/mui)[1].strip.match(/^(['"]?)((?:\\.|.)*)\1$/mu)[2]
-end
-
-def interpret_string_no_quote s
- interpret_escapes s.match(/^(.*)\)$/mu)[1].strip.match(/^(['"]?)((?:\\.|.)*)\1$/mu)[2]
-end
-
-def interpret_string s
- interpret_escapes s.match(/^(['"])((?:\\.|.)*)\1$/mu)[2]
-end
-
-def interpret_escapes s
- token_exp = /\\(?:([0-9a-fA-F]{1,6}(?:\r\n|\s)?)|(.))/mu
- return s.gsub(token_exp) do |escape_sequence|
- if !$1.nil?
- code = $1.chomp.to_i 16
- code = 0xFFFD if code > 0x10FFFF
- next [code].pack('U')
- end
- next '' if $2 == "\n"
- next $2
- end
-end
-
-# override racc's on_error so we can have context in our error messages
-def on_error(t, val, vstack)
- errcontext = (@ss.pre_match[-10..-1] || @ss.pre_match) +
- @ss.matched + @ss.post_match[0..9]
- line_number = @ss.pre_match.lines.count
- raise ParseError, sprintf("parse error on value %s (%s) " +
- "on line %s around \"%s\"",
- val.inspect, token_to_str(t) || '?',
- line_number, errcontext)
-end
-
-def before_pos(val)
- # don't include leading whitespace
- return current_pos - val.last.length + val.last[/\A\s*/].size
-end
-
-def after_pos(val)
- # don't include trailing whitespace
- return current_pos - val.last[/\s*\z/].size
-end
-
-# charpos will work with multibyte strings but is not available until ruby 2
-def current_pos
- @ss.respond_to?('charpos') ? @ss.charpos : @ss.pos
-end
diff --git a/test/racc/assets/digraph.y b/test/racc/assets/digraph.y
deleted file mode 100644
index 17a034ee54..0000000000
--- a/test/racc/assets/digraph.y
+++ /dev/null
@@ -1,29 +0,0 @@
-# ? detect digraph bug
-
-class P
- token A B C D
-rule
- target : a b c d
- a : A
- |
- b : B
- |
- c : C
- |
- d : D
- |
-end
-
----- inner
-
- def parse
- do_parse
- end
-
- def next_token
- [false, '$']
- end
-
----- footer
-
-P.new.parse
diff --git a/test/racc/assets/echk.y b/test/racc/assets/echk.y
deleted file mode 100644
index 0fda2685aa..0000000000
--- a/test/racc/assets/echk.y
+++ /dev/null
@@ -1,118 +0,0 @@
-#
-# racc tester
-#
-
-class Calcp
-
- prechigh
- left '*' '/'
- left '+' '-'
- preclow
-
- convert
- NUMBER 'Number'
- end
-
-rule
-
- target : exp | /* none */ { result = 0 } ;
-
- exp : exp '+' exp { result += val[2]; a = 'plus' }
- | exp '-' exp { result -= val[2]; "string test" }
- | exp '*' exp { result *= val[2] }
- | exp '/' exp { result /= val[2] }
- | '(' { $emb = true } exp ')'
- {
- raise 'must not happen' unless $emb
- result = val[2]
- }
- | '-' NUMBER { result = -val[1] }
- | NUMBER
- ;
-
-end
-
-----header
-
-class Number ; end
-
-----inner
-
- def parse( src )
- @src = src
- do_parse
- end
-
- def next_token
- @src.shift
- end
-
- def initialize
- @yydebug = true
- end
-
-----footer
-
-$parser = Calcp.new
-$tidx = 1
-
-def chk( src, ans )
- ret = $parser.parse( src )
- unless ret == ans then
- bug! "test #{$tidx} fail"
- end
- $tidx += 1
-end
-
-chk(
- [ [Number, 9],
- [false, false],
- [false, false] ], 9
-)
-
-chk(
- [ [Number, 5],
- ['*', nil],
- [Number, 1],
- ['-', nil],
- [Number, 1],
- ['*', nil],
- [Number, 8],
- [false, false],
- [false, false] ], -3
-)
-
-chk(
- [ [Number, 5],
- ['+', nil],
- [Number, 2],
- ['-', nil],
- [Number, 5],
- ['+', nil],
- [Number, 2],
- ['-', nil],
- [Number, 5],
- [false, false],
- [false, false] ], -1
-)
-
-chk(
- [ ['-', nil],
- [Number, 4],
- [false, false],
- [false, false] ], -4
-)
-
-chk(
- [ [Number, 7],
- ['*', nil],
- ['(', nil],
- [Number, 4],
- ['+', nil],
- [Number, 3],
- [')', nil],
- ['-', nil],
- [Number, 9],
- [false, false],
- [false, false] ], 40
-)
diff --git a/test/racc/assets/edtf.y b/test/racc/assets/edtf.y
deleted file mode 100644
index 4f5f6bb4fd..0000000000
--- a/test/racc/assets/edtf.y
+++ /dev/null
@@ -1,583 +0,0 @@
-# -*- racc -*-
-
-# Copyright 2011 Sylvester Keil. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# The views and conclusions contained in the software and documentation are
-# those of the authors and should not be interpreted as representing official
-# policies, either expressed or implied, of the copyright holder.
-
-class EDTF::Parser
-
-token T Z E X U UNKNOWN OPEN LONGYEAR UNMATCHED DOTS UA PUA
-
-expect 0
-
-rule
-
- edtf : level_0_expression
- | level_1_expression
- | level_2_expression
- ;
-
- # ---- Level 0 / ISO 8601 Rules ----
-
- # NB: level 0 intervals are covered by the level 1 interval rules
- level_0_expression : date
- | date_time
- ;
-
- date : positive_date
- | negative_date
- ;
-
- positive_date :
- year { result = Date.new(val[0]).year_precision! }
- | year_month { result = Date.new(*val.flatten).month_precision! }
- | year_month_day { result = Date.new(*val.flatten).day_precision! }
- ;
-
- negative_date : '-' positive_date { result = -val[1] }
-
-
- date_time : date T time {
- result = DateTime.new(val[0].year, val[0].month, val[0].day, *val[2])
- result.skip_timezone = (val[2].length == 3)
- }
-
- time : base_time
- | base_time zone_offset { result = val.flatten }
-
- base_time : hour ':' minute ':' second { result = val.values_at(0, 2, 4) }
- | midnight
-
- midnight : '2' '4' ':' '0' '0' ':' '0' '0' { result = [24, 0, 0] }
-
- zone_offset : Z { result = 0 }
- | '-' zone_offset_hour { result = -1 * val[1] }
- | '+' positive_zone_offset { result = val[1] }
- ;
-
- positive_zone_offset : zone_offset_hour
- | '0' '0' ':' '0' '0' { result = 0 }
- ;
-
-
- zone_offset_hour : d01_13 ':' minute { result = Rational(val[0] * 60 + val[2], 1440) }
- | '1' '4' ':' '0' '0' { result = Rational(840, 1440) }
- | '0' '0' ':' d01_59 { result = Rational(val[3], 1440) }
- ;
-
- year : digit digit digit digit {
- result = val.zip([1000,100,10,1]).reduce(0) { |s,(a,b)| s += a * b }
- }
-
- month : d01_12
- day : d01_31
-
- year_month : year '-' month { result = [val[0], val[2]] }
-
- # We raise an exception if there are two many days for the month, but
- # do not consider leap years, as the EDTF BNF did not either.
- # NB: an exception will be raised regardless, because the Ruby Date
- # implementation calculates leap years.
- year_month_day : year_month '-' day {
- result = val[0] << val[2]
- if result[2] > 31 || (result[2] > 30 && [2,4,6,9,11].include?(result[1])) || (result[2] > 29 && result[1] == 2)
- raise ArgumentError, "invalid date (invalid days #{result[2]} for month #{result[1]})"
- end
- }
-
- hour : d00_23
- minute : d00_59
- second : d00_59
-
- # Completely covered by level_1_interval
- # level_0_interval : date '/' date { result = Interval.new(val[0], val[1]) }
-
-
- # ---- Level 1 Extension Rules ----
-
- # NB: Uncertain/approximate Dates are covered by the Level 2 rules
- level_1_expression : unspecified | level_1_interval | long_year_simple | season
-
- # uncertain_or_approximate_date : date UA { result = uoa(val[0], val[1]) }
-
- unspecified : unspecified_year
- {
- result = Date.new(val[0][0]).year_precision!
- result.unspecified.year[2,2] = val[0][1]
- }
- | unspecified_month
- | unspecified_day
- | unspecified_day_and_month
- ;
-
- unspecified_year :
- digit digit digit U
- {
- result = [val[0,3].zip([1000,100,10]).reduce(0) { |s,(a,b)| s += a * b }, [false,true]]
- }
- | digit digit U U
- {
- result = [val[0,2].zip([1000,100]).reduce(0) { |s,(a,b)| s += a * b }, [true, true]]
- }
-
- unspecified_month : year '-' U U {
- result = Date.new(val[0]).unspecified!(:month)
- result.precision = :month
- }
-
- unspecified_day : year_month '-' U U {
- result = Date.new(*val[0]).unspecified!(:day)
- }
-
- unspecified_day_and_month : year '-' U U '-' U U {
- result = Date.new(val[0]).unspecified!([:day,:month])
- }
-
-
- level_1_interval : level_1_start '/' level_1_end {
- result = Interval.new(val[0], val[2])
- }
-
- level_1_start : date | partial_uncertain_or_approximate | unspecified | partial_unspecified | UNKNOWN
-
- level_1_end : level_1_start | OPEN
-
-
- long_year_simple :
- LONGYEAR long_year
- {
- result = Date.new(val[1])
- result.precision = :year
- }
- | LONGYEAR '-' long_year
- {
- result = Date.new(-1 * val[2])
- result.precision = :year
- }
- ;
-
- long_year :
- positive_digit digit digit digit digit {
- result = val.zip([10000,1000,100,10,1]).reduce(0) { |s,(a,b)| s += a * b }
- }
- | long_year digit { result = 10 * val[0] + val[1] }
- ;
-
-
- season : year '-' season_number ua {
- result = Season.new(val[0], val[2])
- val[3].each { |ua| result.send(ua) }
- }
-
- season_number : '2' '1' { result = 21 }
- | '2' '2' { result = 22 }
- | '2' '3' { result = 23 }
- | '2' '4' { result = 24 }
- ;
-
-
- # ---- Level 2 Extension Rules ----
-
- # NB: Level 2 Intervals are covered by the Level 1 Interval rules.
- level_2_expression : season_qualified
- | partial_uncertain_or_approximate
- | partial_unspecified
- | choice_list
- | inclusive_list
- | masked_precision
- | date_and_calendar
- | long_year_scientific
- ;
-
-
- season_qualified : season '^' { result = val[0]; result.qualifier = val[1] }
-
-
- long_year_scientific :
- long_year_simple E integer
- {
- result = Date.new(val[0].year * 10 ** val[2]).year_precision!
- }
- | LONGYEAR int1_4 E integer
- {
- result = Date.new(val[1] * 10 ** val[3]).year_precision!
- }
- | LONGYEAR '-' int1_4 E integer
- {
- result = Date.new(-1 * val[2] * 10 ** val[4]).year_precision!
- }
- ;
-
-
- date_and_calendar : date '^' { result = val[0]; result.calendar = val[1] }
-
-
- masked_precision :
- digit digit digit X
- {
- d = val[0,3].zip([1000,100,10]).reduce(0) { |s,(a,b)| s += a * b }
- result = EDTF::Decade.new(d)
- }
- | digit digit X X
- {
- d = val[0,2].zip([1000,100]).reduce(0) { |s,(a,b)| s += a * b }
- result = EDTF::Century.new(d)
- }
- ;
-
-
- choice_list : '[' list ']' { result = val[1].choice! }
-
- inclusive_list : '{' list '}' { result = val[1] }
-
- list : earlier { result = EDTF::Set.new(val[0]).earlier! }
- | earlier ',' list_elements ',' later { result = EDTF::Set.new([val[0]] + val[2] + [val[4]]).earlier!.later! }
- | earlier ',' list_elements { result = EDTF::Set.new([val[0]] + val[2]).earlier! }
- | earlier ',' later { result = EDTF::Set.new([val[0]] + [val[2]]).earlier!.later! }
- | list_elements ',' later { result = EDTF::Set.new(val[0] + [val[2]]).later! }
- | list_elements { result = EDTF::Set.new(*val[0]) }
- | later { result = EDTF::Set.new(val[0]).later! }
- ;
-
- list_elements : list_element { result = [val[0]].flatten }
- | list_elements ',' list_element { result = val[0] + [val[2]].flatten }
- ;
-
- list_element : atomic
- | consecutives
- ;
-
- atomic : date
- | partial_uncertain_or_approximate
- | unspecified
- ;
-
- earlier : DOTS date { result = val[1] }
-
- later : year_month_day DOTS { result = Date.new(*val[0]).year_precision! }
- | year_month DOTS { result = Date.new(*val[0]).month_precision! }
- | year DOTS { result = Date.new(val[0]).year_precision! }
- ;
-
- consecutives : year_month_day DOTS year_month_day { result = (Date.new(val[0]).day_precision! .. Date.new(val[2]).day_precision!) }
- | year_month DOTS year_month { result = (Date.new(val[0]).month_precision! .. Date.new(val[2]).month_precision!) }
- | year DOTS year { result = (Date.new(val[0]).year_precision! .. Date.new(val[2]).year_precision!) }
- ;
-
- partial_unspecified :
- unspecified_year '-' month '-' day
- {
- result = Date.new(val[0][0], val[2], val[4])
- result.unspecified.year[2,2] = val[0][1]
- }
- | unspecified_year '-' U U '-' day
- {
- result = Date.new(val[0][0], 1, val[5])
- result.unspecified.year[2,2] = val[0][1]
- result.unspecified!(:month)
- }
- | unspecified_year '-' U U '-' U U
- {
- result = Date.new(val[0][0], 1, 1)
- result.unspecified.year[2,2] = val[0][1]
- result.unspecified!([:month, :day])
- }
- | unspecified_year '-' month '-' U U
- {
- result = Date.new(val[0][0], val[2], 1)
- result.unspecified.year[2,2] = val[0][1]
- result.unspecified!(:day)
- }
- | year '-' U U '-' day
- {
- result = Date.new(val[0], 1, val[5])
- result.unspecified!(:month)
- }
- ;
-
-
- partial_uncertain_or_approximate : pua_base
- | '(' pua_base ')' UA { result = uoa(val[1], val[3]) }
-
- pua_base :
- pua_year { result = val[0].year_precision! }
- | pua_year_month { result = val[0][0].month_precision! }
- | pua_year_month_day { result = val[0].day_precision! }
-
- pua_year : year UA { result = uoa(Date.new(val[0]), val[1], :year) }
-
- pua_year_month :
- pua_year '-' month ua {
- result = [uoa(val[0].change(:month => val[2]), val[3], [:month, :year])]
- }
- | year '-' month UA {
- result = [uoa(Date.new(val[0], val[2]), val[3], [:year, :month])]
- }
- | year '-(' month ')' UA {
- result = [uoa(Date.new(val[0], val[2]), val[4], [:month]), true]
- }
- | pua_year '-(' month ')' UA {
- result = [uoa(val[0].change(:month => val[2]), val[4], [:month]), true]
- }
- ;
-
- pua_year_month_day :
- pua_year_month '-' day ua {
- result = uoa(val[0][0].change(:day => val[2]), val[3], val[0][1] ? [:day] : nil)
- }
- | pua_year_month '-(' day ')' UA {
- result = uoa(val[0][0].change(:day => val[2]), val[4], [:day])
- }
- | year '-(' month ')' UA day ua {
- result = uoa(uoa(Date.new(val[0], val[2], val[5]), val[4], :month), val[6], :day)
- }
- | year_month '-' day UA {
- result = uoa(Date.new(val[0][0], val[0][1], val[2]), val[3])
- }
- | year_month '-(' day ')' UA {
- result = uoa(Date.new(val[0][0], val[0][1], val[2]), val[4], [:day])
- }
- | year '-(' month '-' day ')' UA {
- result = uoa(Date.new(val[0], val[2], val[4]), val[6], [:month, :day])
- }
- | year '-(' month '-(' day ')' UA ')' UA {
- result = Date.new(val[0], val[2], val[4])
- result = uoa(result, val[6], [:day])
- result = uoa(result, val[8], [:month, :day])
- }
- | pua_year '-(' month '-' day ')' UA {
- result = val[0].change(:month => val[2], :day => val[4])
- result = uoa(result, val[6], [:month, :day])
- }
- | pua_year '-(' month '-(' day ')' UA ')' UA {
- result = val[0].change(:month => val[2], :day => val[4])
- result = uoa(result, val[6], [:day])
- result = uoa(result, val[8], [:month, :day])
- }
- # | '(' pua_year '-(' month ')' UA ')' UA '-' day ua {
- # result = val[1].change(:month => val[3], :day => val[9])
- # result = uoa(result, val[5], [:month])
- # result = [uoa(result, val[7], [:year]), true]
- # }
- ;
-
- ua : { result = [] } | UA
-
- # ---- Auxiliary Rules ----
-
- digit : '0' { result = 0 }
- | positive_digit
- ;
-
- positive_digit : '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
-
- d01_12 : '0' positive_digit { result = val[1] }
- | '1' '0' { result = 10 }
- | '1' '1' { result = 11 }
- | '1' '2' { result = 12 }
- ;
-
- d01_13 : d01_12
- | '1' '3' { result = 13 }
- ;
-
- d01_23 : '0' positive_digit { result = val[1] }
- | '1' digit { result = 10 + val[1] }
- | '2' '0' { result = 20 }
- | '2' '1' { result = 21 }
- | '2' '2' { result = 22 }
- | '2' '3' { result = 23 }
- ;
-
- d00_23 : '0' '0'
- | d01_23
- ;
-
- d01_29 : d01_23
- | '2' '4' { result = 24 }
- | '2' '5' { result = 25 }
- | '2' '6' { result = 26 }
- | '2' '7' { result = 27 }
- | '2' '8' { result = 28 }
- | '2' '9' { result = 29 }
- ;
-
- d01_30 : d01_29
- | '3' '0' { result = 30 }
- ;
-
- d01_31 : d01_30
- | '3' '1' { result = 31 }
- ;
-
- d01_59 : d01_29
- | '3' digit { result = 30 + val[1] }
- | '4' digit { result = 40 + val[1] }
- | '5' digit { result = 50 + val[1] }
- ;
-
- d00_59 : '0' '0'
- | d01_59
- ;
-
- int1_4 : positive_digit { result = val[0] }
- | positive_digit digit { result = 10 * val[0] + val[1] }
- | positive_digit digit digit
- {
- result = val.zip([100,10,1]).reduce(0) { |s,(a,b)| s += a * b }
- }
- | positive_digit digit digit digit
- {
- result = val.zip([1000,100,10,1]).reduce(0) { |s,(a,b)| s += a * b }
- }
- ;
-
- integer : positive_digit { result = val[0] }
- | integer digit { result = 10 * val[0] + val[1] }
- ;
-
-
-
----- header
-require 'strscan'
-
----- inner
-
- @defaults = {
- :level => 2,
- :debug => false
- }.freeze
-
- class << self; attr_reader :defaults; end
-
- attr_reader :options
-
- def initialize(options = {})
- @options = Parser.defaults.merge(options)
- end
-
- def debug?
- !!(options[:debug] || ENV['DEBUG'])
- end
-
- def parse(input)
- parse!(input)
- rescue => e
- warn e.message if debug?
- nil
- end
-
- def parse!(input)
- @yydebug = debug?
- @src = StringScanner.new(input)
- do_parse
- end
-
- def on_error(tid, value, stack)
- raise ArgumentError,
- "failed to parse date: unexpected '#{value}' at #{stack.inspect}"
- end
-
- def apply_uncertainty(date, uncertainty, scope = nil)
- uncertainty.each do |u|
- scope.nil? ? date.send(u) : date.send(u, scope)
- end
- date
- end
-
- alias uoa apply_uncertainty
-
- def next_token
- case
- when @src.eos?
- nil
- # when @src.scan(/\s+/)
- # ignore whitespace
- when @src.scan(/\(/)
- ['(', @src.matched]
- # when @src.scan(/\)\?~-/)
- # [:PUA, [:uncertain!, :approximate!]]
- # when @src.scan(/\)\?-/)
- # [:PUA, [:uncertain!]]
- # when @src.scan(/\)~-/)
- # [:PUA, [:approximate!]]
- when @src.scan(/\)/)
- [')', @src.matched]
- when @src.scan(/\[/)
- ['[', @src.matched]
- when @src.scan(/\]/)
- [']', @src.matched]
- when @src.scan(/\{/)
- ['{', @src.matched]
- when @src.scan(/\}/)
- ['}', @src.matched]
- when @src.scan(/T/)
- [:T, @src.matched]
- when @src.scan(/Z/)
- [:Z, @src.matched]
- when @src.scan(/\?~/)
- [:UA, [:uncertain!, :approximate!]]
- when @src.scan(/\?/)
- [:UA, [:uncertain!]]
- when @src.scan(/~/)
- [:UA, [:approximate!]]
- when @src.scan(/open/i)
- [:OPEN, :open]
- when @src.scan(/unkn?own/i) # matches 'unkown' typo too
- [:UNKNOWN, :unknown]
- when @src.scan(/u/)
- [:U, @src.matched]
- when @src.scan(/x/i)
- [:X, @src.matched]
- when @src.scan(/y/)
- [:LONGYEAR, @src.matched]
- when @src.scan(/e/)
- [:E, @src.matched]
- when @src.scan(/\+/)
- ['+', @src.matched]
- when @src.scan(/-\(/)
- ['-(', @src.matched]
- when @src.scan(/-/)
- ['-', @src.matched]
- when @src.scan(/:/)
- [':', @src.matched]
- when @src.scan(/\//)
- ['/', @src.matched]
- when @src.scan(/\s*\.\.\s*/)
- [:DOTS, '..']
- when @src.scan(/\s*,\s*/)
- [',', ',']
- when @src.scan(/\^\w+/)
- ['^', @src.matched[1..-1]]
- when @src.scan(/\d/)
- [@src.matched, @src.matched.to_i]
- else @src.scan(/./)
- [:UNMATCHED, @src.rest]
- end
- end
-
-
-# -*- racc -*-
diff --git a/test/racc/assets/err.y b/test/racc/assets/err.y
deleted file mode 100644
index ae280957cc..0000000000
--- a/test/racc/assets/err.y
+++ /dev/null
@@ -1,60 +0,0 @@
-
-class ErrTestp
-
-rule
-
-target: lines
- ;
-
-lines: line
- | lines line
- ;
-
-line: A B C D E
- | error E
- ;
-
-end
-
----- inner
-
-def initialize
- @yydebug = false
- @q = [
- [:A, 'a'],
- # [:B, 'b'],
- [:C, 'c'],
- [:D, 'd'],
- [:E, 'e'],
-
- [:A, 'a'],
- [:B, 'b'],
- [:C, 'c'],
- [:D, 'd'],
- [:E, 'e'],
-
- [:A, 'a'],
- [:B, 'b'],
- # [:C, 'c'],
- [:D, 'd'],
- [:E, 'e'],
- [false, nil]
- ]
-end
-
-def next_token
- @q.shift
-end
-
-def on_error( t, val, values )
- $stderr.puts "error on token '#{val}'(#{t})"
-end
-
-def parse
- do_parse
-end
-
----- footer
-
-p = ErrTestp.new
-p.parse
diff --git a/test/racc/assets/error_recovery.y b/test/racc/assets/error_recovery.y
deleted file mode 100644
index 1fd21ac7d0..0000000000
--- a/test/racc/assets/error_recovery.y
+++ /dev/null
@@ -1,35 +0,0 @@
-# Regression test case for the bug discussed here:
-# https://github.com/whitequark/parser/issues/93
-# In short, a Racc-generated parser could go into an infinite loop when
-# attempting error recovery at EOF
-
-class InfiniteLoop
-
-rule
-
- stmts: stmt
- | error stmt
-
- stmt: '%' stmt
-
-end
-
----- inner
-
- def parse
- @errors = []
- do_parse
- end
-
- def next_token
- nil
- end
-
- def on_error(error_token, error_value, value_stack)
- # oh my, an error
- @errors << [error_token, error_value]
- end
-
----- footer
-
-InfiniteLoop.new.parse \ No newline at end of file
diff --git a/test/racc/assets/expect.y b/test/racc/assets/expect.y
deleted file mode 100644
index 24c27443e2..0000000000
--- a/test/racc/assets/expect.y
+++ /dev/null
@@ -1,7 +0,0 @@
-class E
- expect 1
-rule
- list: inlist inlist
- inlist:
- | A
-end
diff --git a/test/racc/assets/firstline.y b/test/racc/assets/firstline.y
deleted file mode 100644
index ab0692e543..0000000000
--- a/test/racc/assets/firstline.y
+++ /dev/null
@@ -1,4 +0,0 @@
-class T
-rule
- a: A B C
-end
diff --git a/test/racc/assets/huia.y b/test/racc/assets/huia.y
deleted file mode 100644
index de9d45150c..0000000000
--- a/test/racc/assets/huia.y
+++ /dev/null
@@ -1,318 +0,0 @@
-# Copyright (c) 2014 James Harton
-#
-# MIT License
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-class Huia::Parser
-
- token
- IDENTIFIER EQUAL PLUS MINUS ASTERISK FWD_SLASH COLON FLOAT INTEGER STRING
- EXPO INDENT OUTDENT OPAREN CPAREN DOT SIGNATURE NL EOF PIPE COMMA NIL TRUE
- FALSE EQUALITY CALL SELF CONSTANT CHAR DOUBLE_TICK_STRING
- DOUBLE_TICK_STRING_END INTERPOLATE_START INTERPOLATE_END BOX LSQUARE
- RSQUARE FACES LFACE RFACE BANG TILDE RETURN NOT_EQUALITY OR AND GT LT
- GTE LTE AT
-
- prechigh
- left EXPO
- left BANG TILDE
- left ASTERISK FWD_SLASH PERCENT
- left PLUS MINUS
-
- right EQUAL
- preclow
-
- rule
- statements: statement
- | statements statement { return scope }
-
- statement: expr eol { return scope.append val[0] }
- | expr { return scope.append val[0] }
- | eol { return scope }
-
- eol: NL | EOF
- nlq: NL |
-
- expr: literal
- | grouped_expr
- | binary_op
- | unary_op
- | method_call
- | constant
- | variable
- | array
- | hash
- | return
-
- return: return_expr
- | return_nil
- return_expr: RETURN expr { return n(:Return, val[1]) }
- return_nil: RETURN { return n(:Return, n(:Nil)) }
-
- array: empty_array
- | array_list
-
- empty_array: BOX { return n :Array }
-
- array_list: LSQUARE array_items RSQUARE { return val[1] }
- array_items: expr { return n :Array, [val[0]] }
- | array_items COMMA expr { val[0].append(val[2]); return val[0] }
-
- hash: empty_hash
- | hash_list
- empty_hash: FACES { return n :Hash }
- hash_list: LFACE hash_items RFACE { return val[1] }
- hash_items: hash_item { return n :Hash, val[0] }
- | hash_items COMMA hash_item { val[0].append(val[2]); return val[0] }
- hash_item: expr COLON expr { return n :HashItem, val[0], val[2] }
-
- constant: CONSTANT { return constant val[0] }
-
- indented: indented_w_stmts
- | indented_w_expr
- | indented_wo_stmts
- indented_w_stmts: indent statements outdent { return val[0] }
- indented_w_expr: indent expr outdent { return val[0].append(val[1]) }
- indented_wo_stmts: indent outdent { return val[0] }
- outdent: OUTDENT { return pop_scope }
-
-
- indent_w_args: indent_pipe indent_args PIPE nlq INDENT { return val[0] }
- indent_pipe: PIPE { return push_scope }
- indent_wo_args: INDENT { return push_scope }
- indent: indent_w_args
- | indent_wo_args
-
- indent_args: indent_arg
- | indent_args COMMA indent_arg
- indent_arg: arg_var { return scope.add_argument val[0] }
- | arg_var EQUAL expr { return n :Assignment, val[0], val[2] }
- arg_var: IDENTIFIER { return n :Variable, val[0] }
-
- method_call: method_call_on_object
- | method_call_on_self
- | method_call_on_closure
- method_call_on_object: expr DOT call_signature { return n :MethodCall, val[0], val[2] }
- | expr DOT IDENTIFIER { return n :MethodCall, val[0], n(:CallSignature, val[2]) }
- method_call_on_self: call_signature { return n :MethodCall, scope_instance, val[0] }
-
- method_call_on_closure: AT call_signature { return n :MethodCall, this_closure, val[1] }
- | AT IDENTIFIER { return n :MethodCall, this_closure, n(:CallSignature, val[1]) }
-
- call_signature: call_arguments
- | call_simple_name
- call_simple_name: CALL { return n :CallSignature, val[0] }
- call_argument: SIGNATURE call_passed_arg { return n :CallSignature, val[0], [val[1]] }
- call_passed_arg: call_passed_simple
- | call_passed_indented
- call_passed_simple: expr
- | expr NL
- call_passed_indented: indented
- | indented NL
- call_arguments: call_argument { return val[0] }
- | call_arguments call_argument { return val[0].concat_signature val[1] }
-
- grouped_expr: OPAREN expr CPAREN { return n :Expression, val[1] }
-
- variable: IDENTIFIER { return allocate_local val[0] }
-
- binary_op: assignment
- | addition
- | subtraction
- | multiplication
- | division
- | exponentiation
- | modulo
- | equality
- | not_equality
- | logical_or
- | logical_and
- | greater_than
- | less_than
- | greater_or_eq
- | less_or_eq
-
- assignment: IDENTIFIER EQUAL expr { return allocate_local_assignment val[0], val[2] }
- addition: expr PLUS expr { return binary val[0], val[2], 'plus:' }
- subtraction: expr MINUS expr { return binary val[0], val[2], 'minus:' }
- multiplication: expr ASTERISK expr { return binary val[0], val[2], 'multiplyBy:' }
- division: expr FWD_SLASH expr { return binary val[0], val[2], 'divideBy:' }
- exponentiation: expr EXPO expr { return binary val[0], val[2], 'toThePowerOf:' }
- modulo: expr PERCENT expr { return binary val[0], val[2], 'moduloOf:' }
- equality: expr EQUALITY expr { return binary val[0], val[2], 'isEqualTo:' }
- not_equality: expr NOT_EQUALITY expr { return binary val[0], val[2], 'isNotEqualTo:' }
- logical_or: expr OR expr { return binary val[0], val[2], 'logicalOr:' }
- logical_and: expr AND expr { return binary val[0], val[2], 'logicalAnd:' }
- greater_than: expr GT expr { return binary val[0], val[2], 'isGreaterThan:' }
- less_than: expr LT expr { return binary val[0], val[2], 'isLessThan:' }
- greater_or_eq: expr GTE expr { return binary val[0], val[2], 'isGreaterOrEqualTo:' }
- less_or_eq: expr LTE expr { return binary val[0], val[2], 'isLessOrEqualTo:' }
-
- unary_op: unary_not
- | unary_plus
- | unary_minus
- | unary_complement
-
- unary_not: BANG expr { return unary val[1], 'unaryNot' }
- unary_plus: PLUS expr { return unary val[1], 'unaryPlus' }
- unary_minus: MINUS expr { return unary val[1], 'unaryMinus' }
- unary_complement: TILDE expr { return unary val[1], 'unaryComplement' }
-
- literal: integer
- | float
- | string
- | nil
- | true
- | false
- | self
-
- float: FLOAT { return n :Float, val[0] }
- integer: INTEGER { return n :Integer, val[0] }
- nil: NIL { return n :Nil }
- true: TRUE { return n :True }
- false: FALSE { return n :False }
- self: SELF { return n :Self }
-
- string: STRING { return n :String, val[0] }
- | interpolated_string
- | empty_string
-
- interpolated_string: DOUBLE_TICK_STRING interpolated_string_contents DOUBLE_TICK_STRING_END { return val[1] }
- interpolation: INTERPOLATE_START expr INTERPOLATE_END { return val[1] }
- interpolated_string_contents: interpolated_string_chunk { return n :InterpolatedString, val[0] }
- | interpolated_string_contents interpolated_string_chunk { val[0].append(val[1]); return val[0] }
- interpolated_string_chunk: chars { return val[0] }
- | interpolation { return to_string(val[0]) }
- empty_string: DOUBLE_TICK_STRING DOUBLE_TICK_STRING_END { return n :String, '' }
-
- chars: CHAR { return n :String, val[0] }
- | chars CHAR { val[0].append(val[1]); return val[0] }
-end
-
----- inner
-
-attr_accessor :lexer, :scopes, :state
-
-def initialize lexer
- @lexer = lexer
- @state = []
- @scopes = []
- push_scope
-end
-
-def ast
- @ast ||= do_parse
- @scopes.first
-end
-
-def on_error t, val, vstack
- line = lexer.line
- col = lexer.column
- message = "Unexpected #{token_to_str t} at #{lexer.filename} line #{line}:#{col}:\n\n"
-
- start = line - 5 > 0 ? line - 5 : 0
- i_size = line.to_s.size
- (start..(start + 5)).each do |i|
- message << sprintf("\t%#{i_size}d: %s\n", i, lexer.get_line(i))
- message << "\t#{' ' * i_size} #{'-' * (col - 1)}^\n" if i == line
- end
-
- raise SyntaxError, message
-end
-
-def next_token
- nt = lexer.next_computed_token
- # just use a state stack for now, we'll have to do something
- # more sophisticated soon.
- if nt && nt.first == :state
- if nt.last
- state.push << nt.last
- else
- state.pop
- end
- next_token
- else
- nt
- end
-end
-
-def push_scope
- new_scope = Huia::AST::Scope.new scope
- new_scope.file = lexer.filename
- new_scope.line = lexer.line
- new_scope.column = lexer.column
- scopes.push new_scope
- new_scope
-end
-
-def pop_scope
- scopes.pop
-end
-
-def scope
- scopes.last
-end
-
-def binary left, right, method
- node(:MethodCall, left, node(:CallSignature, method, [right]))
-end
-
-def unary left, method
- node(:MethodCall, left, node(:CallSignature, method))
-end
-
-def node type, *args
- Huia::AST.const_get(type).new(*args).tap do |n|
- n.file = lexer.filename
- n.line = lexer.line
- n.column = lexer.column
- end
-end
-alias n node
-
-def allocate_local name
- node(:Variable, name).tap do |n|
- scope.allocate_local n
- end
-end
-
-def allocate_local_assignment name, value
- node(:Assignment, name, value).tap do |n|
- scope.allocate_local n
- end
-end
-
-def this_closure
- allocate_local('@')
-end
-
-def scope_instance
- node(:ScopeInstance, scope)
-end
-
-def constant name
- return scope_instance if name == 'self'
- node(:Constant, name)
-end
-
-def to_string expr
- node(:MethodCall, expr, node(:CallSignature, 'toString'))
-end
diff --git a/test/racc/assets/ichk.y b/test/racc/assets/ichk.y
deleted file mode 100644
index 1d359df83e..0000000000
--- a/test/racc/assets/ichk.y
+++ /dev/null
@@ -1,102 +0,0 @@
-class Calculator
-
- prechigh
- left '*' '/'
- left '+' '-'
- preclow
-
- convert
- NUMBER 'Number'
- end
-
-rule
-
- target : exp
- | /* none */ { result = 0 }
-
- exp : exp '+' exp { result += val[2]; a = 'plus' }
- | exp '-' exp { result -= val[2]; a = "string test" }
- | exp '*' exp { result *= val[2] }
- | exp '/' exp { result /= val[2] }
- | '(' { $emb = true } exp ')'
- {
- raise 'must not happen' unless $emb
- result = val[2]
- }
- | '-' NUMBER { result = -val[1] }
- | NUMBER
-
-----header
-
-class Number
-end
-
-----inner
-
- def initialize
- @racc_debug_out = $stdout
- @yydebug = false
- end
-
- def validate(expected, src)
- result = parse(src)
- unless result == expected
- raise "test #{@test_number} fail"
- end
- @test_number += 1
- end
-
- def parse(src)
- @src = src
- @test_number = 1
- yyparse self, :scan
- end
-
- def scan(&block)
- @src.each(&block)
- end
-
-----footer
-
-calc = Calculator.new
-
-calc.validate(9, [[Number, 9], nil])
-
-calc.validate(-3,
- [[Number, 5],
- ['*', '*'],
- [Number, 1],
- ['-', '*'],
- [Number, 1],
- ['*', '*'],
- [Number, 8],
- nil])
-
-calc.validate(-1,
- [[Number, 5],
- ['+', '+'],
- [Number, 2],
- ['-', '-'],
- [Number, 5],
- ['+', '+'],
- [Number, 2],
- ['-', '-'],
- [Number, 5],
- nil])
-
-calc.validate(-4,
- [['-', 'UMINUS'],
- [Number, 4],
- nil])
-
-calc.validate(40,
- [[Number, 7],
- ['*', '*'],
- ['(', '('],
- [Number, 4],
- ['+', '+'],
- [Number, 3],
- [')', ')'],
- ['-', '-'],
- [Number, 9],
- nil])
diff --git a/test/racc/assets/ifelse.y b/test/racc/assets/ifelse.y
deleted file mode 100644
index 18dbe4b1a7..0000000000
--- a/test/racc/assets/ifelse.y
+++ /dev/null
@@ -1,14 +0,0 @@
-class C::Parser
-token tSOMETHING
-rule
- statement
- : tSOMETHING
- | 'if' statement 'then' statement
- | 'if' statement 'then' statement 'else' statement
- ;
-
- dummy
- : tSOMETHING '+' tSOMETHING
- | tSOMETHING '-' tSOMETHING
- ;
-
diff --git a/test/racc/assets/intp.y b/test/racc/assets/intp.y
deleted file mode 100644
index 39e42afd74..0000000000
--- a/test/racc/assets/intp.y
+++ /dev/null
@@ -1,546 +0,0 @@
-#
-# intp
-#
-
-class Intp::Parser
-
-prechigh
- nonassoc UMINUS
- left '*' '/'
- left '+' '-'
- nonassoc EQ
-preclow
-
-rule
-
- program : stmt_list
- {
- result = RootNode.new( val[0] )
- }
-
- stmt_list :
- {
- result = []
- }
- | stmt_list stmt EOL
- {
- result.push val[1]
- }
- | stmt_list EOL
-
- stmt : expr
- | assign
- | IDENT realprim
- {
- result = FuncallNode.new( @fname, val[0][0],
- val[0][1], [val[1]] )
- }
- | if_stmt
- | while_stmt
- | defun
-
- if_stmt : IF stmt THEN EOL stmt_list else_stmt END
- {
- result = IfNode.new( @fname, val[0][0],
- val[1], val[4], val[5] )
- }
-
- else_stmt : ELSE EOL stmt_list
- {
- result = val[2]
- }
- |
- {
- result = nil
- }
-
- while_stmt: WHILE stmt DO EOL stmt_list END
- {
- result = WhileNode.new(@fname, val[0][0],
- val[1], val[4])
- }
-
- defun : DEF IDENT param EOL stmt_list END
- {
- result = DefNode.new(@fname, val[0][0], val[1][1],
- Function.new(@fname, val[0][0], val[2], val[4]))
- }
-
- param : '(' name_list ')'
- {
- result = val[1]
- }
- | '(' ')'
- {
- result = []
- }
- |
- {
- result = []
- }
-
- name_list : IDENT
- {
- result = [ val[0][1] ]
- }
- | name_list ',' IDENT
- {
- result.push val[2][1]
- }
-
- assign : IDENT '=' expr
- {
- result = AssignNode.new(@fname, val[0][0], val[0][1], val[2])
- }
-
- expr : expr '+' expr
- {
- result = FuncallNode.new(@fname, val[0].lineno, '+', [val[0], val[2]])
- }
- | expr '-' expr
- {
- result = FuncallNode.new(@fname, val[0].lineno, '-', [val[0], val[2]])
- }
- | expr '*' expr
- {
- result = FuncallNode.new(@fname, val[0].lineno, '*', [val[0], val[2]])
- }
- | expr '/' expr
- {
- result = FuncallNode.new(@fname, val[0].lineno,
- '/', [val[0], val[2]])
- }
- | expr EQ expr
- {
- result = FuncallNode.new(@fname, val[0].lineno, '==', [val[0], val[2]])
- }
- | primary
-
- primary : realprim
- | '(' expr ')'
- {
- result = val[1]
- }
- | '-' expr =UMINUS
- {
- result = FuncallNode.new(@fname, val[0][0], '-@', [val[1]])
- }
-
- realprim : IDENT
- {
- result = VarRefNode.new(@fname, val[0][0],
- val[0][1])
- }
- | NUMBER
- {
- result = LiteralNode.new(@fname, *val[0])
- }
- | STRING
- {
- result = StringNode.new(@fname, *val[0])
- }
- | TRUE
- {
- result = LiteralNode.new(@fname, *val[0])
- }
- | FALSE
- {
- result = LiteralNode.new(@fname, *val[0])
- }
- | NIL
- {
- result = LiteralNode.new(@fname, *val[0])
- }
- | funcall
-
- funcall : IDENT '(' args ')'
- {
- result = FuncallNode.new(@fname, val[0][0], val[0][1], val[2])
- }
- | IDENT '(' ')'
- {
- result = FuncallNode.new(@fname, val[0][0], val[0][1], [])
- }
-
- args : expr
- {
- result = val
- }
- | args ',' expr
- {
- result.push val[2]
- }
-
-end
-
----- header
-#
-# intp/parser.rb
-#
-
----- inner
-
- def initialize
- @scope = {}
- end
-
- RESERVED = {
- 'if' => :IF,
- 'else' => :ELSE,
- 'while' => :WHILE,
- 'then' => :THEN,
- 'do' => :DO,
- 'def' => :DEF,
- 'true' => :TRUE,
- 'false' => :FALSE,
- 'nil' => :NIL,
- 'end' => :END
- }
-
- RESERVED_V = {
- 'true' => true,
- 'false' => false,
- 'nil' => nil
- }
-
- def parse(f, fname)
- @q = []
- @fname = fname
- lineno = 1
- f.each do |line|
- line.strip!
- until line.empty?
- case line
- when /\A\s+/, /\A\#.*/
- ;
- when /\A[a-zA-Z_]\w*/
- word = $&
- @q.push [(RESERVED[word] || :IDENT),
- [lineno, RESERVED_V.key?(word) ? RESERVED_V[word] : word.intern]]
- when /\A\d+/
- @q.push [:NUMBER, [lineno, $&.to_i]]
- when /\A"(?:[^"\\]+|\\.)*"/, /\A'(?:[^'\\]+|\\.)*'/
- @q.push [:STRING, [lineno, eval($&)]]
- when /\A==/
- @q.push [:EQ, [lineno, '==']]
- when /\A./
- @q.push [$&, [lineno, $&]]
- else
- raise RuntimeError, 'must not happen'
- end
- line = $'
- end
- @q.push [:EOL, [lineno, nil]]
- lineno += 1
- end
- @q.push [false, '$']
- do_parse
- end
-
- def next_token
- @q.shift
- end
-
- def on_error(t, v, values)
- if v
- line = v[0]
- v = v[1]
- else
- line = 'last'
- end
- raise Racc::ParseError, "#{@fname}:#{line}: syntax error on #{v.inspect}"
- end
-
----- footer
-# intp/node.rb
-
-module Intp
-
- class IntpError < StandardError; end
- class IntpArgumentError < IntpError; end
-
- class Core
-
- def initialize
- @ftab = {}
- @obj = Object.new
- @stack = []
- @stack.push Frame.new '(toplevel)'
- end
-
- def frame
- @stack[-1]
- end
-
- def define_function(fname, node)
- raise IntpError, "function #{fname} defined twice" if @ftab.key?(fname)
- @ftab[fname] = node
- end
-
- def call_function_or(fname, args)
- call_intp_function_or(fname, args) {
- call_ruby_toplevel_or(fname, args) {
- yield
- }
- }
- end
-
- def call_intp_function_or(fname, args)
- if func = @ftab[fname]
- frame = Frame.new(fname)
- @stack.push frame
- func.call self, frame, args
- @stack.pop
- else
- yield
- end
- end
-
- def call_ruby_toplevel_or(fname, args)
- if @obj.respond_to? fname, true
- @obj.send fname, *args
- else
- yield
- end
- end
-
- end
-
- class Frame
-
- def initialize(fname)
- @fname = fname
- @lvars = {}
- end
-
- attr :fname
-
- def lvar?(name)
- @lvars.key? name
- end
-
- def [](key)
- @lvars[key]
- end
-
- def []=(key, val)
- @lvars[key] = val
- end
-
- end
-
-
- class Node
-
- def initialize(fname, lineno)
- @filename = fname
- @lineno = lineno
- end
-
- attr_reader :filename
- attr_reader :lineno
-
- def exec_list(intp, nodes)
- v = nil
- nodes.each {|i| v = i.evaluate(intp) }
- v
- end
-
- def intp_error!(msg)
- raise IntpError, "in #{filename}:#{lineno}: #{msg}"
- end
-
- def inspect
- "#{self.class.name}/#{lineno}"
- end
-
- end
-
-
- class RootNode < Node
-
- def initialize(tree)
- super nil, nil
- @tree = tree
- end
-
- def evaluate
- exec_list Core.new, @tree
- end
-
- end
-
-
- class DefNode < Node
-
- def initialize(file, lineno, fname, func)
- super file, lineno
- @funcname = fname
- @funcobj = func
- end
-
- def evaluate(intp)
- intp.define_function @funcname, @funcobj
- end
-
- end
-
- class FuncallNode < Node
-
- def initialize(file, lineno, func, args)
- super file, lineno
- @funcname = func
- @args = args
- end
-
- def evaluate(intp)
- args = @args.map {|i| i.evaluate intp }
- begin
- intp.call_intp_function_or(@funcname, args) {
- if args.empty? or not args[0].respond_to?(@funcname)
- intp.call_ruby_toplevel_or(@funcname, args) {
- intp_error! "undefined function #{@funcname.id2name}"
- }
- else
- recv = args.shift
- recv.send @funcname, *args
- end
- }
- rescue IntpArgumentError, ArgumentError
- intp_error! $!.message
- end
- end
-
- end
-
- class Function < Node
-
- def initialize(file, lineno, params, body)
- super file, lineno
- @params = params
- @body = body
- end
-
- def call(intp, frame, args)
- unless args.size == @params.size
- raise IntpArgumentError,
- "wrong # of arg for #{frame.fname}() (#{args.size} for #{@params.size})"
- end
- args.each_with_index do |v,i|
- frame[@params[i]] = v
- end
- exec_list intp, @body
- end
-
- end
-
-
- class IfNode < Node
-
- def initialize(fname, lineno, cond, tstmt, fstmt)
- super fname, lineno
- @condition = cond
- @tstmt = tstmt
- @fstmt = fstmt
- end
-
- def evaluate(intp)
- if @condition.evaluate(intp)
- exec_list intp, @tstmt
- else
- exec_list intp, @fstmt if @fstmt
- end
- end
-
- end
-
- class WhileNode < Node
-
- def initialize(fname, lineno, cond, body)
- super fname, lineno
- @condition = cond
- @body = body
- end
-
- def evaluate(intp)
- while @condition.evaluate(intp)
- exec_list intp, @body
- end
- end
-
- end
-
-
- class AssignNode < Node
-
- def initialize(fname, lineno, vname, val)
- super fname, lineno
- @vname = vname
- @val = val
- end
-
- def evaluate(intp)
- intp.frame[@vname] = @val.evaluate(intp)
- end
-
- end
-
- class VarRefNode < Node
-
- def initialize(fname, lineno, vname)
- super fname, lineno
- @vname = vname
- end
-
- def evaluate(intp)
- if intp.frame.lvar?(@vname)
- intp.frame[@vname]
- else
- intp.call_function_or(@vname, []) {
- intp_error! "unknown method or local variable #{@vname.id2name}"
- }
- end
- end
-
- end
-
- class StringNode < Node
-
- def initialize(fname, lineno, str)
- super fname, lineno
- @val = str
- end
-
- def evaluate(intp)
- @val.dup
- end
-
- end
-
- class LiteralNode < Node
-
- def initialize(fname, lineno, val)
- super fname, lineno
- @val = val
- end
-
- def evaluate(intp)
- @val
- end
-
- end
-
-end # module Intp
-
-begin
- tree = nil
- fname = 'src.intp'
- File.open(fname) {|f|
- tree = Intp::Parser.new.parse(f, fname)
- }
- tree.evaluate
-rescue Racc::ParseError, Intp::IntpError, Errno::ENOENT
- raise ####
- $stderr.puts "#{File.basename $0}: #{$!}"
- exit 1
-end
diff --git a/test/racc/assets/journey.y b/test/racc/assets/journey.y
deleted file mode 100644
index c2640f3339..0000000000
--- a/test/racc/assets/journey.y
+++ /dev/null
@@ -1,47 +0,0 @@
-class Journey::Parser
-
-token SLASH LITERAL SYMBOL LPAREN RPAREN DOT STAR OR
-
-rule
- expressions
- : expressions expression { result = Cat.new(val.first, val.last) }
- | expression { result = val.first }
- | or
- ;
- expression
- : terminal
- | group
- | star
- ;
- group
- : LPAREN expressions RPAREN { result = Group.new(val[1]) }
- ;
- or
- : expressions OR expression { result = Or.new([val.first, val.last]) }
- ;
- star
- : STAR { result = Star.new(Symbol.new(val.last)) }
- ;
- terminal
- : symbol
- | literal
- | slash
- | dot
- ;
- slash
- : SLASH { result = Slash.new('/') }
- ;
- symbol
- : SYMBOL { result = Symbol.new(val.first) }
- ;
- literal
- : LITERAL { result = Literal.new(val.first) }
- dot
- : DOT { result = Dot.new(val.first) }
- ;
-
-end
-
----- header
-
-require 'journey/parser_extras'
diff --git a/test/racc/assets/liquor.y b/test/racc/assets/liquor.y
deleted file mode 100644
index 8045a072a4..0000000000
--- a/test/racc/assets/liquor.y
+++ /dev/null
@@ -1,313 +0,0 @@
-# Copyright (c) 2012-2013 Peter Zotov <whitequark@whitequark.org>
-# 2012 Yaroslav Markin <yaroslav@markin.net>
-# 2012 Nate Gadgibalaev <nat@xnsv.ru>
-#
-# MIT License
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-class Liquor::Parser
- token comma dot endtag ident integer keyword lblock lblock2 lbracket
- linterp lparen op_div op_eq op_gt op_geq op_lt op_leq op_minus
- op_mod op_mul op_neq op_not op_plus pipe plaintext rblock
- rbracket rinterp rparen string tag_ident
-
- prechigh
- left dot
- nonassoc op_uminus op_not
- left op_mul op_div op_mod
- left op_plus op_minus
- left op_eq op_neq op_lt op_leq op_gt op_geq
- left op_and
- left op_or
- preclow
-
- expect 15
-
- start block
-
-rule
- block: /* empty */
- { result = [] }
- | plaintext block
- { result = [ val[0], *val[1] ] }
- | interp block
- { result = [ val[0], *val[1] ] }
- | tag block
- { result = [ val[0], *val[1] ] }
-
- interp:
- linterp expr rinterp
- { result = [ :interp, retag(val), val[1] ] }
- | linterp filter_chain rinterp
- { result = [ :interp, retag(val), val[1] ] }
-
- primary_expr:
- ident
- | lparen expr rparen
- { result = [ val[1][0], retag(val), *val[1][2..-1] ] }
-
- expr:
- integer
- | string
- | tuple
- | ident function_args
- { result = [ :call, retag(val), val[0], val[1] ] }
- | expr lbracket expr rbracket
- { result = [ :index, retag(val), val[0], val[2] ] }
- | expr dot ident function_args
- { result = [ :external, retag(val), val[0], val[2], val[3] ] }
- | expr dot ident
- { result = [ :external, retag(val), val[0], val[2], nil ] }
- | op_minus expr =op_uminus
- { result = [ :uminus, retag(val), val[1] ] }
- | op_not expr
- { result = [ :not, retag(val), val[1] ] }
- | expr op_mul expr
- { result = [ :mul, retag(val), val[0], val[2] ] }
- | expr op_div expr
- { result = [ :div, retag(val), val[0], val[2] ] }
- | expr op_mod expr
- { result = [ :mod, retag(val), val[0], val[2] ] }
- | expr op_plus expr
- { result = [ :plus, retag(val), val[0], val[2] ] }
- | expr op_minus expr
- { result = [ :minus, retag(val), val[0], val[2] ] }
- | expr op_eq expr
- { result = [ :eq, retag(val), val[0], val[2] ] }
- | expr op_neq expr
- { result = [ :neq, retag(val), val[0], val[2] ] }
- | expr op_lt expr
- { result = [ :lt, retag(val), val[0], val[2] ] }
- | expr op_leq expr
- { result = [ :leq, retag(val), val[0], val[2] ] }
- | expr op_gt expr
- { result = [ :gt, retag(val), val[0], val[2] ] }
- | expr op_geq expr
- { result = [ :geq, retag(val), val[0], val[2] ] }
- | expr op_and expr
- { result = [ :and, retag(val), val[0], val[2] ] }
- | expr op_or expr
- { result = [ :or, retag(val), val[0], val[2] ] }
- | primary_expr
-
- tuple:
- lbracket tuple_content rbracket
- { result = [ :tuple, retag(val), val[1].compact ] }
-
- tuple_content:
- expr comma tuple_content
- { result = [ val[0], *val[2] ] }
- | expr
- { result = [ val[0] ] }
- | /* empty */
- { result = [ ] }
-
- function_args:
- lparen function_args_inside rparen
- { result = [ :args, retag(val), *val[1] ] }
-
- function_args_inside:
- expr function_keywords
- { result = [ val[0], val[1][2] ] }
- | function_keywords
- { result = [ nil, val[0][2] ] }
-
- function_keywords:
- keyword expr function_keywords
- { name = val[0][2].to_sym
- tail = val[2][2]
- loc = retag([ val[0], val[1] ])
-
- if tail.include? name
- @errors << SyntaxError.new("duplicate keyword argument `#{val[0][2]}'",
- tail[name][1])
- end
-
- hash = {
- name => [ val[1][0], loc, *val[1][2..-1] ]
- }.merge(tail)
-
- result = [ :keywords, retag([ loc, val[2] ]), hash ]
- }
- | /* empty */
- { result = [ :keywords, nil, {} ] }
-
- filter_chain:
- expr pipe filter_chain_cont
- { result = [ val[0], *val[2] ].
- reduce { |tree, node| node[3][2] = tree; node }
- }
-
- filter_chain_cont:
- filter_call pipe filter_chain_cont
- { result = [ val[0], *val[2] ] }
- | filter_call
- { result = [ val[0] ] }
-
- filter_call:
- ident function_keywords
- { ident_loc = val[0][1]
- empty_args_loc = { line: ident_loc[:line],
- start: ident_loc[:end] + 1,
- end: ident_loc[:end] + 1, }
- result = [ :call, val[0][1], val[0],
- [ :args, val[1][1] || empty_args_loc, nil, val[1][2] ] ]
- }
-
- tag:
- lblock ident expr tag_first_cont
- { result = [ :tag, retag(val), val[1], val[2], *reduce_tag_args(val[3][2]) ] }
- | lblock ident tag_first_cont
- { result = [ :tag, retag(val), val[1], nil, *reduce_tag_args(val[2][2]) ] }
-
- # Racc cannot do lookahead across rules. I had to add states
- # explicitly to avoid S/R conflicts. You are not expected to
- # understand this.
-
- tag_first_cont:
- rblock
- { result = [ :cont, retag(val), [] ] }
- | keyword tag_first_cont2
- { result = [ :cont, retag(val), [ val[0], *val[1][2] ] ] }
-
- tag_first_cont2:
- rblock block lblock2 tag_next_cont
- { result = [ :cont2, val[0][1], [ [:block, val[0][1], val[1] ], *val[3] ] ] }
- | expr tag_first_cont
- { result = [ :cont2, retag(val), [ val[0], *val[1][2] ] ] }
-
- tag_next_cont:
- endtag rblock
- { result = [] }
- | keyword tag_next_cont2
- { result = [ val[0], *val[1] ] }
-
- tag_next_cont2:
- rblock block lblock2 tag_next_cont
- { result = [ [:block, val[0][1], val[1] ], *val[3] ] }
- | expr keyword tag_next_cont3
- { result = [ val[0], val[1], *val[2] ] }
-
- tag_next_cont3:
- rblock block lblock2 tag_next_cont
- { result = [ [:block, val[0][1], val[1] ], *val[3] ] }
- | expr tag_next_cont
- { result = [ val[0], *val[1] ] }
-
----- inner
- attr_reader :errors, :ast
-
- def initialize(tags={})
- super()
-
- @errors = []
- @ast = nil
- @tags = tags
- end
-
- def success?
- @errors.empty?
- end
-
- def parse(string, name='(code)')
- @errors.clear
- @name = name
- @ast = nil
-
- begin
- @stream = Lexer.lex(string, @name, @tags)
- @ast = do_parse
- rescue Liquor::SyntaxError => e
- @errors << e
- end
-
- success?
- end
-
- def next_token
- tok = @stream.shift
- [ tok[0], tok ] if tok
- end
-
- TOKEN_NAME_MAP = {
- :comma => ',',
- :dot => '.',
- :lblock => '{%',
- :rblock => '%}',
- :linterp => '{{',
- :rinterp => '}}',
- :lbracket => '[',
- :rbracket => ']',
- :lparen => '(',
- :rparen => ')',
- :pipe => '|',
- :op_not => '!',
- :op_mul => '*',
- :op_div => '/',
- :op_mod => '%',
- :op_plus => '+',
- :op_minus => '-',
- :op_eq => '==',
- :op_neq => '!=',
- :op_lt => '<',
- :op_leq => '<=',
- :op_gt => '>',
- :op_geq => '>=',
- :keyword => 'keyword argument name',
- :kwarg => 'keyword argument',
- :ident => 'identifier',
- }
-
- def on_error(error_token_id, error_token, value_stack)
- if token_to_str(error_token_id) == "$end"
- raise Liquor::SyntaxError.new("unexpected end of program", {
- file: @name
- })
- else
- type, (loc, value) = error_token
- type = TOKEN_NAME_MAP[type] || type
-
- raise Liquor::SyntaxError.new("unexpected token `#{type}'", loc)
- end
- end
-
- def retag(nodes)
- loc = nodes.map { |node| node[1] }.compact
- first, *, last = loc
- return first if last.nil?
-
- {
- file: first[:file],
- line: first[:line],
- start: first[:start],
- end: last[:end],
- }
- end
-
- def reduce_tag_args(list)
- list.each_slice(2).reduce([]) { |args, (k, v)|
- if v[0] == :block
- args << [ :blockarg, retag([ k, v ]), k, v[2] || [] ]
- else
- args << [ :kwarg, retag([ k, v ]), k, v ]
- end
- }
- end \ No newline at end of file
diff --git a/test/racc/assets/machete.y b/test/racc/assets/machete.y
deleted file mode 100644
index ea92d47a69..0000000000
--- a/test/racc/assets/machete.y
+++ /dev/null
@@ -1,423 +0,0 @@
-# Copyright (c) 2011 SUSE
-#
-# Permission is hereby granted, free of charge, to any person
-# obtaining a copy of this software and associated documentation
-# files (the "Software"), to deal in the Software without
-# restriction, including without limitation the rights to use,
-# copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following
-# conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-
-class Machete::Parser
-
-token NIL
-token TRUE
-token FALSE
-token INTEGER
-token SYMBOL
-token STRING
-token REGEXP
-token ANY
-token EVEN
-token ODD
-token METHOD_NAME
-token CLASS_NAME
-
-start expression
-
-rule
-
-expression : primary
- | expression "|" primary {
- result = if val[0].is_a?(ChoiceMatcher)
- ChoiceMatcher.new(val[0].alternatives << val[2])
- else
- ChoiceMatcher.new([val[0], val[2]])
- end
- }
-
-primary : node
- | array
- | literal
- | any
-
-node : CLASS_NAME {
- result = NodeMatcher.new(val[0].to_sym)
- }
- | CLASS_NAME "<" attrs ">" {
- result = NodeMatcher.new(val[0].to_sym, val[2])
- }
-
-attrs : attr
- | attrs "," attr { result = val[0].merge(val[2]) }
-
-attr : method_name "=" expression { result = { val[0].to_sym => val[2] } }
- | method_name "^=" SYMBOL {
- result = {
- val[0].to_sym => SymbolRegexpMatcher.new(
- Regexp.new("^" + Regexp.escape(symbol_value(val[2]).to_s))
- )
- }
- }
- | method_name "$=" SYMBOL {
- result = {
- val[0].to_sym => SymbolRegexpMatcher.new(
- Regexp.new(Regexp.escape(symbol_value(val[2]).to_s) + "$")
- )
- }
- }
- | method_name "*=" SYMBOL {
- result = {
- val[0].to_sym => SymbolRegexpMatcher.new(
- Regexp.new(Regexp.escape(symbol_value(val[2]).to_s))
- )
- }
- }
- | method_name "^=" STRING {
- result = {
- val[0].to_sym => StringRegexpMatcher.new(
- Regexp.new("^" + Regexp.escape(string_value(val[2])))
- )
- }
- }
- | method_name "$=" STRING {
- result = {
- val[0].to_sym => StringRegexpMatcher.new(
- Regexp.new(Regexp.escape(string_value(val[2])) + "$")
- )
- }
- }
- | method_name "*=" STRING {
- result = {
- val[0].to_sym => StringRegexpMatcher.new(
- Regexp.new(Regexp.escape(string_value(val[2])))
- )
- }
- }
- | method_name "*=" REGEXP {
- result = {
- val[0].to_sym => IndifferentRegexpMatcher.new(
- Regexp.new(regexp_value(val[2]))
- )
- }
- }
-
-# Hack to overcome the fact that some tokens will lex as simple tokens, not
-# METHOD_NAME tokens, and that "reserved words" will lex as separate kinds of
-# tokens.
-method_name : METHOD_NAME
- | NIL
- | TRUE
- | FALSE
- | ANY
- | EVEN
- | ODD
- | "*"
- | "+"
- | "<"
- | ">"
- | "^"
- | "|"
-
-array : "[" items_opt "]" { result = ArrayMatcher.new(val[1]) }
-
-items_opt : /* empty */ { result = [] }
- | items
-
-items : item { result = [val[0]] }
- | items "," item { result = val[0] << val[2] }
-
-item : expression
- | expression quantifier { result = Quantifier.new(val[0], *val[1]) }
-
-quantifier : "*" { result = [0, nil, 1] }
- | "+" { result = [1, nil, 1] }
- | "?" { result = [0, 1, 1] }
- | "{" INTEGER "}" {
- result = [integer_value(val[1]), integer_value(val[1]), 1]
- }
- | "{" INTEGER "," "}" {
- result = [integer_value(val[1]), nil, 1]
- }
- | "{" "," INTEGER "}" {
- result = [0, integer_value(val[2]), 1]
- }
- | "{" INTEGER "," INTEGER "}" {
- result = [integer_value(val[1]), integer_value(val[3]), 1]
- }
- | "{" EVEN "}" { result = [0, nil, 2] }
- | "{" ODD "}" { result = [1, nil, 2] }
-
-literal : NIL { result = LiteralMatcher.new(nil) }
- | TRUE { result = LiteralMatcher.new(true) }
- | FALSE { result = LiteralMatcher.new(false) }
- | INTEGER { result = LiteralMatcher.new(integer_value(val[0])) }
- | SYMBOL { result = LiteralMatcher.new(symbol_value(val[0])) }
- | STRING { result = LiteralMatcher.new(string_value(val[0])) }
- | REGEXP { result = LiteralMatcher.new(regexp_value(val[0])) }
-
-any : ANY { result = AnyMatcher.new }
-
----- inner
-
-include Matchers
-
-class SyntaxError < StandardError; end
-
-def parse(input)
- @input = input
- @pos = 0
-
- do_parse
-end
-
-private
-
-def integer_value(value)
- if value =~ /^0[bB]/
- value[2..-1].to_i(2)
- elsif value =~ /^0[oO]/
- value[2..-1].to_i(8)
- elsif value =~ /^0[dD]/
- value[2..-1].to_i(10)
- elsif value =~ /^0[xX]/
- value[2..-1].to_i(16)
- elsif value =~ /^0/
- value.to_i(8)
- else
- value.to_i
- end
-end
-
-def symbol_value(value)
- value[1..-1].to_sym
-end
-
-def string_value(value)
- quote = value[0..0]
- if quote == "'"
- value[1..-2].gsub("\\\\", "\\").gsub("\\'", "'")
- elsif quote == '"'
- value[1..-2].
- gsub("\\\\", "\\").
- gsub('\\"', '"').
- gsub("\\n", "\n").
- gsub("\\t", "\t").
- gsub("\\r", "\r").
- gsub("\\f", "\f").
- gsub("\\v", "\v").
- gsub("\\a", "\a").
- gsub("\\e", "\e").
- gsub("\\b", "\b").
- gsub("\\s", "\s").
- gsub(/\\([0-7]{1,3})/) { $1.to_i(8).chr }.
- gsub(/\\x([0-9a-fA-F]{1,2})/) { $1.to_i(16).chr }
- else
- raise "Unknown quote: #{quote.inspect}."
- end
-end
-
-REGEXP_OPTIONS = {
- 'i' => Regexp::IGNORECASE,
- 'm' => Regexp::MULTILINE,
- 'x' => Regexp::EXTENDED
-}
-
-def regexp_value(value)
- /\A\/(.*)\/([imx]*)\z/ =~ value
- pattern, options = $1, $2
-
- Regexp.new(pattern, options.chars.map { |ch| REGEXP_OPTIONS[ch] }.inject(:|))
-end
-
-# "^" needs to be here because if it were among operators recognized by
-# METHOD_NAME, "^=" would be recognized as two tokens.
-SIMPLE_TOKENS = [
- "|",
- "<",
- ">",
- ",",
- "=",
- "^=",
- "^",
- "$=",
- "[",
- "]",
- "*=",
- "*",
- "+",
- "?",
- "{",
- "}"
-]
-
-COMPLEX_TOKENS = [
- [:NIL, /^nil/],
- [:TRUE, /^true/],
- [:FALSE, /^false/],
- # INTEGER needs to be before METHOD_NAME, otherwise e.g. "+1" would be
- # recognized as two tokens.
- [
- :INTEGER,
- /^
- [+-]? # sign
- (
- 0[bB][01]+(_[01]+)* # binary (prefixed)
- |
- 0[oO][0-7]+(_[0-7]+)* # octal (prefixed)
- |
- 0[dD]\d+(_\d+)* # decimal (prefixed)
- |
- 0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)* # hexadecimal (prefixed)
- |
- 0[0-7]*(_[0-7]+)* # octal (unprefixed)
- |
- [1-9]\d*(_\d+)* # decimal (unprefixed)
- )
- /x
- ],
- [
- :SYMBOL,
- /^
- :
- (
- # class name
- [A-Z][a-zA-Z0-9_]*
- |
- # regular method name
- [a-z_][a-zA-Z0-9_]*[?!=]?
- |
- # instance variable name
- @[a-zA-Z_][a-zA-Z0-9_]*
- |
- # class variable name
- @@[a-zA-Z_][a-zA-Z0-9_]*
- |
- # operator (sorted by length, then alphabetically)
- (<=>|===|\[\]=|\*\*|\+@|-@|<<|<=|==|=~|>=|>>|\[\]|[%&*+\-\/<>^`|~])
- )
- /x
- ],
- [
- :STRING,
- /^
- (
- ' # sinqle-quoted string
- (
- \\[\\'] # escape
- |
- [^'] # regular character
- )*
- '
- |
- " # double-quoted string
- (
- \\ # escape
- (
- [\\"ntrfvaebs] # one-character escape
- |
- [0-7]{1,3} # octal number escape
- |
- x[0-9a-fA-F]{1,2} # hexadecimal number escape
- )
- |
- [^"] # regular character
- )*
- "
- )
- /x
- ],
- [
- :REGEXP,
- /^
- \/
- (
- \\ # escape
- (
- [\\\/ntrfvaebs\(\)\[\]\{\}\-\.\?\*\+\|\^\$] # one-character escape
- |
- [0-7]{2,3} # octal number escape
- |
- x[0-9a-fA-F]{1,2} # hexadecimal number escape
- )
- |
- [^\/] # regular character
- )*
- \/
- [imx]*
- /x
- ],
- # ANY, EVEN and ODD need to be before METHOD_NAME, otherwise they would be
- # recognized as method names.
- [:ANY, /^any/],
- [:EVEN, /^even/],
- [:ODD, /^odd/],
- # We exclude "*", "+", "<", ">", "^" and "|" from method names since they are
- # lexed as simple tokens. This is because they have also other meanings in
- # Machette patterns beside Ruby method names.
- [
- :METHOD_NAME,
- /^
- (
- # regular name
- [a-z_][a-zA-Z0-9_]*[?!=]?
- |
- # operator (sorted by length, then alphabetically)
- (<=>|===|\[\]=|\*\*|\+@|-@|<<|<=|==|=~|>=|>>|\[\]|[%&\-\/`~])
- )
- /x
- ],
- [:CLASS_NAME, /^[A-Z][a-zA-Z0-9_]*/]
-]
-
-def next_token
- skip_whitespace
-
- return false if remaining_input.empty?
-
- # Complex tokens need to be before simple tokens, otherwise e.g. "<<" would be
- # recognized as two tokens.
-
- COMPLEX_TOKENS.each do |type, regexp|
- if remaining_input =~ regexp
- @pos += $&.length
- return [type, $&]
- end
- end
-
- SIMPLE_TOKENS.each do |token|
- if remaining_input[0...token.length] == token
- @pos += token.length
- return [token, token]
- end
- end
-
- raise SyntaxError, "Unexpected character: #{remaining_input[0..0].inspect}."
-end
-
-def skip_whitespace
- if remaining_input =~ /\A^[ \t\r\n]+/
- @pos += $&.length
- end
-end
-
-def remaining_input
- @input[@pos..-1]
-end
-
-def on_error(error_token_id, error_value, value_stack)
- raise SyntaxError, "Unexpected token: #{error_value.inspect}."
-end
diff --git a/test/racc/assets/macruby.y b/test/racc/assets/macruby.y
deleted file mode 100644
index 5ede008308..0000000000
--- a/test/racc/assets/macruby.y
+++ /dev/null
@@ -1,2197 +0,0 @@
-# Copyright (c) 2013 Peter Zotov <whitequark@whitequark.org>
-#
-# Parts of the source are derived from ruby_parser:
-# Copyright (c) Ryan Davis, seattle.rb
-#
-# MIT License
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-class Parser::MacRuby
-
-token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
- kTHEN kELSIF kELSE kCASE kWHEN kWHILE kUNTIL kFOR kBREAK kNEXT
- kREDO kRETRY kIN kDO kDO_COND kDO_BLOCK kDO_LAMBDA kRETURN kYIELD kSUPER
- kSELF kNIL kTRUE kFALSE kAND kOR kNOT kIF_MOD kUNLESS_MOD kWHILE_MOD
- kUNTIL_MOD kRESCUE_MOD kALIAS kDEFINED klBEGIN klEND k__LINE__
- k__FILE__ k__ENCODING__ tIDENTIFIER tFID tGVAR tIVAR tCONSTANT
- tLABEL tCVAR tNTH_REF tBACK_REF tSTRING_CONTENT tINTEGER tFLOAT
- tREGEXP_END tUPLUS tUMINUS tUMINUS_NUM tPOW tCMP tEQ tEQQ tNEQ
- tGEQ tLEQ tANDOP tOROP tMATCH tNMATCH tDOT tDOT2 tDOT3 tAREF
- tASET tLSHFT tRSHFT tCOLON2 tCOLON3 tOP_ASGN tASSOC tLPAREN
- tLPAREN2 tRPAREN tLPAREN_ARG tLBRACK tLBRACK2 tRBRACK tLBRACE
- tLBRACE_ARG tSTAR tSTAR2 tAMPER tAMPER2 tTILDE tPERCENT tDIVIDE
- tPLUS tMINUS tLT tGT tPIPE tBANG tCARET tLCURLY tRCURLY
- tBACK_REF2 tSYMBEG tSTRING_BEG tXSTRING_BEG tREGEXP_BEG tREGEXP_OPT
- tWORDS_BEG tQWORDS_BEG tSTRING_DBEG tSTRING_DVAR tSTRING_END
- tSTRING tSYMBOL tNL tEH tCOLON tCOMMA tSPACE tSEMI tLAMBDA tLAMBEG
- tCHARACTER
-
-prechigh
- right tBANG tTILDE tUPLUS
- right tPOW
- right tUMINUS_NUM tUMINUS
- left tSTAR2 tDIVIDE tPERCENT
- left tPLUS tMINUS
- left tLSHFT tRSHFT
- left tAMPER2
- left tPIPE tCARET
- left tGT tGEQ tLT tLEQ
- nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
- left tANDOP
- left tOROP
- nonassoc tDOT2 tDOT3
- right tEH tCOLON
- left kRESCUE_MOD
- right tEQL tOP_ASGN
- nonassoc kDEFINED
- right kNOT
- left kOR kAND
- nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
- nonassoc tLBRACE_ARG
- nonassoc tLOWEST
-preclow
-
-rule
-
- program: top_compstmt
-
- top_compstmt: top_stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- top_stmts: # nothing
- {
- result = []
- }
- | top_stmt
- {
- result = [ val[0] ]
- }
- | top_stmts terms top_stmt
- {
- result = val[0] << val[2]
- }
- | error top_stmt
- {
- result = [ val[1] ]
- }
-
- top_stmt: stmt
- | klBEGIN tLCURLY top_compstmt tRCURLY
- {
- result = @builder.preexe(val[0], val[1], val[2], val[3])
- }
-
- bodystmt: compstmt opt_rescue opt_else opt_ensure
- {
- rescue_bodies = val[1]
- else_t, else_ = val[2]
- ensure_t, ensure_ = val[3]
-
- if rescue_bodies.empty? && !else_.nil?
- diagnostic :warning, :useless_else, nil, else_t
- end
-
- result = @builder.begin_body(val[0],
- rescue_bodies,
- else_t, else_,
- ensure_t, ensure_)
- }
-
- compstmt: stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- stmts: # nothing
- {
- result = []
- }
- | stmt
- {
- result = [ val[0] ]
- }
- | stmts terms stmt
- {
- result = val[0] << val[2]
- }
- | error stmt
- {
- result = [ val[1] ]
- }
-
- stmt: kALIAS fitem
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = @builder.alias(val[0], val[1], val[3])
- }
- | kALIAS tGVAR tGVAR
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.gvar(val[2]))
- }
- | kALIAS tGVAR tBACK_REF
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.back_ref(val[2]))
- }
- | kALIAS tGVAR tNTH_REF
- {
- diagnostic :error, :nth_ref_alias, nil, val[2]
- }
- | kUNDEF undef_list
- {
- result = @builder.undef_method(val[0], val[1])
- }
- | stmt kIF_MOD expr_value
- {
- result = @builder.condition_mod(val[0], nil,
- val[1], val[2])
- }
- | stmt kUNLESS_MOD expr_value
- {
- result = @builder.condition_mod(nil, val[0],
- val[1], val[2])
- }
- | stmt kWHILE_MOD expr_value
- {
- result = @builder.loop_mod(:while, val[0], val[1], val[2])
- }
- | stmt kUNTIL_MOD expr_value
- {
- result = @builder.loop_mod(:until, val[0], val[1], val[2])
- }
- | stmt kRESCUE_MOD stmt
- {
- rescue_body = @builder.rescue_body(val[1],
- nil, nil, nil,
- nil, val[2])
-
- result = @builder.begin_body(val[0], [ rescue_body ])
- }
- | klEND tLCURLY compstmt tRCURLY
- {
- result = @builder.postexe(val[0], val[1], val[2], val[3])
- }
- | lhs tEQL command_call
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | mlhs tEQL command_call
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN command_call
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | backref tOP_ASGN command_call
- {
- @builder.op_assign(val[0], val[1], val[2])
- }
- | lhs tEQL mrhs
- {
- result = @builder.assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
- }
- | mlhs tEQL arg_value
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | mlhs tEQL mrhs
- {
- result = @builder.multi_assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
- }
- | expr
-
- expr: command_call
- | expr kAND expr
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | expr kOR expr
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kNOT opt_nl expr
- {
- result = @builder.not_op(val[0], nil, val[2], nil)
- }
- | tBANG command_call
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | arg
-
- expr_value: expr
-
- command_call: command
- | block_command
-
- block_command: block_call
- | block_call tDOT operation2 command_args
- {
- result = @builder.call_method(val[0], val[1], val[2],
- *val[3])
- }
- | block_call tCOLON2 operation2 command_args
- {
- result = @builder.call_method(val[0], val[1], val[2],
- *val[3])
- }
-
- cmd_brace_block: tLBRACE_ARG
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- command: operation command_args =tLOWEST
- {
- result = @builder.call_method(nil, nil, val[0],
- *val[1])
- }
- | operation command_args cmd_brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0],
- *val[1])
-
- begin_t, args, body, end_t = val[2]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | primary_value tDOT operation2 command_args =tLOWEST
- {
- result = @builder.call_method(val[0], val[1], val[2],
- *val[3])
- }
- | primary_value tDOT operation2 command_args cmd_brace_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- *val[3])
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | primary_value tCOLON2 operation2 command_args =tLOWEST
- {
- result = @builder.call_method(val[0], val[1], val[2],
- *val[3])
- }
- | primary_value tCOLON2 operation2 command_args cmd_brace_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- *val[3])
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | kSUPER command_args
- {
- result = @builder.keyword_cmd(:super, val[0],
- *val[1])
- }
- | kYIELD command_args
- {
- result = @builder.keyword_cmd(:yield, val[0],
- *val[1])
- }
- | kRETURN call_args
- {
- result = @builder.keyword_cmd(:return, val[0],
- nil, val[1], nil)
- }
- | kBREAK call_args
- {
- result = @builder.keyword_cmd(:break, val[0],
- nil, val[1], nil)
- }
- | kNEXT call_args
- {
- result = @builder.keyword_cmd(:next, val[0],
- nil, val[1], nil)
- }
-
- mlhs: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_inner: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- mlhs_basic: mlhs_head
- | mlhs_head mlhs_item
- {
- result = val[0].
- push(val[1])
- }
- | mlhs_head tSTAR mlhs_node
- {
- result = val[0].
- push(@builder.splat(val[1], val[2]))
- }
- | mlhs_head tSTAR mlhs_node tCOMMA mlhs_post
- {
- result = val[0].
- push(@builder.splat(val[1], val[2])).
- concat(val[4])
- }
- | mlhs_head tSTAR
- {
- result = val[0].
- push(@builder.splat(val[1]))
- }
- | mlhs_head tSTAR tCOMMA mlhs_post
- {
- result = val[0].
- push(@builder.splat(val[1])).
- concat(val[3])
- }
- | tSTAR mlhs_node
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | tSTAR mlhs_node tCOMMA mlhs_post
- {
- result = [ @builder.splat(val[0], val[1]),
- *val[3] ]
- }
- | tSTAR
- {
- result = [ @builder.splat(val[0]) ]
- }
- | tSTAR tCOMMA mlhs_post
- {
- result = [ @builder.splat(val[0]),
- *val[2] ]
- }
-
- mlhs_item: mlhs_node
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_head: mlhs_item tCOMMA
- {
- result = [ val[0] ]
- }
- | mlhs_head mlhs_item tCOMMA
- {
- result = val[0] << val[1]
- }
-
- mlhs_post: mlhs_item
- {
- result = [ val[0] ]
- }
- | mlhs_post tCOMMA mlhs_item
- {
- result = val[0] << val[2]
- }
-
- mlhs_node: variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- lhs: variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- cname: tIDENTIFIER
- {
- diagnostic :error, :module_name_const, nil, val[0]
- }
- | tCONSTANT
-
- cpath: tCOLON3 cname
- {
- result = @builder.const_global(val[0], val[1])
- }
- | cname
- {
- result = @builder.const(val[0])
- }
- | primary_value tCOLON2 cname
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
-
- fname: tIDENTIFIER | tCONSTANT | tFID
- | op
- | reswords
-
- fsym: fname
- {
- result = @builder.symbol(val[0])
- }
- | symbol
-
- fitem: fsym
- | dsym
-
- undef_list: fitem
- {
- result = [ val[0] ]
- }
- | undef_list tCOMMA
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = val[0] << val[3]
- }
-
- op: tPIPE | tCARET | tAMPER2 | tCMP | tEQ | tEQQ
- | tMATCH | tNMATCH | tGT | tGEQ | tLT | tLEQ
- | tNEQ | tLSHFT | tRSHFT | tPLUS | tMINUS | tSTAR2
- | tSTAR | tDIVIDE | tPERCENT | tPOW | tBANG | tTILDE
- | tUPLUS | tUMINUS | tAREF | tASET | tBACK_REF2
-
- reswords: k__LINE__ | k__FILE__ | k__ENCODING__ | klBEGIN | klEND
- | kALIAS | kAND | kBEGIN | kBREAK | kCASE
- | kCLASS | kDEF | kDEFINED | kDO | kELSE
- | kELSIF | kEND | kENSURE | kFALSE | kFOR
- | kIN | kMODULE | kNEXT | kNIL | kNOT
- | kOR | kREDO | kRESCUE | kRETRY | kRETURN
- | kSELF | kSUPER | kTHEN | kTRUE | kUNDEF
- | kWHEN | kYIELD | kIF | kUNLESS | kWHILE
- | kUNTIL
-
- arg: lhs tEQL arg
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | lhs tEQL arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.assign(val[0], val[1], rescue_)
- }
- | var_lhs tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.op_assign(val[0], val[1], rescue_)
- }
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN arg
- {
- diagnostic :error, :dynamic_const, nil, val[2], [ val[3] ]
- }
- | tCOLON3 tCONSTANT tOP_ASGN arg
- {
- diagnostic :error, :dynamic_const, nil, val[1], [ val[2] ]
- }
- | backref tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | arg tDOT2 arg
- {
- result = @builder.range_inclusive(val[0], val[1], val[2])
- }
- | arg tDOT3 arg
- {
- result = @builder.range_exclusive(val[0], val[1], val[2])
- }
- | arg tPLUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMINUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tSTAR2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tDIVIDE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPERCENT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPOW arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tUMINUS_NUM tINTEGER tPOW arg
- {
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- @builder.integer(val[1]),
- val[2], val[3]))
- }
- | tUMINUS_NUM tFLOAT tPOW arg
- {
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- @builder.float(val[1]),
- val[2], val[3]))
- }
- | tUPLUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | tUMINUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tPIPE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCARET arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tAMPER2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCMP arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tNEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMATCH arg
- {
- result = @builder.match_op(val[0], val[1], val[2])
- }
- | arg tNMATCH arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tBANG arg
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | tTILDE arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tLSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tRSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tANDOP arg
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | arg tOROP arg
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kDEFINED opt_nl arg
- {
- result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)
- }
-
- | arg tEH arg opt_nl tCOLON arg
- {
- result = @builder.ternary(val[0], val[1],
- val[2], val[4], val[5])
- }
- | primary
-
- arg_value: arg
-
- aref_args: none
- | args trailer
- | args tCOMMA assocs trailer
- {
- result = val[0] << @builder.associate(nil, val[2], nil)
- }
- | assocs trailer
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- }
-
- paren_args: tLPAREN2 opt_call_args rparen
- {
- result = val
- }
-
- opt_paren_args: # nothing
- {
- result = [ nil, [], nil ]
- }
- | paren_args
-
- opt_call_args: # nothing
- {
- result = []
- }
- | call_args
-
- call_args: command
- {
- result = [ val[0] ]
- }
- | args opt_block_arg
- {
- result = val[0].concat(val[1])
- }
- | assocs opt_block_arg
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- result.concat(val[1])
- }
- | args tCOMMA assocs opt_block_arg
- {
- assocs = @builder.associate(nil, val[2], nil)
- result = val[0] << assocs
- result.concat(val[3])
- }
- | args tCOMMA assocs tCOMMA args opt_block_arg
- {
- val[2][-1] = @builder.objc_varargs(val[2][-1], val[4])
- assocs = @builder.associate(nil, val[2], nil)
- result = val[0] << assocs
- result.concat(val[5])
- }
- | block_arg
- {
- result = [ val[0] ]
- }
-
- call_args2: arg_value tCOMMA args opt_block_arg
- {
- result = [ val[0], *val[2].concat(val[3]) ]
- }
- | arg_value tCOMMA block_arg
- {
- result = [ val[0], val[2] ]
- }
- | assocs opt_block_arg
- {
- result = [ @builder.associate(nil, val[0], nil),
- *val[1] ]
- }
- | arg_value tCOMMA assocs opt_block_arg
- {
- result = [ val[0],
- @builder.associate(nil, val[2], nil),
- *val[3] ]
- }
- | arg_value tCOMMA args tCOMMA assocs opt_block_arg
- {
- result = [ val[0],
- *val[2].
- push(@builder.associate(nil, val[4], nil)).
- concat(val[5]) ]
- }
- | block_arg
- {
- result = [ val[0] ]
- }
-
- command_args: {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.push(true)
- }
- open_args
- {
- @lexer.cmdarg = val[0]
-
- result = val[1]
- }
-
- open_args: call_args
- {
- result = [ nil, val[0], nil ]
- }
- | tLPAREN_ARG
- {
- @lexer.state = :expr_endarg
- }
- rparen
- {
- result = [ val[0], [], val[2] ]
- }
- | tLPAREN_ARG call_args2
- {
- @lexer.state = :expr_endarg
- }
- rparen
- {
- result = [ val[0], val[1], val[3] ]
- }
-
- block_arg: tAMPER arg_value
- {
- result = @builder.block_pass(val[0], val[1])
- }
-
- opt_block_arg: tCOMMA block_arg
- {
- result = [ val[1] ]
- }
- | tCOMMA
- {
- result = []
- }
- | # nothing
- {
- result = []
- }
-
- args: arg_value
- {
- result = [ val[0] ]
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
-
- mrhs: args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
-
- primary: literal
- | strings
- | xstring
- | regexp
- | words
- | qwords
- | var_ref
- | backref
- | tFID
- {
- result = @builder.call_method(nil, nil, val[0])
- }
- | kBEGIN bodystmt kEND
- {
- result = @builder.begin_keyword(val[0], val[1], val[2])
- }
- | tLPAREN_ARG expr
- {
- @lexer.state = :expr_endarg
- }
- rparen
- {
- result = @builder.begin(val[0], val[1], val[3])
- }
- | tLPAREN compstmt tRPAREN
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.const_global(val[0], val[1])
- }
- | tLBRACK aref_args tRBRACK
- {
- result = @builder.array(val[0], val[1], val[2])
- }
- | tLBRACE assoc_list tRCURLY
- {
- result = @builder.associate(val[0], val[1], val[2])
- }
- | kRETURN
- {
- result = @builder.keyword_cmd(:return, val[0])
- }
- | kYIELD tLPAREN2 call_args rparen
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])
- }
- | kYIELD tLPAREN2 rparen
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])
- }
- | kYIELD
- {
- result = @builder.keyword_cmd(:yield, val[0])
- }
- | kDEFINED opt_nl tLPAREN2 expr rparen
- {
- result = @builder.keyword_cmd(:defined?, val[0],
- val[2], [ val[3] ], val[4])
- }
- | kNOT tLPAREN2 expr rparen
- {
- result = @builder.not_op(val[0], val[1], val[2], val[3])
- }
- | kNOT tLPAREN2 rparen
- {
- result = @builder.not_op(val[0], val[1], nil, val[2])
- }
- | operation brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0])
-
- begin_t, args, body, end_t = val[1]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | method_call
- | method_call brace_block
- {
- begin_t, args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, args, body, end_t)
- }
- | tLAMBDA lambda
- {
- lambda_call = @builder.call_lambda(val[0])
-
- args, (begin_t, body, end_t) = val[1]
- result = @builder.block(lambda_call,
- begin_t, args, body, end_t)
- }
- | kIF expr_value then compstmt if_tail kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, val[5])
- }
- | kUNLESS expr_value then compstmt opt_else kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- else_, else_t,
- val[3], val[5])
- }
- | kWHILE
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:while, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kUNTIL
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:until, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kCASE expr_value opt_terms case_body kEND
- {
- *when_bodies, (else_t, else_body) = *val[3]
-
- result = @builder.case(val[0], val[1],
- when_bodies, else_t, else_body,
- val[4])
- }
- | kCASE opt_terms case_body kEND
- {
- *when_bodies, (else_t, else_body) = *val[2]
-
- result = @builder.case(val[0], nil,
- when_bodies, else_t, else_body,
- val[3])
- }
- | kFOR for_var kIN
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.for(val[0], val[1],
- val[2], val[4],
- val[5], val[7], val[8])
- }
- | kCLASS cpath superclass
- {
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :class_in_def, nil, val[0]
- end
-
- lt_t, superclass = val[2]
- result = @builder.def_class(val[0], val[1],
- lt_t, superclass,
- val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- }
- | kCLASS tLSHFT expr term
- {
- result = @def_level
- @def_level = 0
-
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- result = @builder.def_sclass(val[0], val[1], val[2],
- val[5], val[6])
-
- @lexer.pop_cmdarg
- @static_env.unextend
-
- @def_level = val[4]
- }
- | kMODULE cpath
- {
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :module_in_def, nil, val[0]
- end
-
- result = @builder.def_module(val[0], val[1],
- val[3], val[4])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- }
- | kDEF fname
- {
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_method(val[0], val[1],
- val[3], val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
- }
- | kDEF singleton dot_or_colon
- {
- @lexer.state = :expr_fname
- }
- fname
- {
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_singleton(val[0], val[1], val[2],
- val[4], val[6], val[7], val[8])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
- }
- | kBREAK
- {
- result = @builder.keyword_cmd(:break, val[0])
- }
- | kNEXT
- {
- result = @builder.keyword_cmd(:next, val[0])
- }
- | kREDO
- {
- result = @builder.keyword_cmd(:redo, val[0])
- }
- | kRETRY
- {
- result = @builder.keyword_cmd(:retry, val[0])
- }
-
- primary_value: primary
-
- then: term
- | kTHEN
- | term kTHEN
- {
- result = val[1]
- }
-
- do: term
- | kDO_COND
-
- if_tail: opt_else
- | kELSIF expr_value then compstmt if_tail
- {
- else_t, else_ = val[4]
- result = [ val[0],
- @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, nil),
- ]
- }
-
- opt_else: none
- | kELSE compstmt
- {
- result = val
- }
-
- for_var: lhs
- | mlhs
-
- f_marg: f_norm_arg
- | tLPAREN f_margs rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- f_marg_list: f_marg
- {
- result = [ val[0] ]
- }
- | f_marg_list tCOMMA f_marg
- {
- result = val[0] << val[2]
- }
-
- f_margs: f_marg_list
- | f_marg_list tCOMMA tSTAR f_norm_arg
- {
- result = val[0].
- push(@builder.objc_restarg(val[2], val[3]))
- }
- | f_marg_list tCOMMA tSTAR f_norm_arg tCOMMA f_marg_list
- {
- result = val[0].
- push(@builder.objc_restarg(val[2], val[3])).
- concat(val[5])
- }
- | f_marg_list tCOMMA tSTAR
- {
- result = val[0].
- push(@builder.objc_restarg(val[2]))
- }
- | f_marg_list tCOMMA tSTAR tCOMMA f_marg_list
- {
- result = val[0].
- push(@builder.objc_restarg(val[2])).
- concat(val[4])
- }
- | tSTAR f_norm_arg
- {
- result = [ @builder.objc_restarg(val[0], val[1]) ]
- }
- | tSTAR f_norm_arg tCOMMA f_marg_list
- {
- result = [ @builder.objc_restarg(val[0], val[1]),
- *val[3] ]
- }
- | tSTAR
- {
- result = [ @builder.objc_restarg(val[0]) ]
- }
- | tSTAR tCOMMA f_marg_list
- {
- result = [ @builder.objc_restarg(val[0]),
- *val[2] ]
- }
-
- block_param: f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
- }
- | f_arg tCOMMA f_block_optarg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_block_optarg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA
- | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_block_optarg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_block_optarg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_block_optarg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
-
- opt_block_param: # nothing
- {
- result = @builder.args(nil, [], nil)
- }
- | block_param_def
- {
- @lexer.state = :expr_value
- }
-
- block_param_def: tPIPE opt_bv_decl tPIPE
- {
- result = @builder.args(val[0], val[1], val[2])
- }
- | tOROP
- {
- result = @builder.args(val[0], [], val[0])
- }
- | tPIPE block_param opt_bv_decl tPIPE
- {
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
- }
-
- opt_bv_decl: # nothing
- {
- result = []
- }
- | tSEMI bv_decls
- {
- result = val[1]
- }
-
- bv_decls: bvar
- {
- result = [ val[0] ]
- }
- | bv_decls tCOMMA bvar
- {
- result = val[0] << val[2]
- }
-
- bvar: tIDENTIFIER
- {
- result = @builder.shadowarg(val[0])
- }
- | f_bad_arg
-
- lambda: {
- @static_env.extend_dynamic
- }
- f_larglist lambda_body
- {
- result = [ val[1], val[2] ]
-
- @static_env.unextend
- }
-
- f_larglist: tLPAREN2 f_args opt_bv_decl rparen
- {
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
- }
- | f_args
- {
- result = @builder.args(nil, val[0], nil)
- }
-
- lambda_body: tLAMBEG compstmt tRCURLY
- {
- result = [ val[0], val[1], val[2] ]
- }
- | kDO_LAMBDA compstmt kEND
- {
- result = [ val[0], val[1], val[2] ]
- }
-
- do_block: kDO_BLOCK
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- block_call: command do_block
- {
- begin_t, block_args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, block_args, body, end_t)
- }
- | block_call tDOT operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | block_call tCOLON2 operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
-
- method_call: operation paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
- }
- | primary_value tDOT operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation2 paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation3
- {
- result = @builder.call_method(val[0], val[1], val[2])
- }
- | primary_value tDOT paren_args
- {
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 paren_args
- {
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
- }
- | kSUPER paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:super, val[0],
- lparen_t, args, rparen_t)
- }
- | kSUPER
- {
- result = @builder.keyword_cmd(:zsuper, val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index(val[0], val[1], val[2], val[3])
- }
-
- brace_block: tLCURLY
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
- | kDO
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- case_body: kWHEN args then compstmt cases
- {
- result = [ @builder.when(val[0], val[1], val[2], val[3]),
- *val[4] ]
- }
-
- cases: opt_else
- {
- result = [ val[0] ]
- }
- | case_body
-
- opt_rescue: kRESCUE exc_list exc_var then compstmt opt_rescue
- {
- assoc_t, exc_var = val[2]
-
- if val[1]
- exc_list = @builder.array(nil, val[1], nil)
- end
-
- result = [ @builder.rescue_body(val[0],
- exc_list, assoc_t, exc_var,
- val[3], val[4]),
- *val[5] ]
- }
- |
- {
- result = []
- }
-
- exc_list: arg_value
- {
- result = [ val[0] ]
- }
- | mrhs
- | none
-
- exc_var: tASSOC lhs
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- opt_ensure: kENSURE compstmt
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- literal: numeric
- | symbol
- | dsym
-
- strings: string
- {
- result = @builder.string_compose(nil, val[0], nil)
- }
-
- string: string1
- {
- result = [ val[0] ]
- }
- | string string1
- {
- result = val[0] << val[1]
- }
-
- string1: tSTRING_BEG string_contents tSTRING_END
- {
- result = @builder.string_compose(val[0], val[1], val[2])
- }
- | tSTRING
- {
- result = @builder.string(val[0])
- }
- | tCHARACTER
- {
- result = @builder.character(val[0])
- }
-
- xstring: tXSTRING_BEG xstring_contents tSTRING_END
- {
- result = @builder.xstring_compose(val[0], val[1], val[2])
- }
-
- regexp: tREGEXP_BEG regexp_contents tSTRING_END tREGEXP_OPT
- {
- opts = @builder.regexp_options(val[3])
- result = @builder.regexp_compose(val[0], val[1], val[2], opts)
- }
-
- words: tWORDS_BEG word_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- word_list: # nothing
- {
- result = []
- }
- | word_list word tSPACE
- {
- result = val[0] << @builder.word(val[1])
- }
-
- word: string_content
- {
- result = [ val[0] ]
- }
- | word string_content
- {
- result = val[0] << val[1]
- }
-
- qwords: tQWORDS_BEG qword_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- qword_list: # nothing
- {
- result = []
- }
- | qword_list tSTRING_CONTENT tSPACE
- {
- result = val[0] << @builder.string_internal(val[1])
- }
-
- string_contents: # nothing
- {
- result = []
- }
- | string_contents string_content
- {
- result = val[0] << val[1]
- }
-
-xstring_contents: # nothing
- {
- result = []
- }
- | xstring_contents string_content
- {
- result = val[0] << val[1]
- }
-
-regexp_contents: # nothing
- {
- result = []
- }
- | regexp_contents string_content
- {
- result = val[0] << val[1]
- }
-
- string_content: tSTRING_CONTENT
- {
- result = @builder.string_internal(val[0])
- }
- | tSTRING_DVAR string_dvar
- {
- result = val[1]
- }
- | tSTRING_DBEG
- {
- @lexer.cond.push(false)
- @lexer.cmdarg.push(false)
- }
- compstmt tRCURLY
- {
- @lexer.cond.lexpop
- @lexer.cmdarg.lexpop
-
- result = @builder.begin(val[0], val[2], val[3])
- }
-
- string_dvar: tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
- | backref
-
-
- symbol: tSYMBOL
- {
- result = @builder.symbol(val[0])
- }
-
- dsym: tSYMBEG xstring_contents tSTRING_END
- {
- result = @builder.symbol_compose(val[0], val[1], val[2])
- }
-
- numeric: tINTEGER
- {
- result = @builder.integer(val[0])
- }
- | tFLOAT
- {
- result = @builder.float(val[0])
- }
- | tUMINUS_NUM tINTEGER =tLOWEST
- {
- result = @builder.negate(val[0],
- @builder.integer(val[1]))
- }
- | tUMINUS_NUM tFLOAT =tLOWEST
- {
- result = @builder.negate(val[0],
- @builder.float(val[1]))
- }
-
- variable: tIDENTIFIER
- {
- result = @builder.ident(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tCONSTANT
- {
- result = @builder.const(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
- | kNIL
- {
- result = @builder.nil(val[0])
- }
- | kSELF
- {
- result = @builder.self(val[0])
- }
- | kTRUE
- {
- result = @builder.true(val[0])
- }
- | kFALSE
- {
- result = @builder.false(val[0])
- }
- | k__FILE__
- {
- result = @builder.__FILE__(val[0])
- }
- | k__LINE__
- {
- result = @builder.__LINE__(val[0])
- }
- | k__ENCODING__
- {
- result = @builder.__ENCODING__(val[0])
- }
-
- var_ref: variable
- {
- result = @builder.accessible(val[0])
- }
-
- var_lhs: variable
- {
- result = @builder.assignable(val[0])
- }
-
- backref: tNTH_REF
- {
- result = @builder.nth_ref(val[0])
- }
- | tBACK_REF
- {
- result = @builder.back_ref(val[0])
- }
-
- superclass: term
- {
- result = nil
- }
- | tLT expr_value term
- {
- result = [ val[0], val[1] ]
- }
- | error term
- {
- yyerrok
- result = nil
- }
-
- f_arglist: tLPAREN2 f_args rparen
- {
- result = @builder.args(val[0], val[1], val[2])
-
- @lexer.state = :expr_value
- }
- | f_args term
- {
- result = @builder.args(nil, val[0], nil)
- }
-
- f_args: f_arg tCOMMA f_optarg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
- }
- | f_arg tCOMMA f_optarg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_optarg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_optarg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
- | # nothing
- {
- result = []
- }
-
- f_bad_arg: tCONSTANT
- {
- diagnostic :error, :argument_const, nil, val[0]
- }
- | tIVAR
- {
- diagnostic :error, :argument_ivar, nil, val[0]
- }
- | tGVAR
- {
- diagnostic :error, :argument_gvar, nil, val[0]
- }
- | tCVAR
- {
- diagnostic :error, :argument_cvar, nil, val[0]
- }
-
- f_norm_arg: f_bad_arg
- | tIDENTIFIER
- {
- @static_env.declare val[0][0]
-
- result = @builder.arg(val[0])
- }
- | tIDENTIFIER tASSOC tIDENTIFIER
- {
- @static_env.declare val[2][0]
-
- result = @builder.objc_kwarg(val[0], val[1], val[2])
- }
- | tLABEL tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = @builder.objc_kwarg(val[0], nil, val[1])
- }
-
- f_arg_item: f_norm_arg
- | tLPAREN f_margs rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- f_arg: f_arg_item
- {
- result = [ val[0] ]
- }
- | f_arg tCOMMA f_arg_item
- {
- result = val[0] << val[2]
- }
-
- f_opt: tIDENTIFIER tEQL arg_value
- {
- @static_env.declare val[0][0]
-
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_block_opt: tIDENTIFIER tEQL primary_value
- {
- @static_env.declare val[0][0]
-
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_block_optarg: f_block_opt
- {
- result = [ val[0] ]
- }
- | f_block_optarg tCOMMA f_block_opt
- {
- result = val[0] << val[2]
- }
-
- f_optarg: f_opt
- {
- result = [ val[0] ]
- }
- | f_optarg tCOMMA f_opt
- {
- result = val[0] << val[2]
- }
-
- restarg_mark: tSTAR2 | tSTAR
-
- f_rest_arg: restarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]) ]
- }
- | restarg_mark
- {
- result = [ @builder.restarg(val[0]) ]
- }
-
- blkarg_mark: tAMPER2 | tAMPER
-
- f_block_arg: blkarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = @builder.blockarg(val[0], val[1])
- }
-
- opt_f_block_arg: tCOMMA f_block_arg
- {
- result = [ val[1] ]
- }
- | # nothing
- {
- result = []
- }
-
- singleton: var_ref
- | tLPAREN2 expr rparen
- {
- result = val[1]
- }
-
- assoc_list: # nothing
- {
- result = []
- }
- | assocs trailer
-
- assocs: assoc
- {
- result = [ val[0] ]
- }
- | assocs tCOMMA assoc
- {
- result = val[0] << val[2]
- }
-
- assoc: arg_value tASSOC arg_value
- {
- result = @builder.pair(val[0], val[1], val[2])
- }
- | tLABEL arg_value
- {
- result = @builder.pair_keyword(val[0], val[1])
- }
-
- operation: tIDENTIFIER | tCONSTANT | tFID
- operation2: tIDENTIFIER | tCONSTANT | tFID | op
- operation3: tIDENTIFIER | tFID | op
- dot_or_colon: tDOT | tCOLON2
- opt_terms: | terms
- opt_nl: | tNL
- rparen: opt_nl tRPAREN
- {
- result = val[1]
- }
- rbracket: opt_nl tRBRACK
- {
- result = val[1]
- }
- trailer: | tNL | tCOMMA
-
- term: tSEMI
- {
- yyerrok
- }
- | tNL
-
- terms: term
- | terms tSEMI
-
- none: # nothing
- {
- result = nil
- }
-end
-
----- header
-
-require 'parser'
-
-Parser.check_for_encoding_support
-
----- inner
-
- def version
- 19 # closest released match: v1_9_0_2
- end
-
- def default_encoding
- Encoding::BINARY
- end
diff --git a/test/racc/assets/mailp.y b/test/racc/assets/mailp.y
deleted file mode 100644
index eb7d4d529d..0000000000
--- a/test/racc/assets/mailp.y
+++ /dev/null
@@ -1,437 +0,0 @@
-#
-# mailp for test
-#
-
-class Testp
-
-rule
-
- content : DateH datetime { @field.date = val[1] }
- | RecvH received
- | RetpathH returnpath
- | MaddrH addrs { @field.addrs.replace val[1] }
- | SaddrH addr { @field.addr = val[1] }
- | MmboxH mboxes { @field.addrs.replace val[1] }
- | SmboxH mbox { @field.addr = val[1] }
- | MsgidH msgid { @field.msgid = val[1] }
- | KeyH keys { @field.keys.replace val[1] }
- | EncH enc
- | VersionH version
- | CTypeH ctype
- | CEncodingH cencode
- | CDispositionH cdisp
- | Mbox mbox
- {
- mb = val[1]
- @field.phrase = mb.phrase
- @field.setroute mb.route
- @field.local = mb.local
- @field.domain = mb.domain
- }
- | Spec spec
- {
- mb = val[1]
- @field.local = mb.local
- @field.domain = mb.domain
- }
- ;
-
- datetime : day DIGIT ATOM DIGIT hour zone
- # 0 1 2 3 4 5
- # day month year
- {
- t = Time.gm( val[3].to_i, val[2], val[1].to_i, 0, 0, 0 )
- result = (t + val[4] - val[5]).localtime
- }
- ;
-
- day : /* none */
- | ATOM ','
- ;
-
- hour : DIGIT ':' DIGIT
- {
- result = (result.to_i * 60 * 60) + (val[2].to_i * 60)
- }
- | DIGIT ':' DIGIT ':' DIGIT
- {
- result = (result.to_i * 60 * 60) +
- (val[2].to_i * 60)
- + val[4].to_i
- }
- ;
-
- zone : ATOM
- {
- result = ::TMail.zonestr2i( val[0] ) * 60
- }
- ;
-
- received : from by via with id for recvdatetime
- ;
-
- from : /* none */
- | FROM domain
- {
- @field.from = Address.join( val[1] )
- }
- | FROM domain '@' domain
- {
- @field.from = Address.join( val[3] )
- }
- | FROM domain DOMLIT
- {
- @field.from = Address.join( val[1] )
- }
- ;
-
- by : /* none */
- | BY domain
- {
- @field.by = Address.join( val[1] )
- }
- ;
-
- via : /* none */
- | VIA ATOM
- {
- @field.via = val[1]
- }
- ;
-
- with : /* none */
- | WITH ATOM
- {
- @field.with.push val[1]
- }
- ;
-
- id : /* none */
- | ID msgid
- {
- @field.msgid = val[1]
- }
- | ID ATOM
- {
- @field.msgid = val[1]
- }
- ;
-
- for : /* none */
- | FOR addr
- {
- @field.for_ = val[1].address
- }
- ;
-
- recvdatetime
- : /* none */
- | ';' datetime
- {
- @field.date = val[1]
- }
- ;
-
- returnpath: '<' '>'
- | routeaddr
- {
- @field.route.replace result.route
- @field.addr = result.addr
- }
- ;
-
- addrs : addr { result = val }
- | addrs ',' addr { result.push val[2] }
- ;
-
- addr : mbox
- | group
- ;
-
- mboxes : mbox
- {
- result = val
- }
- | mboxes ',' mbox
- {
- result.push val[2]
- }
- ;
-
- mbox : spec
- | routeaddr
- | phrase routeaddr
- {
- val[1].phrase = HFdecoder.decode( result )
- result = val[1]
- }
- ;
-
- group : phrase ':' mboxes ';'
- {
- result = AddressGroup.new( result, val[2] )
- }
- # | phrase ':' ';' { result = AddressGroup.new( result ) }
- ;
-
- routeaddr : '<' route spec '>'
- {
- result = val[2]
- result.route = val[1]
- }
- | '<' spec '>'
- {
- result = val[1]
- }
- ;
-
- route : at_domains ':'
- ;
-
- at_domains: '@' domain { result = [ val[1] ] }
- | at_domains ',' '@' domain { result.push val[3] }
- ;
-
- spec : local '@' domain { result = Address.new( val[0], val[2] ) }
- | local { result = Address.new( result, nil ) }
- ;
-
- local : word { result = val }
- | local '.' word { result.push val[2] }
- ;
-
- domain : domword { result = val }
- | domain '.' domword { result.push val[2] }
- ;
-
- domword : atom
- | DOMLIT
- | DIGIT
- ;
-
- msgid : '<' spec '>'
- {
- val[1] = val[1].addr
- result = val.join('')
- }
- ;
-
- phrase : word
- | phrase word { result << ' ' << val[1] }
- ;
-
- word : atom
- | QUOTED
- | DIGIT
- ;
-
- keys : phrase
- | keys ',' phrase
- ;
-
- enc : word
- {
- @field.encrypter = val[0]
- }
- | word word
- {
- @field.encrypter = val[0]
- @field.keyword = val[1]
- }
- ;
-
- version : DIGIT '.' DIGIT
- {
- @field.major = val[0].to_i
- @field.minor = val[2].to_i
- }
- ;
-
- ctype : TOKEN '/' TOKEN params
- {
- @field.main = val[0]
- @field.sub = val[2]
- }
- | TOKEN params
- {
- @field.main = val[0]
- @field.sub = ''
- }
- ;
-
- params : /* none */
- | params ';' TOKEN '=' value
- {
- @field.params[ val[2].downcase ] = val[4]
- }
- ;
-
- value : TOKEN
- | QUOTED
- ;
-
- cencode : TOKEN
- {
- @field.encoding = val[0]
- }
- ;
-
- cdisp : TOKEN disp_params
- {
- @field.disposition = val[0]
- }
- ;
-
- disp_params
- : /* none */
- | disp_params ';' disp_param
- ;
-
- disp_param: /* none */
- | TOKEN '=' value
- {
- @field.params[ val[0].downcase ] = val[2]
- }
- ;
-
- atom : ATOM
- | FROM
- | BY
- | VIA
- | WITH
- | ID
- | FOR
- ;
-
-end
-
-
----- header
-#
-# mailp for test
-#
-
-require 'tmail/mails'
-
-
-module TMail
-
----- inner
-
- MAILP_DEBUG = false
-
- def initialize
- self.debug = MAILP_DEBUG
- end
-
- def debug=( flag )
- @yydebug = flag && Racc_debug_parser
- @scanner_debug = flag
- end
-
- def debug
- @yydebug
- end
-
-
- def Mailp.parse( str, obj, ident )
- new.parse( str, obj, ident )
- end
-
-
- NATIVE_ROUTINE = {
- 'TMail::MsgidH' => :msgid_parse,
- 'TMail::RefH' => :refs_parse
- }
-
- def parse( str, obj, ident )
- return if /\A\s*\z/ === str
-
- @field = obj
-
- if mid = NATIVE_ROUTINE[ obj.type.name ] then
- send mid, str
- else
- unless ident then
- ident = obj.type.name.split('::')[-1].to_s
- cmt = []
- obj.comments.replace cmt
- else
- cmt = nil
- end
-
- @scanner = MailScanner.new( str, ident, cmt )
- @scanner.debug = @scanner_debug
- @first = [ ident.intern, ident ]
- @pass_array = [nil, nil]
-
- do_parse
- end
- end
-
-
- private
-
-
- def next_token
- if @first then
- ret = @first
- @first = nil
- ret
- else
- @scanner.scan @pass_array
- end
- end
-
- def on_error( tok, val, vstack )
- raise ParseError,
- "\nparse error in '#{@field.name}' header, on token #{val.inspect}"
- end
-
-
-
- def refs_parse( str )
- arr = []
-
- while mdata = ::TMail::MSGID.match( str ) do
- str = mdata.post_match
-
- pre = mdata.pre_match
- pre.strip!
- proc_phrase pre, arr unless pre.empty?
- arr.push mdata.to_s
- end
- str.strip!
- proc_phrase str, arr if not pre or pre.empty?
-
- @field.refs.replace arr
- end
-
- def proc_phrase( str, arr )
- while mdata = /"([^\\]*(?:\\.[^"\\]*)*)"/.match( str ) do
- str = mdata.post_match
-
- pre = mdata.pre_match
- pre.strip!
- arr.push pre unless pre.empty?
- arr.push mdata[1]
- end
- str.strip!
- arr.push unless str.empty?
- end
-
-
- def msgid_parse( str )
- if mdata = ::TMail::MSGID.match( str ) then
- @field.msgid = mdata.to_s
- else
- raise ParseError, "wrong Message-ID format: #{str}"
- end
- end
-
----- footer
-
-end # module TMail
-
-mp = TMail::Testp.new
-mp.parse
diff --git a/test/racc/assets/mediacloth.y b/test/racc/assets/mediacloth.y
deleted file mode 100644
index 94cc411ea7..0000000000
--- a/test/racc/assets/mediacloth.y
+++ /dev/null
@@ -1,599 +0,0 @@
-# Copyright (c) 2006 Pluron Inc.
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-# The parser for the MediaWiki language.
-#
-# Usage together with a lexer:
-# inputFile = File.new("data/input1", "r")
-# input = inputFile.read
-# parser = MediaWikiParser.new
-# parser.lexer = MediaWikiLexer.new
-# parser.parse(input)
-
-class MediaWikiParser
-
-token TEXT BOLD_START BOLD_END ITALIC_START ITALIC_END LINK_START LINK_END LINKSEP
- INTLINK_START INTLINK_END INTLINKSEP RESOURCESEP CHAR_ENT
- PRE_START PRE_END PREINDENT_START PREINDENT_END
- SECTION_START SECTION_END HLINE SIGNATURE_NAME SIGNATURE_DATE SIGNATURE_FULL
- PARA_START PARA_END UL_START UL_END OL_START OL_END LI_START LI_END
- DL_START DL_END DT_START DT_END DD_START DD_END TAG_START TAG_END ATTR_NAME ATTR_VALUE
- TABLE_START TABLE_END ROW_START ROW_END HEAD_START HEAD_END CELL_START CELL_END
- KEYWORD TEMPLATE_START TEMPLATE_END CATEGORY PASTE_START PASTE_END
-
-
-rule
-
-wiki:
- repeated_contents
- {
- @nodes.push WikiAST.new(0, @wiki_ast_length)
- #@nodes.last.children.insert(0, val[0])
- #puts val[0]
- @nodes.last.children += val[0]
- }
- ;
-
-contents:
- text
- {
- result = val[0]
- }
- | bulleted_list
- {
- result = val[0]
- }
- | numbered_list
- {
- result = val[0]
- }
- | dictionary_list
- {
- list = ListAST.new(@ast_index, @ast_length)
- list.list_type = :Dictionary
- list.children = val[0]
- result = list
- }
- | preformatted
- {
- result = val[0]
- }
- | section
- {
- result = val[0]
- }
- | tag
- {
- result = val[0]
- }
- | template
- {
- result = val[0]
- }
- | KEYWORD
- {
- k = KeywordAST.new(@ast_index, @ast_length)
- k.text = val[0]
- result = k
- }
- | PARA_START para_contents PARA_END
- {
- p = ParagraphAST.new(@ast_index, @ast_length)
- p.children = val[1]
- result = p
- }
- | LINK_START link_contents LINK_END
- {
- l = LinkAST.new(@ast_index, @ast_length)
- l.link_type = val[0]
- l.url = val[1][0]
- l.children += val[1][1..-1] if val[1].length > 1
- result = l
- }
- | PASTE_START para_contents PASTE_END
- {
- p = PasteAST.new(@ast_index, @ast_length)
- p.children = val[1]
- result = p
- }
- | INTLINK_START TEXT RESOURCESEP TEXT reslink_repeated_contents INTLINK_END
- {
- l = ResourceLinkAST.new(@ast_index, @ast_length)
- l.prefix = val[1]
- l.locator = val[3]
- l.children = val[4] unless val[4].nil? or val[4].empty?
- result = l
- }
- | INTLINK_START TEXT intlink_repeated_contents INTLINK_END
- {
- l = InternalLinkAST.new(@ast_index, @ast_length)
- l.locator = val[1]
- l.children = val[2] unless val[2].nil? or val[2].empty?
- result = l
- }
- | INTLINK_START CATEGORY TEXT cat_sort_contents INTLINK_END
- {
- l = CategoryAST.new(@ast_index, @ast_length)
- l.locator = val[2]
- l.sort_as = val[3]
- result = l
- }
- | INTLINK_START RESOURCESEP CATEGORY TEXT intlink_repeated_contents INTLINK_END
- {
- l = CategoryLinkAST.new(@ast_index, @ast_length)
- l.locator = val[3]
- l.children = val[4] unless val[4].nil? or val[4].empty?
- result = l
- }
- | table
- ;
-
-para_contents:
- {
- result = nil
- }
- | repeated_contents
- {
- result = val[0]
- }
- ;
-
-tag:
- TAG_START tag_attributes TAG_END
- {
- if val[0] != val[2]
- raise Racc::ParseError.new("XHTML end tag #{val[2]} does not match start tag #{val[0]}")
- end
- elem = ElementAST.new(@ast_index, @ast_length)
- elem.name = val[0]
- elem.attributes = val[1]
- result = elem
- }
- | TAG_START tag_attributes repeated_contents TAG_END
- {
- if val[0] != val[3]
- raise Racc::ParseError.new("XHTML end tag #{val[3]} does not match start tag #{val[0]}")
- end
- elem = ElementAST.new(@ast_index, @ast_length)
- elem.name = val[0]
- elem.attributes = val[1]
- elem.children += val[2]
- result = elem
- }
- ;
-
-tag_attributes:
- {
- result = nil
- }
- | ATTR_NAME tag_attributes
- {
- attr_map = val[2] ? val[2] : {}
- attr_map[val[0]] = true
- result = attr_map
- }
- | ATTR_NAME ATTR_VALUE tag_attributes
- {
- attr_map = val[2] ? val[2] : {}
- attr_map[val[0]] = val[1]
- result = attr_map
- }
- ;
-
-
-link_contents:
- TEXT
- {
- result = val
- }
- | TEXT LINKSEP link_repeated_contents
- {
- result = [val[0]]
- result += val[2]
- }
- ;
-
-
-link_repeated_contents:
- repeated_contents
- {
- result = val[0]
- }
- | repeated_contents LINKSEP link_repeated_contents
- {
- result = val[0]
- result += val[2] if val[2]
- }
- ;
-
-
-intlink_repeated_contents:
- {
- result = nil
- }
- | INTLINKSEP repeated_contents
- {
- result = val[1]
- }
- ;
-
-cat_sort_contents:
- {
- result = nil
- }
- | INTLINKSEP TEXT
- {
- result = val[1]
- }
- ;
-
-reslink_repeated_contents:
- {
- result = nil
- }
- | INTLINKSEP reslink_repeated_contents
- {
- result = val[1]
- }
- | INTLINKSEP repeated_contents reslink_repeated_contents
- {
- i = InternalLinkItemAST.new(@ast_index, @ast_length)
- i.children = val[1]
- result = [i]
- result += val[2] if val[2]
- }
- ;
-
-repeated_contents: contents
- {
- result = []
- result << val[0]
- }
- | repeated_contents contents
- {
- result = []
- result += val[0]
- result << val[1]
- }
- ;
-
-text: element
- {
- p = TextAST.new(@ast_index, @ast_length)
- p.formatting = val[0][0]
- p.contents = val[0][1]
- result = p
- }
- | formatted_element
- {
- result = val[0]
- }
- ;
-
-table:
- TABLE_START table_contents TABLE_END
- {
- table = TableAST.new(@ast_index, @ast_length)
- table.children = val[1] unless val[1].nil? or val[1].empty?
- result = table
- }
- | TABLE_START TEXT table_contents TABLE_END
- {
- table = TableAST.new(@ast_index, @ast_length)
- table.options = val[1]
- table.children = val[2] unless val[2].nil? or val[2].empty?
- result = table
- }
-
-table_contents:
- {
- result = nil
- }
- | ROW_START row_contents ROW_END table_contents
- {
- row = TableRowAST.new(@ast_index, @ast_length)
- row.children = val[1] unless val[1].nil? or val[1].empty?
- result = [row]
- result += val[3] unless val[3].nil? or val[3].empty?
- }
- | ROW_START TEXT row_contents ROW_END table_contents
- {
- row = TableRowAST.new(@ast_index, @ast_length)
- row.children = val[2] unless val[2].nil? or val[2].empty?
- row.options = val[1]
- result = [row]
- result += val[4] unless val[4].nil? or val[4].empty?
- }
-
-row_contents:
- {
- result = nil
- }
- | HEAD_START HEAD_END row_contents
- {
- cell = TableCellAST.new(@ast_index, @ast_length)
- cell.type = :head
- result = [cell]
- result += val[2] unless val[2].nil? or val[2].empty?
- }
- | HEAD_START repeated_contents HEAD_END row_contents
- {
- cell = TableCellAST.new(@ast_index, @ast_length)
- cell.children = val[1] unless val[1].nil? or val[1].empty?
- cell.type = :head
- result = [cell]
- result += val[3] unless val[3].nil? or val[3].empty?
- }
- | CELL_START CELL_END row_contents
- {
- cell = TableCellAST.new(@ast_index, @ast_length)
- cell.type = :body
- result = [cell]
- result += val[2] unless val[2].nil? or val[2].empty?
- }
- | CELL_START repeated_contents CELL_END row_contents
- {
- if val[2] == 'attributes'
- result = []
- else
- cell = TableCellAST.new(@ast_index, @ast_length)
- cell.children = val[1] unless val[1].nil? or val[1].empty?
- cell.type = :body
- result = [cell]
- end
- result += val[3] unless val[3].nil? or val[3].empty?
- if val[2] == 'attributes' and val[3] and val[3].first.class == TableCellAST
- val[3].first.attributes = val[1]
- end
- result
- }
-
-
-element:
- TEXT
- { return [:None, val[0]] }
- | HLINE
- { return [:HLine, val[0]] }
- | CHAR_ENT
- { return [:CharacterEntity, val[0]] }
- | SIGNATURE_DATE
- { return [:SignatureDate, val[0]] }
- | SIGNATURE_NAME
- { return [:SignatureName, val[0]] }
- | SIGNATURE_FULL
- { return [:SignatureFull, val[0]] }
- ;
-
-formatted_element:
- BOLD_START BOLD_END
- {
- result = FormattedAST.new(@ast_index, @ast_length)
- result.formatting = :Bold
- result
- }
- | ITALIC_START ITALIC_END
- {
- result = FormattedAST.new(@ast_index, @ast_length)
- result.formatting = :Italic
- result
- }
- | BOLD_START repeated_contents BOLD_END
- {
- p = FormattedAST.new(@ast_index, @ast_length)
- p.formatting = :Bold
- p.children += val[1]
- result = p
- }
- | ITALIC_START repeated_contents ITALIC_END
- {
- p = FormattedAST.new(@ast_index, @ast_length)
- p.formatting = :Italic
- p.children += val[1]
- result = p
- }
- ;
-
-bulleted_list: UL_START list_item list_contents UL_END
- {
- list = ListAST.new(@ast_index, @ast_length)
- list.list_type = :Bulleted
- list.children << val[1]
- list.children += val[2]
- result = list
- }
- ;
-
-numbered_list: OL_START list_item list_contents OL_END
- {
- list = ListAST.new(@ast_index, @ast_length)
- list.list_type = :Numbered
- list.children << val[1]
- list.children += val[2]
- result = list
- }
- ;
-
-list_contents:
- { result = [] }
- list_item list_contents
- {
- result << val[1]
- result += val[2]
- }
- |
- { result = [] }
- ;
-
-list_item:
- LI_START LI_END
- {
- result = ListItemAST.new(@ast_index, @ast_length)
- }
- | LI_START repeated_contents LI_END
- {
- li = ListItemAST.new(@ast_index, @ast_length)
- li.children += val[1]
- result = li
- }
- ;
-
-dictionary_list:
- DL_START dictionary_term dictionary_contents DL_END
- {
- result = [val[1]]
- result += val[2]
- }
- | DL_START dictionary_contents DL_END
- {
- result = val[1]
- }
- ;
-
-dictionary_term:
- DT_START DT_END
- {
- result = ListTermAST.new(@ast_index, @ast_length)
- }
- | DT_START repeated_contents DT_END
- {
- term = ListTermAST.new(@ast_index, @ast_length)
- term.children += val[1]
- result = term
- }
-
-dictionary_contents:
- dictionary_definition dictionary_contents
- {
- result = [val[0]]
- result += val[1] if val[1]
- }
- |
- {
- result = []
- }
-
-dictionary_definition:
- DD_START DD_END
- {
- result = ListDefinitionAST.new(@ast_index, @ast_length)
- }
- | DD_START repeated_contents DD_END
- {
- term = ListDefinitionAST.new(@ast_index, @ast_length)
- term.children += val[1]
- result = term
- }
-
-preformatted: PRE_START repeated_contents PRE_END
- {
- p = PreformattedAST.new(@ast_index, @ast_length)
- p.children += val[1]
- result = p
- }
- | PREINDENT_START repeated_contents PREINDENT_END
- {
- p = PreformattedAST.new(@ast_index, @ast_length)
- p.indented = true
- p.children += val[1]
- result = p
- }
- ;
-
-section: SECTION_START repeated_contents SECTION_END
- { result = [val[1], val[0].length]
- s = SectionAST.new(@ast_index, @ast_length)
- s.children = val[1]
- s.level = val[0].length
- result = s
- }
- ;
-
-template: TEMPLATE_START TEXT template_parameters TEMPLATE_END
- {
- t = TemplateAST.new(@ast_index, @ast_length)
- t.template_name = val[1]
- t.children = val[2] unless val[2].nil? or val[2].empty?
- result = t
- }
- ;
-
-template_parameters:
- {
- result = nil
- }
- | INTLINKSEP TEXT template_parameters
- {
- p = TemplateParameterAST.new(@ast_index, @ast_length)
- p.parameter_value = val[1]
- result = [p]
- result += val[2] if val[2]
- }
- | INTLINKSEP template template_parameters
- {
- p = TemplateParameterAST.new(@ast_index, @ast_length)
- p.children << val[1]
- result = [p]
- result += val[2] if val[2]
- }
- ;
-
-end
-
----- header ----
-require 'mediacloth/mediawikiast'
-
----- inner ----
-
-attr_accessor :lexer
-
-def initialize
- @nodes = []
- @context = []
- @wiki_ast_length = 0
- super
-end
-
-#Tokenizes input string and parses it.
-def parse(input)
- @yydebug=true
- lexer.tokenize(input)
- do_parse
- return @nodes.last
-end
-
-#Asks the lexer to return the next token.
-def next_token
- token = @lexer.lex
- if token[0].to_s.upcase.include? "_START"
- @context << token[2..3]
- elsif token[0].to_s.upcase.include? "_END"
- @ast_index = @context.last[0]
- @ast_length = token[2] + token[3] - @context.last[0]
- @context.pop
- else
- @ast_index = token[2]
- @ast_length = token[3]
- end
-
- @wiki_ast_length += token[3]
-
- return token[0..1]
-end
diff --git a/test/racc/assets/mof.y b/test/racc/assets/mof.y
deleted file mode 100644
index da3172988f..0000000000
--- a/test/racc/assets/mof.y
+++ /dev/null
@@ -1,649 +0,0 @@
-# Distributed under the Ruby license
-# See http://www.ruby-lang.org/en/LICENSE.txt for the full license text
-# Copyright (c) 2010 Klaus Kämpf <kkaempf@suse.de>
-
-/*
- * According to appendix A of
- * http://www.dmtf.org/standards/cim/cim_spec_v22
- */
-
-class MOF::Parser
- prechigh
-/* nonassoc UMINUS */
- left '*' '/'
- left '+' '-'
- preclow
-
- token PRAGMA INCLUDE IDENTIFIER CLASS ASSOCIATION INDICATION
- AMENDED ENABLEOVERRIDE DISABLEOVERRIDE RESTRICTED TOSUBCLASS TOINSTANCE
- TRANSLATABLE QUALIFIER SCOPE SCHEMA PROPERTY REFERENCE
- METHOD PARAMETER FLAVOR INSTANCE
- AS REF ANY OF
- DT_VOID
- DT_UINT8 DT_SINT8 DT_UINT16 DT_SINT16 DT_UINT32 DT_SINT32
- DT_UINT64 DT_SINT64 DT_REAL32 DT_REAL64 DT_CHAR16 DT_STR
- DT_BOOLEAN DT_DATETIME
- positiveDecimalValue
- stringValue
- realValue
- charValue
- booleanValue
- nullValue
- binaryValue
- octalValue
- decimalValue
- hexValue
-
-rule
-
- /* Returns a Hash of filename and MofResult */
- mofSpecification
- : /* empty */
- { result = Hash.new }
- | mofProduction
- { result = { @name => @result } }
- | mofSpecification mofProduction
- { result = val[0]
- result[@name] = @result
- }
- ;
-
- mofProduction
- : compilerDirective
- | classDeclaration
- { #puts "Class '#{val[0].name}'"
- @result.classes << val[0]
- }
- | qualifierDeclaration
- { @result.qualifiers << val[0]
- @qualifiers[val[0].name.downcase] = val[0]
- }
- | instanceDeclaration
- { @result.instances << val[0] }
- ;
-
-/***
- * compilerDirective
- *
- */
-
- compilerDirective
- : "#" PRAGMA INCLUDE pragmaParameters_opt
- { raise MOF::Helper::Error.new(@name,@lineno,@line,"Missing filename after '#pragma include'") unless val[3]
- open val[3], :pragma
- }
- | "#" PRAGMA pragmaName pragmaParameters_opt
- | "#" INCLUDE pragmaParameters_opt
- { raise StyleError.new(@name,@lineno,@line,"Use '#pragma include' instead of '#include'") unless @style == :wmi
- raise MOF::Helper::Error.new(@name,@lineno,@line,"Missing filename after '#include'") unless val[2]
- open val[2], :pragma
- }
- ;
-
- pragmaName
- : IDENTIFIER
- ;
-
- pragmaParameters_opt
- : /* empty */
- { raise StyleError.new(@name,@lineno,@line,"#pragma parameter missing") unless @style == :wmi }
- | "(" pragmaParameterValues ")"
- { result = val[1] }
- ;
-
- pragmaParameterValues
- : pragmaParameterValue
- | pragmaParameterValues "," pragmaParameterValue
- ;
-
- pragmaParameterValue
- : string
- | integerValue
- { raise StyleError.new(@name,@lineno,@line,"#pragma parameter missing") unless @style == :wmi }
- | IDENTIFIER
- ;
-
-/***
- * classDeclaration
- *
- */
-
- classDeclaration
- : qualifierList_opt CLASS className alias_opt superClass_opt "{" classFeatures "}" ";"
- { qualifiers = val[0]
- features = val[6]
- # FIXME: features must not include references
- result = CIM::Class.new(val[2],qualifiers,val[3],val[4],features)
- }
- ;
-
- classFeatures
- : /* empty */
- { result = [] }
- | classFeatures classFeature
- { result = val[0] << val[1] }
- ;
-
- classFeature
- : propertyDeclaration
- | methodDeclaration
- | referenceDeclaration /* must have association qualifier */
- ;
-
-
- qualifierList_opt
- : /* empty */
- | qualifierList
- { result = CIM::QualifierSet.new val[0] }
- ;
-
- qualifierList
- : "[" qualifier qualifiers "]"
- { result = val[2]
- result.unshift val[1] if val[1] }
- ;
-
- qualifiers
- : /* empty */
- { result = [] }
- | qualifiers "," qualifier
- { result = val[0]
- result << val[2] if val[2]
- }
- ;
-
- qualifier
- : qualifierName qualifierParameter_opt flavor_opt
- { # Get qualifier decl
- qualifier = case val[0]
- when CIM::Qualifier then val[0].definition
- when CIM::QualifierDeclaration then val[0]
- when String then @qualifiers[val[0].downcase]
- else
- nil
- end
- raise MOF::Helper::Error.new(@name,@lineno,@line,"'#{val[0]}' is not a valid qualifier") unless qualifier
- value = val[1]
- raise MOF::Helper::Error.new(@name,@lineno,@line,"#{value.inspect} does not match qualifier type '#{qualifier.type}'") unless qualifier.type.matches?(value)||@style == :wmi
- # Don't propagate a boolean 'false'
- if qualifier.type == :boolean && value == false
- result = nil
- else
- result = CIM::Qualifier.new(qualifier,value,val[2])
- end
- }
- ;
-
- flavor_opt
- : /* empty */
- | ":" flavor
- { result = CIM::QualifierFlavors.new val[1] }
- ;
-
- qualifierParameter_opt
- : /* empty */
- | qualifierParameter
- ;
-
- qualifierParameter
- : "(" constantValue ")"
- { result = val[1] }
- | arrayInitializer
- ;
-
- /* CIM::Flavors */
- flavor
- : AMENDED | ENABLEOVERRIDE | DISABLEOVERRIDE | RESTRICTED | TOSUBCLASS | TRANSLATABLE | TOINSTANCE
- { case val[0].to_sym
- when :amended, :toinstance
- raise StyleError.new(@name,@lineno,@line,"'#{val[0]}' is not a valid flavor") unless @style == :wmi
- end
- }
- ;
-
- alias_opt
- : /* empty */
- | alias
- ;
-
- superClass_opt
- : /* empty */
- | superClass
- ;
-
- className
- : IDENTIFIER /* must be <schema>_<classname> in CIM v2.x */
- { raise ParseError.new("Class name must be prefixed by '<schema>_'") unless val[0].include?("_") || @style == :wmi }
- ;
-
- alias
- : AS aliasIdentifier
- { result = val[1] }
- ;
-
- aliasIdentifier
- : "$" IDENTIFIER /* NO whitespace ! */
- { result = val[1] }
- ;
-
- superClass
- : ":" className
- { result = val[1] }
- ;
-
-
- propertyDeclaration
- : qualifierList_opt dataType propertyName array_opt defaultValue_opt ";"
- { if val[3]
- type = CIM::Array.new val[3],val[1]
- else
- type = val[1]
- end
- result = CIM::Property.new(type,val[2],val[0],val[4])
- }
- ;
-
- referenceDeclaration
- : qualifierList_opt objectRef referenceName array_opt defaultValue_opt ";"
- { if val[4]
- raise StyleError.new(@name,@lineno,@line,"Array not allowed in reference declaration") unless @style == :wmi
- end
- result = CIM::Reference.new(val[1],val[2],val[0],val[4]) }
- ;
-
- methodDeclaration
- : qualifierList_opt dataType methodName "(" parameterList_opt ")" ";"
- { result = CIM::Method.new(val[1],val[2],val[0],val[4]) }
- ;
-
- propertyName
- : IDENTIFIER
- | PROPERTY
- { # tmplprov.mof has 'string Property;'
- raise StyleError.new(@name,@lineno,@line,"Invalid keyword '#{val[0]}' used for property name") unless @style == :wmi
- }
- ;
-
- referenceName
- : IDENTIFIER
- | INDICATION
- { result = "Indication" }
- ;
-
- methodName
- : IDENTIFIER
- ;
-
- dataType
- : DT_UINT8
- | DT_SINT8
- | DT_UINT16
- | DT_SINT16
- | DT_UINT32
- | DT_SINT32
- | DT_UINT64
- | DT_SINT64
- | DT_REAL32
- | DT_REAL64
- | DT_CHAR16
- | DT_STR
- | DT_BOOLEAN
- | DT_DATETIME
- | DT_VOID
- { raise StyleError.new(@name,@lineno,@line,"'void' is not a valid datatype") unless @style == :wmi }
- ;
-
- objectRef
- : className
- { # WMI uses class names as data types (without REF ?!)
- raise StyleError.new(@name,@lineno,@line,"Expected 'ref' keyword after classname '#{val[0]}'") unless @style == :wmi
- result = CIM::ReferenceType.new val[0]
- }
-
- | className REF
- { result = CIM::ReferenceType.new val[0] }
- ;
-
- parameterList_opt
- : /* empty */
- | parameterList
- ;
-
- parameterList
- : parameter parameters
- { result = val[1].unshift val[0] }
- ;
-
- parameters
- : /* empty */
- { result = [] }
- | parameters "," parameter
- { result = val[0] << val[2] }
- ;
-
- parameter
- : qualifierList_opt typespec parameterName array_opt parameterValue_opt
- { if val[3]
- type = CIM::Array.new val[3], val[1]
- else
- type = val[1]
- end
- result = CIM::Property.new(type,val[2],val[0])
- }
- ;
-
- typespec
- : dataType
- | objectRef
- ;
-
- parameterName
- : IDENTIFIER
- ;
-
- array_opt
- : /* empty */
- | array
- ;
-
- parameterValue_opt
- : /* empty */
- | defaultValue
- { raise "Default parameter value not allowed in syntax style '{@style}'" unless @style == :wmi }
- ;
-
- array
- : "[" positiveDecimalValue_opt "]"
- { result = val[1] }
- ;
-
- positiveDecimalValue_opt
- : /* empty */
- { result = -1 }
- | positiveDecimalValue
- ;
-
- defaultValue_opt
- : /* empty */
- | defaultValue
- ;
-
- defaultValue
- : "=" initializer
- { result = val[1] }
- ;
-
- initializer
- : constantValue
- | arrayInitializer
- | referenceInitializer
- ;
-
- arrayInitializer
- : "{" constantValues "}"
- { result = val[1] }
- ;
-
- constantValues
- : /* empty */
- | constantValue
- { result = [ val[0] ] }
- | constantValues "," constantValue
- { result = val[0] << val[2] }
- ;
-
- constantValue
- : integerValue
- | realValue
- | charValue
- | string
- | booleanValue
- | nullValue
- | instance
- { raise "Instance as property value not allowed in syntax style '{@style}'" unless @style == :wmi }
- ;
-
- integerValue
- : binaryValue
- | octalValue
- | decimalValue
- | positiveDecimalValue
- | hexValue
- ;
-
- string
- : stringValue
- | string stringValue
- { result = val[0] + val[1] }
- ;
-
- referenceInitializer
- : objectHandle
- | aliasIdentifier
- ;
-
- objectHandle
- : namespace_opt modelPath
- ;
-
- namespace_opt
- : /* empty */
- | namespaceHandle ":"
- ;
-
- namespaceHandle
- : IDENTIFIER
- ;
-
- /*
- * Note
- : structure depends on type of namespace
- */
-
- modelPath
- : className "." keyValuePairList
- ;
-
- keyValuePairList
- : keyValuePair keyValuePairs
- ;
-
- keyValuePairs
- : /* empty */
- | keyValuePairs "," keyValuePair
- ;
-
- keyValuePair
- : keyname "=" initializer
- ;
-
- keyname
- : propertyName | referenceName
- ;
-
-/***
- * qualifierDeclaration
- *
- */
-
- qualifierDeclaration
- /* 0 1 2 3 4 */
- : QUALIFIER qualifierName qualifierType scope defaultFlavor_opt ";"
- { result = CIM::QualifierDeclaration.new( val[1], val[2][0], val[2][1], val[3], val[4]) }
- ;
-
- defaultFlavor_opt
- : /* empty */
- | defaultFlavor
- ;
-
- qualifierName
- : IDENTIFIER
- | ASSOCIATION /* meta qualifier */
- | INDICATION /* meta qualifier */
- | REFERENCE /* Added in DSP0004 2.7.0 */
- | SCHEMA
- ;
-
- /* [type, value] */
- qualifierType
- : ":" dataType array_opt defaultValue_opt
- { type = val[2].nil? ? val[1] : CIM::Array.new(val[2],val[1])
- result = [ type, val[3] ]
- }
- ;
-
- scope
- : "," SCOPE "(" metaElements ")"
- { result = CIM::QualifierScopes.new(val[3]) }
- ;
-
- metaElements
- : metaElement
- { result = [ val[0] ] }
- | metaElements "," metaElement
- { result = val[0] << val[2] }
- ;
-
- metaElement
- : SCHEMA
- | CLASS
- | ASSOCIATION
- | INDICATION
- | QUALIFIER
- | PROPERTY
- | REFERENCE
- | METHOD
- | PARAMETER
- | ANY
- ;
-
- defaultFlavor
- : "," FLAVOR "(" flavors ")"
- { result = CIM::QualifierFlavors.new val[3] }
- ;
-
- flavors
- : flavor
- { result = [ val[0] ] }
- | flavors "," flavor
- { result = val[0] << val[2] }
- ;
-
-/***
- * instanceDeclaration
- *
- */
-
- instanceDeclaration
- : instance ";"
- ;
-
- instance
- : qualifierList_opt INSTANCE OF className alias_opt "{" valueInitializers "}"
- ;
-
- valueInitializers
- : valueInitializer
- | valueInitializers valueInitializer
- ;
-
- valueInitializer
- : qualifierList_opt keyname "=" initializer ";"
- | qualifierList_opt keyname ";"
- { raise "Instance property '#{val[1]} must have a value" unless @style == :wmi }
- ;
-
-end # class Parser
-
----- header ----
-
-# parser.rb - generated by racc
-
-require 'strscan'
-require 'rubygems'
-require 'cim'
-require File.join(File.dirname(__FILE__), 'result')
-require File.join(File.dirname(__FILE__), 'scanner')
-require File.join(File.dirname(__FILE__), 'helper')
-
----- inner ----
-
-#
-# Initialize MOF::Parser
-# MOF::Parser.new options = {}
-#
-# options -> Hash of options
-# :debug -> boolean
-# :includes -> array of include dirs
-# :style -> :cim or :wmi
-#
-def initialize options = {}
- @yydebug = options[:debug]
- @includes = options[:includes] || []
- @quiet = options[:quiet]
- @style = options[:style] || :cim # default to style CIM v2.2 syntax
-
- @lineno = 1
- @file = nil
- @iconv = nil
- @eol = "\n"
- @fname = nil
- @fstack = []
- @in_comment = false
- @seen_files = []
- @qualifiers = {}
-end
-
-#
-# Make options hash from argv
-#
-# returns [ files, options ]
-#
-
- def self.argv_handler name, argv
- files = []
- options = { :namespace => "" }
- while argv.size > 0
- case opt = argv.shift
- when "-h"
- $stderr.puts "Ruby MOF compiler"
- $stderr.puts "#{name} [-h] [-d] [-I <dir>] [<moffiles>]"
- $stderr.puts "Compiles <moffile>"
- $stderr.puts "\t-d debug"
- $stderr.puts "\t-h this help"
- $stderr.puts "\t-I <dir> include dir"
- $stderr.puts "\t-f force"
- $stderr.puts "\t-n <namespace>"
- $stderr.puts "\t-o <output>"
- $stderr.puts "\t-s <style> syntax style (wmi,cim)"
- $stderr.puts "\t-q quiet"
- $stderr.puts "\t<moffiles> file(s) to read (else use $stdin)"
- exit 0
- when "-f" then options[:force] = true
- when "-s" then options[:style] = argv.shift.to_sym
- when "-d" then options[:debug] = true
- when "-q" then options[:quiet] = true
- when "-I"
- options[:includes] ||= []
- dirname = argv.shift
- unless File.directory?(dirname)
- files << dirname
- dirname = File.dirname(dirname)
- end
- options[:includes] << Pathname.new(dirname)
- when "-n" then options[:namespace] = argv.shift
- when "-o" then options[:output] = argv.shift
- when /^-.+/
- $stderr.puts "Undefined option #{opt}"
- else
- files << opt
- end
- end
- [ files, options ]
- end
-
-include Helper
-include Scanner
-
----- footer ----
diff --git a/test/racc/assets/namae.y b/test/racc/assets/namae.y
deleted file mode 100644
index 0378345fef..0000000000
--- a/test/racc/assets/namae.y
+++ /dev/null
@@ -1,302 +0,0 @@
-# -*- ruby -*-
-# vi: set ft=ruby :
-
-# Copyright (C) 2012 President and Fellows of Harvard College
-# Copyright (C) 2013-2014 Sylvester Keil
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# The views and conclusions contained in the software and documentation are
-# those of the authors and should not be interpreted as representing official
-# policies, either expressed or implied, of the copyright holder.
-
-class Namae::Parser
-
-token COMMA UWORD LWORD PWORD NICK AND APPELLATION TITLE SUFFIX
-
-expect 0
-
-rule
-
- names : { result = [] }
- | name { result = [val[0]] }
- | names AND name { result = val[0] << val[2] }
-
- name : word { result = Name.new(:given => val[0]) }
- | display_order
- | honorific word { result = val[0].merge(:family => val[1]) }
- | honorific display_order { result = val[1].merge(val[0]) }
- | sort_order
-
- honorific : APPELLATION { result = Name.new(:appellation => val[0]) }
- | TITLE { result = Name.new(:title => val[0]) }
-
- display_order : u_words word opt_suffices opt_titles
- {
- result = Name.new(:given => val[0], :family => val[1],
- :suffix => val[2], :title => val[3])
- }
- | u_words NICK last opt_suffices opt_titles
- {
- result = Name.new(:given => val[0], :nick => val[1],
- :family => val[2], :suffix => val[3], :title => val[4])
- }
- | u_words NICK von last opt_suffices opt_titles
- {
- result = Name.new(:given => val[0], :nick => val[1],
- :particle => val[2], :family => val[3],
- :suffix => val[4], :title => val[5])
- }
- | u_words von last
- {
- result = Name.new(:given => val[0], :particle => val[1],
- :family => val[2])
- }
- | von last
- {
- result = Name.new(:particle => val[0], :family => val[1])
- }
-
- sort_order : last COMMA first
- {
- result = Name.new({ :family => val[0], :suffix => val[2][0],
- :given => val[2][1] }, !!val[2][0])
- }
- | von last COMMA first
- {
- result = Name.new({ :particle => val[0], :family => val[1],
- :suffix => val[3][0], :given => val[3][1] }, !!val[3][0])
- }
- | u_words von last COMMA first
- {
- result = Name.new({ :particle => val[0,2].join(' '), :family => val[2],
- :suffix => val[4][0], :given => val[4][1] }, !!val[4][0])
- }
- ;
-
- von : LWORD
- | von LWORD { result = val.join(' ') }
- | von u_words LWORD { result = val.join(' ') }
-
- last : LWORD | u_words
-
- first : opt_words { result = [nil,val[0]] }
- | words opt_comma suffices { result = [val[2],val[0]] }
- | suffices { result = [val[0],nil] }
- | suffices COMMA words { result = [val[0],val[2]] }
-
- u_words : u_word
- | u_words u_word { result = val.join(' ') }
-
- u_word : UWORD | PWORD
-
- words : word
- | words word { result = val.join(' ') }
-
- opt_comma : /* empty */ | COMMA
- opt_words : /* empty */ | words
-
- word : LWORD | UWORD | PWORD
-
- opt_suffices : /* empty */ | suffices
-
- suffices : SUFFIX
- | suffices SUFFIX { result = val.join(' ') }
-
- opt_titles : /* empty */ | titles
-
- titles : TITLE
- | titles TITLE { result = val.join(' ') }
-
----- header
-require 'singleton'
-require 'strscan'
-
----- inner
-
- include Singleton
-
- attr_reader :options, :input
-
- def initialize
- @input, @options = StringScanner.new(''), {
- :debug => false,
- :prefer_comma_as_separator => false,
- :comma => ',',
- :stops => ',;',
- :separator => /\s*(\band\b|\&|;)\s*/i,
- :title => /\s*\b(sir|lord|count(ess)?|(gen|adm|col|maj|capt|cmdr|lt|sgt|cpl|pvt|prof|dr|md|ph\.?d)\.?)(\s+|$)/i,
- :suffix => /\s*\b(JR|Jr|jr|SR|Sr|sr|[IVX]{2,})(\.|\b)/,
- :appellation => /\s*\b((mrs?|ms|fr|hr)\.?|miss|herr|frau)(\s+|$)/i
- }
- end
-
- def debug?
- options[:debug] || ENV['DEBUG']
- end
-
- def separator
- options[:separator]
- end
-
- def comma
- options[:comma]
- end
-
- def stops
- options[:stops]
- end
-
- def title
- options[:title]
- end
-
- def suffix
- options[:suffix]
- end
-
- def appellation
- options[:appellation]
- end
-
- def prefer_comma_as_separator?
- options[:prefer_comma_as_separator]
- end
-
- def parse(input)
- parse!(input)
- rescue => e
- warn e.message if debug?
- []
- end
-
- def parse!(string)
- input.string = normalize(string)
- reset
- do_parse
- end
-
- def normalize(string)
- string = string.strip
- string
- end
-
- def reset
- @commas, @words, @initials, @suffices, @yydebug = 0, 0, 0, 0, debug?
- self
- end
-
- private
-
- def stack
- @vstack || @racc_vstack || []
- end
-
- def last_token
- stack[-1]
- end
-
- def consume_separator
- return next_token if seen_separator?
- @commas, @words, @initials, @suffices = 0, 0, 0, 0
- [:AND, :AND]
- end
-
- def consume_comma
- @commas += 1
- [:COMMA, :COMMA]
- end
-
- def consume_word(type, word)
- @words += 1
-
- case type
- when :UWORD
- @initials += 1 if word =~ /^[[:upper:]]+\b/
- when :SUFFIX
- @suffices += 1
- end
-
- [type, word]
- end
-
- def seen_separator?
- !stack.empty? && last_token == :AND
- end
-
- def suffix?
- !@suffices.zero? || will_see_suffix?
- end
-
- def will_see_suffix?
- input.peek(8).to_s.strip.split(/\s+/)[0] =~ suffix
- end
-
- def will_see_initial?
- input.peek(6).to_s.strip.split(/\s+/)[0] =~ /^[[:upper:]]+\b/
- end
-
- def seen_full_name?
- prefer_comma_as_separator? && @words > 1 &&
- (@initials > 0 || !will_see_initial?) && !will_see_suffix?
- end
-
- def next_token
- case
- when input.nil?, input.eos?
- nil
- when input.scan(separator)
- consume_separator
- when input.scan(/\s*#{comma}\s*/)
- if @commas.zero? && !seen_full_name? || @commas == 1 && suffix?
- consume_comma
- else
- consume_separator
- end
- when input.scan(/\s+/)
- next_token
- when input.scan(title)
- consume_word(:TITLE, input.matched.strip)
- when input.scan(suffix)
- consume_word(:SUFFIX, input.matched.strip)
- when input.scan(appellation)
- [:APPELLATION, input.matched.strip]
- when input.scan(/((\\\w+)?\{[^\}]*\})*[[:upper:]][^\s#{stops}]*/)
- consume_word(:UWORD, input.matched)
- when input.scan(/((\\\w+)?\{[^\}]*\})*[[:lower:]][^\s#{stops}]*/)
- consume_word(:LWORD, input.matched)
- when input.scan(/(\\\w+)?\{[^\}]*\}[^\s#{stops}]*/)
- consume_word(:PWORD, input.matched)
- when input.scan(/('[^'\n]+')|("[^"\n]+")/)
- consume_word(:NICK, input.matched[1...-1])
- else
- raise ArgumentError,
- "Failed to parse name #{input.string.inspect}: unmatched data at offset #{input.pos}"
- end
- end
-
- def on_error(tid, value, stack)
- raise ArgumentError,
- "Failed to parse name: unexpected '#{value}' at #{stack.inspect}"
- end
-
-# -*- racc -*-
diff --git a/test/racc/assets/nasl.y b/test/racc/assets/nasl.y
deleted file mode 100644
index c7b8e46551..0000000000
--- a/test/racc/assets/nasl.y
+++ /dev/null
@@ -1,626 +0,0 @@
-################################################################################
-# Copyright (c) 2011-2014, Tenable Network Security
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-################################################################################
-
-class Nasl::Grammar
-
-preclow
- right ASS_EQ ADD_EQ SUB_EQ MUL_EQ DIV_EQ MOD_EQ SLL_EQ SRA_EQ SRL_EQ
- left OR
- left AND
- left CMP_LT CMP_GT CMP_EQ CMP_NE CMP_GE CMP_LE SUBSTR_EQ SUBSTR_NE REGEX_EQ REGEX_NE
- left BIT_OR
- left BIT_XOR
- left AMPERSAND
- left BIT_SRA BIT_SRL BIT_SLL
- left ADD SUB
- left MUL DIV MOD
- right NOT
- right UMINUS BIT_NOT
- right EXP
- right INCR DECR
-prechigh
-
-# Tell the parser generator that we don't wish to use the result variable in the
-# action section of rules. Instead, the result of the rule will be the value of
-# evaluating the action block.
-options no_result_var
-
-# Tell the parser generator that we expect one shift/reduce conflict due to the
-# well-known dangling else problem. We could make the grammar solve this
-# problem, but this is how the NASL YACC file solves it, so we'll follow suit.
-expect 1
-
-rule
- ##############################################################################
- # Aggregate Statements
- ##############################################################################
-
- start : roots
- { val[0] }
- | /* Blank */
- { [] }
- ;
-
- roots : root roots
- { [val[0]] + val[1] }
- | root
- { [val[0]] }
- ;
-
- root : COMMENT export
- { c(*val) }
- | export
- { val[0] }
- | COMMENT function
- { c(*val) }
- | function
- { val[0] }
- | statement
- { val[0] }
- ;
-
- statement : simple
- { val[0] }
- | compound
- { val[0] }
- ;
-
- ##############################################################################
- # Root Statements
- ##############################################################################
-
- export : EXPORT function
- { n(:Export, *val) }
- ;
-
- function : FUNCTION ident LPAREN params RPAREN block
- { n(:Function, *val) }
- | FUNCTION ident LPAREN RPAREN block
- { n(:Function, *val) }
- ;
-
- simple : assign
- { val[0] }
- | break
- { val[0] }
- | call
- { val[0] }
- | continue
- { val[0] }
- | decr
- { val[0] }
- | empty
- { val[0] }
- | COMMENT global
- { c(*val) }
- | global
- { val[0] }
- | import
- { val[0] }
- | include
- { val[0] }
- | incr
- { val[0] }
- | local
- { val[0] }
- | rep
- { val[0] }
- | return
- { val[0] }
- ;
-
- compound : block
- { val[0] }
- | for
- { val[0] }
- | foreach
- { val[0] }
- | if
- { val[0] }
- | repeat
- { val[0] }
- | while
- { val[0] }
- ;
-
- ##############################################################################
- # Simple Statements
- ##############################################################################
-
- assign : assign_exp SEMICOLON
- { val[0] }
- ;
-
- break : BREAK SEMICOLON
- { n(:Break, *val) }
- ;
-
- call : call_exp SEMICOLON
- { val[0] }
- ;
-
- continue : CONTINUE SEMICOLON
- { n(:Continue, *val) }
- ;
-
- decr : decr_exp SEMICOLON
- { val[0] }
- ;
-
- empty : SEMICOLON
- { n(:Empty, *val) }
- ;
-
- global : GLOBAL var_decls SEMICOLON
- { n(:Global, *val) }
- ;
-
- incr : incr_exp SEMICOLON
- { val[0] }
- ;
-
- import : IMPORT LPAREN string RPAREN SEMICOLON
- { n(:Import, *val) }
- ;
-
- include : INCLUDE LPAREN string RPAREN SEMICOLON
- { n(:Include, *val) }
- ;
-
- local : LOCAL var_decls SEMICOLON
- { n(:Local, *val) }
- ;
-
- rep : call_exp REP expr SEMICOLON
- { n(:Repetition, *val[0..-1]) }
- ;
-
- return : RETURN expr SEMICOLON
- { n(:Return, *val) }
- | RETURN ref SEMICOLON
- { n(:Return, *val) }
- | RETURN SEMICOLON
- { n(:Return, *val) }
- ;
-
- ##############################################################################
- # Compound Statements
- ##############################################################################
-
- block : LBRACE statements RBRACE
- { n(:Block, *val) }
- | LBRACE RBRACE
- { n(:Block, *val) }
- ;
-
- for : FOR LPAREN field SEMICOLON expr SEMICOLON field RPAREN statement
- { n(:For, *val) }
- ;
-
- foreach : FOREACH ident LPAREN expr RPAREN statement
- { n(:Foreach, val[0], val[1], val[3], val[5]) }
- | FOREACH LPAREN ident IN expr RPAREN statement
- { n(:Foreach, val[0], val[2], val[4], val[6]) }
- ;
-
- if : IF LPAREN expr RPAREN statement
- { n(:If, *val) }
- | IF LPAREN expr RPAREN statement ELSE statement
- { n(:If, *val) }
- ;
-
- repeat : REPEAT statement UNTIL expr SEMICOLON
- { n(:Repeat, *val) }
- ;
-
- while : WHILE LPAREN expr RPAREN statement
- { n(:While, *val) }
- ;
-
- ##############################################################################
- # Expressions
- ##############################################################################
-
- assign_exp : lval ASS_EQ expr
- { n(:Assignment, *val) }
- | lval ASS_EQ ref
- { n(:Assignment, *val) }
- | lval ADD_EQ expr
- { n(:Assignment, *val) }
- | lval SUB_EQ expr
- { n(:Assignment, *val) }
- | lval MUL_EQ expr
- { n(:Assignment, *val) }
- | lval DIV_EQ expr
- { n(:Assignment, *val) }
- | lval MOD_EQ expr
- { n(:Assignment, *val) }
- | lval SRL_EQ expr
- { n(:Assignment, *val) }
- | lval SRA_EQ expr
- { n(:Assignment, *val) }
- | lval SLL_EQ expr
- { n(:Assignment, *val) }
- ;
-
- call_exp : lval LPAREN args RPAREN
- { n(:Call, *val) }
- | lval LPAREN RPAREN
- { n(:Call, *val) }
- ;
-
- decr_exp : DECR lval
- { n(:Decrement, val[0]) }
- | lval DECR
- { n(:Decrement, val[0]) }
- ;
-
- incr_exp : INCR lval
- { n(:Increment, val[0]) }
- | lval INCR
- { n(:Increment, val[0]) }
- ;
-
- expr : LPAREN expr RPAREN
- { n(:Expression, *val) }
- | expr AND expr
- { n(:Expression, *val) }
- | NOT expr
- { n(:Expression, *val) }
- | expr OR expr
- { n(:Expression, *val) }
- | expr ADD expr
- { n(:Expression, *val) }
- | expr SUB expr
- { n(:Expression, *val) }
- | SUB expr =UMINUS
- { n(:Expression, *val) }
- | BIT_NOT expr
- { n(:Expression, *val) }
- | expr MUL expr
- { n(:Expression, *val) }
- | expr EXP expr
- { n(:Expression, *val) }
- | expr DIV expr
- { n(:Expression, *val) }
- | expr MOD expr
- { n(:Expression, *val) }
- | expr AMPERSAND expr
- { n(:Expression, *val) }
- | expr BIT_XOR expr
- { n(:Expression, *val) }
- | expr BIT_OR expr
- { n(:Expression, *val) }
- | expr BIT_SRA expr
- { n(:Expression, *val) }
- | expr BIT_SRL expr
- { n(:Expression, *val) }
- | expr BIT_SLL expr
- { n(:Expression, *val) }
- | incr_exp
- { val[0] }
- | decr_exp
- { val[0] }
- | expr SUBSTR_EQ expr
- { n(:Expression, *val) }
- | expr SUBSTR_NE expr
- { n(:Expression, *val) }
- | expr REGEX_EQ expr
- { n(:Expression, *val) }
- | expr REGEX_NE expr
- { n(:Expression, *val) }
- | expr CMP_LT expr
- { n(:Expression, *val) }
- | expr CMP_GT expr
- { n(:Expression, *val) }
- | expr CMP_EQ expr
- { n(:Expression, *val) }
- | expr CMP_NE expr
- { n(:Expression, *val) }
- | expr CMP_GE expr
- { n(:Expression, *val) }
- | expr CMP_LE expr
- { n(:Expression, *val) }
- | assign_exp
- { val[0] }
- | string
- { val[0] }
- | call_exp
- { val[0] }
- | lval
- { val[0] }
- | ip
- { val[0] }
- | int
- { val[0] }
- | undef
- { val[0] }
- | list_expr
- { val[0] }
- | array_expr
- { val[0] }
- ;
-
- ##############################################################################
- # Named Components
- ##############################################################################
-
- arg : ident COLON expr
- { n(:Argument, *val) }
- | ident COLON ref
- { n(:Argument, *val) }
- | expr
- { n(:Argument, *val) }
- | ref
- { n(:Argument, *val) }
- ;
-
- kv_pair : string COLON expr
- { n(:KeyValuePair, *val) }
- | int COLON expr
- { n(:KeyValuePair, *val) }
- | ident COLON expr
- { n(:KeyValuePair, *val) }
- | string COLON ref
- { n(:KeyValuePair, *val) }
- | int COLON ref
- { n(:KeyValuePair, *val) }
- | ident COLON ref
- { n(:KeyValuePair, *val) }
- ;
-
- kv_pairs : kv_pair COMMA kv_pairs
- { [val[0]] + val[2] }
- | kv_pair COMMA
- { [val[0]] }
- | kv_pair
- { [val[0]] }
- ;
-
- lval : ident indexes
- { n(:Lvalue, *val) }
- | ident
- { n(:Lvalue, *val) }
- ;
-
- ref : AT_SIGN ident
- { n(:Reference, val[1]) }
- ;
-
- ##############################################################################
- # Anonymous Components
- ##############################################################################
-
- args : arg COMMA args
- { [val[0]] + val[2] }
- | arg
- { [val[0]] }
- ;
-
- array_expr : LBRACE kv_pairs RBRACE
- { n(:Array, *val) }
- | LBRACE RBRACE
- { n(:Array, *val) }
- ;
-
- field : assign_exp
- { val[0] }
- | call_exp
- { val[0] }
- | decr_exp
- { val[0] }
- | incr_exp
- { val[0] }
- | /* Blank */
- { nil }
- ;
-
- index : LBRACK expr RBRACK
- { val[1] }
- | PERIOD ident
- { val[1] }
- ;
-
- indexes : index indexes
- { [val[0]] + val[1] }
- | index
- { [val[0]] }
- ;
-
- list_elem : expr
- { val[0] }
- | ref
- { val[0] }
- ;
-
- list_elems : list_elem COMMA list_elems
- { [val[0]] + val[2] }
- | list_elem
- { [val[0]] }
- ;
-
- list_expr : LBRACK list_elems RBRACK
- { n(:List, *val) }
- | LBRACK RBRACK
- { n(:List, *val) }
- ;
-
- param : AMPERSAND ident
- { n(:Parameter, val[1], 'reference') }
- | ident
- { n(:Parameter, val[0], 'value') }
- ;
-
- params : param COMMA params
- { [val[0]] + val[2] }
- | param
- { [val[0]] }
- ;
-
- statements : statement statements
- { [val[0]] + val[1] }
- | statement
- { [val[0]] }
- ;
-
- var_decl : ident ASS_EQ expr
- { n(:Assignment, *val) }
- | ident ASS_EQ ref
- { n(:Assignment, *val) }
- | ident
- { val[0] }
- ;
-
- var_decls : var_decl COMMA var_decls
- { [val[0]] + val[2] }
- | var_decl
- { [val[0]] }
- ;
-
- ##############################################################################
- # Literals
- ##############################################################################
-
- ident : IDENT
- { n(:Identifier, *val) }
- | REP
- { n(:Identifier, *val) }
- | IN
- { n(:Identifier, *val) }
- ;
-
- int : INT_DEC
- { n(:Integer, *val) }
- | INT_HEX
- { n(:Integer, *val) }
- | INT_OCT
- { n(:Integer, *val) }
- | FALSE
- { n(:Integer, *val) }
- | TRUE
- { n(:Integer, *val) }
- ;
-
- ip : int PERIOD int PERIOD int PERIOD int
- { n(:Ip, *val) }
-
- string : DATA
- { n(:String, *val) }
- | STRING
- { n(:String, *val) }
- ;
-
- undef : UNDEF
- { n(:Undefined, *val) }
- ;
-end
-
----- header ----
-
-require 'nasl/parser/tree'
-
-require 'nasl/parser/argument'
-require 'nasl/parser/array'
-require 'nasl/parser/assigment'
-require 'nasl/parser/block'
-require 'nasl/parser/break'
-require 'nasl/parser/call'
-require 'nasl/parser/comment'
-require 'nasl/parser/continue'
-require 'nasl/parser/decrement'
-require 'nasl/parser/empty'
-require 'nasl/parser/export'
-require 'nasl/parser/expression'
-require 'nasl/parser/for'
-require 'nasl/parser/foreach'
-require 'nasl/parser/function'
-require 'nasl/parser/global'
-require 'nasl/parser/identifier'
-require 'nasl/parser/if'
-require 'nasl/parser/import'
-require 'nasl/parser/include'
-require 'nasl/parser/increment'
-require 'nasl/parser/integer'
-require 'nasl/parser/ip'
-require 'nasl/parser/key_value_pair'
-require 'nasl/parser/list'
-require 'nasl/parser/local'
-require 'nasl/parser/lvalue'
-require 'nasl/parser/parameter'
-require 'nasl/parser/reference'
-require 'nasl/parser/repeat'
-require 'nasl/parser/repetition'
-require 'nasl/parser/return'
-require 'nasl/parser/string'
-require 'nasl/parser/undefined'
-require 'nasl/parser/while'
-
----- inner ----
-
-def n(cls, *args)
- begin
- Nasl.const_get(cls).new(@tree, *args)
- rescue
- puts "An exception occurred during the creation of a #{cls} instance."
- puts
- puts "The arguments passed to the constructor were:"
- puts args
- puts
- puts @tok.last.context
- puts
- raise
- end
-end
-
-def c(*args)
- n(:Comment, *args)
- args[1]
-end
-
-def on_error(type, value, stack)
- raise ParseException, "The language's grammar does not permit #{value.name} to appear here", value.context
-end
-
-def next_token
- @tok = @tkz.get_token
-
- if @first && @tok.first == :COMMENT
- n(:Comment, @tok.last)
- @tok = @tkz.get_token
- end
- @first = false
-
- return @tok
-end
-
-def parse(env, code, path)
- @first = true
- @tree = Tree.new(env)
- @tkz = Tokenizer.new(code, path)
- @tree.concat(do_parse)
-end
-
----- footer ----
diff --git a/test/racc/assets/newsyn.y b/test/racc/assets/newsyn.y
deleted file mode 100644
index 5b670c966a..0000000000
--- a/test/racc/assets/newsyn.y
+++ /dev/null
@@ -1,25 +0,0 @@
-
-class A
-
- preclow
- left preclow prechigh right left nonassoc token
- right preclow prechigh right left nonassoc token
- nonassoc preclow prechigh right left nonassoc token
- prechigh
-
- convert
- left 'a'
- right 'b'
- preclow 'c'
- nonassoc 'd'
- preclow 'e'
- prechigh 'f'
- end
-
-rule
-
- left: right nonassoc preclow prechigh
-
- right: A B C
-
-end
diff --git a/test/racc/assets/noend.y b/test/racc/assets/noend.y
deleted file mode 100644
index 5aa0670be0..0000000000
--- a/test/racc/assets/noend.y
+++ /dev/null
@@ -1,4 +0,0 @@
-class MyParser
-rule
-input: A B C
-end
diff --git a/test/racc/assets/nokogiri-css.y b/test/racc/assets/nokogiri-css.y
deleted file mode 100644
index 24dfbf3b1b..0000000000
--- a/test/racc/assets/nokogiri-css.y
+++ /dev/null
@@ -1,255 +0,0 @@
-class Nokogiri::CSS::Parser
-
-token FUNCTION INCLUDES DASHMATCH LBRACE HASH PLUS GREATER S STRING IDENT
-token COMMA NUMBER PREFIXMATCH SUFFIXMATCH SUBSTRINGMATCH TILDE NOT_EQUAL
-token SLASH DOUBLESLASH NOT EQUAL RPAREN LSQUARE RSQUARE HAS
-
-rule
- selector
- : selector COMMA simple_selector_1toN {
- result = [val.first, val.last].flatten
- }
- | prefixless_combinator_selector { result = val.flatten }
- | optional_S simple_selector_1toN { result = [val.last].flatten }
- ;
- combinator
- : PLUS { result = :DIRECT_ADJACENT_SELECTOR }
- | GREATER { result = :CHILD_SELECTOR }
- | TILDE { result = :FOLLOWING_SELECTOR }
- | DOUBLESLASH { result = :DESCENDANT_SELECTOR }
- | SLASH { result = :CHILD_SELECTOR }
- ;
- simple_selector
- : element_name hcap_0toN {
- result = if val[1].nil?
- val.first
- else
- Node.new(:CONDITIONAL_SELECTOR, [val.first, val[1]])
- end
- }
- | function
- | function pseudo {
- result = Node.new(:CONDITIONAL_SELECTOR, val)
- }
- | function attrib {
- result = Node.new(:CONDITIONAL_SELECTOR, val)
- }
- | hcap_1toN {
- result = Node.new(:CONDITIONAL_SELECTOR,
- [Node.new(:ELEMENT_NAME, ['*']), val.first]
- )
- }
- ;
- prefixless_combinator_selector
- : combinator simple_selector_1toN {
- result = Node.new(val.first, [nil, val.last])
- }
- ;
- simple_selector_1toN
- : simple_selector combinator simple_selector_1toN {
- result = Node.new(val[1], [val.first, val.last])
- }
- | simple_selector S simple_selector_1toN {
- result = Node.new(:DESCENDANT_SELECTOR, [val.first, val.last])
- }
- | simple_selector
- ;
- class
- : '.' IDENT { result = Node.new(:CLASS_CONDITION, [val[1]]) }
- ;
- element_name
- : namespaced_ident
- | '*' { result = Node.new(:ELEMENT_NAME, val) }
- ;
- namespaced_ident
- : namespace '|' IDENT {
- result = Node.new(:ELEMENT_NAME,
- [[val.first, val.last].compact.join(':')]
- )
- }
- | IDENT {
- name = @namespaces.key?('xmlns') ? "xmlns:#{val.first}" : val.first
- result = Node.new(:ELEMENT_NAME, [name])
- }
- ;
- namespace
- : IDENT { result = val[0] }
- |
- ;
- attrib
- : LSQUARE attrib_name attrib_val_0or1 RSQUARE {
- result = Node.new(:ATTRIBUTE_CONDITION,
- [val[1]] + (val[2] || [])
- )
- }
- | LSQUARE function attrib_val_0or1 RSQUARE {
- result = Node.new(:ATTRIBUTE_CONDITION,
- [val[1]] + (val[2] || [])
- )
- }
- | LSQUARE NUMBER RSQUARE {
- # Non standard, but hpricot supports it.
- result = Node.new(:PSEUDO_CLASS,
- [Node.new(:FUNCTION, ['nth-child(', val[1]])]
- )
- }
- ;
- attrib_name
- : namespace '|' IDENT {
- result = Node.new(:ELEMENT_NAME,
- [[val.first, val.last].compact.join(':')]
- )
- }
- | IDENT {
- # Default namespace is not applied to attributes.
- # So we don't add prefix "xmlns:" as in namespaced_ident.
- result = Node.new(:ELEMENT_NAME, [val.first])
- }
- ;
- function
- : FUNCTION RPAREN {
- result = Node.new(:FUNCTION, [val.first.strip])
- }
- | FUNCTION expr RPAREN {
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
- }
- | FUNCTION nth RPAREN {
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
- }
- | NOT expr RPAREN {
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
- }
- | HAS selector RPAREN {
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
- }
- ;
- expr
- : NUMBER COMMA expr { result = [val.first, val.last] }
- | STRING COMMA expr { result = [val.first, val.last] }
- | IDENT COMMA expr { result = [val.first, val.last] }
- | NUMBER
- | STRING
- | IDENT # even, odd
- {
- case val[0]
- when 'even'
- result = Node.new(:NTH, ['2','n','+','0'])
- when 'odd'
- result = Node.new(:NTH, ['2','n','+','1'])
- when 'n'
- result = Node.new(:NTH, ['1','n','+','0'])
- else
- # This is not CSS standard. It allows us to support this:
- # assert_xpath("//a[foo(., @href)]", @parser.parse('a:foo(@href)'))
- # assert_xpath("//a[foo(., @a, b)]", @parser.parse('a:foo(@a, b)'))
- # assert_xpath("//a[foo(., a, 10)]", @parser.parse('a:foo(a, 10)'))
- result = val
- end
- }
- ;
- nth
- : NUMBER IDENT PLUS NUMBER # 5n+3 -5n+3
- {
- if val[1] == 'n'
- result = Node.new(:NTH, val)
- else
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
- end
- }
- | IDENT PLUS NUMBER { # n+3, -n+3
- if val[0] == 'n'
- val.unshift("1")
- result = Node.new(:NTH, val)
- elsif val[0] == '-n'
- val[0] = 'n'
- val.unshift("-1")
- result = Node.new(:NTH, val)
- else
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
- end
- }
- | NUMBER IDENT { # 5n, -5n, 10n-1
- n = val[1]
- if n[0, 2] == 'n-'
- val[1] = 'n'
- val << "-"
- # b is contained in n as n is the string "n-b"
- val << n[2, n.size]
- result = Node.new(:NTH, val)
- elsif n == 'n'
- val << "+"
- val << "0"
- result = Node.new(:NTH, val)
- else
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
- end
- }
- ;
- pseudo
- : ':' function {
- result = Node.new(:PSEUDO_CLASS, [val[1]])
- }
- | ':' IDENT { result = Node.new(:PSEUDO_CLASS, [val[1]]) }
- ;
- hcap_0toN
- : hcap_1toN
- |
- ;
- hcap_1toN
- : attribute_id hcap_1toN {
- result = Node.new(:COMBINATOR, val)
- }
- | class hcap_1toN {
- result = Node.new(:COMBINATOR, val)
- }
- | attrib hcap_1toN {
- result = Node.new(:COMBINATOR, val)
- }
- | pseudo hcap_1toN {
- result = Node.new(:COMBINATOR, val)
- }
- | negation hcap_1toN {
- result = Node.new(:COMBINATOR, val)
- }
- | attribute_id
- | class
- | attrib
- | pseudo
- | negation
- ;
- attribute_id
- : HASH { result = Node.new(:ID, val) }
- ;
- attrib_val_0or1
- : eql_incl_dash IDENT { result = [val.first, val[1]] }
- | eql_incl_dash STRING { result = [val.first, val[1]] }
- |
- ;
- eql_incl_dash
- : EQUAL { result = :equal }
- | PREFIXMATCH { result = :prefix_match }
- | SUFFIXMATCH { result = :suffix_match }
- | SUBSTRINGMATCH { result = :substring_match }
- | NOT_EQUAL { result = :not_equal }
- | INCLUDES { result = :includes }
- | DASHMATCH { result = :dash_match }
- ;
- negation
- : NOT negation_arg RPAREN {
- result = Node.new(:NOT, [val[1]])
- }
- ;
- negation_arg
- : element_name
- | element_name hcap_1toN
- | hcap_1toN
- ;
- optional_S
- : S
- |
- ;
-end
-
----- header
-
-require 'nokogiri/css/parser_extras'
diff --git a/test/racc/assets/nonass.y b/test/racc/assets/nonass.y
deleted file mode 100644
index b9a35a2626..0000000000
--- a/test/racc/assets/nonass.y
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# nonassoc test
-#
-
-class P
-
-preclow
- nonassoc N
- left P
-prechigh
-
-rule
-
-target : exp
-exp : exp N exp
- | exp P exp
- | T
-
-end
-
----- inner
-
- def parse
- @src = [[:T,'T'], [:N,'N'], [:T,'T'], [:N,'N'], [:T,'T']]
- do_parse
- end
-
- def next_token
- @src.shift
- end
-
----- footer
-
-begin
- P.new.parse
-rescue ParseError
- exit 0
-else
- $stderr.puts 'parse error not raised: nonassoc not work'
- exit 1
-end
diff --git a/test/racc/assets/normal.y b/test/racc/assets/normal.y
deleted file mode 100644
index 96ae352c82..0000000000
--- a/test/racc/assets/normal.y
+++ /dev/null
@@ -1,27 +0,0 @@
-
-class Testp
-
- convert
- A '2'
- B '3'
- end
-
- prechigh
- left B
- preclow
-
-rule
-
-/* comment */
- target: A B C nonterminal { action "string" == /regexp/o
- 1 /= 3 }
- ; # comment
-
- nonterminal: A '+' B = A;
-
-/* end */
-end
-
----- driver
-
- # driver is old name
diff --git a/test/racc/assets/norule.y b/test/racc/assets/norule.y
deleted file mode 100644
index e50a4b3472..0000000000
--- a/test/racc/assets/norule.y
+++ /dev/null
@@ -1,4 +0,0 @@
-
-class A
-rule
-end
diff --git a/test/racc/assets/nullbug1.y b/test/racc/assets/nullbug1.y
deleted file mode 100644
index 4b267ba0ea..0000000000
--- a/test/racc/assets/nullbug1.y
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# number of conflicts must be ZERO.
-#
-
-class T
-
-rule
-
-targ : dummy
- | a b c
-
-dummy : V v
-
-V : E e
- | F f
- |
- ;
-
-E :
- ;
-
-F :
- ;
-
-end
diff --git a/test/racc/assets/nullbug2.y b/test/racc/assets/nullbug2.y
deleted file mode 100644
index 0c1d43bf3e..0000000000
--- a/test/racc/assets/nullbug2.y
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# number of conflicts must be ZERO.
-#
-
-class A
-rule
- targ: operation voidhead
- | variable
-
- voidhead : void B
- void:
-
- operation: A
- variable : A
-end
diff --git a/test/racc/assets/opal.y b/test/racc/assets/opal.y
deleted file mode 100644
index ae6a5a6bdd..0000000000
--- a/test/racc/assets/opal.y
+++ /dev/null
@@ -1,1807 +0,0 @@
-# Copyright (C) 2013 by Adam Beynon
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-class Opal::Parser
-
-token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
- kTHEN kELSIF kELSE kCASE kWHEN kWHILE kUNTIL kFOR kBREAK kNEXT
- kREDO kRETRY kIN kDO kDO_COND kDO_BLOCK kDO_LAMBDA kRETURN kYIELD kSUPER
- kSELF kNIL kTRUE kFALSE kAND kOR kNOT kIF_MOD kUNLESS_MOD kWHILE_MOD
- kUNTIL_MOD kRESCUE_MOD kALIAS kDEFINED klBEGIN klEND k__LINE__
- k__FILE__ k__ENCODING__ tIDENTIFIER tFID tGVAR tIVAR tCONSTANT
- tLABEL tCVAR tNTH_REF tBACK_REF tSTRING_CONTENT tINTEGER tFLOAT
- tREGEXP_END tUPLUS tUMINUS tUMINUS_NUM tPOW tCMP tEQ tEQQ tNEQ tGEQ tLEQ tANDOP
- tOROP tMATCH tNMATCH tJSDOT tDOT tDOT2 tDOT3 tAREF tASET tLSHFT tRSHFT
- tCOLON2 tCOLON3 tOP_ASGN tASSOC tLPAREN tLPAREN2 tRPAREN tLPAREN_ARG
- ARRAY_BEG tRBRACK tLBRACE tLBRACE_ARG tSTAR tSTAR2 tAMPER tAMPER2
- tTILDE tPERCENT tDIVIDE tPLUS tMINUS tLT tGT tPIPE tBANG tCARET
- tLCURLY tRCURLY tBACK_REF2 tSYMBEG tSTRING_BEG tXSTRING_BEG tREGEXP_BEG
- tWORDS_BEG tAWORDS_BEG tSTRING_DBEG tSTRING_DVAR tSTRING_END tSTRING
- tSYMBOL tNL tEH tCOLON tCOMMA tSPACE tSEMI tLAMBDA tLAMBEG
- tLBRACK2 tLBRACK tJSLBRACK tDSTAR
-
-prechigh
- right tBANG tTILDE tUPLUS
- right tPOW
- right tUMINUS_NUM tUMINUS
- left tSTAR2 tDIVIDE tPERCENT
- left tPLUS tMINUS
- left tLSHFT tRSHFT
- left tAMPER2
- left tPIPE tCARET
- left tGT tGEQ tLT tLEQ
- nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
- left tANDOP
- left tOROP
- nonassoc tDOT2 tDOT3
- right tEH tCOLON
- left kRESCUE_MOD
- right tEQL tOP_ASGN
- nonassoc kDEFINED
- right kNOT
- left kOR kAND
- nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
- nonassoc tLBRACE_ARG
- nonassoc tLOWEST
-preclow
-
-rule
-
- program: top_compstmt
-
- top_compstmt: top_stmts opt_terms
- {
- result = new_compstmt val[0]
- }
-
- top_stmts: # none
- {
- result = new_block
- }
- | top_stmt
- {
- result = new_block val[0]
- }
- | top_stmts terms top_stmt
- {
- val[0] << val[2]
- result = val[0]
- }
-
- top_stmt: stmt
- | klBEGIN tLCURLY top_compstmt tRCURLY
- {
- result = val[2]
- }
-
- bodystmt: compstmt opt_rescue opt_else opt_ensure
- {
- result = new_body(val[0], val[1], val[2], val[3])
- }
-
- compstmt: stmts opt_terms
- {
- result = new_compstmt val[0]
- }
-
- stmts: # none
- {
- result = new_block
- }
- | stmt
- {
- result = new_block val[0]
- }
- | stmts terms stmt
- {
- val[0] << val[2]
- result = val[0]
- }
-
- stmt: kALIAS fitem
- {
- lexer.lex_state = :expr_fname
- }
- fitem
- {
- result = new_alias(val[0], val[1], val[3])
- }
- | kALIAS tGVAR tGVAR
- {
- result = s(:valias, value(val[1]).to_sym, value(val[2]).to_sym)
- }
- | kALIAS tGVAR tBACK_REF
- | kALIAS tGVAR tNTH_REF
- {
- result = s(:valias, value(val[1]).to_sym, value(val[2]).to_sym)
- }
- | kUNDEF undef_list
- {
- result = val[1]
- }
- | stmt kIF_MOD expr_value
- {
- result = new_if(val[1], val[2], val[0], nil)
- }
- | stmt kUNLESS_MOD expr_value
- {
- result = new_if(val[1], val[2], nil, val[0])
- }
- | stmt kWHILE_MOD expr_value
- {
- result = new_while(val[1], val[2], val[0])
- }
- | stmt kUNTIL_MOD expr_value
- {
- result = new_until(val[1], val[2], val[0])
- }
- | stmt kRESCUE_MOD stmt
- {
- result = new_rescue_mod(val[1], val[0], val[2])
- }
- | klEND tLCURLY compstmt tRCURLY
- | lhs tEQL command_call
- {
- result = new_assign(val[0], val[1], val[2])
- }
- | mlhs tEQL command_call
- {
- result = s(:masgn, val[0], s(:to_ary, val[2]))
- }
- | var_lhs tOP_ASGN command_call
- {
- result = new_op_asgn val[1], val[0], val[2]
- }
- | primary_value tLBRACK2 aref_args tRBRACK tOP_ASGN command_call
- | primary_value tJSLBRACK aref_args tRBRACK tOP_ASGN command_call
- | primary_value tDOT tIDENTIFIER tOP_ASGN command_call
- {
- result = s(:op_asgn2, val[0], op_to_setter(val[2]), value(val[3]).to_sym, val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN command_call
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_call
- | backref tOP_ASGN command_call
- | lhs tEQL mrhs
- {
- result = new_assign val[0], val[1], s(:svalue, val[2])
- }
- | mlhs tEQL arg_value
- {
- result = s(:masgn, val[0], s(:to_ary, val[2]))
- }
- | mlhs tEQL mrhs
- {
- result = s(:masgn, val[0], val[2])
- }
- | expr
-
- expr: command_call
- | expr kAND expr
- {
- result = s(:and, val[0], val[2])
- }
- | expr kOR expr
- {
- result = s(:or, val[0], val[2])
- }
- | kNOT expr
- {
- result = new_unary_call(['!', []], val[1])
- }
- | tBANG command_call
- {
- result = new_unary_call(val[0], val[1])
- }
- | arg
-
- expr_value: expr
-
- command_call: command
- | block_command
- | kRETURN call_args
- {
- result = new_return(val[0], val[1])
- }
- | kBREAK call_args
- {
- result = new_break(val[0], val[1])
- }
- | kNEXT call_args
- {
- result = new_next(val[0], val[1])
- }
-
- block_command: block_call
- | block_call tJSDOT operation2 command_args
- | block_call tDOT operation2 command_args
- | block_call tCOLON2 operation2 command_args
-
- cmd_brace_block: tLBRACE_ARG opt_block_var compstmt tRCURLY
-
- command: operation command_args =tLOWEST
- {
- result = new_call(nil, val[0], val[1])
- }
- | operation command_args cmd_brace_block
- | primary_value tJSDOT operation2 command_args =tLOWEST
- {
- result = new_js_call(val[0], val[2], val[3])
- }
- | primary_value tJSDOT operation2 command_args cmd_brace_block
- | primary_value tDOT operation2 command_args =tLOWEST
- {
- result = new_call(val[0], val[2], val[3])
- }
- | primary_value tDOT operation2 command_args cmd_brace_block
- | primary_value tCOLON2 operation2 command_args =tLOWEST
- {
- result = new_call(val[0], val[2], val[3])
- }
- | primary_value tCOLON2 operation2 command_args cmd_brace_block
- | kSUPER command_args
- {
- result = new_super(val[0], val[1])
- }
- | kYIELD command_args
- {
- result = new_yield val[1]
- }
-
- mlhs: mlhs_basic
- {
- result = val[0]
- }
- | tLPAREN mlhs_entry tRPAREN
- {
- result = val[1]
- }
-
- mlhs_entry: mlhs_basic
- {
- result = val[0]
- }
- | tLPAREN mlhs_entry tRPAREN
- {
- result = val[1]
- }
-
- mlhs_basic: mlhs_head
- {
- result = val[0]
- }
- | mlhs_head mlhs_item
- {
- result = val[0] << val[1]
- }
- | mlhs_head tSTAR mlhs_node
- {
- result = val[0] << s(:splat, val[2])
- }
- | mlhs_head tSTAR mlhs_node tCOMMA mlhs_post
- | mlhs_head tSTAR
- {
- result = val[0] << s(:splat)
- }
- | mlhs_head tSTAR tCOMMA mlhs_post
- | tSTAR mlhs_node
- {
- result = s(:array, s(:splat, val[1]))
- }
- | tSTAR
- {
- result = s(:array, s(:splat))
- }
- | tSTAR tCOMMA mlhs_post
-
- mlhs_item: mlhs_node
- {
- result = val[0]
- }
- | tLPAREN mlhs_entry tRPAREN
- {
- result = val[1]
- }
-
- mlhs_head: mlhs_item tCOMMA
- {
- result = s(:array, val[0])
- }
- | mlhs_head mlhs_item tCOMMA
- {
- result = val[0] << val[1]
- }
-
- mlhs_post: mlhs_item
- | mlhs_post tCOMMA mlhs_item
-
- mlhs_node: variable
- {
- result = new_assignable val[0]
- }
- | primary_value tLBRACK2 aref_args tRBRACK
- {
- args = val[2] ? val[2] : []
- result = s(:attrasgn, val[0], :[]=, s(:arglist, *args))
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = new_call val[0], val[2], []
- }
- | primary_value tCOLON2 tIDENTIFIER
- | primary_value tDOT tCONSTANT
- | primary_value tCOLON2 tCONSTANT
- | tCOLON3 tCONSTANT
- | backref
-
- lhs: variable
- {
- result = new_assignable val[0]
- }
- | primary_value tJSLBRACK aref_args tRBRACK
- {
- result = new_js_attrasgn(val[0], val[2])
- }
- | primary_value tLBRACK2 aref_args tRBRACK
- {
- result = new_attrasgn(val[0], :[]=, val[2])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = new_attrasgn(val[0], op_to_setter(val[2]))
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = new_attrasgn(val[0], op_to_setter(val[2]))
- }
- | primary_value tDOT tCONSTANT
- {
- result = new_attrasgn(val[0], op_to_setter(val[2]))
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = new_colon2(val[0], val[1], val[2])
- }
- | tCOLON3 tCONSTANT
- {
- result = new_colon3(val[0], val[1])
- }
- | backref
-
- cname: tCONSTANT
-
- cpath: tCOLON3 cname
- {
- result = new_colon3(val[0], val[1])
- }
- | cname
- {
- result = new_const(val[0])
- }
- | primary_value tCOLON2 cname
- {
- result = new_colon2(val[0], val[1], val[2])
- }
-
- fname: tIDENTIFIER
- | tCONSTANT
- | tFID
- | op
- {
- lexer.lex_state = :expr_end
- result = val[0]
- }
- | reswords
- {
- lexer.lex_state = :expr_end
- result = val[0]
- }
-
- fitem: fname
- {
- result = new_sym(val[0])
- }
- | symbol
-
- undef_list: fitem
- {
- result = s(:undef, val[0])
- }
- | undef_list tCOMMA fitem
- {
- result = val[0] << val[2]
- }
-
- op: tPIPE | tCARET | tAMPER2 | tCMP | tEQ | tEQQ
- | tMATCH | tNMATCH | tGT | tGEQ | tLT | tLEQ
- | tNEQ | tLSHFT | tRSHFT | tPLUS | tMINUS | tSTAR2
- | tSTAR | tDIVIDE | tPERCENT | tPOW | tBANG | tTILDE
- | tUPLUS | tUMINUS | tAREF | tASET | tBACK_REF2
-
- reswords: k__LINE__ | k__FILE__ | klBEGIN | klEND | kALIAS | kAND
- | kBEGIN | kBREAK | kCASE | kCLASS | kDEF | kDEFINED
- | kDO | kELSE | kELSIF | kEND | kENSURE | kFALSE
- | kFOR | kIN | kMODULE | kNEXT | kNIL | kNOT
- | kOR | kREDO | kRESCUE | kRETRY | kRETURN | kSELF
- | kSUPER | kTHEN | kTRUE | kUNDEF | kWHEN | kYIELD
- | kIF_MOD | kUNLESS_MOD | kWHILE_MOD | kUNTIL_MOD | kRESCUE_MOD
- | kIF | kWHILE | kUNTIL | kUNLESS
-
- arg: lhs tEQL arg
- {
- result = new_assign(val[0], val[1], val[2])
- }
- | lhs tEQL arg kRESCUE_MOD arg
- {
- result = new_assign val[0], val[1], s(:rescue_mod, val[2], val[4])
- }
- | var_lhs tOP_ASGN arg
- {
- result = new_op_asgn val[1], val[0], val[2]
- }
- | primary_value tLBRACK2 aref_args tRBRACK tOP_ASGN arg
- {
- result = new_op_asgn1(val[0], val[2], val[4], val[5])
- }
- | primary_value tJSLBRACK aref_args tRBRACK tOP_ASGN arg
- {
- raise ".JS[...] #{val[4]} is not supported"
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN arg
- {
- result = s(:op_asgn2, val[0], op_to_setter(val[2]), value(val[3]).to_sym, val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN arg
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg
- | primary_value tCOLON2 tCONSTANT tOP_ASGN arg
- | tCOLON3 tCONSTANT tOP_ASGN arg
- | backref tOP_ASGN arg
- | arg tDOT2 arg
- {
- result = new_irange(val[0], val[1], val[2])
- }
- | arg tDOT3 arg
- {
- result = new_erange(val[0], val[1], val[2])
- }
- | arg tPLUS arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tMINUS arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tSTAR2 arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tDIVIDE arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tPERCENT arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tPOW arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | '-@NUM' tINTEGER tPOW arg
- {
- result = new_call new_binary_call(new_int(val[1]), val[2], val[3]), [:"-@", []], []
- }
- | '-@NUM' tFLOAT tPOW arg
- {
- result = new_call new_binary_call(new_float(val[1]), val[2], val[3]), [:"-@", []], []
- }
- | tUPLUS arg
- {
- result = new_call val[1], [:"+@", []], []
- if [:int, :float].include? val[1].type
- result = val[1]
- end
- }
- | tUMINUS arg
- {
- result = new_call val[1], [:"-@", []], []
- if val[1].type == :int
- val[1][1] = -val[1][1]
- result = val[1]
- elsif val[1].type == :float
- val[1][1] = -val[1][1].to_f
- result = val[1]
- end
- }
- | arg tPIPE arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tCARET arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tAMPER2 arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tCMP arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tGT arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tGEQ arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tLT arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tLEQ arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tEQ arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tEQQ arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tNEQ arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tMATCH arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tNMATCH arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | tBANG arg
- {
- result = new_unary_call(val[0], val[1])
- }
- | tTILDE arg
- {
- result = new_unary_call(val[0], val[1])
- }
- | arg tLSHFT arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tRSHFT arg
- {
- result = new_binary_call(val[0], val[1], val[2])
- }
- | arg tANDOP arg
- {
- result = new_and(val[0], val[1], val[2])
- }
- | arg tOROP arg
- {
- result = new_or(val[0], val[1], val[2])
- }
- | kDEFINED opt_nl arg
- {
- result = s(:defined, val[2])
- }
- | arg tEH arg tCOLON arg
- {
- result = new_if(val[1], val[0], val[2], val[4])
- }
- | primary
-
- arg_value: arg
-
- aref_args: none
- {
- result = nil
- }
- | command opt_nl
- {
- result = [val[0]]
- }
- | args trailer
- {
- result = val[0]
- }
- | args tCOMMA assocs trailer
- {
- val[0] << s(:hash, *val[2])
- result = val[0]
- }
- | assocs trailer
- {
- result = [s(:hash, *val[0])]
- }
-
- paren_args: tLPAREN2 opt_call_args rparen
- {
- result = val[1]
- }
-
- rparen: opt_nl tRPAREN
-
- opt_paren_args: none
- {
- result = []
- }
- | paren_args
-
- opt_call_args: none
- {
- result = []
- }
- | call_args
- | args tCOMMA
- {
- result = val[0]
- }
- | args tCOMMA assocs tCOMMA
- {
- result = val[0]
- result << new_hash(nil, val[2], nil)
- }
- | assocs tCOMMA
- {
- result = [new_hash(nil, val[0], nil)]
- }
-
- call_args: command
- {
- result = [val[0]]
- }
- | args opt_block_arg
- {
- result = val[0]
- add_block_pass val[0], val[1]
- }
- | assocs opt_block_arg
- {
- result = [new_hash(nil, val[0], nil)]
- add_block_pass result, val[1]
- }
- | args tCOMMA assocs opt_block_arg
- {
- result = val[0]
- result << new_hash(nil, val[2], nil)
- result << val[3] if val[3]
- }
- | block_arg
- {
- result = []
- add_block_pass result, val[0]
- }
-
- call_args2: arg_value tCOMMA args opt_block_arg
- | block_arg
-
- command_args: {
- lexer.cmdarg_push 1
- }
- open_args
- {
- lexer.cmdarg_pop
- result = val[1]
- }
-
- open_args: call_args
- | tLPAREN_ARG tRPAREN
- {
- result = nil
- }
- | tLPAREN_ARG call_args2 tRPAREN
- {
- result = val[1]
- }
-
- block_arg: tAMPER arg_value
- {
- result = new_block_pass(val[0], val[1])
- }
-
- opt_block_arg: tCOMMA block_arg
- {
- result = val[1]
- }
- | # none
- {
- result = nil
- }
-
- args: arg_value
- {
- result = [val[0]]
- }
- | tSTAR arg_value
- {
- result = [new_splat(val[0], val[1])]
- }
- | args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << new_splat(val[2], val[3])
- }
-
- mrhs: args tCOMMA arg_value
- {
- val[0] << val[2]
- result = s(:array, *val[0])
- }
- | args tCOMMA tSTAR arg_value
- {
- val[0] << s(:splat, val[3])
- result = s(:array, *val[0])
- }
- | tSTAR arg_value
- {
- result = s(:splat, val[1])
- }
-
- primary: literal
- | strings
- | xstring
- | regexp
- | words
- | awords
- | var_ref
- | backref
- | tFID
- | kBEGIN
- {
- result = lexer.line
- }
- bodystmt kEND
- {
- result = s(:begin, val[2])
- }
- | tLPAREN_ARG expr opt_nl tRPAREN
- {
- result = val[1]
- }
- | tLPAREN compstmt tRPAREN
- {
- result = new_paren(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = new_colon2(val[0], val[1], val[2])
- }
- | tCOLON3 tCONSTANT
- {
- result = new_colon3(val[0], val[1])
- }
- | primary_value tLBRACK2 aref_args tRBRACK
- {
- result = new_call val[0], [:[], []], val[2]
- }
- | primary_value tJSLBRACK aref_args tRBRACK
- {
- result = new_js_call val[0], [:[], []], val[2]
- }
- | tLBRACK aref_args tRBRACK
- {
- result = new_array(val[0], val[1], val[2])
- }
- | tLBRACE assoc_list tRCURLY
- {
- result = new_hash(val[0], val[1], val[2])
- }
- | kRETURN
- {
- result = new_return(val[0])
- }
- | kYIELD tLPAREN2 call_args tRPAREN
- {
- result = new_yield val[2]
- }
- | kYIELD tLPAREN2 tRPAREN
- {
- result = s(:yield)
- }
- | kYIELD
- {
- result = s(:yield)
- }
- | kDEFINED opt_nl tLPAREN2 expr tRPAREN
- {
- result = s(:defined, val[3])
- }
- | kNOT tLPAREN2 expr tRPAREN
- {
- result = new_unary_call(['!', []], val[2])
- }
- | kNOT tLPAREN2 tRPAREN
- {
- result = new_unary_call(['!', []], new_nil(val[0]))
- }
- | operation brace_block
- {
- result = new_call(nil, val[0], [])
- result << val[1]
- }
- | method_call
- | method_call brace_block
- {
- val[0] << val[1]
- result = val[0]
- }
- | tLAMBDA lambda
- {
- result = val[1]
- }
- | kIF expr_value then compstmt if_tail kEND
- {
- result = new_if(val[0], val[1], val[3], val[4])
- }
- | kUNLESS expr_value then compstmt opt_else kEND
- {
- result = new_if(val[0], val[1], val[4], val[3])
- }
- | kWHILE
- {
- lexer.cond_push 1
- result = lexer.line
- }
- expr_value do
- {
- lexer.cond_pop
- }
- compstmt kEND
- {
- result = s(:while, val[2], val[5])
- }
- | kUNTIL
- {
- lexer.cond_push 1
- result = lexer.line
- }
- expr_value do
- {
- lexer.cond_pop
- }
- compstmt kEND
- {
- result = s(:until, val[2], val[5])
- }
- | kCASE expr_value opt_terms case_body kEND
- {
- result = s(:case, val[1], *val[3])
- }
- | kCASE opt_terms case_body kEND
- {
- result = s(:case, nil, *val[2])
- }
- | kCASE opt_terms kELSE compstmt kEND
- {
- result = s(:case, nil, val[3])
- }
- | kFOR for_var kIN
- {
- lexer.cond_push 1
- result = lexer.line
- }
- expr_value do
- {
- lexer.cond_pop
- }
- compstmt kEND
- {
- result = s(:for, val[4], val[1], val[7])
- }
- | kCLASS cpath superclass
- {
- # ...
- }
- bodystmt kEND
- {
- result = new_class val[0], val[1], val[2], val[4], val[5]
- }
- | kCLASS tLSHFT
- {
- result = lexer.line
- }
- expr term
- {
- # ...
- }
- bodystmt kEND
- {
- result = new_sclass(val[0], val[3], val[6], val[7])
- }
- | kMODULE
- {
- result = lexer.line
- }
- cpath
- {
- # ...
- }
- bodystmt kEND
- {
- result = new_module(val[0], val[2], val[4], val[5])
- }
- | kDEF fname
- {
- push_scope
- lexer.lex_state = :expr_endfn
- }
- f_arglist bodystmt kEND
- {
- result = new_def(val[0], nil, val[1], val[3], val[4], val[5])
- pop_scope
- }
- | kDEF singleton dot_or_colon
- {
- lexer.lex_state = :expr_fname
- }
- fname
- {
- push_scope
- lexer.lex_state = :expr_endfn
- }
- f_arglist bodystmt kEND
- {
- result = new_def(val[0], val[1], val[4], val[6], val[7], val[8])
- pop_scope
- }
- | kBREAK
- {
- result = new_break(val[0])
- }
- | kNEXT
- {
- result = s(:next)
- }
- | kREDO
- {
- result = s(:redo)
- }
- | kRETRY
-
- primary_value: primary
-
- then: term
- | tCOLON
- | kTHEN
- | term kTHEN
-
- do: term
- | tCOLON
- | kDO_COND
-
- lambda: f_larglist lambda_body
- {
- result = new_call nil, [:lambda, []], []
- result << new_iter(val[0], val[1])
- }
-
- f_larglist: tLPAREN2 block_param tRPAREN
- {
- result = val[1]
- }
- | tLPAREN2 tRPAREN
- {
- result = nil
- }
- | block_param
- | none
-
- lambda_body: tLAMBEG compstmt tRCURLY
- {
- result = val[1]
- }
- | kDO_LAMBDA compstmt kEND
- {
- result = val[1]
- }
-
- if_tail: opt_else
- {
- result = val[0]
- }
- | kELSIF expr_value then compstmt if_tail
- {
- result = new_if(val[0], val[1], val[3], val[4])
- }
-
- opt_else: none
- | kELSE compstmt
- {
- result = val[1]
- }
-
- f_block_optarg: f_block_opt
- {
- result = s(:block, val[0])
- }
- | f_block_optarg tCOMMA f_block_opt
- {
- val[0] << val[2]
- result = val[0]
- }
-
- f_block_opt: tIDENTIFIER tEQL primary_value
- {
- result = new_assign(new_assignable(new_ident(
- val[0])), val[1], val[2])
- }
-
- opt_block_var: none
- | tPIPE tPIPE
- {
- result = nil
- }
- | tOROP
- {
- result = nil
- }
- | tPIPE block_param tPIPE
- {
- result = val[1]
- }
-
- block_args_tail: f_block_arg
- {
- result = val[0]
- }
-
-opt_block_args_tail: tCOMMA block_args_tail
- {
- result = val[1]
- }
- | none
- {
- nil
- }
-
- block_param: f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = new_block_args(val[0], val[2], val[4], val[5])
- }
- | f_arg tCOMMA f_block_optarg opt_block_args_tail
- {
- result = new_block_args(val[0], val[2], nil, val[3])
- }
- | f_arg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = new_block_args(val[0], nil, val[2], val[3])
- }
- | f_arg tCOMMA
- {
- result = new_block_args(val[0], nil, nil, nil)
- }
- | f_arg opt_block_args_tail
- {
- result = new_block_args(val[0], nil, nil, val[1])
- }
- | f_block_optarg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = new_block_args(nil, val[0], val[2], val[3])
- }
- | f_block_optarg opt_block_args_tail
- {
- result = new_block_args(nil, val[0], nil, val[1])
- }
- | f_rest_arg opt_block_args_tail
- {
- result = new_block_args(nil, nil, val[0], val[1])
- }
- | block_args_tail
- {
- result = new_block_args(nil, nil, nil, val[0])
- }
-
- do_block: kDO_BLOCK
- {
- push_scope :block
- result = lexer.line
- }
- opt_block_var compstmt kEND
- {
- result = new_iter val[2], val[3]
- pop_scope
- }
-
- block_call: command do_block
- {
- val[0] << val[1]
- result = val[0]
- }
- | block_call tJSDOT operation2 opt_paren_args
- | block_call tDOT operation2 opt_paren_args
- | block_call tCOLON2 operation2 opt_paren_args
-
- method_call: operation paren_args
- {
- result = new_call(nil, val[0], val[1])
- }
- | primary_value tDOT operation2 opt_paren_args
- {
- result = new_call(val[0], val[2], val[3])
- }
- | primary_value tJSDOT operation2 opt_paren_args
- {
- result = new_js_call(val[0], val[2], val[3])
- }
- | primary_value tDOT paren_args
- {
- result = new_call(val[0], [:call, []], val[2])
- }
- | primary_value tCOLON2 operation2 paren_args
- {
- result = new_call(val[0], val[2], val[3])
- }
- | primary_value tCOLON2 operation3
- {
- result = new_call(val[0], val[2])
- }
- | kSUPER paren_args
- {
- result = new_super(val[0], val[1])
- }
- | kSUPER
- {
- result = new_super(val[0], nil)
- }
-
- brace_block: tLCURLY
- {
- push_scope :block
- result = lexer.line
- }
- opt_block_var compstmt tRCURLY
- {
- result = new_iter val[2], val[3]
- pop_scope
- }
- | kDO
- {
- push_scope :block
- result = lexer.line
- }
- opt_block_var compstmt kEND
- {
- result = new_iter val[2], val[3]
- pop_scope
- }
-
- case_body: kWHEN
- {
- result = lexer.line
- }
- args then compstmt cases
- {
- part = s(:when, s(:array, *val[2]), val[4])
- result = [part]
- result.push(*val[5]) if val[5]
- }
-
- cases: opt_else
- {
- result = [val[0]]
- }
- | case_body
-
- opt_rescue: kRESCUE exc_list exc_var then compstmt opt_rescue
- {
- exc = val[1] || s(:array)
- exc << new_assign(val[2], val[2], s(:gvar, '$!'.intern)) if val[2]
- result = [s(:resbody, exc, val[4])]
- result.push val[5].first if val[5]
- }
- | # none
- {
- result = nil
- }
-
- exc_list: arg_value
- {
- result = s(:array, val[0])
- }
- | mrhs
- | none
-
- exc_var: tASSOC lhs
- {
- result = val[1]
- }
- | none
- {
- result = nil
- }
-
- opt_ensure: kENSURE compstmt
- {
- result = val[1].nil? ? s(:nil) : val[1]
- }
- | none
-
- literal: numeric
- | symbol
- | dsym
-
- strings: string
- {
- result = new_str val[0]
- }
-
- string: string1
- | string string1
- {
- result = str_append val[0], val[1]
- }
-
- string1: tSTRING_BEG string_contents tSTRING_END
- {
- result = val[1]
- }
- | tSTRING
- {
- result = s(:str, value(val[0]))
- }
-
- xstring: tXSTRING_BEG xstring_contents tSTRING_END
- {
- result = new_xstr(val[0], val[1], val[2])
- }
-
- regexp: tREGEXP_BEG xstring_contents tREGEXP_END
- {
- result = new_regexp val[1], val[2]
- }
-
- words: tWORDS_BEG tSPACE tSTRING_END
- {
- result = s(:array)
- }
- | tWORDS_BEG word_list tSTRING_END
- {
- result = val[1]
- }
-
- word_list: none
- {
- result = s(:array)
- }
- | word_list word tSPACE
- {
- part = val[1]
- part = s(:dstr, "", val[1]) if part.type == :evstr
- result = val[0] << part
- }
-
- word: string_content
- {
- result = val[0]
- }
- | word string_content
- {
- result = val[0].concat([val[1]])
- }
-
- awords: tAWORDS_BEG tSPACE tSTRING_END
- {
- result = s(:array)
- }
- | tAWORDS_BEG qword_list tSTRING_END
- {
- result = val[1]
- }
-
- qword_list: none
- {
- result = s(:array)
- }
- | qword_list tSTRING_CONTENT tSPACE
- {
- result = val[0] << s(:str, value(val[1]))
- }
-
- string_contents: none
- {
- result = nil
- }
- | string_contents string_content
- {
- result = str_append val[0], val[1]
- }
-
-xstring_contents: none
- {
- result = nil
- }
- | xstring_contents string_content
- {
- result = str_append val[0], val[1]
- }
-
- string_content: tSTRING_CONTENT
- {
- result = new_str_content(val[0])
- }
- | tSTRING_DVAR
- {
- result = lexer.strterm
- lexer.strterm = nil
- }
- string_dvar
- {
- lexer.strterm = val[1]
- result = new_evstr(val[2])
- }
- | tSTRING_DBEG
- {
- lexer.cond_push 0
- lexer.cmdarg_push 0
- result = lexer.strterm
- lexer.strterm = nil
- lexer.lex_state = :expr_beg
- }
- compstmt tRCURLY
- {
- lexer.strterm = val[1]
- lexer.cond_lexpop
- lexer.cmdarg_lexpop
- result = new_evstr(val[2])
- }
-
- string_dvar: tGVAR
- {
- result = new_gvar(val[0])
- }
- | tIVAR
- {
- result = new_ivar(val[0])
- }
- | tCVAR
- {
- result = new_cvar(val[0])
- }
- | backref
-
-
- symbol: tSYMBEG sym
- {
- result = new_sym(val[1])
- lexer.lex_state = :expr_end
- }
- | tSYMBOL
- {
- result = new_sym(val[0])
- }
-
- sym: fname
- | tIVAR
- | tGVAR
- | tCVAR
-
- dsym: tSYMBEG xstring_contents tSTRING_END
- {
- result = new_dsym val[1]
- }
-
- numeric: tINTEGER
- {
- result = new_int(val[0])
- }
- | tFLOAT
- {
- result = new_float(val[0])
- }
- | '-@NUM' tINTEGER =tLOWEST
- {
- result = negate_num(new_int(val[1]))
- }
- | '-@NUM' tFLOAT =tLOWEST
- {
- result = negate_num(new_float(val[1]))
- }
- | '+@NUM' tINTEGER =tLOWEST
- {
- result = new_int(val[1])
- }
- | '+@NUM' tFLOAT =tLOWEST
- {
- result = new_float(val[1])
- }
-
- variable: tIDENTIFIER
- {
- result = new_ident(val[0])
- }
- | tIVAR
- {
- result = new_ivar(val[0])
- }
- | tGVAR
- {
- result = new_gvar(val[0])
- }
- | tCONSTANT
- {
- result = new_const(val[0])
- }
- | tCVAR
- {
- result = new_cvar(val[0])
- }
- | kNIL
- {
- result = new_nil(val[0])
- }
- | kSELF
- {
- result = new_self(val[0])
- }
- | kTRUE
- {
- result = new_true(val[0])
- }
- | kFALSE
- {
- result = new_false(val[0])
- }
- | k__FILE__
- {
- result = new___FILE__(val[0])
- }
- | k__LINE__
- {
- result = new___LINE__(val[0])
- }
-
- var_ref: variable
- {
- result = new_var_ref(val[0])
- }
-
- var_lhs: variable
- {
- result = new_assignable val[0]
- }
-
- backref: tNTH_REF
- {
- result = s(:nth_ref, value(val[0]))
- }
- | tBACK_REF
-
- superclass: term
- {
- result = nil
- }
- | tLT expr_value term
- {
- result = val[1]
- }
- | error term
- {
- result = nil
- }
-
- f_arglist: tLPAREN2 f_args opt_nl tRPAREN
- {
- result = val[1]
- lexer.lex_state = :expr_beg
- }
- | f_args term
- {
- result = val[0]
- lexer.lex_state = :expr_beg
- }
-
- kwrest_mark: tPOW
- | tDSTAR
-
- f_kwrest: kwrest_mark tIDENTIFIER
- {
- result = new_kwrestarg(val[1])
- }
- | kwrest_mark
- {
- result = new_kwrestarg()
- }
-
- f_label: tLABEL
- {
- result = new_sym(val[0])
- }
-
- f_kw: f_label arg_value
- {
- result = new_kwoptarg(val[0], val[1])
- }
- | f_label
- {
- result = new_kwarg(val[0])
- }
-
- f_kwarg: f_kw
- {
- result = [val[0]]
- }
- | f_kwarg tCOMMA f_kw
- {
- result = val[0]
- result << val[2]
- }
-
- args_tail: f_kwarg tCOMMA f_kwrest opt_f_block_arg
- {
- result = new_args_tail(val[0], val[2], val[3])
- }
- | f_kwarg opt_f_block_arg
- {
- result = new_args_tail(val[0], nil, val[1])
- }
- | f_kwrest opt_f_block_arg
- {
- result = new_args_tail(nil, val[0], val[1])
- }
- | f_block_arg
- {
- result = new_args_tail(nil, nil, val[0])
- }
-
- opt_args_tail: tCOMMA args_tail
- {
- result = val[1]
- }
- | # none
- {
- result = new_args_tail(nil, nil, nil)
- }
-
- f_args: f_arg tCOMMA f_optarg tCOMMA f_rest_arg opt_args_tail
- {
- result = new_args(val[0], val[2], val[4], val[5])
- }
- | f_arg tCOMMA f_optarg opt_args_tail
- {
- result = new_args(val[0], val[2], nil, val[3])
- }
- | f_arg tCOMMA f_rest_arg opt_args_tail
- {
- result = new_args(val[0], nil, val[2], val[3])
- }
- | f_arg opt_args_tail
- {
- result = new_args(val[0], nil, nil, val[1])
- }
- | f_optarg tCOMMA f_rest_arg opt_args_tail
- {
- result = new_args(nil, val[0], val[2], val[3])
- }
- | f_optarg opt_args_tail
- {
- result = new_args(nil, val[0], nil, val[1])
- }
- | f_rest_arg opt_args_tail
- {
- result = new_args(nil, nil, val[0], val[1])
- }
- | args_tail
- {
- result = new_args(nil, nil, nil, val[0])
- }
- | # none
- {
- result = new_args(nil, nil, nil, nil)
- }
-
- f_norm_arg: f_bad_arg
- | tIDENTIFIER
- {
- result = value(val[0]).to_sym
- scope.add_local result
- }
-
- f_bad_arg: tCONSTANT
- {
- raise 'formal argument cannot be a constant'
- }
- | tIVAR
- {
- raise 'formal argument cannot be an instance variable'
- }
- | tCVAR
- {
- raise 'formal argument cannot be a class variable'
- }
- | tGVAR
- {
- raise 'formal argument cannot be a global variable'
- }
-
- f_arg_item: f_norm_arg
- {
- result = val[0]
- }
- | tLPAREN f_margs tRPAREN
- {
- result = val[1]
- }
-
- for_var: lhs
- | mlhs
-
- f_marg: f_norm_arg
- {
- result = s(:lasgn, val[0])
- }
- | tLPAREN f_margs tRPAREN
-
- f_marg_list: f_marg
- {
- result = s(:array, val[0])
- }
- | f_marg_list tCOMMA f_marg
- {
- val[0] << val[2]
- result = val[0]
- }
-
- f_margs: f_marg_list
- | f_marg_list tCOMMA tSTAR f_norm_arg
- | f_marg_list tCOMMA tSTAR
- | tSTAR f_norm_arg
- | tSTAR
-
- f_arg: f_arg_item
- {
- result = [val[0]]
- }
- | f_arg tCOMMA f_arg_item
- {
- val[0] << val[2]
- result = val[0]
- }
-
- f_opt: tIDENTIFIER tEQL arg_value
- {
- result = new_assign(new_assignable(new_ident(val[0])), val[1], val[2])
- }
-
- f_optarg: f_opt
- {
- result = s(:block, val[0])
- }
- | f_optarg tCOMMA f_opt
- {
- result = val[0]
- val[0] << val[2]
- }
-
- restarg_mark: tSTAR2
- | tSTAR
-
- f_rest_arg: restarg_mark tIDENTIFIER
- {
- result = "*#{value(val[1])}".to_sym
- }
- | restarg_mark
- {
- result = :"*"
- }
-
- blkarg_mark: tAMPER2
- | tAMPER
-
- f_block_arg: blkarg_mark tIDENTIFIER
- {
- result = "&#{value(val[1])}".to_sym
- }
-
- opt_f_block_arg: tCOMMA f_block_arg
- {
- result = val[1]
- }
- | # none
- {
- result = nil
- }
-
- singleton: var_ref
- {
- result = val[0]
- }
- | tLPAREN2 expr opt_nl tRPAREN
- {
- result = val[1]
- }
-
- assoc_list: # none
- {
- result = []
- }
- | assocs trailer
- {
- result = val[0]
- }
-
- assocs: assoc
- {
- result = val[0]
- }
- | assocs tCOMMA assoc
- {
- result = val[0].push(*val[2])
- }
-
- assoc: arg_value tASSOC arg_value
- {
- result = [val[0], val[2]]
- }
- | tLABEL arg_value
- {
- result = [new_sym(val[0]), val[1]]
- }
-
- operation: tIDENTIFIER
- | tCONSTANT
- | tFID
-
- operation2: tIDENTIFIER
- | tCONSTANT
- | tFID
- | op
-
- operation3: tIDENTIFIER
- | tFID
- | op
-
- dot_or_colon: tDOT
- | tCOLON2
-
- opt_terms: # none
- | terms
-
- opt_nl: # none
- | tNL
-
- trailer: # none
- | tNL
- | tCOMMA
-
- term: tSEMI
- | tNL
-
- terms: term
- | terms tSEMI
-
- none: # none
- {
- result = nil
- }
-end
-
----- inner
diff --git a/test/racc/assets/opt.y b/test/racc/assets/opt.y
deleted file mode 100644
index a011953a51..0000000000
--- a/test/racc/assets/opt.y
+++ /dev/null
@@ -1,123 +0,0 @@
-#
-# check options working
-#
-
-class Calcp
-
- prechigh
- left '*' '/'
- left '+' '-'
- preclow
-
- convert
- NUMBER 'Number'
- end
-
- options no_omit_action_call no_result_var
-
-rule
-
- target : exp | /* none */ { 0 } ;
-
- exp : exp '+' exp { chk(val[0] + val[2]) }
- | exp '-' exp { chk(val[0] - val[2]) }
- | exp '*' exp { chk(val[0] * val[2]) }
- | exp '/' exp { chk(val[0] / val[2]) }
- | '(' { $emb = true } exp ')'
- {
- raise 'must not happen' unless $emb
- val[2]
- }
- | '-' NUMBER { -val[1] }
- | NUMBER
- ;
-
-end
-
-----header
-
-class Number; end
-
-----inner
-
- def parse( src )
- @src = src
- do_parse
- end
-
- def next_token
- @src.shift
- end
-
- def initialize
- @yydebug = true
- end
-
- def chk( i )
- # p i
- i
- end
-
-----footer
-
-$parser = Calcp.new
-$test_number = 1
-
-def chk( src, ans )
- result = $parser.parse(src)
- raise "test #{$test_number} failed" unless result == ans
- $test_number += 1
-end
-
-chk(
- [ [Number, 9],
- [false, false],
- [false, false] ], 9
-)
-
-chk(
- [ [Number, 5],
- ['*', nil],
- [Number, 1],
- ['-', nil],
- [Number, 1],
- ['*', nil],
- [Number, 8],
- [false, false],
- [false, false] ], -3
-)
-
-chk(
- [ [Number, 5],
- ['+', nil],
- [Number, 2],
- ['-', nil],
- [Number, 5],
- ['+', nil],
- [Number, 2],
- ['-', nil],
- [Number, 5],
- [false, false],
- [false, false] ], -1
-)
-
-chk(
- [ ['-', nil],
- [Number, 4],
- [false, false],
- [false, false] ], -4
-)
-
-chk(
- [ [Number, 7],
- ['*', nil],
- ['(', nil],
- [Number, 4],
- ['+', nil],
- [Number, 3],
- [')', nil],
- ['-', nil],
- [Number, 9],
- [false, false],
- [false, false] ], 40
-)
diff --git a/test/racc/assets/percent.y b/test/racc/assets/percent.y
deleted file mode 100644
index 68d63583ca..0000000000
--- a/test/racc/assets/percent.y
+++ /dev/null
@@ -1,35 +0,0 @@
-class ScannerChecker
-rule
- target: A
- {
- i = 7
- i %= 4
- raise 'assert failed' unless i == 3
- tmp = %-This is percent string.-
- raise 'assert failed' unless tmp == 'This is percent string.'
- a = 5; b = 3
- assert_equal(2,(a%b)) #A
- # assert_equal(2,(a %b)) # is %-string
- assert_equal(2,(a% b)) #B
- assert_equal(2,(a % b)) #C
- }
-end
-
----- inner ----
-
- def parse
- @q = [[:A, 'A'], [false, '$']]
- do_parse
- end
-
- def next_token
- @q.shift
- end
-
- def assert_equal( expect, real )
- raise "expect #{expect.inspect} but #{real.inspect}" unless expect == real
- end
-
----- footer ----
-
-parser = ScannerChecker.new.parse
diff --git a/test/racc/assets/php_serialization.y b/test/racc/assets/php_serialization.y
deleted file mode 100644
index 99f78f2081..0000000000
--- a/test/racc/assets/php_serialization.y
+++ /dev/null
@@ -1,98 +0,0 @@
-# MIT License
-# See https://github.com/divoxx/ruby-php-serialization/blob/master/LICENSE.txt
-
-class PhpSerialization::Unserializer
-rule
-
- data : null ';' { @object = val[0] }
- | bool ';' { @object = val[0] }
- | integer ';' { @object = val[0] }
- | double ';' { @object = val[0] }
- | string ';' { @object = val[0] }
- | assoc_array { @object = val[0] }
- | object { @object = val[0] }
- ;
-
- null : 'N' { result = nil }
- ;
-
- bool : 'b' ':' NUMBER { result = Integer(val[2]) > 0 }
- ;
-
- integer : 'i' ':' NUMBER { result = Integer(val[2]) }
- ;
-
- double : 'd' ':' NUMBER { result = Float(val[2]) }
- ;
-
- string : 's' ':' NUMBER ':' STRING { result = val[4] }
- ;
-
- object : 'O' ':' NUMBER ':' STRING ':' NUMBER ':' '{' attribute_list '}'
- {
- if eval("defined?(#{val[4]})")
- result = Object.const_get(val[4]).new
-
- val[9].each do |(attr_name, value)|
- # Protected and private attributes will have a \0..\0 prefix
- attr_name = attr_name.gsub(/\A\\0[^\\]+\\0/, '')
- result.instance_variable_set("@#{attr_name}", value)
- end
- else
- klass_name = val[4].gsub(/^Struct::/, '')
- attr_names, values = [], []
-
- val[9].each do |(attr_name, value)|
- # Protected and private attributes will have a \0..\0 prefix
- attr_names << attr_name.gsub(/\A\\0[^\\]+\\0/, '')
- values << value
- end
-
- result = Struct.new(klass_name, *attr_names).new(*values)
- result.instance_variable_set("@_php_class", klass_name)
- end
- }
- ;
-
- attribute_list : attribute_list attribute { result = val[0] << val[1] }
- | { result = [] }
- ;
-
- attribute : data data { result = val }
- ;
-
- assoc_array : 'a' ':' NUMBER ':' '{' attribute_list '}'
- {
- # Checks if the keys are a sequence of integers
- idx = -1
- arr = val[5].all? { |(k,v)| k == (idx += 1) }
-
- if arr
- result = val[5].map { |(k,v)| v }
- else
- result = Hash[val[5]]
- end
- }
- ;
-
-end
-
----- header ----
-require 'php_serialization/tokenizer'
-
----- inner ----
- def initialize(tokenizer_klass = Tokenizer)
- @tokenizer_klass = tokenizer_klass
- end
-
- def run(string)
- @tokenizer = @tokenizer_klass.new(string)
- yyparse(@tokenizer, :each)
- return @object
- ensure
- @tokenizer = nil
- end
-
- def next_token
- @tokenizer.next_token
- end
diff --git a/test/racc/assets/recv.y b/test/racc/assets/recv.y
deleted file mode 100644
index b6e849dda9..0000000000
--- a/test/racc/assets/recv.y
+++ /dev/null
@@ -1,97 +0,0 @@
-# s/r 5, r/r 10
-class A
-rule
-
- content: RecvH received
- ;
-
- datetime: day
- ;
-
- msgid: '<' spec '>';
-
- day:
- | ATOM ','
- ;
-
- received: recvitem_list recvdatetime
- ;
-
- recvitem_list:
- | recvitem_list recvitem
- ;
-
- recvitem: by | via | with | for ;
-
- by:
- | BY domain
- ;
-
- via:
- | VIA ATOM
- ;
-
- with: WITH ATOM
- ;
-
- for:
- | FOR addr
- ;
-
- recvdatetime:
- | ';' datetime
- ;
-
- addr: mbox | group ;
-
- mboxes: mbox
- | mboxes ',' mbox
- ;
-
- mbox: spec
- | routeaddr
- | phrase routeaddr
- ;
-
- group: phrase ':' mboxes ';'
- ;
-
- routeaddr: '<' route spec '>'
- | '<' spec '>'
- ;
-
- route: at_domains ':' ;
-
- at_domains: '@' domain
- | at_domains ',' '@' domain
- ;
-
- spec: local '@' domain
- | local
- ;
-
- local: word
- | local '.' word
- ;
-
- domain: domword
- | domain '.' domword
- ;
-
- domword: atom
- | DOMLIT
- | DIGIT
- ;
-
- phrase: word
- | phrase word
- ;
-
- word: atom
- | QUOTED
- | DIGIT
- ;
-
- atom: ATOM | FROM | BY | VIA | WITH | ID | FOR ;
-
-end
diff --git a/test/racc/assets/riml.y b/test/racc/assets/riml.y
deleted file mode 100644
index 1d99b0fdb8..0000000000
--- a/test/racc/assets/riml.y
+++ /dev/null
@@ -1,665 +0,0 @@
-# Copyright (c) 2012-2014 by Luke Gruber
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-class Riml::Parser
-
-token IF ELSE ELSEIF THEN UNLESS END
-token WHILE UNTIL BREAK CONTINUE
-token TRY CATCH FINALLY
-token FOR IN
-token DEF DEF_BANG SPLAT_PARAM SPLAT_ARG CALL BUILTIN_COMMAND # such as echo "hi"
-token CLASS NEW DEFM DEFM_BANG SUPER
-token RIML_FILE_COMMAND RIML_CLASS_COMMAND
-token RETURN
-token NEWLINE
-token NUMBER
-token STRING_D STRING_S # single- and double-quoted
-token EX_LITERAL
-token REGEXP
-token TRUE FALSE
-token LET UNLET UNLET_BANG IDENTIFIER
-token DICT_VAL # like dict.key, 'key' is a DICT_VAL
-token SCOPE_MODIFIER SCOPE_MODIFIER_LITERAL SPECIAL_VAR_PREFIX
-token FINISH
-
-prechigh
- right '!'
- left '*' '/' '%'
- left '+' '-' '.'
- left '>' '>#' '>?' '<' '<#' '<?' '>=' '>=#' '>=?' '<=' '<=#' '<=?'
- left '==' '==?' '==#' '=~' '=~?' '=~#' '!~' '!~?' '!~#' '!=' '!=?' '!=#'
- left IS ISNOT
- left '&&'
- left '||'
- right '?'
- right '=' '+=' '-=' '.='
- left ','
- left IF UNLESS
-preclow
-
-# All rules
-rule
-
- Root:
- /* nothing */ { result = make_node(val) { |_| Riml::Nodes.new([]) } }
- | Terminator { result = make_node(val) { |_| Riml::Nodes.new([]) } }
- | Statements { result = val[0] }
- ;
-
- # any list of expressions
- Statements:
- Statement { result = make_node(val) { |v| Riml::Nodes.new([ v[0] ]) } }
- | Statements Terminator Statement { result = val[0] << val[2] }
- | Statements Terminator { result = val[0] }
- | Terminator Statements { result = make_node(val) { |v| Riml::Nodes.new(v[1]) } }
- ;
-
- # All types of expressions in Riml
- Statement:
- ExplicitCall { result = val[0] }
- | Def { result = val[0] }
- | Return { result = val[0] }
- | UnletVariable { result = val[0] }
- | ExLiteral { result = val[0] }
- | For { result = val[0] }
- | While { result = val[0] }
- | Until { result = val[0] }
- | Try { result = val[0] }
- | ClassDefinition { result = val[0] }
- | LoopKeyword { result = val[0] }
- | EndScript { result = val[0] }
- | RimlFileCommand { result = val[0] }
- | RimlClassCommand { result = val[0] }
- | MultiAssign { result = val[0] }
- | If { result = val[0] }
- | Unless { result = val[0] }
- | Expression { result = val[0] }
- ;
-
- Expression:
- ExpressionWithoutDictLiteral { result = val[0] }
- | Dictionary { result = val[0] }
- | Dictionary DictGetWithDotLiteral { result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) } }
- | BinaryOperator { result = val[0] }
- | Ternary { result = val[0] }
- | Assign { result = val[0] }
- | Super { result = val[0] }
- | '(' Expression ')' { result = make_node(val) { |v| Riml::WrapInParensNode.new(v[1]) } }
- ;
-
- ExpressionWithoutDictLiteral:
- UnaryOperator { result = val[0] }
- | DictGet { result = val[0] }
- | ListOrDictGet { result = val[0] }
- | AllVariableRetrieval { result = val[0] }
- | LiteralWithoutDictLiteral { result = val[0] }
- | Call { result = val[0] }
- | ObjectInstantiation { result = val[0] }
- | '(' ExpressionWithoutDictLiteral ')' { result = make_node(val) { |v| Riml::WrapInParensNode.new(v[1]) } }
- ;
-
- # for inside curly-brace variable names
- PossibleStringValue:
- String { result = val[0] }
- | DictGet { result = val[0] }
- | ListOrDictGet { result = val[0] }
- | AllVariableRetrieval { result = val[0] }
- | BinaryOperator { result = val[0] }
- | Ternary { result = val[0] }
- | Call { result = val[0] }
- ;
-
- Terminator:
- NEWLINE { result = nil }
- | ';' { result = nil }
- ;
-
- LiteralWithoutDictLiteral:
- Number { result = val[0] }
- | String { result = val[0] }
- | Regexp { result = val[0] }
- | List { result = val[0] }
- | ScopeModifierLiteral { result = val[0] }
- | TRUE { result = make_node(val) { |_| Riml::TrueNode.new } }
- | FALSE { result = make_node(val) { |_| Riml::FalseNode.new } }
- ;
-
- Number:
- NUMBER { result = make_node(val) { |v| Riml::NumberNode.new(v[0]) } }
- ;
-
- String:
- STRING_S { result = make_node(val) { |v| Riml::StringNode.new(v[0], :s) } }
- | STRING_D { result = make_node(val) { |v| Riml::StringNode.new(v[0], :d) } }
- | String STRING_S { result = make_node(val) { |v| Riml::StringLiteralConcatNode.new(v[0], Riml::StringNode.new(v[1], :s)) } }
- | String STRING_D { result = make_node(val) { |v| Riml::StringLiteralConcatNode.new(v[0], Riml::StringNode.new(v[1], :d)) } }
- ;
-
- Regexp:
- REGEXP { result = make_node(val) { |v| Riml::RegexpNode.new(v[0]) } }
- ;
-
- ScopeModifierLiteral:
- SCOPE_MODIFIER_LITERAL { result = make_node(val) { |v| Riml::ScopeModifierLiteralNode.new(v[0]) } }
- ;
-
- List:
- ListLiteral { result = make_node(val) { |v| Riml::ListNode.new(v[0]) } }
- ;
-
- ListUnpack:
- '[' ListItems ';' Expression ']' { result = make_node(val) { |v| Riml::ListUnpackNode.new(v[1] << v[3]) } }
- ;
-
- ListLiteral:
- '[' ListItems ']' { result = val[1] }
- | '[' ListItems ',' ']' { result = val[1] }
- ;
-
- ListItems:
- /* nothing */ { result = [] }
- | Expression { result = [val[0]] }
- | ListItems ',' Expression { result = val[0] << val[2] }
- ;
-
- Dictionary:
- DictionaryLiteral { result = make_node(val) { |v| Riml::DictionaryNode.new(v[0]) } }
- ;
-
- # {'key': 'value', 'key2': 'value2'}
- # Save as [['key', 'value'], ['key2', 'value2']] because ruby-1.8.7 offers
- # no guarantee for key-value pair ordering.
- DictionaryLiteral:
- '{' DictItems '}' { result = val[1] }
- | '{' DictItems ',' '}' { result = val[1] }
- ;
-
- # [[key, value], [key, value]]
- DictItems:
- /* nothing */ { result = [] }
- | DictItem { result = val }
- | DictItems ',' DictItem { result = val[0] << val[2] }
- ;
-
- # [key, value]
- DictItem:
- Expression ':' Expression { result = [val[0], val[2]] }
- ;
-
- DictGet:
- AllVariableRetrieval DictGetWithDot { result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) } }
- | ListOrDictGet DictGetWithDot { result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) } }
- | Call DictGetWithDot { result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) } }
- | '(' Expression ')' DictGetWithDot { result = make_node(val) { |v| Riml::DictGetDotNode.new(Riml::WrapInParensNode.new(v[1]), v[3]) } }
- ;
-
- ListOrDictGet:
- ExpressionWithoutDictLiteral ListOrDictGetWithBrackets { result = make_node(val) { |v| Riml::ListOrDictGetNode.new(v[0], v[1]) } }
- | '(' Expression ')' ListOrDictGetWithBrackets { result = make_node(val) { |v| Riml::ListOrDictGetNode.new(Riml::WrapInParensNode.new(v[1]), v[3]) } }
- ;
-
- ListOrDictGetAssign:
- ExpressionWithoutDictLiteral ListOrDictGetWithBrackets { result = make_node(val) { |v| Riml::ListOrDictGetNode.new(v[0], v[1]) } }
- ;
-
- ListOrDictGetWithBrackets:
- '[' Expression ']' { result = [val[1]] }
- | '[' SubList ']' { result = [val[1]] }
- | ListOrDictGetWithBrackets '[' Expression ']' { result = val[0] << val[2] }
- | ListOrDictGetWithBrackets '[' SubList ']' { result = val[0] << val[2] }
- ;
-
- SubList:
- Expression ':' Expression { result = make_node(val) { |v| Riml::SublistNode.new([v[0], Riml::LiteralNode.new(' : '), v[2]]) } }
- | Expression ':' { result = make_node(val) { |v| Riml::SublistNode.new([v[0], Riml::LiteralNode.new(' :')]) } }
- | ':' Expression { result = make_node(val) { |v| Riml::SublistNode.new([Riml::LiteralNode.new(': '), v[1]]) } }
- | ':' { result = make_node(val) { |_| Riml::SublistNode.new([Riml::LiteralNode.new(':')]) } }
- ;
-
- DictGetWithDot:
- DICT_VAL { result = [val[0]] }
- | DictGetWithDot DICT_VAL { result = val[0] << val[1] }
- ;
-
- DictGetWithDotLiteral:
- '.' IDENTIFIER { result = [val[1]] }
- | DictGetWithDotLiteral DICT_VAL { result = val[0] << val[1] }
- ;
-
- Call:
- Scope DefCallIdentifier '(' ArgList ')' { result = make_node(val) { |v| Riml::CallNode.new(v[0], v[1], v[3]) } }
- | DictGet '(' ArgList ')' { result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], v[2]) } }
- | BUILTIN_COMMAND '(' ArgList ')' { result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], v[2]) } }
- | BUILTIN_COMMAND ArgListWithoutNothing { result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], v[1]) } }
- | BUILTIN_COMMAND NEWLINE { result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], []) } }
- | CALL '(' ArgList ')' { result = make_node(val) { |v| Riml::ExplicitCallNode.new(nil, nil, v[2]) } }
- ;
-
- ObjectInstantiationCall:
- Scope DefCallIdentifier '(' ArgList ')' { result = make_node(val) { |v| Riml::CallNode.new(v[0], v[1], v[3]) } }
- | Scope DefCallIdentifier { result = make_node(val) { |v| Riml::CallNode.new(v[0], v[1], []) } }
- ;
-
- RimlFileCommand:
- RIML_FILE_COMMAND '(' ArgList ')' { result = make_node(val) { |v| Riml::RimlFileCommandNode.new(nil, v[0], v[2]) } }
- | RIML_FILE_COMMAND ArgList { result = make_node(val) { |v| Riml::RimlFileCommandNode.new(nil, v[0], v[1]) } }
- ;
-
- RimlClassCommand:
- RIML_CLASS_COMMAND '(' ClassArgList ')' { result = make_node(val) { |v| Riml::RimlClassCommandNode.new(nil, v[0], v[2]) } }
- | RIML_CLASS_COMMAND ClassArgList { result = make_node(val) { |v| Riml::RimlClassCommandNode.new(nil, v[0], v[1]) } }
- ;
-
- ClassArgList:
- Scope IDENTIFIER { result = ["#{val[0]}#{val[1]}"] }
- | String { result = val }
- | ClassArgList ',' Scope IDENTIFIER { result = val[0].concat ["#{val[2]}#{val[3]}"] }
- ;
-
- ExplicitCall:
- CALL Scope DefCallIdentifier '(' ArgList ')' { result = make_node(val) { |v| Riml::ExplicitCallNode.new(v[1], v[2], v[4]) } }
- | CALL DictGet '(' ArgList ')' { result = make_node(val) { |v| Riml::ExplicitCallNode.new(nil, v[1], v[3]) } }
- ;
-
- Scope:
- SCOPE_MODIFIER { result = val[0] }
- | /* nothing */ { result = nil }
- ;
-
- # [SID, scope_modifier]
- SIDAndScope:
- Scope { result = [ nil, val[0] ] }
- | '<' IDENTIFIER '>' Scope { result = [ make_node(val) { |v| Riml::SIDNode.new(v[1]) }, val[3] ] }
- ;
-
- ArgList:
- /* nothing */ { result = [] }
- | ArgListWithoutNothingWithSplat { result = val[0] }
- ;
-
- ArgListWithSplat:
- /* nothing */ { result = [] }
- | ArgListWithoutNothingWithSplat { result = val[0] }
- ;
-
- ArgListWithoutNothingWithSplat:
- Expression { result = val }
- | SPLAT_ARG Expression { result = [ make_node(val) { |v| Riml::SplatNode.new(v[1]) } ] }
- | ArgListWithoutNothingWithSplat "," Expression { result = val[0] << val[2] }
- | ArgListWithoutNothingWithSplat "," SPLAT_ARG Expression { result = val[0] << make_node(val) { |v| Riml::SplatNode.new(v[3]) } }
- ;
-
- ArgListWithoutNothing:
- Expression { result = val }
- | ArgListWithoutNothing "," Expression { result = val[0] << val[2] }
- ;
-
- BinaryOperator:
- Expression '||' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '&&' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- | Expression '==' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '==#' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '==?' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- # added by riml
- | Expression '===' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- | Expression '!=' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '!=#' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '!=?' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- | Expression '=~' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '=~#' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '=~?' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- | Expression '!~' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '!~#' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '!~?' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- | Expression '>' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '>#' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '>?' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- | Expression '>=' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '>=#' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '>=?' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- | Expression '<' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '<#' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '<?' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- | Expression '<=' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '<=#' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '<=?' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- | Expression '+' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '-' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '*' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '/' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '.' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression '%' Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
-
- | Expression IS Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- | Expression ISNOT Expression { result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) } }
- ;
-
- UnaryOperator:
- '!' Expression { result = make_node(val) { |v| Riml::UnaryOperatorNode.new(val[0], [val[1]]) } }
- | '+' Expression { result = make_node(val) { |v| Riml::UnaryOperatorNode.new(val[0], [val[1]]) } }
- | '-' Expression { result = make_node(val) { |v| Riml::UnaryOperatorNode.new(val[0], [val[1]]) } }
- ;
-
- # ['=', LHS, RHS]
- Assign:
- LET AssignExpression { result = make_node(val) { |v| Riml::AssignNode.new(v[1][0], v[1][1], v[1][2]) } }
- | AssignExpression { result = make_node(val) { |v| Riml::AssignNode.new(v[0][0], v[0][1], v[0][2]) } }
- ;
-
- MultiAssign:
- Assign ',' Assign { result = make_node(val) { |v| Riml::MultiAssignNode.new([v[0], v[2]]) } }
- | MultiAssign ',' Assign { val[0].assigns << val[2]; result = val[0] }
- ;
-
- # ['=', AssignLHS, Expression]
- AssignExpression:
- AssignLHS '=' Expression { result = [val[1], val[0], val[2]] }
- | AssignLHS '+=' Expression { result = [val[1], val[0], val[2]] }
- | AssignLHS '-=' Expression { result = [val[1], val[0], val[2]] }
- | AssignLHS '.=' Expression { result = [val[1], val[0], val[2]] }
- ;
-
- AssignLHS:
- AllVariableRetrieval { result = val[0] }
- | List { result = val[0] }
- | ListUnpack { result = val[0] }
- | DictGet { result = val[0] }
- | ListOrDictGetAssign { result = val[0] }
- ;
-
- # retrieving the value of a variable
- VariableRetrieval:
- SimpleVariableRetrieval { result = val[0] }
- | SPECIAL_VAR_PREFIX IDENTIFIER { result = make_node(val) { |v| Riml::GetSpecialVariableNode.new(v[0], v[1]) } }
- | ScopeModifierLiteral ListOrDictGetWithBrackets { result = make_node(val) { |v| Riml::GetVariableByScopeAndDictNameNode.new(v[0], v[1]) } }
- ;
-
- SimpleVariableRetrieval:
- Scope IDENTIFIER { result = make_node(val) { |v| Riml::GetVariableNode.new(v[0], v[1]) } }
- ;
-
- AllVariableRetrieval:
- VariableRetrieval { result = val[0] }
- | Scope CurlyBraceName { result = make_node(val) { |v| Riml::GetCurlyBraceNameNode.new(v[0], v[1]) } }
- ;
-
- UnletVariable:
- UNLET VariableRetrieval { result = make_node(val) { |v| Riml::UnletVariableNode.new('!', [ v[1] ]) } }
- | UNLET_BANG VariableRetrieval { result = make_node(val) { |v| Riml::UnletVariableNode.new('!', [ v[1] ]) } }
- | UnletVariable VariableRetrieval { result = val[0] << val[1] }
- ;
-
- CurlyBraceName:
- CurlyBraceVarPart { result = make_node(val) { |v| Riml::CurlyBraceVariable.new([ v[0] ]) } }
- | IDENTIFIER CurlyBraceName { result = make_node(val) { |v| Riml::CurlyBraceVariable.new([ Riml::CurlyBracePart.new(v[0]), v[1] ]) } }
- | CurlyBraceName IDENTIFIER { result = val[0] << make_node(val) { |v| Riml::CurlyBracePart.new(v[1]) } }
- | CurlyBraceName CurlyBraceVarPart { result = val[0] << val[1] }
- ;
-
- CurlyBraceVarPart:
- '{' PossibleStringValue '}' { result = make_node(val) { |v| Riml::CurlyBracePart.new(v[1]) } }
- | '{' PossibleStringValue CurlyBraceVarPart '}' { result = make_node(val) { |v| Riml::CurlyBracePart.new([v[1], v[2]]) } }
- | '{' CurlyBraceVarPart PossibleStringValue '}' { result = make_node(val) { |v| Riml::CurlyBracePart.new([v[1], v[2]]) } }
- ;
-
- # Method definition
- # [SID, scope_modifier, name, parameters, keyword, expressions]
- Def:
- FunctionType SIDAndScope DefCallIdentifier DefKeywords Block END { result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], [], v[3], v[4]) } }
- | FunctionType SIDAndScope DefCallIdentifier '(' ParamList ')' DefKeywords Block END { result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], v[4], v[6], v[7]) } }
- | FunctionType SIDAndScope DefCallIdentifier '(' SPLAT_PARAM ')' DefKeywords Block END { result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], [v[4]], v[6], v[7]) } }
- | FunctionType SIDAndScope DefCallIdentifier '(' ParamList ',' SPLAT_PARAM ')' DefKeywords Block END { result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], v[4] << v[6], v[8], v[9]) } }
- ;
-
- FunctionType:
- DEF { result = "DefNode" }
- | DEF_BANG { result = "DefNode" }
- | DEFM { result = "DefMethodNode" }
- ;
-
- DefCallIdentifier:
- # use '' for first argument instead of nil in order to avoid a double scope-modifier
- CurlyBraceName { result = make_node(val) { |v| Riml::GetCurlyBraceNameNode.new('', v[0]) } }
- | IDENTIFIER { result = val[0] }
- ;
-
- # Example: 'range', 'dict' or 'abort' after function definition
- DefKeywords:
- IDENTIFIER { result = [val[0]] }
- | DefKeywords IDENTIFIER { result = val[0] << val[1] }
- | /* nothing */ { result = nil }
- ;
-
- ParamList:
- /* nothing */ { result = [] }
- | IDENTIFIER { result = val }
- | DefaultParam { result = val }
- | ParamList ',' IDENTIFIER { result = val[0] << val[2] }
- | ParamList ',' DefaultParam { result = val[0] << val[2] }
- ;
-
- DefaultParam:
- IDENTIFIER '=' Expression { result = make_node(val) { |v| Riml::DefaultParamNode.new(v[0], v[2]) } }
- ;
-
- Return:
- RETURN Returnable { result = make_node(val) { |v| Riml::ReturnNode.new(v[1]) } }
- | RETURN Returnable IF Expression { result = make_node(val) { |v| Riml::IfNode.new(v[3], Nodes.new([ReturnNode.new(v[1])])) } }
- | RETURN Returnable UNLESS Expression { result = make_node(val) { |v| Riml::UnlessNode.new(v[3], Nodes.new([ReturnNode.new(v[1])])) } }
- ;
-
- Returnable:
- /* nothing */ { result = nil }
- | Expression { result = val[0] }
- ;
-
- EndScript:
- FINISH { result = make_node(val) { |_| Riml::FinishNode.new } }
- ;
-
- # [expression, expressions]
- If:
- IF Expression IfBlock END { result = make_node(val) { |v| Riml::IfNode.new(v[1], v[2]) } }
- | IF Expression THEN Expression END { result = make_node(val) { |v| Riml::IfNode.new(v[1], Riml::Nodes.new([v[3]])) } }
- | Expression IF Expression { result = make_node(val) { |v| Riml::IfNode.new(v[2], Riml::Nodes.new([v[0]])) } }
- ;
-
- Unless:
- UNLESS Expression IfBlock END { result = make_node(val) { |v| Riml::UnlessNode.new(v[1], v[2]) } }
- | UNLESS Expression THEN Expression END { result = make_node(val) { |v| Riml::UnlessNode.new(v[1], Riml::Nodes.new([v[3]])) } }
- | Expression UNLESS Expression { result = make_node(val) { |v| Riml::UnlessNode.new(v[2], Riml::Nodes.new([v[0]])) } }
- ;
-
- Ternary:
- Expression '?' Expression ':' Expression { result = make_node(val) { |v| Riml::TernaryOperatorNode.new([v[0], v[2], v[4]]) } }
- ;
-
- While:
- WHILE Expression Block END { result = make_node(val) { |v| Riml::WhileNode.new(v[1], v[2]) } }
- ;
-
- LoopKeyword:
- BREAK { result = make_node(val) { |_| Riml::BreakNode.new } }
- | CONTINUE { result = make_node(val) { |_| Riml::ContinueNode.new } }
- ;
-
- Until:
- UNTIL Expression Block END { result = make_node(val) { |v| Riml::UntilNode.new(v[1], v[2]) } }
- ;
-
- For:
- FOR SimpleVariableRetrieval IN Expression Block END { result = make_node(val) { |v| Riml::ForNode.new(v[1], v[3], v[4]) } }
- | FOR List IN Expression Block END { result = make_node(val) { |v| Riml::ForNode.new(v[1], v[3], v[4]) } }
- | FOR ListUnpack IN Expression Block END { result = make_node(val) { |v| Riml::ForNode.new(v[1], v[3], v[4]) } }
- ;
-
- Try:
- TRY Block END { result = make_node(val) { |v| Riml::TryNode.new(v[1], nil, nil) } }
- | TRY Block Catch END { result = make_node(val) { |v| Riml::TryNode.new(v[1], v[2], nil) } }
- | TRY Block Catch FINALLY Block END { result = make_node(val) { |v| Riml::TryNode.new(v[1], v[2], v[4]) } }
- ;
-
- Catch:
- /* nothing */ { result = nil }
- | CATCH Block { result = [ make_node(val) { |v| Riml::CatchNode.new(nil, v[1]) } ] }
- | CATCH Catchable Block { result = [ make_node(val) { |v| Riml::CatchNode.new(v[1], v[2]) } ] }
- | Catch CATCH Block { result = val[0] << make_node(val) { |v| Riml::CatchNode.new(nil, v[2]) } }
- | Catch CATCH Catchable Block { result = val[0] << make_node(val) { |v| Riml::CatchNode.new(v[2], v[3]) } }
- ;
-
- Catchable:
- Regexp { result = val[0] }
- | String { result = val[0] }
- ;
-
- # [expressions]
- # expressions list could contain an ElseNode, which contains expressions
- # itself
- Block:
- NEWLINE Statements { result = val[1] }
- | NEWLINE { result = make_node(val) { |_| Riml::Nodes.new([]) } }
- ;
-
- IfBlock:
- Block { result = val[0] }
- | NEWLINE Statements ElseBlock { result = val[1] << val[2] }
- | NEWLINE Statements ElseifBlock { result = val[1] << val[2] }
- | NEWLINE Statements ElseifBlock ElseBlock { result = val[1] << val[2] << val[3] }
- ;
-
- ElseBlock:
- ELSE NEWLINE Statements { result = make_node(val) { |v| Riml::ElseNode.new(v[2]) } }
- ;
-
- ElseifBlock:
- ELSEIF Expression NEWLINE Statements { result = make_node(val) { |v| Riml::Nodes.new([Riml::ElseifNode.new(v[1], v[3])]) } }
- | ElseifBlock ELSEIF Expression NEWLINE Statements { result = val[0] << make_node(val) { |v| Riml::ElseifNode.new(v[2], v[4]) } }
- ;
-
- ClassDefinition:
- CLASS Scope IDENTIFIER Block END { result = make_node(val) { |v| Riml::ClassDefinitionNode.new(v[1], v[2], nil, v[3]) } }
- | CLASS Scope IDENTIFIER '<' Scope IDENTIFIER Block END { result = make_node(val) { |v| Riml::ClassDefinitionNode.new(v[1], v[2], (v[4] || ClassDefinitionNode::DEFAULT_SCOPE_MODIFIER) + v[5], v[6]) } }
- ;
-
- ObjectInstantiation:
- NEW ObjectInstantiationCall { result = make_node(val) { |v| Riml::ObjectInstantiationNode.new(v[1]) } }
- ;
-
- Super:
- SUPER '(' ArgListWithSplat ')' { result = make_node(val) { |v| Riml::SuperNode.new(v[2], true) } }
- | SUPER { result = make_node(val) { |_| Riml::SuperNode.new([], false) } }
- ;
-
- ExLiteral:
- EX_LITERAL { result = make_node(val) { |v| Riml::ExLiteralNode.new(v[0]) } }
- ;
-end
-
----- header
- require File.expand_path("../lexer", __FILE__)
- require File.expand_path("../nodes", __FILE__)
- require File.expand_path("../errors", __FILE__)
- require File.expand_path("../ast_rewriter", __FILE__)
----- inner
- # This code will be put as-is in the parser class
-
- attr_accessor :ast_rewriter
- attr_writer :options
-
- # The Parser and AST_Rewriter share this same hash of options
- def options
- @options ||= {}
- end
-
- def self.ast_cache
- @ast_cache
- end
- @ast_cache = {}
-
- # parses tokens or code into output nodes
- def parse(object, ast_rewriter = Riml::AST_Rewriter.new, filename = nil, included = false)
- if (ast = self.class.ast_cache[filename])
- else
- if tokens?(object)
- @tokens = object
- elsif code?(object)
- @lexer = Riml::Lexer.new(object, filename, true)
- end
-
- begin
- ast = do_parse
- rescue Racc::ParseError => e
- raise unless @lexer
- if (invalid_token = @lexer.prev_token_is_keyword?)
- warning = "#{invalid_token.inspect} is a keyword, and cannot " \
- "be used as a variable name"
- end
- error_msg = e.message
- error_msg << "\nWARNING: #{warning}" if warning
- error = Riml::ParseError.new(error_msg, @lexer.filename, @lexer.lineno)
- raise error
- end
- self.class.ast_cache[filename] = ast if filename
- end
- @ast_rewriter ||= ast_rewriter
- return ast unless @ast_rewriter
- @ast_rewriter.ast = ast.dup
- @ast_rewriter.options ||= options
- @ast_rewriter.rewrite(filename, included)
- @ast_rewriter.ast
- end
-
- # get the next token from either the list of tokens provided, or
- # the lexer getting the next token
- def next_token
- return @tokens.shift unless @lexer
- token = @lexer.next_token
- if token && @lexer.parser_info
- @current_parser_info = token.pop
- end
- token
- end
-
- private
-
- def tokens?(object)
- Array === object
- end
-
- def code?(object)
- String === object
- end
-
- def make_node(racc_val)
- node = yield racc_val
- node.parser_info = @current_parser_info
- node
- end
diff --git a/test/racc/assets/rrconf.y b/test/racc/assets/rrconf.y
deleted file mode 100644
index baf9249a77..0000000000
--- a/test/racc/assets/rrconf.y
+++ /dev/null
@@ -1,14 +0,0 @@
-# 1 s/r conflict and 1 r/r conflict
-
-class A
-rule
-
-target: a
-
-a :
- | a list
-
-list :
- | list ITEM
-
-end
diff --git a/test/racc/assets/ruby18.y b/test/racc/assets/ruby18.y
deleted file mode 100644
index eceb253298..0000000000
--- a/test/racc/assets/ruby18.y
+++ /dev/null
@@ -1,1943 +0,0 @@
-# Copyright (c) 2013 Peter Zotov <whitequark@whitequark.org>
-#
-# Parts of the source are derived from ruby_parser:
-# Copyright (c) Ryan Davis, seattle.rb
-#
-# MIT License
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-class Parser::Ruby18
-
-token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
- kTHEN kELSIF kELSE kCASE kWHEN kWHILE kUNTIL kFOR kBREAK kNEXT
- kREDO kRETRY kIN kDO kDO_COND kDO_BLOCK kRETURN kYIELD kSUPER
- kSELF kNIL kTRUE kFALSE kAND kOR kNOT kIF_MOD kUNLESS_MOD kWHILE_MOD
- kUNTIL_MOD kRESCUE_MOD kALIAS kDEFINED klBEGIN klEND k__LINE__
- k__FILE__ tIDENTIFIER tFID tGVAR tIVAR tCONSTANT tCVAR tNTH_REF
- tBACK_REF tSTRING_CONTENT tINTEGER tFLOAT tREGEXP_END tUPLUS
- tUMINUS tUMINUS_NUM tPOW tCMP tEQ tEQQ tNEQ tGEQ tLEQ tANDOP
- tOROP tMATCH tNMATCH tDOT tDOT2 tDOT3 tAREF tASET tLSHFT tRSHFT
- tCOLON2 tCOLON3 tOP_ASGN tASSOC tLPAREN tLPAREN2 tRPAREN tLPAREN_ARG
- tLBRACK tLBRACK2 tRBRACK tLBRACE tLBRACE_ARG tSTAR tSTAR2 tAMPER tAMPER2
- tTILDE tPERCENT tDIVIDE tPLUS tMINUS tLT tGT tPIPE tBANG tCARET
- tLCURLY tRCURLY tBACK_REF2 tSYMBEG tSTRING_BEG tXSTRING_BEG tREGEXP_BEG
- tWORDS_BEG tQWORDS_BEG tSTRING_DBEG tSTRING_DVAR tSTRING_END tSTRING
- tSYMBOL tREGEXP_OPT tNL tEH tCOLON tCOMMA tSPACE tSEMI
-
-prechigh
- right tBANG tTILDE tUPLUS
- right tPOW
- right tUMINUS_NUM tUMINUS
- left tSTAR2 tDIVIDE tPERCENT
- left tPLUS tMINUS
- left tLSHFT tRSHFT
- left tAMPER2
- left tPIPE tCARET
- left tGT tGEQ tLT tLEQ
- nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
- left tANDOP
- left tOROP
- nonassoc tDOT2 tDOT3
- right tEH tCOLON
- left kRESCUE_MOD
- right tEQL tOP_ASGN
- nonassoc kDEFINED
- right kNOT
- left kOR kAND
- nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
- nonassoc tLBRACE_ARG
- nonassoc tLOWEST
-preclow
-
-rule
-
- program: compstmt
- {
- result = val[0]
- }
-
- bodystmt: compstmt opt_rescue opt_else opt_ensure
- {
- rescue_bodies = val[1]
- else_t, else_ = val[2]
- ensure_t, ensure_ = val[3]
-
- if rescue_bodies.empty? && !else_.nil?
- diagnostic :warning, :useless_else, nil, else_t
- end
-
- result = @builder.begin_body(val[0],
- rescue_bodies,
- else_t, else_,
- ensure_t, ensure_)
- }
-
- compstmt: stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- stmts: # nothing
- {
- result = []
- }
- | stmt
- {
- result = [ val[0] ]
- }
- | error stmt
- {
- result = [ val[1] ]
- }
- | stmts terms stmt
- {
- result = val[0] << val[2]
- }
-
- stmt: kALIAS fitem
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = @builder.alias(val[0], val[1], val[3])
- }
- | kALIAS tGVAR tGVAR
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.gvar(val[2]))
- }
- | kALIAS tGVAR tBACK_REF
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.back_ref(val[2]))
- }
- | kALIAS tGVAR tNTH_REF
- {
- diagnostic :error, :nth_ref_alias, nil, val[2]
- }
- | kUNDEF undef_list
- {
- result = @builder.undef_method(val[0], val[1])
- }
- | stmt kIF_MOD expr_value
- {
- result = @builder.condition_mod(val[0], nil,
- val[1], val[2])
- }
- | stmt kUNLESS_MOD expr_value
- {
- result = @builder.condition_mod(nil, val[0],
- val[1], val[2])
- }
- | stmt kWHILE_MOD expr_value
- {
- result = @builder.loop_mod(:while, val[0], val[1], val[2])
- }
- | stmt kUNTIL_MOD expr_value
- {
- result = @builder.loop_mod(:until, val[0], val[1], val[2])
- }
- | stmt kRESCUE_MOD stmt
- {
- rescue_body = @builder.rescue_body(val[1],
- nil, nil, nil,
- nil, val[2])
-
- result = @builder.begin_body(val[0], [ rescue_body ])
- }
- | klBEGIN tLCURLY compstmt tRCURLY
- {
- if in_def?
- diagnostic :error, :begin_in_method, nil, val[0]
- end
-
- result = @builder.preexe(val[0], val[1], val[2], val[3])
- }
- | klEND tLCURLY compstmt tRCURLY
- {
- result = @builder.postexe(val[0], val[1], val[2], val[3])
- }
- | lhs tEQL command_call
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | mlhs tEQL command_call
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN command_call
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | primary_value tLBRACK2 aref_args tRBRACK tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | backref tOP_ASGN command_call
- {
- @builder.op_assign(val[0], val[1], val[2])
- }
- | lhs tEQL mrhs
- {
- result = @builder.assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
- }
- | mlhs tEQL arg_value
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | mlhs tEQL mrhs
- {
- result = @builder.multi_assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
- }
- | expr
-
- expr: command_call
- | expr kAND expr
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | expr kOR expr
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kNOT expr
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | tBANG command_call
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | arg
-
- expr_value: expr
-
- command_call: command
- | block_command
- | kRETURN call_args
- {
- result = @builder.keyword_cmd(:return, val[0],
- nil, val[1], nil)
- }
- | kBREAK call_args
- {
- result = @builder.keyword_cmd(:break, val[0],
- nil, val[1], nil)
- }
- | kNEXT call_args
- {
- result = @builder.keyword_cmd(:next, val[0],
- nil, val[1], nil)
- }
-
- block_command: block_call
- | block_call tDOT operation2 command_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | block_call tCOLON2 operation2 command_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
-
- cmd_brace_block: tLBRACE_ARG
- {
- @static_env.extend_dynamic
- }
- opt_block_var compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- command: operation command_args =tLOWEST
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
- }
- | operation command_args cmd_brace_block
- {
- lparen_t, args, rparen_t = val[1]
- method_call = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
-
- begin_t, block_args, body, end_t = val[2]
- result = @builder.block(method_call,
- begin_t, block_args, body, end_t)
- }
- | primary_value tDOT operation2 command_args =tLOWEST
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- }
- | primary_value tDOT operation2 command_args cmd_brace_block
- {
- lparen_t, args, rparen_t = val[3]
- method_call = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- begin_t, block_args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, block_args, body, end_t)
- }
- | primary_value tCOLON2 operation2 command_args =tLOWEST
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation2 command_args cmd_brace_block
- {
- lparen_t, args, rparen_t = val[3]
- method_call = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- begin_t, block_args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, block_args, body, end_t)
- }
- | kSUPER command_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:super, val[0],
- lparen_t, args, rparen_t)
- }
- | kYIELD command_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:yield, val[0],
- lparen_t, args, rparen_t)
- }
-
- mlhs: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_entry tRPAREN
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_entry: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_entry tRPAREN
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- mlhs_basic: mlhs_head
- {
- result = val[0]
- }
- | mlhs_head mlhs_item
- {
- result = val[0] << val[1]
- }
- | mlhs_head tSTAR mlhs_node
- {
- result = val[0] << @builder.splat(val[1], val[2])
- }
- | mlhs_head tSTAR
- {
- result = val[0] << @builder.splat(val[1])
- }
- | tSTAR mlhs_node
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | tSTAR
- {
- result = [ @builder.splat(val[0]) ]
- }
-
- mlhs_item: mlhs_node
- | tLPAREN mlhs_entry tRPAREN
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_head: mlhs_item tCOMMA
- {
- result = [ val[0] ]
- }
- | mlhs_head mlhs_item tCOMMA
- {
- result = val[0] << val[1]
- }
-
- mlhs_node: variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 aref_args tRBRACK
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- lhs: variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 aref_args tRBRACK
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- cname: tIDENTIFIER
- {
- diagnostic :error, :module_name_const, nil, val[0]
- }
- | tCONSTANT
-
- cpath: tCOLON3 cname
- {
- result = @builder.const_global(val[0], val[1])
- }
- | cname
- {
- result = @builder.const(val[0])
- }
- | primary_value tCOLON2 cname
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
-
- fname: tIDENTIFIER | tCONSTANT | tFID
- | op
- | reswords
-
- fsym: fname
- {
- result = @builder.symbol(val[0])
- }
- | symbol
-
- fitem: fsym
- | dsym
-
- undef_list: fitem
- {
- result = [ val[0] ]
- }
- | undef_list tCOMMA
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = val[0] << val[3]
- }
-
- op: tPIPE | tCARET | tAMPER2 | tCMP | tEQ | tEQQ
- | tMATCH | tGT | tGEQ | tLT | tLEQ | tLSHFT
- | tRSHFT | tPLUS | tMINUS | tSTAR2 | tSTAR | tDIVIDE
- | tPERCENT | tPOW | tTILDE | tUPLUS | tUMINUS | tAREF
- | tASET | tBACK_REF2
-
- reswords: k__LINE__ | k__FILE__ | klBEGIN | klEND | kALIAS | kAND
- | kBEGIN | kBREAK | kCASE | kCLASS | kDEF | kDEFINED
- | kDO | kELSE | kELSIF | kEND | kENSURE | kFALSE
- | kFOR | kIN | kMODULE | kNEXT | kNIL | kNOT
- | kOR | kREDO | kRESCUE | kRETRY | kRETURN | kSELF
- | kSUPER | kTHEN | kTRUE | kUNDEF | kWHEN | kYIELD
- | kIF | kUNLESS | kWHILE | kUNTIL
-
- arg: lhs tEQL arg
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | lhs tEQL arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.assign(val[0], val[1], rescue_)
- }
- | var_lhs tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | primary_value tLBRACK2 aref_args tRBRACK tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN arg
- {
- diagnostic :error, :dynamic_const, nil, val[2], [ val[3] ]
- }
- | tCOLON3 tCONSTANT tOP_ASGN arg
- {
- diagnostic :error, :dynamic_const, nil, val[1], [ val[2] ]
- }
- | backref tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | arg tDOT2 arg
- {
- result = @builder.range_inclusive(val[0], val[1], val[2])
- }
- | arg tDOT3 arg
- {
- result = @builder.range_exclusive(val[0], val[1], val[2])
- }
- | arg tPLUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMINUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tSTAR2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tDIVIDE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPERCENT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPOW arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tUMINUS_NUM tINTEGER tPOW arg
- {
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- @builder.integer(val[1]),
- val[2], val[3]))
- }
- | tUMINUS_NUM tFLOAT tPOW arg
- {
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- @builder.float(val[1]),
- val[2], val[3]))
- }
- | tUPLUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | tUMINUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tPIPE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCARET arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tAMPER2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCMP arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tNEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMATCH arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tNMATCH arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tBANG arg
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | tTILDE arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tLSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tRSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tANDOP arg
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | arg tOROP arg
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kDEFINED opt_nl arg
- {
- result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)
- }
- | arg tEH arg tCOLON arg
- {
- result = @builder.ternary(val[0], val[1],
- val[2], val[3], val[4])
- }
- | primary
-
- arg_value: arg
-
- aref_args: none
- | command opt_nl
- {
- result = [ val[0] ]
- }
- | args trailer
- {
- result = val[0]
- }
- | args tCOMMA tSTAR arg opt_nl
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
- | assocs trailer
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- }
- | tSTAR arg opt_nl
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
-
- paren_args: tLPAREN2 none tRPAREN
- {
- result = [ val[0], [], val[2] ]
- }
- | tLPAREN2 call_args opt_nl tRPAREN
- {
- result = [ val[0], val[1], val[3] ]
- }
- | tLPAREN2 block_call opt_nl tRPAREN
- {
- result = [ val[0], [ val[1] ], val[3] ]
- }
- | tLPAREN2 args tCOMMA block_call opt_nl tRPAREN
- {
- result = [ val[0], val[1] << val[3], val[5] ]
- }
-
- opt_paren_args: # nothing
- {
- result = [ nil, [], nil ]
- }
- | paren_args
-
- call_args: command
- {
- result = [ val[0] ]
- }
- | args opt_block_arg
- {
- result = val[0].concat(val[1])
- }
- | args tCOMMA tSTAR arg_value opt_block_arg
- {
- result = val[0].concat(
- [ @builder.splat(val[2], val[3]),
- *val[4] ])
- }
- | assocs opt_block_arg
- {
- result = [ @builder.associate(nil, val[0], nil),
- *val[1] ]
- }
- | assocs tCOMMA tSTAR arg_value opt_block_arg
- {
- result = [ @builder.associate(nil, val[0], nil),
- @builder.splat(val[2], val[3]),
- *val[4] ]
- }
- | args tCOMMA assocs opt_block_arg
- {
- result = val[0].concat(
- [ @builder.associate(nil, val[2], nil),
- *val[3] ])
- }
- | args tCOMMA assocs tCOMMA tSTAR arg opt_block_arg
- {
- result = val[0].concat(
- [ @builder.associate(nil, val[2], nil),
- @builder.splat(val[4], val[5]),
- *val[6] ])
- }
- | tSTAR arg_value opt_block_arg
- {
- result = [ @builder.splat(val[0], val[1]),
- *val[2] ]
- }
- | block_arg
- {
- result = [ val[0] ]
- }
-
- call_args2: arg_value tCOMMA args opt_block_arg
- {
- result = [ val[0], *val[2].concat(val[3]) ]
- }
- | arg_value tCOMMA block_arg
- {
- result = [ val[0], val[2] ]
- }
- | arg_value tCOMMA tSTAR arg_value opt_block_arg
- {
- result = [ val[0],
- @builder.splat(val[2], val[3]),
- *val[4] ]
- }
- | arg_value tCOMMA args tCOMMA tSTAR arg_value opt_block_arg
- {
- result = [ val[0],
- *val[2].
- push(@builder.splat(val[4], val[5])).
- concat(val[6]) ]
- }
- | assocs opt_block_arg
- {
- result = [ @builder.associate(nil, val[0], nil),
- *val[1] ]
- }
- | assocs tCOMMA tSTAR arg_value opt_block_arg
- {
- result = [ @builder.associate(nil, val[0], nil),
- @builder.splat(val[2], val[3]),
- *val[4] ]
- }
- | arg_value tCOMMA assocs opt_block_arg
- {
- result = [ val[0],
- @builder.associate(nil, val[2], nil),
- *val[3] ]
- }
- | arg_value tCOMMA args tCOMMA assocs opt_block_arg
- {
- result = [ val[0],
- *val[2].
- push(@builder.associate(nil, val[4], nil)).
- concat(val[5]) ]
- }
- | arg_value tCOMMA assocs tCOMMA tSTAR arg_value opt_block_arg
- {
- result = [ val[0],
- @builder.associate(nil, val[2], nil),
- @builder.splat(val[4], val[5]),
- *val[6] ]
- }
- | arg_value tCOMMA args tCOMMA assocs tCOMMA tSTAR arg_value opt_block_arg
- {
- result = [ val[0],
- *val[2].
- push(@builder.associate(nil, val[4], nil)).
- push(@builder.splat(val[6], val[7])).
- concat(val[8]) ]
- }
- | tSTAR arg_value opt_block_arg
- {
- result = [ @builder.splat(val[0], val[1]),
- *val[2] ]
- }
- | block_arg
- {
- result = [ val[0] ]
- }
-
- command_args: {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.push(true)
- }
- open_args
- {
- @lexer.cmdarg = val[0]
-
- result = val[1]
- }
-
- open_args: call_args
- {
- result = [ nil, val[0], nil ]
- }
- | tLPAREN_ARG
- {
- @lexer.state = :expr_endarg
- }
- tRPAREN
- {
- result = [ val[0], [], val[2] ]
- }
- | tLPAREN_ARG call_args2
- {
- @lexer.state = :expr_endarg
- }
- tRPAREN
- {
- result = [ val[0], val[1], val[3] ]
- }
-
- block_arg: tAMPER arg_value
- {
- result = @builder.block_pass(val[0], val[1])
- }
-
- opt_block_arg: tCOMMA block_arg
- {
- result = [ val[1] ]
- }
- | # nothing
- {
- result = []
- }
-
- args: arg_value
- {
- result = [ val[0] ]
- }
- | args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
-
- mrhs: args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
-
- primary: literal
- | strings
- | xstring
- | regexp
- | words
- | qwords
- | var_ref
- | backref
- | tFID
- {
- result = @builder.call_method(nil, nil, val[0])
- }
- | kBEGIN bodystmt kEND
- {
- result = @builder.begin_keyword(val[0], val[1], val[2])
- }
- | tLPAREN_ARG expr
- {
- @lexer.state = :expr_endarg
- }
- opt_nl tRPAREN
- {
- result = @builder.begin(val[0], val[1], val[4])
- }
- | tLPAREN compstmt tRPAREN
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.const_global(val[0], val[1])
- }
- | primary_value tLBRACK2 aref_args tRBRACK
- {
- result = @builder.index(val[0], val[1], val[2], val[3])
- }
- | tLBRACK aref_args tRBRACK
- {
- result = @builder.array(val[0], val[1], val[2])
- }
- | tLBRACE assoc_list tRCURLY
- {
- result = @builder.associate(val[0], val[1], val[2])
- }
- | kRETURN
- {
- result = @builder.keyword_cmd(:return, val[0])
- }
- | kYIELD tLPAREN2 call_args tRPAREN
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])
- }
- | kYIELD tLPAREN2 tRPAREN
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])
- }
- | kYIELD
- {
- result = @builder.keyword_cmd(:yield, val[0])
- }
- | kDEFINED opt_nl tLPAREN2 expr tRPAREN
- {
- result = @builder.keyword_cmd(:defined?, val[0],
- val[2], [ val[3] ], val[4])
- }
- | operation brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0])
-
- begin_t, args, body, end_t = val[1]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | method_call
- | method_call brace_block
- {
- begin_t, args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, args, body, end_t)
- }
- | kIF expr_value then compstmt if_tail kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, val[5])
- }
- | kUNLESS expr_value then compstmt opt_else kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- else_, else_t,
- val[3], val[5])
- }
- | kWHILE
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:while, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kUNTIL
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:until, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kCASE expr_value opt_terms case_body kEND
- {
- when_bodies = val[3][0..-2]
- else_t, else_body = val[3][-1]
-
- result = @builder.case(val[0], val[1],
- when_bodies, else_t, else_body,
- val[4])
- }
- | kCASE opt_terms case_body kEND
- {
- when_bodies = val[2][0..-2]
- else_t, else_body = val[2][-1]
-
- result = @builder.case(val[0], nil,
- when_bodies, else_t, else_body,
- val[3])
- }
- | kCASE opt_terms kELSE compstmt kEND
- {
- result = @builder.case(val[0], nil,
- [], val[2], val[3],
- val[4])
- }
- | kFOR for_var kIN
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.for(val[0], val[1],
- val[2], val[4],
- val[5], val[7], val[8])
- }
- | kCLASS cpath superclass
- {
- @static_env.extend_static
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :class_in_def, nil, val[0]
- end
-
- lt_t, superclass = val[2]
- result = @builder.def_class(val[0], val[1],
- lt_t, superclass,
- val[4], val[5])
-
- @static_env.unextend
- }
- | kCLASS tLSHFT expr term
- {
- result = @def_level
- @def_level = 0
-
- @static_env.extend_static
- }
- bodystmt kEND
- {
- result = @builder.def_sclass(val[0], val[1], val[2],
- val[5], val[6])
-
- @static_env.unextend
-
- @def_level = val[4]
- }
- | kMODULE cpath
- {
- @static_env.extend_static
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :module_in_def, nil, val[0]
- end
-
- result = @builder.def_module(val[0], val[1],
- val[3], val[4])
-
- @static_env.unextend
- }
- | kDEF fname
- {
- @def_level += 1
- @static_env.extend_static
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_method(val[0], val[1],
- val[3], val[4], val[5])
-
- @static_env.unextend
- @def_level -= 1
- }
- | kDEF singleton dot_or_colon
- {
- @lexer.state = :expr_fname
- }
- fname
- {
- @def_level += 1
- @static_env.extend_static
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_singleton(val[0], val[1], val[2],
- val[4], val[6], val[7], val[8])
-
- @static_env.unextend
- @def_level -= 1
- }
- | kBREAK
- {
- result = @builder.keyword_cmd(:break, val[0])
- }
- | kNEXT
- {
- result = @builder.keyword_cmd(:next, val[0])
- }
- | kREDO
- {
- result = @builder.keyword_cmd(:redo, val[0])
- }
- | kRETRY
- {
- result = @builder.keyword_cmd(:retry, val[0])
- }
-
- primary_value: primary
-
- then: term
- | tCOLON
- | kTHEN
- | term kTHEN
- {
- result = val[1]
- }
-
- do: term
- | tCOLON
- | kDO_COND
-
- if_tail: opt_else
- | kELSIF expr_value then compstmt if_tail
- {
- else_t, else_ = val[4]
- result = [ val[0],
- @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, nil),
- ]
- }
-
- opt_else: none
- | kELSE compstmt
- {
- result = val
- }
-
- for_var: lhs
- | mlhs
-
- block_par: mlhs_item
- {
- result = [ @builder.arg_expr(val[0]) ]
- }
- | block_par tCOMMA mlhs_item
- {
- result = val[0] << @builder.arg_expr(val[2])
- }
-
- block_var: block_par
- | block_par tCOMMA
- | block_par tCOMMA tAMPER lhs
- {
- result = val[0].
- push(@builder.blockarg_expr(val[2], val[3]))
- }
- | block_par tCOMMA tSTAR lhs tCOMMA tAMPER lhs
- {
- result = val[0].
- push(@builder.restarg_expr(val[2], val[3])).
- push(@builder.blockarg_expr(val[5], val[6]))
- }
- | block_par tCOMMA tSTAR tCOMMA tAMPER lhs
- {
- result = val[0].
- push(@builder.restarg_expr(val[2])).
- push(@builder.blockarg_expr(val[4], val[5]))
- }
- | block_par tCOMMA tSTAR lhs
- {
- result = val[0].
- push(@builder.restarg_expr(val[2], val[3]))
- }
- | block_par tCOMMA tSTAR
- {
- result = val[0].
- push(@builder.restarg_expr(val[2]))
- }
- | tSTAR lhs tCOMMA tAMPER lhs
- {
- result = [ @builder.restarg_expr(val[0], val[1]),
- @builder.blockarg_expr(val[3], val[4]) ]
- }
- | tSTAR tCOMMA tAMPER lhs
- {
- result = [ @builder.restarg_expr(val[0]),
- @builder.blockarg_expr(val[2], val[3]) ]
- }
- | tSTAR lhs
- {
- result = [ @builder.restarg_expr(val[0], val[1]) ]
- }
- | tSTAR
- {
- result = [ @builder.restarg_expr(val[0]) ]
- }
- | tAMPER lhs
- {
- result = [ @builder.blockarg_expr(val[0], val[1]) ]
- }
- ;
-
- opt_block_var: # nothing
- {
- result = @builder.args(nil, [], nil)
- }
- | tPIPE tPIPE
- {
- result = @builder.args(val[0], [], val[1])
- }
- | tOROP
- {
- result = @builder.args(val[0], [], val[0])
- }
- | tPIPE block_var tPIPE
- {
- result = @builder.args(val[0], val[1], val[2], false)
- }
-
- do_block: kDO_BLOCK
- {
- @static_env.extend_dynamic
- }
- opt_block_var compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- block_call: command do_block
- {
- begin_t, block_args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, block_args, body, end_t)
- }
- | block_call tDOT operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | block_call tCOLON2 operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
-
- method_call: operation paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
- }
- | primary_value tDOT operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation2 paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation3
- {
- result = @builder.call_method(val[0], val[1], val[2])
- }
- | kSUPER paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:super, val[0],
- lparen_t, args, rparen_t)
- }
- | kSUPER
- {
- result = @builder.keyword_cmd(:zsuper, val[0])
- }
-
- brace_block: tLCURLY
- {
- @static_env.extend_dynamic
- }
- opt_block_var compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
- | kDO
- {
- @static_env.extend_dynamic
- }
- opt_block_var compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- case_body: kWHEN when_args then compstmt cases
- {
- result = [ @builder.when(val[0], val[1], val[2], val[3]),
- *val[4] ]
- }
-
- when_args: args
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
-
- cases: opt_else
- {
- result = [ val[0] ]
- }
- | case_body
-
- opt_rescue: kRESCUE exc_list exc_var then compstmt opt_rescue
- {
- assoc_t, exc_var = val[2]
-
- if val[1]
- exc_list = @builder.array(nil, val[1], nil)
- end
-
- result = [ @builder.rescue_body(val[0],
- exc_list, assoc_t, exc_var,
- val[3], val[4]),
- *val[5] ]
- }
- | # nothing
- {
- result = []
- }
-
- exc_list: arg_value
- {
- result = [ val[0] ]
- }
- | mrhs
- | none
-
- exc_var: tASSOC lhs
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- opt_ensure: kENSURE compstmt
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- literal: numeric
- | symbol
- | dsym
-
- strings: string
- {
- result = @builder.string_compose(nil, val[0], nil)
- }
-
- string: string1
- {
- result = [ val[0] ]
- }
- | string string1
- {
- result = val[0] << val[1]
- }
-
- string1: tSTRING_BEG string_contents tSTRING_END
- {
- result = @builder.string_compose(val[0], val[1], val[2])
- }
- | tSTRING
- {
- result = @builder.string(val[0])
- }
-
- xstring: tXSTRING_BEG xstring_contents tSTRING_END
- {
- result = @builder.xstring_compose(val[0], val[1], val[2])
- }
-
- regexp: tREGEXP_BEG xstring_contents tSTRING_END tREGEXP_OPT
- {
- opts = @builder.regexp_options(val[3])
- result = @builder.regexp_compose(val[0], val[1], val[2], opts)
- }
-
- words: tWORDS_BEG word_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- word_list: # nothing
- {
- result = []
- }
- | word_list word tSPACE
- {
- result = val[0] << @builder.word(val[1])
- }
-
- word: string_content
- {
- result = [ val[0] ]
- }
- | word string_content
- {
- result = val[0] << val[1]
- }
-
- qwords: tQWORDS_BEG qword_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- qword_list: # nothing
- {
- result = []
- }
- | qword_list tSTRING_CONTENT tSPACE
- {
- result = val[0] << @builder.string_internal(val[1])
- }
-
- string_contents: # nothing
- {
- result = []
- }
- | string_contents string_content
- {
- result = val[0] << val[1]
- }
-
-xstring_contents: # nothing
- {
- result = []
- }
- | xstring_contents string_content
- {
- result = val[0] << val[1]
- }
-
- string_content: tSTRING_CONTENT
- {
- result = @builder.string_internal(val[0])
- }
- | tSTRING_DVAR string_dvar
- {
- result = val[1]
- }
- | tSTRING_DBEG
- {
- @lexer.cond.push(false)
- @lexer.cmdarg.push(false)
- }
- compstmt tRCURLY
- {
- @lexer.cond.lexpop
- @lexer.cmdarg.lexpop
-
- result = @builder.begin(val[0], val[2], val[3])
- }
-
- string_dvar: tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
- | backref
-
-
- symbol: tSYMBOL
- {
- result = @builder.symbol(val[0])
- }
-
- dsym: tSYMBEG xstring_contents tSTRING_END
- {
- result = @builder.symbol_compose(val[0], val[1], val[2])
- }
-
- numeric: tINTEGER
- {
- result = @builder.integer(val[0])
- }
- | tFLOAT
- {
- result = @builder.float(val[0])
- }
- | tUMINUS_NUM tINTEGER =tLOWEST
- {
- result = @builder.negate(val[0],
- @builder.integer(val[1]))
- }
- | tUMINUS_NUM tFLOAT =tLOWEST
- {
- result = @builder.negate(val[0],
- @builder.float(val[1]))
- }
-
- variable: tIDENTIFIER
- {
- result = @builder.ident(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
- | tCONSTANT
- {
- result = @builder.const(val[0])
- }
- | kNIL
- {
- result = @builder.nil(val[0])
- }
- | kSELF
- {
- result = @builder.self(val[0])
- }
- | kTRUE
- {
- result = @builder.true(val[0])
- }
- | kFALSE
- {
- result = @builder.false(val[0])
- }
- | k__FILE__
- {
- result = @builder.__FILE__(val[0])
- }
- | k__LINE__
- {
- result = @builder.__LINE__(val[0])
- }
-
- var_ref: variable
- {
- result = @builder.accessible(val[0])
- }
-
- var_lhs: variable
- {
- result = @builder.assignable(val[0])
- }
-
- backref: tNTH_REF
- {
- result = @builder.nth_ref(val[0])
- }
- | tBACK_REF
- {
- result = @builder.back_ref(val[0])
- }
-
- superclass: term
- {
- result = nil
- }
- | tLT expr_value term
- {
- result = [ val[0], val[1] ]
- }
- | error term
- {
- yyerrok
- result = nil
- }
-
- f_arglist: tLPAREN2 f_args opt_nl tRPAREN
- {
- result = @builder.args(val[0], val[1], val[3])
-
- @lexer.state = :expr_beg
- }
- | f_args term
- {
- result = @builder.args(nil, val[0], nil)
- }
-
- f_args: f_arg tCOMMA f_optarg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_optarg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_optarg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
- | # nothing
- {
- result = []
- }
-
- f_norm_arg: tCONSTANT
- {
- diagnostic :error, :argument_const, nil, val[0]
- }
- | tIVAR
- {
- diagnostic :error, :argument_ivar, nil, val[0]
- }
- | tGVAR
- {
- diagnostic :error, :argument_gvar, nil, val[0]
- }
- | tCVAR
- {
- diagnostic :error, :argument_cvar, nil, val[0]
- }
- | tIDENTIFIER
- {
- @static_env.declare val[0][0]
-
- result = @builder.arg(val[0])
- }
-
- f_arg: f_norm_arg
- {
- result = [ val[0] ]
- }
- | f_arg tCOMMA f_norm_arg
- {
- result = val[0] << val[2]
- }
-
- f_opt: tIDENTIFIER tEQL arg_value
- {
- @static_env.declare val[0][0]
-
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_optarg: f_opt
- {
- result = [ val[0] ]
- }
- | f_optarg tCOMMA f_opt
- {
- result = val[0] << val[2]
- }
-
- restarg_mark: tSTAR2 | tSTAR
-
- f_rest_arg: restarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]) ]
- }
- | restarg_mark
- {
- result = [ @builder.restarg(val[0]) ]
- }
-
- blkarg_mark: tAMPER2 | tAMPER
-
- f_block_arg: blkarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = @builder.blockarg(val[0], val[1])
- }
-
- opt_f_block_arg: tCOMMA f_block_arg
- {
- result = [ val[1] ]
- }
- | # nothing
- {
- result = []
- }
-
- singleton: var_ref
- | tLPAREN2 expr opt_nl tRPAREN
- {
- result = val[1]
- }
-
- assoc_list: # nothing
- {
- result = []
- }
- | assocs trailer
- {
- result = val[0]
- }
- | args trailer
- {
- result = @builder.pair_list_18(val[0])
- }
-
- assocs: assoc
- {
- result = [ val[0] ]
- }
- | assocs tCOMMA assoc
- {
- result = val[0] << val[2]
- }
-
- assoc: arg_value tASSOC arg_value
- {
- result = @builder.pair(val[0], val[1], val[2])
- }
-
- operation: tIDENTIFIER | tCONSTANT | tFID
- operation2: tIDENTIFIER | tCONSTANT | tFID | op
- operation3: tIDENTIFIER | tFID | op
- dot_or_colon: tDOT | tCOLON2
- opt_terms: | terms
- opt_nl: | tNL
- trailer: | tNL | tCOMMA
-
- term: tSEMI
- {
- yyerrok
- }
- | tNL
-
- terms: term
- | terms tSEMI
-
- none: # nothing
- {
- result = nil
- }
-
-end
-
----- header
-
-require 'parser'
-
----- inner
-
- def version
- 18
- end
-
- def default_encoding
- Encoding::BINARY if defined? Encoding
- end
diff --git a/test/racc/assets/ruby19.y b/test/racc/assets/ruby19.y
deleted file mode 100644
index b405c952e7..0000000000
--- a/test/racc/assets/ruby19.y
+++ /dev/null
@@ -1,2174 +0,0 @@
-# Copyright (c) 2013 Peter Zotov <whitequark@whitequark.org>
-#
-# Parts of the source are derived from ruby_parser:
-# Copyright (c) Ryan Davis, seattle.rb
-#
-# MIT License
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-class Parser::Ruby19
-
-token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
- kTHEN kELSIF kELSE kCASE kWHEN kWHILE kUNTIL kFOR kBREAK kNEXT
- kREDO kRETRY kIN kDO kDO_COND kDO_BLOCK kDO_LAMBDA kRETURN kYIELD kSUPER
- kSELF kNIL kTRUE kFALSE kAND kOR kNOT kIF_MOD kUNLESS_MOD kWHILE_MOD
- kUNTIL_MOD kRESCUE_MOD kALIAS kDEFINED klBEGIN klEND k__LINE__
- k__FILE__ k__ENCODING__ tIDENTIFIER tFID tGVAR tIVAR tCONSTANT
- tLABEL tCVAR tNTH_REF tBACK_REF tSTRING_CONTENT tINTEGER tFLOAT
- tREGEXP_END tUPLUS tUMINUS tUMINUS_NUM tPOW tCMP tEQ tEQQ tNEQ
- tGEQ tLEQ tANDOP tOROP tMATCH tNMATCH tDOT tDOT2 tDOT3 tAREF
- tASET tLSHFT tRSHFT tCOLON2 tCOLON3 tOP_ASGN tASSOC tLPAREN
- tLPAREN2 tRPAREN tLPAREN_ARG tLBRACK tLBRACK2 tRBRACK tLBRACE
- tLBRACE_ARG tSTAR tSTAR2 tAMPER tAMPER2 tTILDE tPERCENT tDIVIDE
- tPLUS tMINUS tLT tGT tPIPE tBANG tCARET tLCURLY tRCURLY
- tBACK_REF2 tSYMBEG tSTRING_BEG tXSTRING_BEG tREGEXP_BEG tREGEXP_OPT
- tWORDS_BEG tQWORDS_BEG tSTRING_DBEG tSTRING_DVAR tSTRING_END
- tSTRING tSYMBOL tNL tEH tCOLON tCOMMA tSPACE tSEMI tLAMBDA tLAMBEG
- tCHARACTER
-
-prechigh
- right tBANG tTILDE tUPLUS
- right tPOW
- right tUMINUS_NUM tUMINUS
- left tSTAR2 tDIVIDE tPERCENT
- left tPLUS tMINUS
- left tLSHFT tRSHFT
- left tAMPER2
- left tPIPE tCARET
- left tGT tGEQ tLT tLEQ
- nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
- left tANDOP
- left tOROP
- nonassoc tDOT2 tDOT3
- right tEH tCOLON
- left kRESCUE_MOD
- right tEQL tOP_ASGN
- nonassoc kDEFINED
- right kNOT
- left kOR kAND
- nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
- nonassoc tLBRACE_ARG
- nonassoc tLOWEST
-preclow
-
-rule
-
- program: top_compstmt
-
- top_compstmt: top_stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- top_stmts: # nothing
- {
- result = []
- }
- | top_stmt
- {
- result = [ val[0] ]
- }
- | top_stmts terms top_stmt
- {
- result = val[0] << val[2]
- }
- | error top_stmt
- {
- result = [ val[1] ]
- }
-
- top_stmt: stmt
- | klBEGIN tLCURLY top_compstmt tRCURLY
- {
- result = @builder.preexe(val[0], val[1], val[2], val[3])
- }
-
- bodystmt: compstmt opt_rescue opt_else opt_ensure
- {
- rescue_bodies = val[1]
- else_t, else_ = val[2]
- ensure_t, ensure_ = val[3]
-
- if rescue_bodies.empty? && !else_.nil?
- diagnostic :warning, :useless_else, nil, else_t
- end
-
- result = @builder.begin_body(val[0],
- rescue_bodies,
- else_t, else_,
- ensure_t, ensure_)
- }
-
- compstmt: stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- stmts: # nothing
- {
- result = []
- }
- | stmt
- {
- result = [ val[0] ]
- }
- | stmts terms stmt
- {
- result = val[0] << val[2]
- }
- | error stmt
- {
- result = [ val[1] ]
- }
-
- stmt: kALIAS fitem
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = @builder.alias(val[0], val[1], val[3])
- }
- | kALIAS tGVAR tGVAR
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.gvar(val[2]))
- }
- | kALIAS tGVAR tBACK_REF
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.back_ref(val[2]))
- }
- | kALIAS tGVAR tNTH_REF
- {
- diagnostic :error, :nth_ref_alias, nil, val[2]
- }
- | kUNDEF undef_list
- {
- result = @builder.undef_method(val[0], val[1])
- }
- | stmt kIF_MOD expr_value
- {
- result = @builder.condition_mod(val[0], nil,
- val[1], val[2])
- }
- | stmt kUNLESS_MOD expr_value
- {
- result = @builder.condition_mod(nil, val[0],
- val[1], val[2])
- }
- | stmt kWHILE_MOD expr_value
- {
- result = @builder.loop_mod(:while, val[0], val[1], val[2])
- }
- | stmt kUNTIL_MOD expr_value
- {
- result = @builder.loop_mod(:until, val[0], val[1], val[2])
- }
- | stmt kRESCUE_MOD stmt
- {
- rescue_body = @builder.rescue_body(val[1],
- nil, nil, nil,
- nil, val[2])
-
- result = @builder.begin_body(val[0], [ rescue_body ])
- }
- | klEND tLCURLY compstmt tRCURLY
- {
- result = @builder.postexe(val[0], val[1], val[2], val[3])
- }
- | command_asgn
- | mlhs tEQL command_call
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN command_call
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | backref tOP_ASGN command_call
- {
- @builder.op_assign(val[0], val[1], val[2])
- }
- | lhs tEQL mrhs
- {
- result = @builder.assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
- }
- | mlhs tEQL arg_value
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | mlhs tEQL mrhs
- {
- result = @builder.multi_assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
- }
- | expr
-
- command_asgn: lhs tEQL command_call
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | lhs tEQL command_asgn
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
-
- expr: command_call
- | expr kAND expr
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | expr kOR expr
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kNOT opt_nl expr
- {
- result = @builder.not_op(val[0], nil, val[2], nil)
- }
- | tBANG command_call
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | arg
-
- expr_value: expr
-
- command_call: command
- | block_command
-
- block_command: block_call
- | block_call tDOT operation2 command_args
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
- | block_call tCOLON2 operation2 command_args
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
-
- cmd_brace_block: tLBRACE_ARG
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- command: operation command_args =tLOWEST
- {
- result = @builder.call_method(nil, nil, val[0],
- nil, val[1], nil)
- }
- | operation command_args cmd_brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0],
- nil, val[1], nil)
-
- begin_t, args, body, end_t = val[2]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | primary_value tDOT operation2 command_args =tLOWEST
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
- | primary_value tDOT operation2 command_args cmd_brace_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | primary_value tCOLON2 operation2 command_args =tLOWEST
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
- | primary_value tCOLON2 operation2 command_args cmd_brace_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | kSUPER command_args
- {
- result = @builder.keyword_cmd(:super, val[0],
- nil, val[1], nil)
- }
- | kYIELD command_args
- {
- result = @builder.keyword_cmd(:yield, val[0],
- nil, val[1], nil)
- }
- | kRETURN call_args
- {
- result = @builder.keyword_cmd(:return, val[0],
- nil, val[1], nil)
- }
- | kBREAK call_args
- {
- result = @builder.keyword_cmd(:break, val[0],
- nil, val[1], nil)
- }
- | kNEXT call_args
- {
- result = @builder.keyword_cmd(:next, val[0],
- nil, val[1], nil)
- }
-
- mlhs: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_inner: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- mlhs_basic: mlhs_head
- | mlhs_head mlhs_item
- {
- result = val[0].
- push(val[1])
- }
- | mlhs_head tSTAR mlhs_node
- {
- result = val[0].
- push(@builder.splat(val[1], val[2]))
- }
- | mlhs_head tSTAR mlhs_node tCOMMA mlhs_post
- {
- result = val[0].
- push(@builder.splat(val[1], val[2])).
- concat(val[4])
- }
- | mlhs_head tSTAR
- {
- result = val[0].
- push(@builder.splat(val[1]))
- }
- | mlhs_head tSTAR tCOMMA mlhs_post
- {
- result = val[0].
- push(@builder.splat(val[1])).
- concat(val[3])
- }
- | tSTAR mlhs_node
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | tSTAR mlhs_node tCOMMA mlhs_post
- {
- result = [ @builder.splat(val[0], val[1]),
- *val[3] ]
- }
- | tSTAR
- {
- result = [ @builder.splat(val[0]) ]
- }
- | tSTAR tCOMMA mlhs_post
- {
- result = [ @builder.splat(val[0]),
- *val[2] ]
- }
-
- mlhs_item: mlhs_node
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_head: mlhs_item tCOMMA
- {
- result = [ val[0] ]
- }
- | mlhs_head mlhs_item tCOMMA
- {
- result = val[0] << val[1]
- }
-
- mlhs_post: mlhs_item
- {
- result = [ val[0] ]
- }
- | mlhs_post tCOMMA mlhs_item
- {
- result = val[0] << val[2]
- }
-
- mlhs_node: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- lhs: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- cname: tIDENTIFIER
- {
- diagnostic :error, :module_name_const, nil, val[0]
- }
- | tCONSTANT
-
- cpath: tCOLON3 cname
- {
- result = @builder.const_global(val[0], val[1])
- }
- | cname
- {
- result = @builder.const(val[0])
- }
- | primary_value tCOLON2 cname
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
-
- fname: tIDENTIFIER | tCONSTANT | tFID
- | op
- | reswords
-
- fsym: fname
- {
- result = @builder.symbol(val[0])
- }
- | symbol
-
- fitem: fsym
- | dsym
-
- undef_list: fitem
- {
- result = [ val[0] ]
- }
- | undef_list tCOMMA
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = val[0] << val[3]
- }
-
- op: tPIPE | tCARET | tAMPER2 | tCMP | tEQ | tEQQ
- | tMATCH | tNMATCH | tGT | tGEQ | tLT | tLEQ
- | tNEQ | tLSHFT | tRSHFT | tPLUS | tMINUS | tSTAR2
- | tSTAR | tDIVIDE | tPERCENT | tPOW | tBANG | tTILDE
- | tUPLUS | tUMINUS | tAREF | tASET | tBACK_REF2
-
- reswords: k__LINE__ | k__FILE__ | k__ENCODING__ | klBEGIN | klEND
- | kALIAS | kAND | kBEGIN | kBREAK | kCASE
- | kCLASS | kDEF | kDEFINED | kDO | kELSE
- | kELSIF | kEND | kENSURE | kFALSE | kFOR
- | kIN | kMODULE | kNEXT | kNIL | kNOT
- | kOR | kREDO | kRESCUE | kRETRY | kRETURN
- | kSELF | kSUPER | kTHEN | kTRUE | kUNDEF
- | kWHEN | kYIELD | kIF | kUNLESS | kWHILE
- | kUNTIL
-
- arg: lhs tEQL arg
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | lhs tEQL arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.assign(val[0], val[1], rescue_)
- }
- | var_lhs tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.op_assign(val[0], val[1], rescue_)
- }
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN arg
- {
- diagnostic :error, :dynamic_const, nil, val[2], [ val[3] ]
- }
- | tCOLON3 tCONSTANT tOP_ASGN arg
- {
- diagnostic :error, :dynamic_const, nil, val[1], [ val[2] ]
- }
- | backref tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | arg tDOT2 arg
- {
- result = @builder.range_inclusive(val[0], val[1], val[2])
- }
- | arg tDOT3 arg
- {
- result = @builder.range_exclusive(val[0], val[1], val[2])
- }
- | arg tPLUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMINUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tSTAR2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tDIVIDE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPERCENT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPOW arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tUMINUS_NUM tINTEGER tPOW arg
- {
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- @builder.integer(val[1]),
- val[2], val[3]))
- }
- | tUMINUS_NUM tFLOAT tPOW arg
- {
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- @builder.float(val[1]),
- val[2], val[3]))
- }
- | tUPLUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | tUMINUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tPIPE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCARET arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tAMPER2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCMP arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tNEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMATCH arg
- {
- result = @builder.match_op(val[0], val[1], val[2])
- }
- | arg tNMATCH arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tBANG arg
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | tTILDE arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tLSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tRSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tANDOP arg
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | arg tOROP arg
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kDEFINED opt_nl arg
- {
- result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)
- }
-
- | arg tEH arg opt_nl tCOLON arg
- {
- result = @builder.ternary(val[0], val[1],
- val[2], val[4], val[5])
- }
- | primary
-
- arg_value: arg
-
- aref_args: none
- | args trailer
- | args tCOMMA assocs trailer
- {
- result = val[0] << @builder.associate(nil, val[2], nil)
- }
- | assocs trailer
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- }
-
- paren_args: tLPAREN2 opt_call_args rparen
- {
- result = val
- }
-
- opt_paren_args: # nothing
- {
- result = [ nil, [], nil ]
- }
- | paren_args
-
- opt_call_args: # nothing
- {
- result = []
- }
- | call_args
- | args tCOMMA
- | args tCOMMA assocs tCOMMA
- {
- result = val[0] << @builder.associate(nil, val[2], nil)
- }
- | assocs tCOMMA
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- }
-
- call_args: command
- {
- result = [ val[0] ]
- }
- | args opt_block_arg
- {
- result = val[0].concat(val[1])
- }
- | assocs opt_block_arg
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- result.concat(val[1])
- }
- | args tCOMMA assocs opt_block_arg
- {
- assocs = @builder.associate(nil, val[2], nil)
- result = val[0] << assocs
- result.concat(val[3])
- }
- | block_arg
- {
- result = [ val[0] ]
- }
-
- command_args: {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.push(true)
- }
- call_args
- {
- @lexer.cmdarg = val[0]
-
- result = val[1]
- }
-
- block_arg: tAMPER arg_value
- {
- result = @builder.block_pass(val[0], val[1])
- }
-
- opt_block_arg: tCOMMA block_arg
- {
- result = [ val[1] ]
- }
- | # nothing
- {
- result = []
- }
-
- args: arg_value
- {
- result = [ val[0] ]
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
-
- mrhs: args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
-
- primary: literal
- | strings
- | xstring
- | regexp
- | words
- | qwords
- | var_ref
- | backref
- | tFID
- {
- result = @builder.call_method(nil, nil, val[0])
- }
- | kBEGIN bodystmt kEND
- {
- result = @builder.begin_keyword(val[0], val[1], val[2])
- }
- | tLPAREN_ARG
- {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
- }
- expr
- {
- @lexer.state = :expr_endarg
- }
- opt_nl tRPAREN
- {
- @lexer.cmdarg = val[1]
-
- result = @builder.begin(val[0], val[2], val[5])
- }
- | tLPAREN compstmt tRPAREN
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.const_global(val[0], val[1])
- }
- | tLBRACK aref_args tRBRACK
- {
- result = @builder.array(val[0], val[1], val[2])
- }
- | tLBRACE assoc_list tRCURLY
- {
- result = @builder.associate(val[0], val[1], val[2])
- }
- | kRETURN
- {
- result = @builder.keyword_cmd(:return, val[0])
- }
- | kYIELD tLPAREN2 call_args rparen
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])
- }
- | kYIELD tLPAREN2 rparen
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])
- }
- | kYIELD
- {
- result = @builder.keyword_cmd(:yield, val[0])
- }
- | kDEFINED opt_nl tLPAREN2 expr rparen
- {
- result = @builder.keyword_cmd(:defined?, val[0],
- val[2], [ val[3] ], val[4])
- }
- | kNOT tLPAREN2 expr rparen
- {
- result = @builder.not_op(val[0], val[1], val[2], val[3])
- }
- | kNOT tLPAREN2 rparen
- {
- result = @builder.not_op(val[0], val[1], nil, val[2])
- }
- | operation brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0])
-
- begin_t, args, body, end_t = val[1]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | method_call
- | method_call brace_block
- {
- begin_t, args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, args, body, end_t)
- }
- | tLAMBDA lambda
- {
- lambda_call = @builder.call_lambda(val[0])
-
- args, (begin_t, body, end_t) = val[1]
- result = @builder.block(lambda_call,
- begin_t, args, body, end_t)
- }
- | kIF expr_value then compstmt if_tail kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, val[5])
- }
- | kUNLESS expr_value then compstmt opt_else kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- else_, else_t,
- val[3], val[5])
- }
- | kWHILE
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:while, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kUNTIL
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:until, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kCASE expr_value opt_terms case_body kEND
- {
- *when_bodies, (else_t, else_body) = *val[3]
-
- result = @builder.case(val[0], val[1],
- when_bodies, else_t, else_body,
- val[4])
- }
- | kCASE opt_terms case_body kEND
- {
- *when_bodies, (else_t, else_body) = *val[2]
-
- result = @builder.case(val[0], nil,
- when_bodies, else_t, else_body,
- val[3])
- }
- | kFOR for_var kIN
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.for(val[0], val[1],
- val[2], val[4],
- val[5], val[7], val[8])
- }
- | kCLASS cpath superclass
- {
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :class_in_def, nil, val[0]
- end
-
- lt_t, superclass = val[2]
- result = @builder.def_class(val[0], val[1],
- lt_t, superclass,
- val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- }
- | kCLASS tLSHFT expr term
- {
- result = @def_level
- @def_level = 0
-
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- result = @builder.def_sclass(val[0], val[1], val[2],
- val[5], val[6])
-
- @lexer.pop_cmdarg
- @static_env.unextend
-
- @def_level = val[4]
- }
- | kMODULE cpath
- {
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :module_in_def, nil, val[0]
- end
-
- result = @builder.def_module(val[0], val[1],
- val[3], val[4])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- }
- | kDEF fname
- {
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_method(val[0], val[1],
- val[3], val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
- }
- | kDEF singleton dot_or_colon
- {
- @lexer.state = :expr_fname
- }
- fname
- {
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_singleton(val[0], val[1], val[2],
- val[4], val[6], val[7], val[8])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
- }
- | kBREAK
- {
- result = @builder.keyword_cmd(:break, val[0])
- }
- | kNEXT
- {
- result = @builder.keyword_cmd(:next, val[0])
- }
- | kREDO
- {
- result = @builder.keyword_cmd(:redo, val[0])
- }
- | kRETRY
- {
- result = @builder.keyword_cmd(:retry, val[0])
- }
-
- primary_value: primary
-
- then: term
- | kTHEN
- | term kTHEN
- {
- result = val[1]
- }
-
- do: term
- | kDO_COND
-
- if_tail: opt_else
- | kELSIF expr_value then compstmt if_tail
- {
- else_t, else_ = val[4]
- result = [ val[0],
- @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, nil),
- ]
- }
-
- opt_else: none
- | kELSE compstmt
- {
- result = val
- }
-
- for_var: lhs
- | mlhs
-
- f_marg: f_norm_arg
- {
- @static_env.declare val[0][0]
-
- result = @builder.arg(val[0])
- }
- | tLPAREN f_margs rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- f_marg_list: f_marg
- {
- result = [ val[0] ]
- }
- | f_marg_list tCOMMA f_marg
- {
- result = val[0] << val[2]
- }
-
- f_margs: f_marg_list
- | f_marg_list tCOMMA tSTAR f_norm_arg
- {
- @static_env.declare val[3][0]
-
- result = val[0].
- push(@builder.restarg(val[2], val[3]))
- }
- | f_marg_list tCOMMA tSTAR f_norm_arg tCOMMA f_marg_list
- {
- @static_env.declare val[3][0]
-
- result = val[0].
- push(@builder.restarg(val[2], val[3])).
- concat(val[5])
- }
- | f_marg_list tCOMMA tSTAR
- {
- result = val[0].
- push(@builder.restarg(val[2]))
- }
- | f_marg_list tCOMMA tSTAR tCOMMA f_marg_list
- {
- result = val[0].
- push(@builder.restarg(val[2])).
- concat(val[4])
- }
- | tSTAR f_norm_arg
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]) ]
- }
- | tSTAR f_norm_arg tCOMMA f_marg_list
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]),
- *val[3] ]
- }
- | tSTAR
- {
- result = [ @builder.restarg(val[0]) ]
- }
- | tSTAR tCOMMA f_marg_list
- {
- result = [ @builder.restarg(val[0]),
- *val[2] ]
- }
-
- block_param: f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
- }
- | f_arg tCOMMA f_block_optarg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_block_optarg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA
- | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_block_optarg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_block_optarg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_block_optarg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
-
- opt_block_param: # nothing
- {
- result = @builder.args(nil, [], nil)
- }
- | block_param_def
- {
- @lexer.state = :expr_value
- }
-
- block_param_def: tPIPE opt_bv_decl tPIPE
- {
- result = @builder.args(val[0], val[1], val[2])
- }
- | tOROP
- {
- result = @builder.args(val[0], [], val[0])
- }
- | tPIPE block_param opt_bv_decl tPIPE
- {
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
- }
-
- opt_bv_decl: # nothing
- {
- result = []
- }
- | tSEMI bv_decls
- {
- result = val[1]
- }
-
- bv_decls: bvar
- {
- result = [ val[0] ]
- }
- | bv_decls tCOMMA bvar
- {
- result = val[0] << val[2]
- }
-
- bvar: tIDENTIFIER
- {
- result = @builder.shadowarg(val[0])
- }
- | f_bad_arg
-
- lambda: {
- @static_env.extend_dynamic
- }
- f_larglist lambda_body
- {
- result = [ val[1], val[2] ]
-
- @static_env.unextend
- }
-
- f_larglist: tLPAREN2 f_args opt_bv_decl rparen
- {
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
- }
- | f_args
- {
- result = @builder.args(nil, val[0], nil)
- }
-
- lambda_body: tLAMBEG compstmt tRCURLY
- {
- result = [ val[0], val[1], val[2] ]
- }
- | kDO_LAMBDA compstmt kEND
- {
- result = [ val[0], val[1], val[2] ]
- }
-
- do_block: kDO_BLOCK
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- block_call: command do_block
- {
- begin_t, block_args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, block_args, body, end_t)
- }
- | block_call tDOT operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | block_call tCOLON2 operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
-
- method_call: operation paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
- }
- | primary_value tDOT operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation2 paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation3
- {
- result = @builder.call_method(val[0], val[1], val[2])
- }
- | primary_value tDOT paren_args
- {
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 paren_args
- {
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
- }
- | kSUPER paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:super, val[0],
- lparen_t, args, rparen_t)
- }
- | kSUPER
- {
- result = @builder.keyword_cmd(:zsuper, val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index(val[0], val[1], val[2], val[3])
- }
-
- brace_block: tLCURLY
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
- | kDO
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- case_body: kWHEN args then compstmt cases
- {
- result = [ @builder.when(val[0], val[1], val[2], val[3]),
- *val[4] ]
- }
-
- cases: opt_else
- {
- result = [ val[0] ]
- }
- | case_body
-
- opt_rescue: kRESCUE exc_list exc_var then compstmt opt_rescue
- {
- assoc_t, exc_var = val[2]
-
- if val[1]
- exc_list = @builder.array(nil, val[1], nil)
- end
-
- result = [ @builder.rescue_body(val[0],
- exc_list, assoc_t, exc_var,
- val[3], val[4]),
- *val[5] ]
- }
- |
- {
- result = []
- }
-
- exc_list: arg_value
- {
- result = [ val[0] ]
- }
- | mrhs
- | none
-
- exc_var: tASSOC lhs
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- opt_ensure: kENSURE compstmt
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- literal: numeric
- | symbol
- | dsym
-
- strings: string
- {
- result = @builder.string_compose(nil, val[0], nil)
- }
-
- string: string1
- {
- result = [ val[0] ]
- }
- | string string1
- {
- result = val[0] << val[1]
- }
-
- string1: tSTRING_BEG string_contents tSTRING_END
- {
- result = @builder.string_compose(val[0], val[1], val[2])
- }
- | tSTRING
- {
- result = @builder.string(val[0])
- }
- | tCHARACTER
- {
- result = @builder.character(val[0])
- }
-
- xstring: tXSTRING_BEG xstring_contents tSTRING_END
- {
- result = @builder.xstring_compose(val[0], val[1], val[2])
- }
-
- regexp: tREGEXP_BEG regexp_contents tSTRING_END tREGEXP_OPT
- {
- opts = @builder.regexp_options(val[3])
- result = @builder.regexp_compose(val[0], val[1], val[2], opts)
- }
-
- words: tWORDS_BEG word_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- word_list: # nothing
- {
- result = []
- }
- | word_list word tSPACE
- {
- result = val[0] << @builder.word(val[1])
- }
-
- word: string_content
- {
- result = [ val[0] ]
- }
- | word string_content
- {
- result = val[0] << val[1]
- }
-
- qwords: tQWORDS_BEG qword_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- qword_list: # nothing
- {
- result = []
- }
- | qword_list tSTRING_CONTENT tSPACE
- {
- result = val[0] << @builder.string_internal(val[1])
- }
-
- string_contents: # nothing
- {
- result = []
- }
- | string_contents string_content
- {
- result = val[0] << val[1]
- }
-
-xstring_contents: # nothing
- {
- result = []
- }
- | xstring_contents string_content
- {
- result = val[0] << val[1]
- }
-
-regexp_contents: # nothing
- {
- result = []
- }
- | regexp_contents string_content
- {
- result = val[0] << val[1]
- }
-
- string_content: tSTRING_CONTENT
- {
- result = @builder.string_internal(val[0])
- }
- | tSTRING_DVAR string_dvar
- {
- result = val[1]
- }
- | tSTRING_DBEG
- {
- @lexer.cond.push(false)
- @lexer.cmdarg.push(false)
- }
- compstmt tRCURLY
- {
- @lexer.cond.lexpop
- @lexer.cmdarg.lexpop
-
- result = @builder.begin(val[0], val[2], val[3])
- }
-
- string_dvar: tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
- | backref
-
-
- symbol: tSYMBOL
- {
- result = @builder.symbol(val[0])
- }
-
- dsym: tSYMBEG xstring_contents tSTRING_END
- {
- result = @builder.symbol_compose(val[0], val[1], val[2])
- }
-
- numeric: tINTEGER
- {
- result = @builder.integer(val[0])
- }
- | tFLOAT
- {
- result = @builder.float(val[0])
- }
- | tUMINUS_NUM tINTEGER =tLOWEST
- {
- result = @builder.negate(val[0],
- @builder.integer(val[1]))
- }
- | tUMINUS_NUM tFLOAT =tLOWEST
- {
- result = @builder.negate(val[0],
- @builder.float(val[1]))
- }
-
- user_variable: tIDENTIFIER
- {
- result = @builder.ident(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tCONSTANT
- {
- result = @builder.const(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
-
-keyword_variable: kNIL
- {
- result = @builder.nil(val[0])
- }
- | kSELF
- {
- result = @builder.self(val[0])
- }
- | kTRUE
- {
- result = @builder.true(val[0])
- }
- | kFALSE
- {
- result = @builder.false(val[0])
- }
- | k__FILE__
- {
- result = @builder.__FILE__(val[0])
- }
- | k__LINE__
- {
- result = @builder.__LINE__(val[0])
- }
- | k__ENCODING__
- {
- result = @builder.__ENCODING__(val[0])
- }
-
- var_ref: user_variable
- {
- result = @builder.accessible(val[0])
- }
- | keyword_variable
- {
- result = @builder.accessible(val[0])
- }
-
- var_lhs: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
-
- backref: tNTH_REF
- {
- result = @builder.nth_ref(val[0])
- }
- | tBACK_REF
- {
- result = @builder.back_ref(val[0])
- }
-
- superclass: term
- {
- result = nil
- }
- | tLT expr_value term
- {
- result = [ val[0], val[1] ]
- }
- | error term
- {
- yyerrok
- result = nil
- }
-
- f_arglist: tLPAREN2 f_args rparen
- {
- result = @builder.args(val[0], val[1], val[2])
-
- @lexer.state = :expr_value
- }
- | f_args term
- {
- result = @builder.args(nil, val[0], nil)
- }
-
- f_args: f_arg tCOMMA f_optarg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
- }
- | f_arg tCOMMA f_optarg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_optarg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_optarg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_rest_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg tCOMMA f_arg opt_f_block_arg
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
- | # nothing
- {
- result = []
- }
-
- f_bad_arg: tCONSTANT
- {
- diagnostic :error, :argument_const, nil, val[0]
- }
- | tIVAR
- {
- diagnostic :error, :argument_ivar, nil, val[0]
- }
- | tGVAR
- {
- diagnostic :error, :argument_gvar, nil, val[0]
- }
- | tCVAR
- {
- diagnostic :error, :argument_cvar, nil, val[0]
- }
-
- f_norm_arg: f_bad_arg
- | tIDENTIFIER
-
- f_arg_item: f_norm_arg
- {
- @static_env.declare val[0][0]
-
- result = @builder.arg(val[0])
- }
- | tLPAREN f_margs rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- f_arg: f_arg_item
- {
- result = [ val[0] ]
- }
- | f_arg tCOMMA f_arg_item
- {
- result = val[0] << val[2]
- }
-
- f_opt: tIDENTIFIER tEQL arg_value
- {
- @static_env.declare val[0][0]
-
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_block_opt: tIDENTIFIER tEQL primary_value
- {
- @static_env.declare val[0][0]
-
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_block_optarg: f_block_opt
- {
- result = [ val[0] ]
- }
- | f_block_optarg tCOMMA f_block_opt
- {
- result = val[0] << val[2]
- }
-
- f_optarg: f_opt
- {
- result = [ val[0] ]
- }
- | f_optarg tCOMMA f_opt
- {
- result = val[0] << val[2]
- }
-
- restarg_mark: tSTAR2 | tSTAR
-
- f_rest_arg: restarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]) ]
- }
- | restarg_mark
- {
- result = [ @builder.restarg(val[0]) ]
- }
-
- blkarg_mark: tAMPER2 | tAMPER
-
- f_block_arg: blkarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = @builder.blockarg(val[0], val[1])
- }
-
- opt_f_block_arg: tCOMMA f_block_arg
- {
- result = [ val[1] ]
- }
- | # nothing
- {
- result = []
- }
-
- singleton: var_ref
- | tLPAREN2 expr rparen
- {
- result = val[1]
- }
-
- assoc_list: # nothing
- {
- result = []
- }
- | assocs trailer
-
- assocs: assoc
- {
- result = [ val[0] ]
- }
- | assocs tCOMMA assoc
- {
- result = val[0] << val[2]
- }
-
- assoc: arg_value tASSOC arg_value
- {
- result = @builder.pair(val[0], val[1], val[2])
- }
- | tLABEL arg_value
- {
- result = @builder.pair_keyword(val[0], val[1])
- }
-
- operation: tIDENTIFIER | tCONSTANT | tFID
- operation2: tIDENTIFIER | tCONSTANT | tFID | op
- operation3: tIDENTIFIER | tFID | op
- dot_or_colon: tDOT | tCOLON2
- opt_terms: | terms
- opt_nl: | tNL
- rparen: opt_nl tRPAREN
- {
- result = val[1]
- }
- rbracket: opt_nl tRBRACK
- {
- result = val[1]
- }
- trailer: | tNL | tCOMMA
-
- term: tSEMI
- {
- yyerrok
- }
- | tNL
-
- terms: term
- | terms tSEMI
-
- none: # nothing
- {
- result = nil
- }
-end
-
----- header
-
-require 'parser'
-
-Parser.check_for_encoding_support
-
----- inner
-
- def version
- 19
- end
-
- def default_encoding
- Encoding::BINARY
- end
diff --git a/test/racc/assets/ruby20.y b/test/racc/assets/ruby20.y
deleted file mode 100644
index 6e07734778..0000000000
--- a/test/racc/assets/ruby20.y
+++ /dev/null
@@ -1,2350 +0,0 @@
-# Copyright (c) 2013 Peter Zotov <whitequark@whitequark.org>
-#
-# Parts of the source are derived from ruby_parser:
-# Copyright (c) Ryan Davis, seattle.rb
-#
-# MIT License
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-class Parser::Ruby20
-
-token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
- kTHEN kELSIF kELSE kCASE kWHEN kWHILE kUNTIL kFOR kBREAK kNEXT
- kREDO kRETRY kIN kDO kDO_COND kDO_BLOCK kDO_LAMBDA kRETURN kYIELD kSUPER
- kSELF kNIL kTRUE kFALSE kAND kOR kNOT kIF_MOD kUNLESS_MOD kWHILE_MOD
- kUNTIL_MOD kRESCUE_MOD kALIAS kDEFINED klBEGIN klEND k__LINE__
- k__FILE__ k__ENCODING__ tIDENTIFIER tFID tGVAR tIVAR tCONSTANT
- tLABEL tCVAR tNTH_REF tBACK_REF tSTRING_CONTENT tINTEGER tFLOAT
- tREGEXP_END tUPLUS tUMINUS tUMINUS_NUM tPOW tCMP tEQ tEQQ tNEQ
- tGEQ tLEQ tANDOP tOROP tMATCH tNMATCH tDOT tDOT2 tDOT3 tAREF
- tASET tLSHFT tRSHFT tCOLON2 tCOLON3 tOP_ASGN tASSOC tLPAREN
- tLPAREN2 tRPAREN tLPAREN_ARG tLBRACK tLBRACK2 tRBRACK tLBRACE
- tLBRACE_ARG tSTAR tSTAR2 tAMPER tAMPER2 tTILDE tPERCENT tDIVIDE
- tDSTAR tPLUS tMINUS tLT tGT tPIPE tBANG tCARET tLCURLY tRCURLY
- tBACK_REF2 tSYMBEG tSTRING_BEG tXSTRING_BEG tREGEXP_BEG tREGEXP_OPT
- tWORDS_BEG tQWORDS_BEG tSYMBOLS_BEG tQSYMBOLS_BEG tSTRING_DBEG
- tSTRING_DVAR tSTRING_END tSTRING_DEND tSTRING tSYMBOL
- tNL tEH tCOLON tCOMMA tSPACE tSEMI tLAMBDA tLAMBEG tCHARACTER
-
-prechigh
- right tBANG tTILDE tUPLUS
- right tPOW
- right tUMINUS_NUM tUMINUS
- left tSTAR2 tDIVIDE tPERCENT
- left tPLUS tMINUS
- left tLSHFT tRSHFT
- left tAMPER2
- left tPIPE tCARET
- left tGT tGEQ tLT tLEQ
- nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
- left tANDOP
- left tOROP
- nonassoc tDOT2 tDOT3
- right tEH tCOLON
- left kRESCUE_MOD
- right tEQL tOP_ASGN
- nonassoc kDEFINED
- right kNOT
- left kOR kAND
- nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
- nonassoc tLBRACE_ARG
- nonassoc tLOWEST
-preclow
-
-rule
-
- program: top_compstmt
-
- top_compstmt: top_stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- top_stmts: # nothing
- {
- result = []
- }
- | top_stmt
- {
- result = [ val[0] ]
- }
- | top_stmts terms top_stmt
- {
- result = val[0] << val[2]
- }
- | error top_stmt
- {
- result = [ val[1] ]
- }
-
- top_stmt: stmt
- | klBEGIN tLCURLY top_compstmt tRCURLY
- {
- result = @builder.preexe(val[0], val[1], val[2], val[3])
- }
-
- bodystmt: compstmt opt_rescue opt_else opt_ensure
- {
- rescue_bodies = val[1]
- else_t, else_ = val[2]
- ensure_t, ensure_ = val[3]
-
- if rescue_bodies.empty? && !else_.nil?
- diagnostic :warning, :useless_else, nil, else_t
- end
-
- result = @builder.begin_body(val[0],
- rescue_bodies,
- else_t, else_,
- ensure_t, ensure_)
- }
-
- compstmt: stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- stmts: # nothing
- {
- result = []
- }
- | stmt_or_begin
- {
- result = [ val[0] ]
- }
- | stmts terms stmt_or_begin
- {
- result = val[0] << val[2]
- }
- | error stmt
- {
- result = [ val[1] ]
- }
-
- stmt_or_begin: stmt
- | klBEGIN tLCURLY top_compstmt tRCURLY
- {
- if in_def?
- diagnostic :error, :begin_in_method, nil, val[0]
- end
-
- result = @builder.preexe(val[0], val[1], val[2], val[3])
- }
-
- stmt: kALIAS fitem
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = @builder.alias(val[0], val[1], val[3])
- }
- | kALIAS tGVAR tGVAR
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.gvar(val[2]))
- }
- | kALIAS tGVAR tBACK_REF
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.back_ref(val[2]))
- }
- | kALIAS tGVAR tNTH_REF
- {
- diagnostic :error, :nth_ref_alias, nil, val[2]
- }
- | kUNDEF undef_list
- {
- result = @builder.undef_method(val[0], val[1])
- }
- | stmt kIF_MOD expr_value
- {
- result = @builder.condition_mod(val[0], nil,
- val[1], val[2])
- }
- | stmt kUNLESS_MOD expr_value
- {
- result = @builder.condition_mod(nil, val[0],
- val[1], val[2])
- }
- | stmt kWHILE_MOD expr_value
- {
- result = @builder.loop_mod(:while, val[0], val[1], val[2])
- }
- | stmt kUNTIL_MOD expr_value
- {
- result = @builder.loop_mod(:until, val[0], val[1], val[2])
- }
- | stmt kRESCUE_MOD stmt
- {
- rescue_body = @builder.rescue_body(val[1],
- nil, nil, nil,
- nil, val[2])
-
- result = @builder.begin_body(val[0], [ rescue_body ])
- }
- | klEND tLCURLY compstmt tRCURLY
- {
- result = @builder.postexe(val[0], val[1], val[2], val[3])
- }
- | command_asgn
- | mlhs tEQL command_call
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN command_call
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | backref tOP_ASGN command_call
- {
- @builder.op_assign(val[0], val[1], val[2])
- }
- | lhs tEQL mrhs
- {
- result = @builder.assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
- }
- | mlhs tEQL arg_value
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | mlhs tEQL mrhs
- {
- result = @builder.multi_assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
- }
- | expr
-
- command_asgn: lhs tEQL command_call
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | lhs tEQL command_asgn
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
-
- expr: command_call
- | expr kAND expr
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | expr kOR expr
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kNOT opt_nl expr
- {
- result = @builder.not_op(val[0], nil, val[2], nil)
- }
- | tBANG command_call
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | arg
-
- expr_value: expr
-
- command_call: command
- | block_command
-
- block_command: block_call
- | block_call dot_or_colon operation2 command_args
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
-
- cmd_brace_block: tLBRACE_ARG
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- fcall: operation
-
- command: fcall command_args =tLOWEST
- {
- result = @builder.call_method(nil, nil, val[0],
- nil, val[1], nil)
- }
- | fcall command_args cmd_brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0],
- nil, val[1], nil)
-
- begin_t, args, body, end_t = val[2]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | primary_value tDOT operation2 command_args =tLOWEST
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
- | primary_value tDOT operation2 command_args cmd_brace_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | primary_value tCOLON2 operation2 command_args =tLOWEST
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
- | primary_value tCOLON2 operation2 command_args cmd_brace_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | kSUPER command_args
- {
- result = @builder.keyword_cmd(:super, val[0],
- nil, val[1], nil)
- }
- | kYIELD command_args
- {
- result = @builder.keyword_cmd(:yield, val[0],
- nil, val[1], nil)
- }
- | kRETURN call_args
- {
- result = @builder.keyword_cmd(:return, val[0],
- nil, val[1], nil)
- }
- | kBREAK call_args
- {
- result = @builder.keyword_cmd(:break, val[0],
- nil, val[1], nil)
- }
- | kNEXT call_args
- {
- result = @builder.keyword_cmd(:next, val[0],
- nil, val[1], nil)
- }
-
- mlhs: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_inner: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- mlhs_basic: mlhs_head
- | mlhs_head mlhs_item
- {
- result = val[0].
- push(val[1])
- }
- | mlhs_head tSTAR mlhs_node
- {
- result = val[0].
- push(@builder.splat(val[1], val[2]))
- }
- | mlhs_head tSTAR mlhs_node tCOMMA mlhs_post
- {
- result = val[0].
- push(@builder.splat(val[1], val[2])).
- concat(val[4])
- }
- | mlhs_head tSTAR
- {
- result = val[0].
- push(@builder.splat(val[1]))
- }
- | mlhs_head tSTAR tCOMMA mlhs_post
- {
- result = val[0].
- push(@builder.splat(val[1])).
- concat(val[3])
- }
- | tSTAR mlhs_node
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | tSTAR mlhs_node tCOMMA mlhs_post
- {
- result = [ @builder.splat(val[0], val[1]),
- *val[3] ]
- }
- | tSTAR
- {
- result = [ @builder.splat(val[0]) ]
- }
- | tSTAR tCOMMA mlhs_post
- {
- result = [ @builder.splat(val[0]),
- *val[2] ]
- }
-
- mlhs_item: mlhs_node
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_head: mlhs_item tCOMMA
- {
- result = [ val[0] ]
- }
- | mlhs_head mlhs_item tCOMMA
- {
- result = val[0] << val[1]
- }
-
- mlhs_post: mlhs_item
- {
- result = [ val[0] ]
- }
- | mlhs_post tCOMMA mlhs_item
- {
- result = val[0] << val[2]
- }
-
- mlhs_node: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- lhs: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- cname: tIDENTIFIER
- {
- diagnostic :error, :module_name_const, nil, val[0]
- }
- | tCONSTANT
-
- cpath: tCOLON3 cname
- {
- result = @builder.const_global(val[0], val[1])
- }
- | cname
- {
- result = @builder.const(val[0])
- }
- | primary_value tCOLON2 cname
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
-
- fname: tIDENTIFIER | tCONSTANT | tFID
- | op
- | reswords
-
- fsym: fname
- {
- result = @builder.symbol(val[0])
- }
- | symbol
-
- fitem: fsym
- | dsym
-
- undef_list: fitem
- {
- result = [ val[0] ]
- }
- | undef_list tCOMMA
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = val[0] << val[3]
- }
-
- op: tPIPE | tCARET | tAMPER2 | tCMP | tEQ | tEQQ
- | tMATCH | tNMATCH | tGT | tGEQ | tLT | tLEQ
- | tNEQ | tLSHFT | tRSHFT | tPLUS | tMINUS | tSTAR2
- | tSTAR | tDIVIDE | tPERCENT | tPOW | tBANG | tTILDE
- | tUPLUS | tUMINUS | tAREF | tASET | tDSTAR | tBACK_REF2
-
- reswords: k__LINE__ | k__FILE__ | k__ENCODING__ | klBEGIN | klEND
- | kALIAS | kAND | kBEGIN | kBREAK | kCASE
- | kCLASS | kDEF | kDEFINED | kDO | kELSE
- | kELSIF | kEND | kENSURE | kFALSE | kFOR
- | kIN | kMODULE | kNEXT | kNIL | kNOT
- | kOR | kREDO | kRESCUE | kRETRY | kRETURN
- | kSELF | kSUPER | kTHEN | kTRUE | kUNDEF
- | kWHEN | kYIELD | kIF | kUNLESS | kWHILE
- | kUNTIL
-
- arg: lhs tEQL arg
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | lhs tEQL arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.assign(val[0], val[1], rescue_)
- }
- | var_lhs tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.op_assign(val[0], val[1], rescue_)
- }
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN arg
- {
- const = @builder.const_op_assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- result = @builder.op_assign(const, val[3], val[4])
- }
- | tCOLON3 tCONSTANT tOP_ASGN arg
- {
- const = @builder.const_op_assignable(
- @builder.const_global(val[0], val[1]))
- result = @builder.op_assign(const, val[2], val[3])
- }
- | backref tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | arg tDOT2 arg
- {
- result = @builder.range_inclusive(val[0], val[1], val[2])
- }
- | arg tDOT3 arg
- {
- result = @builder.range_exclusive(val[0], val[1], val[2])
- }
- | arg tPLUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMINUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tSTAR2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tDIVIDE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPERCENT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPOW arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tUMINUS_NUM tINTEGER tPOW arg
- {
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- @builder.integer(val[1]),
- val[2], val[3]))
- }
- | tUMINUS_NUM tFLOAT tPOW arg
- {
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- @builder.float(val[1]),
- val[2], val[3]))
- }
- | tUPLUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | tUMINUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tPIPE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCARET arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tAMPER2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCMP arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tNEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMATCH arg
- {
- result = @builder.match_op(val[0], val[1], val[2])
- }
- | arg tNMATCH arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tBANG arg
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | tTILDE arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tLSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tRSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tANDOP arg
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | arg tOROP arg
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kDEFINED opt_nl arg
- {
- result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)
- }
-
- | arg tEH arg opt_nl tCOLON arg
- {
- result = @builder.ternary(val[0], val[1],
- val[2], val[4], val[5])
- }
- | primary
-
- arg_value: arg
-
- aref_args: none
- | args trailer
- | args tCOMMA assocs trailer
- {
- result = val[0] << @builder.associate(nil, val[2], nil)
- }
- | assocs trailer
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- }
-
- paren_args: tLPAREN2 opt_call_args rparen
- {
- result = val
- }
-
- opt_paren_args: # nothing
- {
- result = [ nil, [], nil ]
- }
- | paren_args
-
- opt_call_args: # nothing
- {
- result = []
- }
- | call_args
- | args tCOMMA
- | args tCOMMA assocs tCOMMA
- {
- result = val[0] << @builder.associate(nil, val[2], nil)
- }
- | assocs tCOMMA
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- }
-
- call_args: command
- {
- result = [ val[0] ]
- }
- | args opt_block_arg
- {
- result = val[0].concat(val[1])
- }
- | assocs opt_block_arg
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- result.concat(val[1])
- }
- | args tCOMMA assocs opt_block_arg
- {
- assocs = @builder.associate(nil, val[2], nil)
- result = val[0] << assocs
- result.concat(val[3])
- }
- | block_arg
- {
- result = [ val[0] ]
- }
-
- command_args: {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.push(true)
- }
- call_args
- {
- @lexer.cmdarg = val[0]
-
- result = val[1]
- }
-
- block_arg: tAMPER arg_value
- {
- result = @builder.block_pass(val[0], val[1])
- }
-
- opt_block_arg: tCOMMA block_arg
- {
- result = [ val[1] ]
- }
- | # nothing
- {
- result = []
- }
-
- args: arg_value
- {
- result = [ val[0] ]
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
-
- mrhs: args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
-
- primary: literal
- | strings
- | xstring
- | regexp
- | words
- | qwords
- | symbols
- | qsymbols
- | var_ref
- | backref
- | tFID
- {
- result = @builder.call_method(nil, nil, val[0])
- }
- | kBEGIN
- {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
- }
- bodystmt kEND
- {
- @lexer.cmdarg = val[1]
-
- result = @builder.begin_keyword(val[0], val[2], val[3])
- }
- | tLPAREN_ARG
- {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
- }
- expr
- {
- @lexer.state = :expr_endarg
- }
- opt_nl tRPAREN
- {
- @lexer.cmdarg = val[1]
-
- result = @builder.begin(val[0], val[2], val[5])
- }
- | tLPAREN_ARG
- {
- @lexer.state = :expr_endarg
- }
- opt_nl tRPAREN
- {
- result = @builder.begin(val[0], nil, val[3])
- }
- | tLPAREN compstmt tRPAREN
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.const_global(val[0], val[1])
- }
- | tLBRACK aref_args tRBRACK
- {
- result = @builder.array(val[0], val[1], val[2])
- }
- | tLBRACE assoc_list tRCURLY
- {
- result = @builder.associate(val[0], val[1], val[2])
- }
- | kRETURN
- {
- result = @builder.keyword_cmd(:return, val[0])
- }
- | kYIELD tLPAREN2 call_args rparen
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])
- }
- | kYIELD tLPAREN2 rparen
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])
- }
- | kYIELD
- {
- result = @builder.keyword_cmd(:yield, val[0])
- }
- | kDEFINED opt_nl tLPAREN2 expr rparen
- {
- result = @builder.keyword_cmd(:defined?, val[0],
- val[2], [ val[3] ], val[4])
- }
- | kNOT tLPAREN2 expr rparen
- {
- result = @builder.not_op(val[0], val[1], val[2], val[3])
- }
- | kNOT tLPAREN2 rparen
- {
- result = @builder.not_op(val[0], val[1], nil, val[2])
- }
- | fcall brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0])
-
- begin_t, args, body, end_t = val[1]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | method_call
- | method_call brace_block
- {
- begin_t, args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, args, body, end_t)
- }
- | tLAMBDA lambda
- {
- lambda_call = @builder.call_lambda(val[0])
-
- args, (begin_t, body, end_t) = val[1]
- result = @builder.block(lambda_call,
- begin_t, args, body, end_t)
- }
- | kIF expr_value then compstmt if_tail kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, val[5])
- }
- | kUNLESS expr_value then compstmt opt_else kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- else_, else_t,
- val[3], val[5])
- }
- | kWHILE
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:while, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kUNTIL
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:until, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kCASE expr_value opt_terms case_body kEND
- {
- *when_bodies, (else_t, else_body) = *val[3]
-
- result = @builder.case(val[0], val[1],
- when_bodies, else_t, else_body,
- val[4])
- }
- | kCASE opt_terms case_body kEND
- {
- *when_bodies, (else_t, else_body) = *val[2]
-
- result = @builder.case(val[0], nil,
- when_bodies, else_t, else_body,
- val[3])
- }
- | kFOR for_var kIN
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.for(val[0], val[1],
- val[2], val[4],
- val[5], val[7], val[8])
- }
- | kCLASS cpath superclass
- {
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :class_in_def, nil, val[0]
- end
-
- lt_t, superclass = val[2]
- result = @builder.def_class(val[0], val[1],
- lt_t, superclass,
- val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- }
- | kCLASS tLSHFT expr term
- {
- result = @def_level
- @def_level = 0
-
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- result = @builder.def_sclass(val[0], val[1], val[2],
- val[5], val[6])
-
- @lexer.pop_cmdarg
- @static_env.unextend
-
- @def_level = val[4]
- }
- | kMODULE cpath
- {
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :module_in_def, nil, val[0]
- end
-
- result = @builder.def_module(val[0], val[1],
- val[3], val[4])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- }
- | kDEF fname
- {
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_method(val[0], val[1],
- val[3], val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
- }
- | kDEF singleton dot_or_colon
- {
- @lexer.state = :expr_fname
- }
- fname
- {
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_singleton(val[0], val[1], val[2],
- val[4], val[6], val[7], val[8])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
- }
- | kBREAK
- {
- result = @builder.keyword_cmd(:break, val[0])
- }
- | kNEXT
- {
- result = @builder.keyword_cmd(:next, val[0])
- }
- | kREDO
- {
- result = @builder.keyword_cmd(:redo, val[0])
- }
- | kRETRY
- {
- result = @builder.keyword_cmd(:retry, val[0])
- }
-
- primary_value: primary
-
- then: term
- | kTHEN
- | term kTHEN
- {
- result = val[1]
- }
-
- do: term
- | kDO_COND
-
- if_tail: opt_else
- | kELSIF expr_value then compstmt if_tail
- {
- else_t, else_ = val[4]
- result = [ val[0],
- @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, nil),
- ]
- }
-
- opt_else: none
- | kELSE compstmt
- {
- result = val
- }
-
- for_var: lhs
- | mlhs
-
- f_marg: f_norm_arg
- {
- @static_env.declare val[0][0]
-
- result = @builder.arg(val[0])
- }
- | tLPAREN f_margs rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- f_marg_list: f_marg
- {
- result = [ val[0] ]
- }
- | f_marg_list tCOMMA f_marg
- {
- result = val[0] << val[2]
- }
-
- f_margs: f_marg_list
- | f_marg_list tCOMMA tSTAR f_norm_arg
- {
- @static_env.declare val[3][0]
-
- result = val[0].
- push(@builder.restarg(val[2], val[3]))
- }
- | f_marg_list tCOMMA tSTAR f_norm_arg tCOMMA f_marg_list
- {
- @static_env.declare val[3][0]
-
- result = val[0].
- push(@builder.restarg(val[2], val[3])).
- concat(val[5])
- }
- | f_marg_list tCOMMA tSTAR
- {
- result = val[0].
- push(@builder.restarg(val[2]))
- }
- | f_marg_list tCOMMA tSTAR tCOMMA f_marg_list
- {
- result = val[0].
- push(@builder.restarg(val[2])).
- concat(val[4])
- }
- | tSTAR f_norm_arg
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]) ]
- }
- | tSTAR f_norm_arg tCOMMA f_marg_list
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]),
- *val[3] ]
- }
- | tSTAR
- {
- result = [ @builder.restarg(val[0]) ]
- }
- | tSTAR tCOMMA f_marg_list
- {
- result = [ @builder.restarg(val[0]),
- *val[2] ]
- }
-
- block_args_tail: f_block_kwarg tCOMMA f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[2]).concat(val[3])
- }
- | f_block_kwarg opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
-
-opt_block_args_tail:
- tCOMMA block_args_tail
- {
- result = val[1]
- }
- | # nothing
- {
- result = []
- }
-
- block_param: f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
- }
- | f_arg tCOMMA f_block_optarg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_block_optarg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA
- | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg opt_block_args_tail
- {
- result = val[0].concat(val[1])
- }
- | f_block_optarg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_block_optarg opt_block_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_block_optarg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | block_args_tail
-
- opt_block_param: # nothing
- {
- result = @builder.args(nil, [], nil)
- }
- | block_param_def
- {
- @lexer.state = :expr_value
- }
-
- block_param_def: tPIPE opt_bv_decl tPIPE
- {
- result = @builder.args(val[0], val[1], val[2])
- }
- | tOROP
- {
- result = @builder.args(val[0], [], val[0])
- }
- | tPIPE block_param opt_bv_decl tPIPE
- {
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
- }
-
- opt_bv_decl: opt_nl
- {
- result = []
- }
- | opt_nl tSEMI bv_decls opt_nl
- {
- result = val[2]
- }
-
- bv_decls: bvar
- {
- result = [ val[0] ]
- }
- | bv_decls tCOMMA bvar
- {
- result = val[0] << val[2]
- }
-
- bvar: tIDENTIFIER
- {
- result = @builder.shadowarg(val[0])
- }
- | f_bad_arg
-
- lambda: {
- @static_env.extend_dynamic
- }
- f_larglist lambda_body
- {
- result = [ val[1], val[2] ]
-
- @static_env.unextend
- }
-
- f_larglist: tLPAREN2 f_args opt_bv_decl tRPAREN
- {
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
- }
- | f_args
- {
- result = @builder.args(nil, val[0], nil)
- }
-
- lambda_body: tLAMBEG compstmt tRCURLY
- {
- result = [ val[0], val[1], val[2] ]
- }
- | kDO_LAMBDA compstmt kEND
- {
- result = [ val[0], val[1], val[2] ]
- }
-
- do_block: kDO_BLOCK
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- block_call: command do_block
- {
- begin_t, block_args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, block_args, body, end_t)
- }
- | block_call dot_or_colon operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | block_call dot_or_colon operation2 opt_paren_args brace_block
- {
- lparen_t, args, rparen_t = val[3]
- method_call = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | block_call dot_or_colon operation2 command_args do_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
-
- method_call: fcall paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
- }
- | primary_value tDOT operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation2 paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation3
- {
- result = @builder.call_method(val[0], val[1], val[2])
- }
- | primary_value tDOT paren_args
- {
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 paren_args
- {
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
- }
- | kSUPER paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:super, val[0],
- lparen_t, args, rparen_t)
- }
- | kSUPER
- {
- result = @builder.keyword_cmd(:zsuper, val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index(val[0], val[1], val[2], val[3])
- }
-
- brace_block: tLCURLY
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
- | kDO
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- case_body: kWHEN args then compstmt cases
- {
- result = [ @builder.when(val[0], val[1], val[2], val[3]),
- *val[4] ]
- }
-
- cases: opt_else
- {
- result = [ val[0] ]
- }
- | case_body
-
- opt_rescue: kRESCUE exc_list exc_var then compstmt opt_rescue
- {
- assoc_t, exc_var = val[2]
-
- if val[1]
- exc_list = @builder.array(nil, val[1], nil)
- end
-
- result = [ @builder.rescue_body(val[0],
- exc_list, assoc_t, exc_var,
- val[3], val[4]),
- *val[5] ]
- }
- |
- {
- result = []
- }
-
- exc_list: arg_value
- {
- result = [ val[0] ]
- }
- | mrhs
- | none
-
- exc_var: tASSOC lhs
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- opt_ensure: kENSURE compstmt
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- literal: numeric
- | symbol
- | dsym
-
- strings: string
- {
- result = @builder.string_compose(nil, val[0], nil)
- }
-
- string: string1
- {
- result = [ val[0] ]
- }
- | string string1
- {
- result = val[0] << val[1]
- }
-
- string1: tSTRING_BEG string_contents tSTRING_END
- {
- result = @builder.string_compose(val[0], val[1], val[2])
- }
- | tSTRING
- {
- result = @builder.string(val[0])
- }
- | tCHARACTER
- {
- result = @builder.character(val[0])
- }
-
- xstring: tXSTRING_BEG xstring_contents tSTRING_END
- {
- result = @builder.xstring_compose(val[0], val[1], val[2])
- }
-
- regexp: tREGEXP_BEG regexp_contents tSTRING_END tREGEXP_OPT
- {
- opts = @builder.regexp_options(val[3])
- result = @builder.regexp_compose(val[0], val[1], val[2], opts)
- }
-
- words: tWORDS_BEG word_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- word_list: # nothing
- {
- result = []
- }
- | word_list word tSPACE
- {
- result = val[0] << @builder.word(val[1])
- }
-
- word: string_content
- {
- result = [ val[0] ]
- }
- | word string_content
- {
- result = val[0] << val[1]
- }
-
- symbols: tSYMBOLS_BEG symbol_list tSTRING_END
- {
- result = @builder.symbols_compose(val[0], val[1], val[2])
- }
-
- symbol_list: # nothing
- {
- result = []
- }
- | symbol_list word tSPACE
- {
- result = val[0] << @builder.word(val[1])
- }
-
- qwords: tQWORDS_BEG qword_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- qsymbols: tQSYMBOLS_BEG qsym_list tSTRING_END
- {
- result = @builder.symbols_compose(val[0], val[1], val[2])
- }
-
- qword_list: # nothing
- {
- result = []
- }
- | qword_list tSTRING_CONTENT tSPACE
- {
- result = val[0] << @builder.string_internal(val[1])
- }
-
- qsym_list: # nothing
- {
- result = []
- }
- | qsym_list tSTRING_CONTENT tSPACE
- {
- result = val[0] << @builder.symbol_internal(val[1])
- }
-
- string_contents: # nothing
- {
- result = []
- }
- | string_contents string_content
- {
- result = val[0] << val[1]
- }
-
-xstring_contents: # nothing
- {
- result = []
- }
- | xstring_contents string_content
- {
- result = val[0] << val[1]
- }
-
-regexp_contents: # nothing
- {
- result = []
- }
- | regexp_contents string_content
- {
- result = val[0] << val[1]
- }
-
- string_content: tSTRING_CONTENT
- {
- result = @builder.string_internal(val[0])
- }
- | tSTRING_DVAR string_dvar
- {
- result = val[1]
- }
- | tSTRING_DBEG
- {
- @lexer.cond.push(false)
- @lexer.cmdarg.push(false)
- }
- compstmt tSTRING_DEND
- {
- @lexer.cond.lexpop
- @lexer.cmdarg.lexpop
-
- result = @builder.begin(val[0], val[2], val[3])
- }
-
- string_dvar: tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
- | backref
-
-
- symbol: tSYMBOL
- {
- result = @builder.symbol(val[0])
- }
-
- dsym: tSYMBEG xstring_contents tSTRING_END
- {
- result = @builder.symbol_compose(val[0], val[1], val[2])
- }
-
- numeric: tINTEGER
- {
- result = @builder.integer(val[0])
- }
- | tFLOAT
- {
- result = @builder.float(val[0])
- }
- | tUMINUS_NUM tINTEGER =tLOWEST
- {
- result = @builder.negate(val[0],
- @builder.integer(val[1]))
- }
- | tUMINUS_NUM tFLOAT =tLOWEST
- {
- result = @builder.negate(val[0],
- @builder.float(val[1]))
- }
-
- user_variable: tIDENTIFIER
- {
- result = @builder.ident(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tCONSTANT
- {
- result = @builder.const(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
-
-keyword_variable: kNIL
- {
- result = @builder.nil(val[0])
- }
- | kSELF
- {
- result = @builder.self(val[0])
- }
- | kTRUE
- {
- result = @builder.true(val[0])
- }
- | kFALSE
- {
- result = @builder.false(val[0])
- }
- | k__FILE__
- {
- result = @builder.__FILE__(val[0])
- }
- | k__LINE__
- {
- result = @builder.__LINE__(val[0])
- }
- | k__ENCODING__
- {
- result = @builder.__ENCODING__(val[0])
- }
-
- var_ref: user_variable
- {
- result = @builder.accessible(val[0])
- }
- | keyword_variable
- {
- result = @builder.accessible(val[0])
- }
-
- var_lhs: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
-
- backref: tNTH_REF
- {
- result = @builder.nth_ref(val[0])
- }
- | tBACK_REF
- {
- result = @builder.back_ref(val[0])
- }
-
- superclass: term
- {
- result = nil
- }
- | tLT
- {
- @lexer.state = :expr_value
- }
- expr_value term
- {
- result = [ val[0], val[2] ]
- }
- | error term
- {
- yyerrok
- result = nil
- }
-
- f_arglist: tLPAREN2 f_args rparen
- {
- result = @builder.args(val[0], val[1], val[2])
-
- @lexer.state = :expr_value
- }
- | f_args term
- {
- result = @builder.args(nil, val[0], nil)
- }
-
- args_tail: f_kwarg tCOMMA f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[2]).concat(val[3])
- }
- | f_kwarg opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
-
- opt_args_tail: tCOMMA args_tail
- {
- result = val[1]
- }
- | # nothing
- {
- result = []
- }
-
- f_args: f_arg tCOMMA f_optarg tCOMMA f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
- }
- | f_arg tCOMMA f_optarg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_optarg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg opt_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_optarg opt_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | args_tail
- {
- result = val[0]
- }
- | # nothing
- {
- result = []
- }
-
- f_bad_arg: tCONSTANT
- {
- diagnostic :error, :argument_const, nil, val[0]
- }
- | tIVAR
- {
- diagnostic :error, :argument_ivar, nil, val[0]
- }
- | tGVAR
- {
- diagnostic :error, :argument_gvar, nil, val[0]
- }
- | tCVAR
- {
- diagnostic :error, :argument_cvar, nil, val[0]
- }
-
- f_norm_arg: f_bad_arg
- | tIDENTIFIER
-
- f_arg_item: f_norm_arg
- {
- @static_env.declare val[0][0]
-
- result = @builder.arg(val[0])
- }
- | tLPAREN f_margs rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- f_arg: f_arg_item
- {
- result = [ val[0] ]
- }
- | f_arg tCOMMA f_arg_item
- {
- result = val[0] << val[2]
- }
-
- f_kw: tLABEL arg_value
- {
- check_kwarg_name(val[0])
-
- @static_env.declare val[0][0]
-
- result = @builder.kwoptarg(val[0], val[1])
- }
-
- f_block_kw: tLABEL primary_value
- {
- check_kwarg_name(val[0])
-
- @static_env.declare val[0][0]
-
- result = @builder.kwoptarg(val[0], val[1])
- }
-
- f_block_kwarg: f_block_kw
- {
- result = [ val[0] ]
- }
- | f_block_kwarg tCOMMA f_block_kw
- {
- result = val[0] << val[2]
- }
-
- f_kwarg: f_kw
- {
- result = [ val[0] ]
- }
- | f_kwarg tCOMMA f_kw
- {
- result = val[0] << val[2]
- }
-
- kwrest_mark: tPOW | tDSTAR
-
- f_kwrest: kwrest_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.kwrestarg(val[0], val[1]) ]
- }
- | kwrest_mark
- {
- result = [ @builder.kwrestarg(val[0]) ]
- }
-
- f_opt: tIDENTIFIER tEQL arg_value
- {
- @static_env.declare val[0][0]
-
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_block_opt: tIDENTIFIER tEQL primary_value
- {
- @static_env.declare val[0][0]
-
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_block_optarg: f_block_opt
- {
- result = [ val[0] ]
- }
- | f_block_optarg tCOMMA f_block_opt
- {
- result = val[0] << val[2]
- }
-
- f_optarg: f_opt
- {
- result = [ val[0] ]
- }
- | f_optarg tCOMMA f_opt
- {
- result = val[0] << val[2]
- }
-
- restarg_mark: tSTAR2 | tSTAR
-
- f_rest_arg: restarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]) ]
- }
- | restarg_mark
- {
- result = [ @builder.restarg(val[0]) ]
- }
-
- blkarg_mark: tAMPER2 | tAMPER
-
- f_block_arg: blkarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = @builder.blockarg(val[0], val[1])
- }
-
- opt_f_block_arg: tCOMMA f_block_arg
- {
- result = [ val[1] ]
- }
- |
- {
- result = []
- }
-
- singleton: var_ref
- | tLPAREN2 expr rparen
- {
- result = val[1]
- }
-
- assoc_list: # nothing
- {
- result = []
- }
- | assocs trailer
-
- assocs: assoc
- {
- result = [ val[0] ]
- }
- | assocs tCOMMA assoc
- {
- result = val[0] << val[2]
- }
-
- assoc: arg_value tASSOC arg_value
- {
- result = @builder.pair(val[0], val[1], val[2])
- }
- | tLABEL arg_value
- {
- result = @builder.pair_keyword(val[0], val[1])
- }
- | tDSTAR arg_value
- {
- result = @builder.kwsplat(val[0], val[1])
- }
-
- operation: tIDENTIFIER | tCONSTANT | tFID
- operation2: tIDENTIFIER | tCONSTANT | tFID | op
- operation3: tIDENTIFIER | tFID | op
- dot_or_colon: tDOT | tCOLON2
- opt_terms: | terms
- opt_nl: | tNL
- rparen: opt_nl tRPAREN
- {
- result = val[1]
- }
- rbracket: opt_nl tRBRACK
- {
- result = val[1]
- }
- trailer: | tNL | tCOMMA
-
- term: tSEMI
- {
- yyerrok
- }
- | tNL
-
- terms: term
- | terms tSEMI
-
- none: # nothing
- {
- result = nil
- }
-end
-
----- header
-
-require 'parser'
-
-Parser.check_for_encoding_support
-
----- inner
-
- def version
- 20
- end
-
- def default_encoding
- Encoding::UTF_8
- end
diff --git a/test/racc/assets/ruby21.y b/test/racc/assets/ruby21.y
deleted file mode 100644
index 2ac94afb0c..0000000000
--- a/test/racc/assets/ruby21.y
+++ /dev/null
@@ -1,2359 +0,0 @@
-# Copyright (c) 2013 Peter Zotov <whitequark@whitequark.org>
-#
-# Parts of the source are derived from ruby_parser:
-# Copyright (c) Ryan Davis, seattle.rb
-#
-# MIT License
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-class Parser::Ruby21
-
-token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
- kTHEN kELSIF kELSE kCASE kWHEN kWHILE kUNTIL kFOR kBREAK kNEXT
- kREDO kRETRY kIN kDO kDO_COND kDO_BLOCK kDO_LAMBDA kRETURN kYIELD kSUPER
- kSELF kNIL kTRUE kFALSE kAND kOR kNOT kIF_MOD kUNLESS_MOD kWHILE_MOD
- kUNTIL_MOD kRESCUE_MOD kALIAS kDEFINED klBEGIN klEND k__LINE__
- k__FILE__ k__ENCODING__ tIDENTIFIER tFID tGVAR tIVAR tCONSTANT
- tLABEL tCVAR tNTH_REF tBACK_REF tSTRING_CONTENT tINTEGER tFLOAT
- tREGEXP_END tUPLUS tUMINUS tUMINUS_NUM tPOW tCMP tEQ tEQQ tNEQ
- tGEQ tLEQ tANDOP tOROP tMATCH tNMATCH tDOT tDOT2 tDOT3 tAREF
- tASET tLSHFT tRSHFT tCOLON2 tCOLON3 tOP_ASGN tASSOC tLPAREN
- tLPAREN2 tRPAREN tLPAREN_ARG tLBRACK tLBRACK2 tRBRACK tLBRACE
- tLBRACE_ARG tSTAR tSTAR2 tAMPER tAMPER2 tTILDE tPERCENT tDIVIDE
- tDSTAR tPLUS tMINUS tLT tGT tPIPE tBANG tCARET tLCURLY tRCURLY
- tBACK_REF2 tSYMBEG tSTRING_BEG tXSTRING_BEG tREGEXP_BEG tREGEXP_OPT
- tWORDS_BEG tQWORDS_BEG tSYMBOLS_BEG tQSYMBOLS_BEG tSTRING_DBEG
- tSTRING_DVAR tSTRING_END tSTRING_DEND tSTRING tSYMBOL
- tNL tEH tCOLON tCOMMA tSPACE tSEMI tLAMBDA tLAMBEG tCHARACTER
- tRATIONAL tIMAGINARY
-
-prechigh
- right tBANG tTILDE tUPLUS
- right tPOW
- right tUMINUS_NUM tUMINUS
- left tSTAR2 tDIVIDE tPERCENT
- left tPLUS tMINUS
- left tLSHFT tRSHFT
- left tAMPER2
- left tPIPE tCARET
- left tGT tGEQ tLT tLEQ
- nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
- left tANDOP
- left tOROP
- nonassoc tDOT2 tDOT3
- right tEH tCOLON
- left kRESCUE_MOD
- right tEQL tOP_ASGN
- nonassoc kDEFINED
- right kNOT
- left kOR kAND
- nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
- nonassoc tLBRACE_ARG
- nonassoc tLOWEST
-preclow
-
-rule
-
- program: top_compstmt
-
- top_compstmt: top_stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- top_stmts: # nothing
- {
- result = []
- }
- | top_stmt
- {
- result = [ val[0] ]
- }
- | top_stmts terms top_stmt
- {
- result = val[0] << val[2]
- }
- | error top_stmt
- {
- result = [ val[1] ]
- }
-
- top_stmt: stmt
- | klBEGIN tLCURLY top_compstmt tRCURLY
- {
- result = @builder.preexe(val[0], val[1], val[2], val[3])
- }
-
- bodystmt: compstmt opt_rescue opt_else opt_ensure
- {
- rescue_bodies = val[1]
- else_t, else_ = val[2]
- ensure_t, ensure_ = val[3]
-
- if rescue_bodies.empty? && !else_.nil?
- diagnostic :warning, :useless_else, nil, else_t
- end
-
- result = @builder.begin_body(val[0],
- rescue_bodies,
- else_t, else_,
- ensure_t, ensure_)
- }
-
- compstmt: stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- stmts: # nothing
- {
- result = []
- }
- | stmt_or_begin
- {
- result = [ val[0] ]
- }
- | stmts terms stmt_or_begin
- {
- result = val[0] << val[2]
- }
- | error stmt
- {
- result = [ val[1] ]
- }
-
- stmt_or_begin: stmt
- | klBEGIN tLCURLY top_compstmt tRCURLY
- {
- diagnostic :error, :begin_in_method, nil, val[0]
- }
-
- stmt: kALIAS fitem
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = @builder.alias(val[0], val[1], val[3])
- }
- | kALIAS tGVAR tGVAR
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.gvar(val[2]))
- }
- | kALIAS tGVAR tBACK_REF
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.back_ref(val[2]))
- }
- | kALIAS tGVAR tNTH_REF
- {
- diagnostic :error, :nth_ref_alias, nil, val[2]
- }
- | kUNDEF undef_list
- {
- result = @builder.undef_method(val[0], val[1])
- }
- | stmt kIF_MOD expr_value
- {
- result = @builder.condition_mod(val[0], nil,
- val[1], val[2])
- }
- | stmt kUNLESS_MOD expr_value
- {
- result = @builder.condition_mod(nil, val[0],
- val[1], val[2])
- }
- | stmt kWHILE_MOD expr_value
- {
- result = @builder.loop_mod(:while, val[0], val[1], val[2])
- }
- | stmt kUNTIL_MOD expr_value
- {
- result = @builder.loop_mod(:until, val[0], val[1], val[2])
- }
- | stmt kRESCUE_MOD stmt
- {
- rescue_body = @builder.rescue_body(val[1],
- nil, nil, nil,
- nil, val[2])
-
- result = @builder.begin_body(val[0], [ rescue_body ])
- }
- | klEND tLCURLY compstmt tRCURLY
- {
- result = @builder.postexe(val[0], val[1], val[2], val[3])
- }
- | command_asgn
- | mlhs tEQL command_call
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN command_call
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | backref tOP_ASGN command_call
- {
- @builder.op_assign(val[0], val[1], val[2])
- }
- | lhs tEQL mrhs
- {
- result = @builder.assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
- }
- | mlhs tEQL mrhs_arg
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | expr
-
- command_asgn: lhs tEQL command_call
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | lhs tEQL command_asgn
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
-
- expr: command_call
- | expr kAND expr
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | expr kOR expr
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kNOT opt_nl expr
- {
- result = @builder.not_op(val[0], nil, val[2], nil)
- }
- | tBANG command_call
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | arg
-
- expr_value: expr
-
- command_call: command
- | block_command
-
- block_command: block_call
- | block_call dot_or_colon operation2 command_args
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
-
- cmd_brace_block: tLBRACE_ARG
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- fcall: operation
-
- command: fcall command_args =tLOWEST
- {
- result = @builder.call_method(nil, nil, val[0],
- nil, val[1], nil)
- }
- | fcall command_args cmd_brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0],
- nil, val[1], nil)
-
- begin_t, args, body, end_t = val[2]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | primary_value tDOT operation2 command_args =tLOWEST
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
- | primary_value tDOT operation2 command_args cmd_brace_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | primary_value tCOLON2 operation2 command_args =tLOWEST
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
- | primary_value tCOLON2 operation2 command_args cmd_brace_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | kSUPER command_args
- {
- result = @builder.keyword_cmd(:super, val[0],
- nil, val[1], nil)
- }
- | kYIELD command_args
- {
- result = @builder.keyword_cmd(:yield, val[0],
- nil, val[1], nil)
- }
- | kRETURN call_args
- {
- result = @builder.keyword_cmd(:return, val[0],
- nil, val[1], nil)
- }
- | kBREAK call_args
- {
- result = @builder.keyword_cmd(:break, val[0],
- nil, val[1], nil)
- }
- | kNEXT call_args
- {
- result = @builder.keyword_cmd(:next, val[0],
- nil, val[1], nil)
- }
-
- mlhs: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_inner: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- mlhs_basic: mlhs_head
- | mlhs_head mlhs_item
- {
- result = val[0].
- push(val[1])
- }
- | mlhs_head tSTAR mlhs_node
- {
- result = val[0].
- push(@builder.splat(val[1], val[2]))
- }
- | mlhs_head tSTAR mlhs_node tCOMMA mlhs_post
- {
- result = val[0].
- push(@builder.splat(val[1], val[2])).
- concat(val[4])
- }
- | mlhs_head tSTAR
- {
- result = val[0].
- push(@builder.splat(val[1]))
- }
- | mlhs_head tSTAR tCOMMA mlhs_post
- {
- result = val[0].
- push(@builder.splat(val[1])).
- concat(val[3])
- }
- | tSTAR mlhs_node
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | tSTAR mlhs_node tCOMMA mlhs_post
- {
- result = [ @builder.splat(val[0], val[1]),
- *val[3] ]
- }
- | tSTAR
- {
- result = [ @builder.splat(val[0]) ]
- }
- | tSTAR tCOMMA mlhs_post
- {
- result = [ @builder.splat(val[0]),
- *val[2] ]
- }
-
- mlhs_item: mlhs_node
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_head: mlhs_item tCOMMA
- {
- result = [ val[0] ]
- }
- | mlhs_head mlhs_item tCOMMA
- {
- result = val[0] << val[1]
- }
-
- mlhs_post: mlhs_item
- {
- result = [ val[0] ]
- }
- | mlhs_post tCOMMA mlhs_item
- {
- result = val[0] << val[2]
- }
-
- mlhs_node: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- lhs: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- cname: tIDENTIFIER
- {
- diagnostic :error, :module_name_const, nil, val[0]
- }
- | tCONSTANT
-
- cpath: tCOLON3 cname
- {
- result = @builder.const_global(val[0], val[1])
- }
- | cname
- {
- result = @builder.const(val[0])
- }
- | primary_value tCOLON2 cname
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
-
- fname: tIDENTIFIER | tCONSTANT | tFID
- | op
- | reswords
-
- fsym: fname
- {
- result = @builder.symbol(val[0])
- }
- | symbol
-
- fitem: fsym
- | dsym
-
- undef_list: fitem
- {
- result = [ val[0] ]
- }
- | undef_list tCOMMA
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = val[0] << val[3]
- }
-
- op: tPIPE | tCARET | tAMPER2 | tCMP | tEQ | tEQQ
- | tMATCH | tNMATCH | tGT | tGEQ | tLT | tLEQ
- | tNEQ | tLSHFT | tRSHFT | tPLUS | tMINUS | tSTAR2
- | tSTAR | tDIVIDE | tPERCENT | tPOW | tBANG | tTILDE
- | tUPLUS | tUMINUS | tAREF | tASET | tDSTAR | tBACK_REF2
-
- reswords: k__LINE__ | k__FILE__ | k__ENCODING__ | klBEGIN | klEND
- | kALIAS | kAND | kBEGIN | kBREAK | kCASE
- | kCLASS | kDEF | kDEFINED | kDO | kELSE
- | kELSIF | kEND | kENSURE | kFALSE | kFOR
- | kIN | kMODULE | kNEXT | kNIL | kNOT
- | kOR | kREDO | kRESCUE | kRETRY | kRETURN
- | kSELF | kSUPER | kTHEN | kTRUE | kUNDEF
- | kWHEN | kYIELD | kIF | kUNLESS | kWHILE
- | kUNTIL
-
- arg: lhs tEQL arg
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | lhs tEQL arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.assign(val[0], val[1], rescue_)
- }
- | var_lhs tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.op_assign(val[0], val[1], rescue_)
- }
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN arg
- {
- const = @builder.const_op_assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- result = @builder.op_assign(const, val[3], val[4])
- }
- | tCOLON3 tCONSTANT tOP_ASGN arg
- {
- const = @builder.const_op_assignable(
- @builder.const_global(val[0], val[1]))
- result = @builder.op_assign(const, val[2], val[3])
- }
- | backref tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | arg tDOT2 arg
- {
- result = @builder.range_inclusive(val[0], val[1], val[2])
- }
- | arg tDOT3 arg
- {
- result = @builder.range_exclusive(val[0], val[1], val[2])
- }
- | arg tPLUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMINUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tSTAR2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tDIVIDE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPERCENT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPOW arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tUMINUS_NUM simple_numeric tPOW arg
- {
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- val[1], val[2], val[3]))
- }
- | tUPLUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | tUMINUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tPIPE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCARET arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tAMPER2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCMP arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tNEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMATCH arg
- {
- result = @builder.match_op(val[0], val[1], val[2])
- }
- | arg tNMATCH arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tBANG arg
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | tTILDE arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tLSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tRSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tANDOP arg
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | arg tOROP arg
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kDEFINED opt_nl arg
- {
- result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)
- }
-
- | arg tEH arg opt_nl tCOLON arg
- {
- result = @builder.ternary(val[0], val[1],
- val[2], val[4], val[5])
- }
- | primary
-
- arg_value: arg
-
- aref_args: none
- | args trailer
- | args tCOMMA assocs trailer
- {
- result = val[0] << @builder.associate(nil, val[2], nil)
- }
- | assocs trailer
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- }
-
- paren_args: tLPAREN2 opt_call_args rparen
- {
- result = val
- }
-
- opt_paren_args: # nothing
- {
- result = [ nil, [], nil ]
- }
- | paren_args
-
- opt_call_args: # nothing
- {
- result = []
- }
- | call_args
- | args tCOMMA
- | args tCOMMA assocs tCOMMA
- {
- result = val[0] << @builder.associate(nil, val[2], nil)
- }
- | assocs tCOMMA
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- }
-
- call_args: command
- {
- result = [ val[0] ]
- }
- | args opt_block_arg
- {
- result = val[0].concat(val[1])
- }
- | assocs opt_block_arg
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- result.concat(val[1])
- }
- | args tCOMMA assocs opt_block_arg
- {
- assocs = @builder.associate(nil, val[2], nil)
- result = val[0] << assocs
- result.concat(val[3])
- }
- | block_arg
- {
- result = [ val[0] ]
- }
-
- command_args: {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.push(true)
- }
- call_args
- {
- @lexer.cmdarg = val[0]
-
- result = val[1]
- }
-
- block_arg: tAMPER arg_value
- {
- result = @builder.block_pass(val[0], val[1])
- }
-
- opt_block_arg: tCOMMA block_arg
- {
- result = [ val[1] ]
- }
- | # nothing
- {
- result = []
- }
-
- args: arg_value
- {
- result = [ val[0] ]
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
-
- mrhs_arg: mrhs
- {
- result = @builder.array(nil, val[0], nil)
- }
- | arg_value
-
- mrhs: args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
-
- primary: literal
- | strings
- | xstring
- | regexp
- | words
- | qwords
- | symbols
- | qsymbols
- | var_ref
- | backref
- | tFID
- {
- result = @builder.call_method(nil, nil, val[0])
- }
- | kBEGIN
- {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
- }
- bodystmt kEND
- {
- @lexer.cmdarg = val[1]
-
- result = @builder.begin_keyword(val[0], val[2], val[3])
- }
- | tLPAREN_ARG
- {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
- }
- expr
- {
- @lexer.state = :expr_endarg
- }
- opt_nl tRPAREN
- {
- @lexer.cmdarg = val[1]
-
- result = @builder.begin(val[0], val[2], val[5])
- }
- | tLPAREN_ARG
- {
- @lexer.state = :expr_endarg
- }
- opt_nl tRPAREN
- {
- result = @builder.begin(val[0], nil, val[3])
- }
- | tLPAREN compstmt tRPAREN
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.const_global(val[0], val[1])
- }
- | tLBRACK aref_args tRBRACK
- {
- result = @builder.array(val[0], val[1], val[2])
- }
- | tLBRACE assoc_list tRCURLY
- {
- result = @builder.associate(val[0], val[1], val[2])
- }
- | kRETURN
- {
- result = @builder.keyword_cmd(:return, val[0])
- }
- | kYIELD tLPAREN2 call_args rparen
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])
- }
- | kYIELD tLPAREN2 rparen
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])
- }
- | kYIELD
- {
- result = @builder.keyword_cmd(:yield, val[0])
- }
- | kDEFINED opt_nl tLPAREN2 expr rparen
- {
- result = @builder.keyword_cmd(:defined?, val[0],
- val[2], [ val[3] ], val[4])
- }
- | kNOT tLPAREN2 expr rparen
- {
- result = @builder.not_op(val[0], val[1], val[2], val[3])
- }
- | kNOT tLPAREN2 rparen
- {
- result = @builder.not_op(val[0], val[1], nil, val[2])
- }
- | fcall brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0])
-
- begin_t, args, body, end_t = val[1]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | method_call
- | method_call brace_block
- {
- begin_t, args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, args, body, end_t)
- }
- | tLAMBDA lambda
- {
- lambda_call = @builder.call_lambda(val[0])
-
- args, (begin_t, body, end_t) = val[1]
- result = @builder.block(lambda_call,
- begin_t, args, body, end_t)
- }
- | kIF expr_value then compstmt if_tail kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, val[5])
- }
- | kUNLESS expr_value then compstmt opt_else kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- else_, else_t,
- val[3], val[5])
- }
- | kWHILE
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:while, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kUNTIL
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:until, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kCASE expr_value opt_terms case_body kEND
- {
- *when_bodies, (else_t, else_body) = *val[3]
-
- result = @builder.case(val[0], val[1],
- when_bodies, else_t, else_body,
- val[4])
- }
- | kCASE opt_terms case_body kEND
- {
- *when_bodies, (else_t, else_body) = *val[2]
-
- result = @builder.case(val[0], nil,
- when_bodies, else_t, else_body,
- val[3])
- }
- | kFOR for_var kIN
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.for(val[0], val[1],
- val[2], val[4],
- val[5], val[7], val[8])
- }
- | kCLASS cpath superclass
- {
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :class_in_def, nil, val[0]
- end
-
- lt_t, superclass = val[2]
- result = @builder.def_class(val[0], val[1],
- lt_t, superclass,
- val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- }
- | kCLASS tLSHFT expr term
- {
- result = @def_level
- @def_level = 0
-
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- result = @builder.def_sclass(val[0], val[1], val[2],
- val[5], val[6])
-
- @lexer.pop_cmdarg
- @static_env.unextend
-
- @def_level = val[4]
- }
- | kMODULE cpath
- {
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :module_in_def, nil, val[0]
- end
-
- result = @builder.def_module(val[0], val[1],
- val[3], val[4])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- }
- | kDEF fname
- {
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_method(val[0], val[1],
- val[3], val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
- }
- | kDEF singleton dot_or_colon
- {
- @lexer.state = :expr_fname
- }
- fname
- {
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_singleton(val[0], val[1], val[2],
- val[4], val[6], val[7], val[8])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
- }
- | kBREAK
- {
- result = @builder.keyword_cmd(:break, val[0])
- }
- | kNEXT
- {
- result = @builder.keyword_cmd(:next, val[0])
- }
- | kREDO
- {
- result = @builder.keyword_cmd(:redo, val[0])
- }
- | kRETRY
- {
- result = @builder.keyword_cmd(:retry, val[0])
- }
-
- primary_value: primary
-
- then: term
- | kTHEN
- | term kTHEN
- {
- result = val[1]
- }
-
- do: term
- | kDO_COND
-
- if_tail: opt_else
- | kELSIF expr_value then compstmt if_tail
- {
- else_t, else_ = val[4]
- result = [ val[0],
- @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, nil),
- ]
- }
-
- opt_else: none
- | kELSE compstmt
- {
- result = val
- }
-
- for_var: lhs
- | mlhs
-
- f_marg: f_norm_arg
- {
- result = @builder.arg(val[0])
- }
- | tLPAREN f_margs rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- f_marg_list: f_marg
- {
- result = [ val[0] ]
- }
- | f_marg_list tCOMMA f_marg
- {
- result = val[0] << val[2]
- }
-
- f_margs: f_marg_list
- | f_marg_list tCOMMA tSTAR f_norm_arg
- {
- result = val[0].
- push(@builder.restarg(val[2], val[3]))
- }
- | f_marg_list tCOMMA tSTAR f_norm_arg tCOMMA f_marg_list
- {
- result = val[0].
- push(@builder.restarg(val[2], val[3])).
- concat(val[5])
- }
- | f_marg_list tCOMMA tSTAR
- {
- result = val[0].
- push(@builder.restarg(val[2]))
- }
- | f_marg_list tCOMMA tSTAR tCOMMA f_marg_list
- {
- result = val[0].
- push(@builder.restarg(val[2])).
- concat(val[4])
- }
- | tSTAR f_norm_arg
- {
- result = [ @builder.restarg(val[0], val[1]) ]
- }
- | tSTAR f_norm_arg tCOMMA f_marg_list
- {
- result = [ @builder.restarg(val[0], val[1]),
- *val[3] ]
- }
- | tSTAR
- {
- result = [ @builder.restarg(val[0]) ]
- }
- | tSTAR tCOMMA f_marg_list
- {
- result = [ @builder.restarg(val[0]),
- *val[2] ]
- }
-
- block_args_tail: f_block_kwarg tCOMMA f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[2]).concat(val[3])
- }
- | f_block_kwarg opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
-
-opt_block_args_tail:
- tCOMMA block_args_tail
- {
- result = val[1]
- }
- | # nothing
- {
- result = []
- }
-
- block_param: f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
- }
- | f_arg tCOMMA f_block_optarg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_block_optarg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA
- | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg opt_block_args_tail
- {
- result = val[0].concat(val[1])
- }
- | f_block_optarg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_block_optarg opt_block_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_block_optarg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | block_args_tail
-
- opt_block_param: # nothing
- {
- result = @builder.args(nil, [], nil)
- }
- | block_param_def
- {
- @lexer.state = :expr_value
- }
-
- block_param_def: tPIPE opt_bv_decl tPIPE
- {
- result = @builder.args(val[0], val[1], val[2])
- }
- | tOROP
- {
- result = @builder.args(val[0], [], val[0])
- }
- | tPIPE block_param opt_bv_decl tPIPE
- {
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
- }
-
- opt_bv_decl: opt_nl
- {
- result = []
- }
- | opt_nl tSEMI bv_decls opt_nl
- {
- result = val[2]
- }
-
- bv_decls: bvar
- {
- result = [ val[0] ]
- }
- | bv_decls tCOMMA bvar
- {
- result = val[0] << val[2]
- }
-
- bvar: tIDENTIFIER
- {
- result = @builder.shadowarg(val[0])
- }
- | f_bad_arg
-
- lambda: {
- @static_env.extend_dynamic
- }
- f_larglist
- {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
- }
- lambda_body
- {
- @lexer.cmdarg = val[2]
- @lexer.cmdarg.lexpop
-
- result = [ val[1], val[3] ]
-
- @static_env.unextend
- }
-
- f_larglist: tLPAREN2 f_args opt_bv_decl tRPAREN
- {
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
- }
- | f_args
- {
- result = @builder.args(nil, val[0], nil)
- }
-
- lambda_body: tLAMBEG compstmt tRCURLY
- {
- result = [ val[0], val[1], val[2] ]
- }
- | kDO_LAMBDA compstmt kEND
- {
- result = [ val[0], val[1], val[2] ]
- }
-
- do_block: kDO_BLOCK
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- block_call: command do_block
- {
- begin_t, block_args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, block_args, body, end_t)
- }
- | block_call dot_or_colon operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | block_call dot_or_colon operation2 opt_paren_args brace_block
- {
- lparen_t, args, rparen_t = val[3]
- method_call = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | block_call dot_or_colon operation2 command_args do_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
-
- method_call: fcall paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
- }
- | primary_value tDOT operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation2 paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation3
- {
- result = @builder.call_method(val[0], val[1], val[2])
- }
- | primary_value tDOT paren_args
- {
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 paren_args
- {
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
- }
- | kSUPER paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:super, val[0],
- lparen_t, args, rparen_t)
- }
- | kSUPER
- {
- result = @builder.keyword_cmd(:zsuper, val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index(val[0], val[1], val[2], val[3])
- }
-
- brace_block: tLCURLY
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
- | kDO
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- case_body: kWHEN args then compstmt cases
- {
- result = [ @builder.when(val[0], val[1], val[2], val[3]),
- *val[4] ]
- }
-
- cases: opt_else
- {
- result = [ val[0] ]
- }
- | case_body
-
- opt_rescue: kRESCUE exc_list exc_var then compstmt opt_rescue
- {
- assoc_t, exc_var = val[2]
-
- if val[1]
- exc_list = @builder.array(nil, val[1], nil)
- end
-
- result = [ @builder.rescue_body(val[0],
- exc_list, assoc_t, exc_var,
- val[3], val[4]),
- *val[5] ]
- }
- |
- {
- result = []
- }
-
- exc_list: arg_value
- {
- result = [ val[0] ]
- }
- | mrhs
- | none
-
- exc_var: tASSOC lhs
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- opt_ensure: kENSURE compstmt
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- literal: numeric
- | symbol
- | dsym
-
- strings: string
- {
- result = @builder.string_compose(nil, val[0], nil)
- }
-
- string: string1
- {
- result = [ val[0] ]
- }
- | string string1
- {
- result = val[0] << val[1]
- }
-
- string1: tSTRING_BEG string_contents tSTRING_END
- {
- result = @builder.string_compose(val[0], val[1], val[2])
- }
- | tSTRING
- {
- result = @builder.string(val[0])
- }
- | tCHARACTER
- {
- result = @builder.character(val[0])
- }
-
- xstring: tXSTRING_BEG xstring_contents tSTRING_END
- {
- result = @builder.xstring_compose(val[0], val[1], val[2])
- }
-
- regexp: tREGEXP_BEG regexp_contents tSTRING_END tREGEXP_OPT
- {
- opts = @builder.regexp_options(val[3])
- result = @builder.regexp_compose(val[0], val[1], val[2], opts)
- }
-
- words: tWORDS_BEG word_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- word_list: # nothing
- {
- result = []
- }
- | word_list word tSPACE
- {
- result = val[0] << @builder.word(val[1])
- }
-
- word: string_content
- {
- result = [ val[0] ]
- }
- | word string_content
- {
- result = val[0] << val[1]
- }
-
- symbols: tSYMBOLS_BEG symbol_list tSTRING_END
- {
- result = @builder.symbols_compose(val[0], val[1], val[2])
- }
-
- symbol_list: # nothing
- {
- result = []
- }
- | symbol_list word tSPACE
- {
- result = val[0] << @builder.word(val[1])
- }
-
- qwords: tQWORDS_BEG qword_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- qsymbols: tQSYMBOLS_BEG qsym_list tSTRING_END
- {
- result = @builder.symbols_compose(val[0], val[1], val[2])
- }
-
- qword_list: # nothing
- {
- result = []
- }
- | qword_list tSTRING_CONTENT tSPACE
- {
- result = val[0] << @builder.string_internal(val[1])
- }
-
- qsym_list: # nothing
- {
- result = []
- }
- | qsym_list tSTRING_CONTENT tSPACE
- {
- result = val[0] << @builder.symbol_internal(val[1])
- }
-
- string_contents: # nothing
- {
- result = []
- }
- | string_contents string_content
- {
- result = val[0] << val[1]
- }
-
-xstring_contents: # nothing
- {
- result = []
- }
- | xstring_contents string_content
- {
- result = val[0] << val[1]
- }
-
-regexp_contents: # nothing
- {
- result = []
- }
- | regexp_contents string_content
- {
- result = val[0] << val[1]
- }
-
- string_content: tSTRING_CONTENT
- {
- result = @builder.string_internal(val[0])
- }
- | tSTRING_DVAR string_dvar
- {
- result = val[1]
- }
- | tSTRING_DBEG
- {
- @lexer.cond.push(false)
- @lexer.cmdarg.push(false)
- }
- compstmt tSTRING_DEND
- {
- @lexer.cond.lexpop
- @lexer.cmdarg.lexpop
-
- result = @builder.begin(val[0], val[2], val[3])
- }
-
- string_dvar: tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
- | backref
-
-
- symbol: tSYMBOL
- {
- result = @builder.symbol(val[0])
- }
-
- dsym: tSYMBEG xstring_contents tSTRING_END
- {
- result = @builder.symbol_compose(val[0], val[1], val[2])
- }
-
- numeric: simple_numeric
- {
- result = val[0]
- }
- | tUMINUS_NUM simple_numeric =tLOWEST
- {
- result = @builder.negate(val[0], val[1])
- }
-
- simple_numeric: tINTEGER
- {
- result = @builder.integer(val[0])
- }
- | tFLOAT
- {
- result = @builder.float(val[0])
- }
- | tRATIONAL
- {
- result = @builder.rational(val[0])
- }
- | tIMAGINARY
- {
- result = @builder.complex(val[0])
- }
-
- user_variable: tIDENTIFIER
- {
- result = @builder.ident(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tCONSTANT
- {
- result = @builder.const(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
-
-keyword_variable: kNIL
- {
- result = @builder.nil(val[0])
- }
- | kSELF
- {
- result = @builder.self(val[0])
- }
- | kTRUE
- {
- result = @builder.true(val[0])
- }
- | kFALSE
- {
- result = @builder.false(val[0])
- }
- | k__FILE__
- {
- result = @builder.__FILE__(val[0])
- }
- | k__LINE__
- {
- result = @builder.__LINE__(val[0])
- }
- | k__ENCODING__
- {
- result = @builder.__ENCODING__(val[0])
- }
-
- var_ref: user_variable
- {
- result = @builder.accessible(val[0])
- }
- | keyword_variable
- {
- result = @builder.accessible(val[0])
- }
-
- var_lhs: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
-
- backref: tNTH_REF
- {
- result = @builder.nth_ref(val[0])
- }
- | tBACK_REF
- {
- result = @builder.back_ref(val[0])
- }
-
- superclass: term
- {
- result = nil
- }
- | tLT
- {
- @lexer.state = :expr_value
- }
- expr_value term
- {
- result = [ val[0], val[2] ]
- }
- | error term
- {
- yyerrok
- result = nil
- }
-
- f_arglist: tLPAREN2 f_args rparen
- {
- result = @builder.args(val[0], val[1], val[2])
-
- @lexer.state = :expr_value
- }
- | {
- result = @lexer.in_kwarg
- @lexer.in_kwarg = true
- }
- f_args term
- {
- @lexer.in_kwarg = val[0]
- result = @builder.args(nil, val[1], nil)
- }
-
-
- args_tail: f_kwarg tCOMMA f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[2]).concat(val[3])
- }
- | f_kwarg opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
-
- opt_args_tail: tCOMMA args_tail
- {
- result = val[1]
- }
- | # nothing
- {
- result = []
- }
-
- f_args: f_arg tCOMMA f_optarg tCOMMA f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
- }
- | f_arg tCOMMA f_optarg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_optarg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg opt_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_optarg opt_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | args_tail
- {
- result = val[0]
- }
- | # nothing
- {
- result = []
- }
-
- f_bad_arg: tCONSTANT
- {
- diagnostic :error, :argument_const, nil, val[0]
- }
- | tIVAR
- {
- diagnostic :error, :argument_ivar, nil, val[0]
- }
- | tGVAR
- {
- diagnostic :error, :argument_gvar, nil, val[0]
- }
- | tCVAR
- {
- diagnostic :error, :argument_cvar, nil, val[0]
- }
-
- f_norm_arg: f_bad_arg
- | tIDENTIFIER
- {
- @static_env.declare val[0][0]
-
- result = val[0]
- }
-
- f_arg_item: f_norm_arg
- {
- result = @builder.arg(val[0])
- }
- | tLPAREN f_margs rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- f_arg: f_arg_item
- {
- result = [ val[0] ]
- }
- | f_arg tCOMMA f_arg_item
- {
- result = val[0] << val[2]
- }
-
- f_label: tLABEL
- {
- check_kwarg_name(val[0])
-
- @static_env.declare val[0][0]
-
- result = val[0]
- }
-
- f_kw: f_label arg_value
- {
- result = @builder.kwoptarg(val[0], val[1])
- }
- | f_label
- {
- result = @builder.kwarg(val[0])
- }
-
- f_block_kw: f_label primary_value
- {
- result = @builder.kwoptarg(val[0], val[1])
- }
- | f_label
- {
- result = @builder.kwarg(val[0])
- }
-
- f_block_kwarg: f_block_kw
- {
- result = [ val[0] ]
- }
- | f_block_kwarg tCOMMA f_block_kw
- {
- result = val[0] << val[2]
- }
-
- f_kwarg: f_kw
- {
- result = [ val[0] ]
- }
- | f_kwarg tCOMMA f_kw
- {
- result = val[0] << val[2]
- }
-
- kwrest_mark: tPOW | tDSTAR
-
- f_kwrest: kwrest_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.kwrestarg(val[0], val[1]) ]
- }
- | kwrest_mark
- {
- result = [ @builder.kwrestarg(val[0]) ]
- }
-
- f_opt: f_norm_arg tEQL arg_value
- {
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_block_opt: f_norm_arg tEQL primary_value
- {
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_block_optarg: f_block_opt
- {
- result = [ val[0] ]
- }
- | f_block_optarg tCOMMA f_block_opt
- {
- result = val[0] << val[2]
- }
-
- f_optarg: f_opt
- {
- result = [ val[0] ]
- }
- | f_optarg tCOMMA f_opt
- {
- result = val[0] << val[2]
- }
-
- restarg_mark: tSTAR2 | tSTAR
-
- f_rest_arg: restarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]) ]
- }
- | restarg_mark
- {
- result = [ @builder.restarg(val[0]) ]
- }
-
- blkarg_mark: tAMPER2 | tAMPER
-
- f_block_arg: blkarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = @builder.blockarg(val[0], val[1])
- }
-
- opt_f_block_arg: tCOMMA f_block_arg
- {
- result = [ val[1] ]
- }
- |
- {
- result = []
- }
-
- singleton: var_ref
- | tLPAREN2 expr rparen
- {
- result = val[1]
- }
-
- assoc_list: # nothing
- {
- result = []
- }
- | assocs trailer
-
- assocs: assoc
- {
- result = [ val[0] ]
- }
- | assocs tCOMMA assoc
- {
- result = val[0] << val[2]
- }
-
- assoc: arg_value tASSOC arg_value
- {
- result = @builder.pair(val[0], val[1], val[2])
- }
- | tLABEL arg_value
- {
- result = @builder.pair_keyword(val[0], val[1])
- }
- | tDSTAR arg_value
- {
- result = @builder.kwsplat(val[0], val[1])
- }
-
- operation: tIDENTIFIER | tCONSTANT | tFID
- operation2: tIDENTIFIER | tCONSTANT | tFID | op
- operation3: tIDENTIFIER | tFID | op
- dot_or_colon: tDOT | tCOLON2
- opt_terms: | terms
- opt_nl: | tNL
- rparen: opt_nl tRPAREN
- {
- result = val[1]
- }
- rbracket: opt_nl tRBRACK
- {
- result = val[1]
- }
- trailer: | tNL | tCOMMA
-
- term: tSEMI
- {
- yyerrok
- }
- | tNL
-
- terms: term
- | terms tSEMI
-
- none: # nothing
- {
- result = nil
- }
-end
-
----- header
-
-require 'parser'
-
-Parser.check_for_encoding_support
-
----- inner
-
- def version
- 21
- end
-
- def default_encoding
- Encoding::UTF_8
- end
diff --git a/test/racc/assets/ruby22.y b/test/racc/assets/ruby22.y
deleted file mode 100644
index 751c0e866b..0000000000
--- a/test/racc/assets/ruby22.y
+++ /dev/null
@@ -1,2381 +0,0 @@
-# Copyright (c) 2013 Peter Zotov <whitequark@whitequark.org>
-#
-# Parts of the source are derived from ruby_parser:
-# Copyright (c) Ryan Davis, seattle.rb
-#
-# MIT License
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-class Parser::Ruby22
-
-token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
- kTHEN kELSIF kELSE kCASE kWHEN kWHILE kUNTIL kFOR kBREAK kNEXT
- kREDO kRETRY kIN kDO kDO_COND kDO_BLOCK kDO_LAMBDA kRETURN kYIELD kSUPER
- kSELF kNIL kTRUE kFALSE kAND kOR kNOT kIF_MOD kUNLESS_MOD kWHILE_MOD
- kUNTIL_MOD kRESCUE_MOD kALIAS kDEFINED klBEGIN klEND k__LINE__
- k__FILE__ k__ENCODING__ tIDENTIFIER tFID tGVAR tIVAR tCONSTANT
- tLABEL tCVAR tNTH_REF tBACK_REF tSTRING_CONTENT tINTEGER tFLOAT
- tREGEXP_END tUPLUS tUMINUS tUMINUS_NUM tPOW tCMP tEQ tEQQ tNEQ
- tGEQ tLEQ tANDOP tOROP tMATCH tNMATCH tDOT tDOT2 tDOT3 tAREF
- tASET tLSHFT tRSHFT tCOLON2 tCOLON3 tOP_ASGN tASSOC tLPAREN
- tLPAREN2 tRPAREN tLPAREN_ARG tLBRACK tLBRACK2 tRBRACK tLBRACE
- tLBRACE_ARG tSTAR tSTAR2 tAMPER tAMPER2 tTILDE tPERCENT tDIVIDE
- tDSTAR tPLUS tMINUS tLT tGT tPIPE tBANG tCARET tLCURLY tRCURLY
- tBACK_REF2 tSYMBEG tSTRING_BEG tXSTRING_BEG tREGEXP_BEG tREGEXP_OPT
- tWORDS_BEG tQWORDS_BEG tSYMBOLS_BEG tQSYMBOLS_BEG tSTRING_DBEG
- tSTRING_DVAR tSTRING_END tSTRING_DEND tSTRING tSYMBOL
- tNL tEH tCOLON tCOMMA tSPACE tSEMI tLAMBDA tLAMBEG tCHARACTER
- tRATIONAL tIMAGINARY tLABEL_END
-
-prechigh
- right tBANG tTILDE tUPLUS
- right tPOW
- right tUMINUS_NUM tUMINUS
- left tSTAR2 tDIVIDE tPERCENT
- left tPLUS tMINUS
- left tLSHFT tRSHFT
- left tAMPER2
- left tPIPE tCARET
- left tGT tGEQ tLT tLEQ
- nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
- left tANDOP
- left tOROP
- nonassoc tDOT2 tDOT3
- right tEH tCOLON
- left kRESCUE_MOD
- right tEQL tOP_ASGN
- nonassoc kDEFINED
- right kNOT
- left kOR kAND
- nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
- nonassoc tLBRACE_ARG
- nonassoc tLOWEST
-preclow
-
-rule
-
- program: top_compstmt
-
- top_compstmt: top_stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- top_stmts: # nothing
- {
- result = []
- }
- | top_stmt
- {
- result = [ val[0] ]
- }
- | top_stmts terms top_stmt
- {
- result = val[0] << val[2]
- }
- | error top_stmt
- {
- result = [ val[1] ]
- }
-
- top_stmt: stmt
- | klBEGIN tLCURLY top_compstmt tRCURLY
- {
- result = @builder.preexe(val[0], val[1], val[2], val[3])
- }
-
- bodystmt: compstmt opt_rescue opt_else opt_ensure
- {
- rescue_bodies = val[1]
- else_t, else_ = val[2]
- ensure_t, ensure_ = val[3]
-
- if rescue_bodies.empty? && !else_.nil?
- diagnostic :warning, :useless_else, nil, else_t
- end
-
- result = @builder.begin_body(val[0],
- rescue_bodies,
- else_t, else_,
- ensure_t, ensure_)
- }
-
- compstmt: stmts opt_terms
- {
- result = @builder.compstmt(val[0])
- }
-
- stmts: # nothing
- {
- result = []
- }
- | stmt_or_begin
- {
- result = [ val[0] ]
- }
- | stmts terms stmt_or_begin
- {
- result = val[0] << val[2]
- }
- | error stmt
- {
- result = [ val[1] ]
- }
-
- stmt_or_begin: stmt
- | klBEGIN tLCURLY top_compstmt tRCURLY
- {
- diagnostic :error, :begin_in_method, nil, val[0]
- }
-
- stmt: kALIAS fitem
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = @builder.alias(val[0], val[1], val[3])
- }
- | kALIAS tGVAR tGVAR
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.gvar(val[2]))
- }
- | kALIAS tGVAR tBACK_REF
- {
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.back_ref(val[2]))
- }
- | kALIAS tGVAR tNTH_REF
- {
- diagnostic :error, :nth_ref_alias, nil, val[2]
- }
- | kUNDEF undef_list
- {
- result = @builder.undef_method(val[0], val[1])
- }
- | stmt kIF_MOD expr_value
- {
- result = @builder.condition_mod(val[0], nil,
- val[1], val[2])
- }
- | stmt kUNLESS_MOD expr_value
- {
- result = @builder.condition_mod(nil, val[0],
- val[1], val[2])
- }
- | stmt kWHILE_MOD expr_value
- {
- result = @builder.loop_mod(:while, val[0], val[1], val[2])
- }
- | stmt kUNTIL_MOD expr_value
- {
- result = @builder.loop_mod(:until, val[0], val[1], val[2])
- }
- | stmt kRESCUE_MOD stmt
- {
- rescue_body = @builder.rescue_body(val[1],
- nil, nil, nil,
- nil, val[2])
-
- result = @builder.begin_body(val[0], [ rescue_body ])
- }
- | klEND tLCURLY compstmt tRCURLY
- {
- result = @builder.postexe(val[0], val[1], val[2], val[3])
- }
- | command_asgn
- | mlhs tEQL command_call
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN command_call
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_call
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | backref tOP_ASGN command_call
- {
- @builder.op_assign(val[0], val[1], val[2])
- }
- | lhs tEQL mrhs
- {
- result = @builder.assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
- }
- | mlhs tEQL mrhs_arg
- {
- result = @builder.multi_assign(val[0], val[1], val[2])
- }
- | expr
-
- command_asgn: lhs tEQL command_call
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | lhs tEQL command_asgn
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
-
- expr: command_call
- | expr kAND expr
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | expr kOR expr
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kNOT opt_nl expr
- {
- result = @builder.not_op(val[0], nil, val[2], nil)
- }
- | tBANG command_call
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | arg
-
- expr_value: expr
-
- command_call: command
- | block_command
-
- block_command: block_call
- | block_call dot_or_colon operation2 command_args
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
-
- cmd_brace_block: tLBRACE_ARG
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- fcall: operation
-
- command: fcall command_args =tLOWEST
- {
- result = @builder.call_method(nil, nil, val[0],
- nil, val[1], nil)
- }
- | fcall command_args cmd_brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0],
- nil, val[1], nil)
-
- begin_t, args, body, end_t = val[2]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | primary_value tDOT operation2 command_args =tLOWEST
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
- | primary_value tDOT operation2 command_args cmd_brace_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | primary_value tCOLON2 operation2 command_args =tLOWEST
- {
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
- }
- | primary_value tCOLON2 operation2 command_args cmd_brace_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | kSUPER command_args
- {
- result = @builder.keyword_cmd(:super, val[0],
- nil, val[1], nil)
- }
- | kYIELD command_args
- {
- result = @builder.keyword_cmd(:yield, val[0],
- nil, val[1], nil)
- }
- | kRETURN call_args
- {
- result = @builder.keyword_cmd(:return, val[0],
- nil, val[1], nil)
- }
- | kBREAK call_args
- {
- result = @builder.keyword_cmd(:break, val[0],
- nil, val[1], nil)
- }
- | kNEXT call_args
- {
- result = @builder.keyword_cmd(:next, val[0],
- nil, val[1], nil)
- }
-
- mlhs: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_inner: mlhs_basic
- {
- result = @builder.multi_lhs(nil, val[0], nil)
- }
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- mlhs_basic: mlhs_head
- | mlhs_head mlhs_item
- {
- result = val[0].
- push(val[1])
- }
- | mlhs_head tSTAR mlhs_node
- {
- result = val[0].
- push(@builder.splat(val[1], val[2]))
- }
- | mlhs_head tSTAR mlhs_node tCOMMA mlhs_post
- {
- result = val[0].
- push(@builder.splat(val[1], val[2])).
- concat(val[4])
- }
- | mlhs_head tSTAR
- {
- result = val[0].
- push(@builder.splat(val[1]))
- }
- | mlhs_head tSTAR tCOMMA mlhs_post
- {
- result = val[0].
- push(@builder.splat(val[1])).
- concat(val[3])
- }
- | tSTAR mlhs_node
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | tSTAR mlhs_node tCOMMA mlhs_post
- {
- result = [ @builder.splat(val[0], val[1]),
- *val[3] ]
- }
- | tSTAR
- {
- result = [ @builder.splat(val[0]) ]
- }
- | tSTAR tCOMMA mlhs_post
- {
- result = [ @builder.splat(val[0]),
- *val[2] ]
- }
-
- mlhs_item: mlhs_node
- | tLPAREN mlhs_inner rparen
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
-
- mlhs_head: mlhs_item tCOMMA
- {
- result = [ val[0] ]
- }
- | mlhs_head mlhs_item tCOMMA
- {
- result = val[0] << val[1]
- }
-
- mlhs_post: mlhs_item
- {
- result = [ val[0] ]
- }
- | mlhs_post tCOMMA mlhs_item
- {
- result = val[0] << val[2]
- }
-
- mlhs_node: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- lhs: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
- }
- | primary_value tDOT tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tIDENTIFIER
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tDOT tCONSTANT
- {
- result = @builder.attr_asgn(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
- }
- | backref
- {
- result = @builder.assignable(val[0])
- }
-
- cname: tIDENTIFIER
- {
- diagnostic :error, :module_name_const, nil, val[0]
- }
- | tCONSTANT
-
- cpath: tCOLON3 cname
- {
- result = @builder.const_global(val[0], val[1])
- }
- | cname
- {
- result = @builder.const(val[0])
- }
- | primary_value tCOLON2 cname
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
-
- fname: tIDENTIFIER | tCONSTANT | tFID
- | op
- | reswords
-
- fsym: fname
- {
- result = @builder.symbol(val[0])
- }
- | symbol
-
- fitem: fsym
- | dsym
-
- undef_list: fitem
- {
- result = [ val[0] ]
- }
- | undef_list tCOMMA
- {
- @lexer.state = :expr_fname
- }
- fitem
- {
- result = val[0] << val[3]
- }
-
- op: tPIPE | tCARET | tAMPER2 | tCMP | tEQ | tEQQ
- | tMATCH | tNMATCH | tGT | tGEQ | tLT | tLEQ
- | tNEQ | tLSHFT | tRSHFT | tPLUS | tMINUS | tSTAR2
- | tSTAR | tDIVIDE | tPERCENT | tPOW | tBANG | tTILDE
- | tUPLUS | tUMINUS | tAREF | tASET | tDSTAR | tBACK_REF2
-
- reswords: k__LINE__ | k__FILE__ | k__ENCODING__ | klBEGIN | klEND
- | kALIAS | kAND | kBEGIN | kBREAK | kCASE
- | kCLASS | kDEF | kDEFINED | kDO | kELSE
- | kELSIF | kEND | kENSURE | kFALSE | kFOR
- | kIN | kMODULE | kNEXT | kNIL | kNOT
- | kOR | kREDO | kRESCUE | kRETRY | kRETURN
- | kSELF | kSUPER | kTHEN | kTRUE | kUNDEF
- | kWHEN | kYIELD | kIF | kUNLESS | kWHILE
- | kUNTIL
-
- arg: lhs tEQL arg
- {
- result = @builder.assign(val[0], val[1], val[2])
- }
- | lhs tEQL arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.assign(val[0], val[1], rescue_)
- }
- | var_lhs tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | var_lhs tOP_ASGN arg kRESCUE_MOD arg
- {
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.op_assign(val[0], val[1], rescue_)
- }
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
- }
- | primary_value tDOT tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tDOT tCONSTANT tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg
- {
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
- }
- | primary_value tCOLON2 tCONSTANT tOP_ASGN arg
- {
- const = @builder.const_op_assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- result = @builder.op_assign(const, val[3], val[4])
- }
- | tCOLON3 tCONSTANT tOP_ASGN arg
- {
- const = @builder.const_op_assignable(
- @builder.const_global(val[0], val[1]))
- result = @builder.op_assign(const, val[2], val[3])
- }
- | backref tOP_ASGN arg
- {
- result = @builder.op_assign(val[0], val[1], val[2])
- }
- | arg tDOT2 arg
- {
- result = @builder.range_inclusive(val[0], val[1], val[2])
- }
- | arg tDOT3 arg
- {
- result = @builder.range_exclusive(val[0], val[1], val[2])
- }
- | arg tPLUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMINUS arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tSTAR2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tDIVIDE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPERCENT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tPOW arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tUMINUS_NUM simple_numeric tPOW arg
- {
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- val[1], val[2], val[3]))
- }
- | tUPLUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | tUMINUS arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tPIPE arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCARET arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tAMPER2 arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tCMP arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tGEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tLEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tEQQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tNEQ arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tMATCH arg
- {
- result = @builder.match_op(val[0], val[1], val[2])
- }
- | arg tNMATCH arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | tBANG arg
- {
- result = @builder.not_op(val[0], nil, val[1], nil)
- }
- | tTILDE arg
- {
- result = @builder.unary_op(val[0], val[1])
- }
- | arg tLSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tRSHFT arg
- {
- result = @builder.binary_op(val[0], val[1], val[2])
- }
- | arg tANDOP arg
- {
- result = @builder.logical_op(:and, val[0], val[1], val[2])
- }
- | arg tOROP arg
- {
- result = @builder.logical_op(:or, val[0], val[1], val[2])
- }
- | kDEFINED opt_nl arg
- {
- result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)
- }
-
- # Note: MRI eventually came to rely on disambiguation based on
- # the lexer state, but it is too contrived with the Ragel lexer,
- # so we kept this approach. See ruby/ruby@b0c03f63e5 for
- # the initial commit, and ruby/ruby@23352f62a for MRI revert,
- # which we decided not to track.
- | arg tEH
- {
- @lexer.push_cond
- @lexer.cond.push(true)
- }
- arg opt_nl tCOLON
- {
- @lexer.pop_cond
- }
- arg
- {
- result = @builder.ternary(val[0], val[1],
- val[3], val[5], val[7])
- }
- | primary
-
- arg_value: arg
-
- aref_args: none
- | args trailer
- | args tCOMMA assocs trailer
- {
- result = val[0] << @builder.associate(nil, val[2], nil)
- }
- | assocs trailer
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- }
-
- paren_args: tLPAREN2 opt_call_args rparen
- {
- result = val
- }
-
- opt_paren_args: # nothing
- {
- result = [ nil, [], nil ]
- }
- | paren_args
-
- opt_call_args: # nothing
- {
- result = []
- }
- | call_args
- | args tCOMMA
- | args tCOMMA assocs tCOMMA
- {
- result = val[0] << @builder.associate(nil, val[2], nil)
- }
- | assocs tCOMMA
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- }
-
- call_args: command
- {
- result = [ val[0] ]
- }
- | args opt_block_arg
- {
- result = val[0].concat(val[1])
- }
- | assocs opt_block_arg
- {
- result = [ @builder.associate(nil, val[0], nil) ]
- result.concat(val[1])
- }
- | args tCOMMA assocs opt_block_arg
- {
- assocs = @builder.associate(nil, val[2], nil)
- result = val[0] << assocs
- result.concat(val[3])
- }
- | block_arg
- {
- result = [ val[0] ]
- }
-
- command_args: {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.push(true)
- }
- call_args
- {
- @lexer.cmdarg = val[0]
-
- result = val[1]
- }
-
- block_arg: tAMPER arg_value
- {
- result = @builder.block_pass(val[0], val[1])
- }
-
- opt_block_arg: tCOMMA block_arg
- {
- result = [ val[1] ]
- }
- | # nothing
- {
- result = []
- }
-
- args: arg_value
- {
- result = [ val[0] ]
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
- | args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
-
- mrhs_arg: mrhs
- {
- result = @builder.array(nil, val[0], nil)
- }
- | arg_value
-
- mrhs: args tCOMMA arg_value
- {
- result = val[0] << val[2]
- }
- | args tCOMMA tSTAR arg_value
- {
- result = val[0] << @builder.splat(val[2], val[3])
- }
- | tSTAR arg_value
- {
- result = [ @builder.splat(val[0], val[1]) ]
- }
-
- primary: literal
- | strings
- | xstring
- | regexp
- | words
- | qwords
- | symbols
- | qsymbols
- | var_ref
- | backref
- | tFID
- {
- result = @builder.call_method(nil, nil, val[0])
- }
- | kBEGIN
- {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
- }
- bodystmt kEND
- {
- @lexer.cmdarg = val[1]
-
- result = @builder.begin_keyword(val[0], val[2], val[3])
- }
- | tLPAREN_ARG
- {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
- }
- expr
- {
- @lexer.state = :expr_endarg
- }
- opt_nl tRPAREN
- {
- @lexer.cmdarg = val[1]
-
- result = @builder.begin(val[0], val[2], val[5])
- }
- | tLPAREN_ARG
- {
- @lexer.state = :expr_endarg
- }
- opt_nl tRPAREN
- {
- result = @builder.begin(val[0], nil, val[3])
- }
- | tLPAREN compstmt tRPAREN
- {
- result = @builder.begin(val[0], val[1], val[2])
- }
- | primary_value tCOLON2 tCONSTANT
- {
- result = @builder.const_fetch(val[0], val[1], val[2])
- }
- | tCOLON3 tCONSTANT
- {
- result = @builder.const_global(val[0], val[1])
- }
- | tLBRACK aref_args tRBRACK
- {
- result = @builder.array(val[0], val[1], val[2])
- }
- | tLBRACE assoc_list tRCURLY
- {
- result = @builder.associate(val[0], val[1], val[2])
- }
- | kRETURN
- {
- result = @builder.keyword_cmd(:return, val[0])
- }
- | kYIELD tLPAREN2 call_args rparen
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])
- }
- | kYIELD tLPAREN2 rparen
- {
- result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])
- }
- | kYIELD
- {
- result = @builder.keyword_cmd(:yield, val[0])
- }
- | kDEFINED opt_nl tLPAREN2 expr rparen
- {
- result = @builder.keyword_cmd(:defined?, val[0],
- val[2], [ val[3] ], val[4])
- }
- | kNOT tLPAREN2 expr rparen
- {
- result = @builder.not_op(val[0], val[1], val[2], val[3])
- }
- | kNOT tLPAREN2 rparen
- {
- result = @builder.not_op(val[0], val[1], nil, val[2])
- }
- | fcall brace_block
- {
- method_call = @builder.call_method(nil, nil, val[0])
-
- begin_t, args, body, end_t = val[1]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | method_call
- | method_call brace_block
- {
- begin_t, args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, args, body, end_t)
- }
- | tLAMBDA lambda
- {
- lambda_call = @builder.call_lambda(val[0])
-
- args, (begin_t, body, end_t) = val[1]
- result = @builder.block(lambda_call,
- begin_t, args, body, end_t)
- }
- | kIF expr_value then compstmt if_tail kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, val[5])
- }
- | kUNLESS expr_value then compstmt opt_else kEND
- {
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- else_, else_t,
- val[3], val[5])
- }
- | kWHILE
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:while, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kUNTIL
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.loop(:until, val[0], val[2], val[3],
- val[5], val[6])
- }
- | kCASE expr_value opt_terms case_body kEND
- {
- *when_bodies, (else_t, else_body) = *val[3]
-
- result = @builder.case(val[0], val[1],
- when_bodies, else_t, else_body,
- val[4])
- }
- | kCASE opt_terms case_body kEND
- {
- *when_bodies, (else_t, else_body) = *val[2]
-
- result = @builder.case(val[0], nil,
- when_bodies, else_t, else_body,
- val[3])
- }
- | kFOR for_var kIN
- {
- @lexer.cond.push(true)
- }
- expr_value do
- {
- @lexer.cond.pop
- }
- compstmt kEND
- {
- result = @builder.for(val[0], val[1],
- val[2], val[4],
- val[5], val[7], val[8])
- }
- | kCLASS cpath superclass
- {
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :class_in_def, nil, val[0]
- end
-
- lt_t, superclass = val[2]
- result = @builder.def_class(val[0], val[1],
- lt_t, superclass,
- val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- }
- | kCLASS tLSHFT expr term
- {
- result = @def_level
- @def_level = 0
-
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- result = @builder.def_sclass(val[0], val[1], val[2],
- val[5], val[6])
-
- @lexer.pop_cmdarg
- @static_env.unextend
-
- @def_level = val[4]
- }
- | kMODULE cpath
- {
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- bodystmt kEND
- {
- if in_def?
- diagnostic :error, :module_in_def, nil, val[0]
- end
-
- result = @builder.def_module(val[0], val[1],
- val[3], val[4])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- }
- | kDEF fname
- {
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_method(val[0], val[1],
- val[3], val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
- }
- | kDEF singleton dot_or_colon
- {
- @lexer.state = :expr_fname
- }
- fname
- {
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
- }
- f_arglist bodystmt kEND
- {
- result = @builder.def_singleton(val[0], val[1], val[2],
- val[4], val[6], val[7], val[8])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
- }
- | kBREAK
- {
- result = @builder.keyword_cmd(:break, val[0])
- }
- | kNEXT
- {
- result = @builder.keyword_cmd(:next, val[0])
- }
- | kREDO
- {
- result = @builder.keyword_cmd(:redo, val[0])
- }
- | kRETRY
- {
- result = @builder.keyword_cmd(:retry, val[0])
- }
-
- primary_value: primary
-
- then: term
- | kTHEN
- | term kTHEN
- {
- result = val[1]
- }
-
- do: term
- | kDO_COND
-
- if_tail: opt_else
- | kELSIF expr_value then compstmt if_tail
- {
- else_t, else_ = val[4]
- result = [ val[0],
- @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, nil),
- ]
- }
-
- opt_else: none
- | kELSE compstmt
- {
- result = val
- }
-
- for_var: lhs
- | mlhs
-
- f_marg: f_norm_arg
- {
- result = @builder.arg(val[0])
- }
- | tLPAREN f_margs rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- f_marg_list: f_marg
- {
- result = [ val[0] ]
- }
- | f_marg_list tCOMMA f_marg
- {
- result = val[0] << val[2]
- }
-
- f_margs: f_marg_list
- | f_marg_list tCOMMA tSTAR f_norm_arg
- {
- result = val[0].
- push(@builder.restarg(val[2], val[3]))
- }
- | f_marg_list tCOMMA tSTAR f_norm_arg tCOMMA f_marg_list
- {
- result = val[0].
- push(@builder.restarg(val[2], val[3])).
- concat(val[5])
- }
- | f_marg_list tCOMMA tSTAR
- {
- result = val[0].
- push(@builder.restarg(val[2]))
- }
- | f_marg_list tCOMMA tSTAR tCOMMA f_marg_list
- {
- result = val[0].
- push(@builder.restarg(val[2])).
- concat(val[4])
- }
- | tSTAR f_norm_arg
- {
- result = [ @builder.restarg(val[0], val[1]) ]
- }
- | tSTAR f_norm_arg tCOMMA f_marg_list
- {
- result = [ @builder.restarg(val[0], val[1]),
- *val[3] ]
- }
- | tSTAR
- {
- result = [ @builder.restarg(val[0]) ]
- }
- | tSTAR tCOMMA f_marg_list
- {
- result = [ @builder.restarg(val[0]),
- *val[2] ]
- }
-
- block_args_tail: f_block_kwarg tCOMMA f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[2]).concat(val[3])
- }
- | f_block_kwarg opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
-
-opt_block_args_tail:
- tCOMMA block_args_tail
- {
- result = val[1]
- }
- | # nothing
- {
- result = []
- }
-
- block_param: f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
- }
- | f_arg tCOMMA f_block_optarg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_block_optarg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA
- | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg opt_block_args_tail
- {
- result = val[0].concat(val[1])
- }
- | f_block_optarg tCOMMA f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_block_optarg opt_block_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_block_optarg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_rest_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg tCOMMA f_arg opt_block_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | block_args_tail
-
- opt_block_param: # nothing
- {
- result = @builder.args(nil, [], nil)
- }
- | block_param_def
- {
- @lexer.state = :expr_value
- }
-
- block_param_def: tPIPE opt_bv_decl tPIPE
- {
- result = @builder.args(val[0], val[1], val[2])
- }
- | tOROP
- {
- result = @builder.args(val[0], [], val[0])
- }
- | tPIPE block_param opt_bv_decl tPIPE
- {
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
- }
-
- opt_bv_decl: opt_nl
- {
- result = []
- }
- | opt_nl tSEMI bv_decls opt_nl
- {
- result = val[2]
- }
-
- bv_decls: bvar
- {
- result = [ val[0] ]
- }
- | bv_decls tCOMMA bvar
- {
- result = val[0] << val[2]
- }
-
- bvar: tIDENTIFIER
- {
- result = @builder.shadowarg(val[0])
- }
- | f_bad_arg
-
- lambda: {
- @static_env.extend_dynamic
- }
- f_larglist
- {
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
- }
- lambda_body
- {
- @lexer.cmdarg = val[2]
- @lexer.cmdarg.lexpop
-
- result = [ val[1], val[3] ]
-
- @static_env.unextend
- }
-
- f_larglist: tLPAREN2 f_args opt_bv_decl tRPAREN
- {
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
- }
- | f_args
- {
- result = @builder.args(nil, val[0], nil)
- }
-
- lambda_body: tLAMBEG compstmt tRCURLY
- {
- result = [ val[0], val[1], val[2] ]
- }
- | kDO_LAMBDA compstmt kEND
- {
- result = [ val[0], val[1], val[2] ]
- }
-
- do_block: kDO_BLOCK
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- block_call: command do_block
- {
- begin_t, block_args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, block_args, body, end_t)
- }
- | block_call dot_or_colon operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | block_call dot_or_colon operation2 opt_paren_args brace_block
- {
- lparen_t, args, rparen_t = val[3]
- method_call = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
- | block_call dot_or_colon operation2 command_args do_block
- {
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
- }
-
- method_call: fcall paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
- }
- | primary_value tDOT operation2 opt_paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation2 paren_args
- {
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 operation3
- {
- result = @builder.call_method(val[0], val[1], val[2])
- }
- | primary_value tDOT paren_args
- {
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
- }
- | primary_value tCOLON2 paren_args
- {
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
- }
- | kSUPER paren_args
- {
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:super, val[0],
- lparen_t, args, rparen_t)
- }
- | kSUPER
- {
- result = @builder.keyword_cmd(:zsuper, val[0])
- }
- | primary_value tLBRACK2 opt_call_args rbracket
- {
- result = @builder.index(val[0], val[1], val[2], val[3])
- }
-
- brace_block: tLCURLY
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt tRCURLY
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
- | kDO
- {
- @static_env.extend_dynamic
- }
- opt_block_param compstmt kEND
- {
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
- }
-
- case_body: kWHEN args then compstmt cases
- {
- result = [ @builder.when(val[0], val[1], val[2], val[3]),
- *val[4] ]
- }
-
- cases: opt_else
- {
- result = [ val[0] ]
- }
- | case_body
-
- opt_rescue: kRESCUE exc_list exc_var then compstmt opt_rescue
- {
- assoc_t, exc_var = val[2]
-
- if val[1]
- exc_list = @builder.array(nil, val[1], nil)
- end
-
- result = [ @builder.rescue_body(val[0],
- exc_list, assoc_t, exc_var,
- val[3], val[4]),
- *val[5] ]
- }
- |
- {
- result = []
- }
-
- exc_list: arg_value
- {
- result = [ val[0] ]
- }
- | mrhs
- | none
-
- exc_var: tASSOC lhs
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- opt_ensure: kENSURE compstmt
- {
- result = [ val[0], val[1] ]
- }
- | none
-
- literal: numeric
- | symbol
- | dsym
-
- strings: string
- {
- result = @builder.string_compose(nil, val[0], nil)
- }
-
- string: string1
- {
- result = [ val[0] ]
- }
- | string string1
- {
- result = val[0] << val[1]
- }
-
- string1: tSTRING_BEG string_contents tSTRING_END
- {
- result = @builder.string_compose(val[0], val[1], val[2])
- }
- | tSTRING
- {
- result = @builder.string(val[0])
- }
- | tCHARACTER
- {
- result = @builder.character(val[0])
- }
-
- xstring: tXSTRING_BEG xstring_contents tSTRING_END
- {
- result = @builder.xstring_compose(val[0], val[1], val[2])
- }
-
- regexp: tREGEXP_BEG regexp_contents tSTRING_END tREGEXP_OPT
- {
- opts = @builder.regexp_options(val[3])
- result = @builder.regexp_compose(val[0], val[1], val[2], opts)
- }
-
- words: tWORDS_BEG word_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- word_list: # nothing
- {
- result = []
- }
- | word_list word tSPACE
- {
- result = val[0] << @builder.word(val[1])
- }
-
- word: string_content
- {
- result = [ val[0] ]
- }
- | word string_content
- {
- result = val[0] << val[1]
- }
-
- symbols: tSYMBOLS_BEG symbol_list tSTRING_END
- {
- result = @builder.symbols_compose(val[0], val[1], val[2])
- }
-
- symbol_list: # nothing
- {
- result = []
- }
- | symbol_list word tSPACE
- {
- result = val[0] << @builder.word(val[1])
- }
-
- qwords: tQWORDS_BEG qword_list tSTRING_END
- {
- result = @builder.words_compose(val[0], val[1], val[2])
- }
-
- qsymbols: tQSYMBOLS_BEG qsym_list tSTRING_END
- {
- result = @builder.symbols_compose(val[0], val[1], val[2])
- }
-
- qword_list: # nothing
- {
- result = []
- }
- | qword_list tSTRING_CONTENT tSPACE
- {
- result = val[0] << @builder.string_internal(val[1])
- }
-
- qsym_list: # nothing
- {
- result = []
- }
- | qsym_list tSTRING_CONTENT tSPACE
- {
- result = val[0] << @builder.symbol_internal(val[1])
- }
-
- string_contents: # nothing
- {
- result = []
- }
- | string_contents string_content
- {
- result = val[0] << val[1]
- }
-
-xstring_contents: # nothing
- {
- result = []
- }
- | xstring_contents string_content
- {
- result = val[0] << val[1]
- }
-
-regexp_contents: # nothing
- {
- result = []
- }
- | regexp_contents string_content
- {
- result = val[0] << val[1]
- }
-
- string_content: tSTRING_CONTENT
- {
- result = @builder.string_internal(val[0])
- }
- | tSTRING_DVAR string_dvar
- {
- result = val[1]
- }
- | tSTRING_DBEG
- {
- @lexer.cond.push(false)
- @lexer.cmdarg.push(false)
- }
- compstmt tSTRING_DEND
- {
- @lexer.cond.lexpop
- @lexer.cmdarg.lexpop
-
- result = @builder.begin(val[0], val[2], val[3])
- }
-
- string_dvar: tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
- | backref
-
-
- symbol: tSYMBOL
- {
- result = @builder.symbol(val[0])
- }
-
- dsym: tSYMBEG xstring_contents tSTRING_END
- {
- result = @builder.symbol_compose(val[0], val[1], val[2])
- }
-
- numeric: simple_numeric
- {
- result = val[0]
- }
- | tUMINUS_NUM simple_numeric =tLOWEST
- {
- result = @builder.negate(val[0], val[1])
- }
-
- simple_numeric: tINTEGER
- {
- result = @builder.integer(val[0])
- }
- | tFLOAT
- {
- result = @builder.float(val[0])
- }
- | tRATIONAL
- {
- result = @builder.rational(val[0])
- }
- | tIMAGINARY
- {
- result = @builder.complex(val[0])
- }
-
- user_variable: tIDENTIFIER
- {
- result = @builder.ident(val[0])
- }
- | tIVAR
- {
- result = @builder.ivar(val[0])
- }
- | tGVAR
- {
- result = @builder.gvar(val[0])
- }
- | tCONSTANT
- {
- result = @builder.const(val[0])
- }
- | tCVAR
- {
- result = @builder.cvar(val[0])
- }
-
-keyword_variable: kNIL
- {
- result = @builder.nil(val[0])
- }
- | kSELF
- {
- result = @builder.self(val[0])
- }
- | kTRUE
- {
- result = @builder.true(val[0])
- }
- | kFALSE
- {
- result = @builder.false(val[0])
- }
- | k__FILE__
- {
- result = @builder.__FILE__(val[0])
- }
- | k__LINE__
- {
- result = @builder.__LINE__(val[0])
- }
- | k__ENCODING__
- {
- result = @builder.__ENCODING__(val[0])
- }
-
- var_ref: user_variable
- {
- result = @builder.accessible(val[0])
- }
- | keyword_variable
- {
- result = @builder.accessible(val[0])
- }
-
- var_lhs: user_variable
- {
- result = @builder.assignable(val[0])
- }
- | keyword_variable
- {
- result = @builder.assignable(val[0])
- }
-
- backref: tNTH_REF
- {
- result = @builder.nth_ref(val[0])
- }
- | tBACK_REF
- {
- result = @builder.back_ref(val[0])
- }
-
- superclass: term
- {
- result = nil
- }
- | tLT
- {
- @lexer.state = :expr_value
- }
- expr_value term
- {
- result = [ val[0], val[2] ]
- }
- | error term
- {
- yyerrok
- result = nil
- }
-
- f_arglist: tLPAREN2 f_args rparen
- {
- result = @builder.args(val[0], val[1], val[2])
-
- @lexer.state = :expr_value
- }
- | {
- result = @lexer.in_kwarg
- @lexer.in_kwarg = true
- }
- f_args term
- {
- @lexer.in_kwarg = val[0]
- result = @builder.args(nil, val[1], nil)
- }
-
- args_tail: f_kwarg tCOMMA f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[2]).concat(val[3])
- }
- | f_kwarg opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_kwrest opt_f_block_arg
- {
- result = val[0].concat(val[1])
- }
- | f_block_arg
- {
- result = [ val[0] ]
- }
-
- opt_args_tail: tCOMMA args_tail
- {
- result = val[1]
- }
- | # nothing
- {
- result = []
- }
-
- f_args: f_arg tCOMMA f_optarg tCOMMA f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
- }
- | f_arg tCOMMA f_optarg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_optarg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg tCOMMA f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_arg opt_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
- }
- | f_optarg opt_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_optarg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | f_rest_arg opt_args_tail
- {
- result = val[0].
- concat(val[1])
- }
- | f_rest_arg tCOMMA f_arg opt_args_tail
- {
- result = val[0].
- concat(val[2]).
- concat(val[3])
- }
- | args_tail
- {
- result = val[0]
- }
- | # nothing
- {
- result = []
- }
-
- f_bad_arg: tCONSTANT
- {
- diagnostic :error, :argument_const, nil, val[0]
- }
- | tIVAR
- {
- diagnostic :error, :argument_ivar, nil, val[0]
- }
- | tGVAR
- {
- diagnostic :error, :argument_gvar, nil, val[0]
- }
- | tCVAR
- {
- diagnostic :error, :argument_cvar, nil, val[0]
- }
-
- f_norm_arg: f_bad_arg
- | tIDENTIFIER
- {
- @static_env.declare val[0][0]
-
- result = val[0]
- }
-
- f_arg_asgn: f_norm_arg
- {
- result = val[0]
- }
-
- f_arg_item: f_arg_asgn
- {
- result = @builder.arg(val[0])
- }
- | tLPAREN f_margs rparen
- {
- result = @builder.multi_lhs(val[0], val[1], val[2])
- }
-
- f_arg: f_arg_item
- {
- result = [ val[0] ]
- }
- | f_arg tCOMMA f_arg_item
- {
- result = val[0] << val[2]
- }
-
- f_label: tLABEL
- {
- check_kwarg_name(val[0])
-
- @static_env.declare val[0][0]
-
- result = val[0]
- }
-
- f_kw: f_label arg_value
- {
- result = @builder.kwoptarg(val[0], val[1])
- }
- | f_label
- {
- result = @builder.kwarg(val[0])
- }
-
- f_block_kw: f_label primary_value
- {
- result = @builder.kwoptarg(val[0], val[1])
- }
- | f_label
- {
- result = @builder.kwarg(val[0])
- }
-
- f_block_kwarg: f_block_kw
- {
- result = [ val[0] ]
- }
- | f_block_kwarg tCOMMA f_block_kw
- {
- result = val[0] << val[2]
- }
-
- f_kwarg: f_kw
- {
- result = [ val[0] ]
- }
- | f_kwarg tCOMMA f_kw
- {
- result = val[0] << val[2]
- }
-
- kwrest_mark: tPOW | tDSTAR
-
- f_kwrest: kwrest_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.kwrestarg(val[0], val[1]) ]
- }
- | kwrest_mark
- {
- result = [ @builder.kwrestarg(val[0]) ]
- }
-
- f_opt: f_arg_asgn tEQL arg_value
- {
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_block_opt: f_arg_asgn tEQL primary_value
- {
- result = @builder.optarg(val[0], val[1], val[2])
- }
-
- f_block_optarg: f_block_opt
- {
- result = [ val[0] ]
- }
- | f_block_optarg tCOMMA f_block_opt
- {
- result = val[0] << val[2]
- }
-
- f_optarg: f_opt
- {
- result = [ val[0] ]
- }
- | f_optarg tCOMMA f_opt
- {
- result = val[0] << val[2]
- }
-
- restarg_mark: tSTAR2 | tSTAR
-
- f_rest_arg: restarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]) ]
- }
- | restarg_mark
- {
- result = [ @builder.restarg(val[0]) ]
- }
-
- blkarg_mark: tAMPER2 | tAMPER
-
- f_block_arg: blkarg_mark tIDENTIFIER
- {
- @static_env.declare val[1][0]
-
- result = @builder.blockarg(val[0], val[1])
- }
-
- opt_f_block_arg: tCOMMA f_block_arg
- {
- result = [ val[1] ]
- }
- |
- {
- result = []
- }
-
- singleton: var_ref
- | tLPAREN2 expr rparen
- {
- result = val[1]
- }
-
- assoc_list: # nothing
- {
- result = []
- }
- | assocs trailer
-
- assocs: assoc
- {
- result = [ val[0] ]
- }
- | assocs tCOMMA assoc
- {
- result = val[0] << val[2]
- }
-
- assoc: arg_value tASSOC arg_value
- {
- result = @builder.pair(val[0], val[1], val[2])
- }
- | tLABEL arg_value
- {
- result = @builder.pair_keyword(val[0], val[1])
- }
- | tSTRING_BEG string_contents tLABEL_END arg_value
- {
- result = @builder.pair_quoted(val[0], val[1], val[2], val[3])
- }
- | tDSTAR arg_value
- {
- result = @builder.kwsplat(val[0], val[1])
- }
-
- operation: tIDENTIFIER | tCONSTANT | tFID
- operation2: tIDENTIFIER | tCONSTANT | tFID | op
- operation3: tIDENTIFIER | tFID | op
- dot_or_colon: tDOT | tCOLON2
- opt_terms: | terms
- opt_nl: | tNL
- rparen: opt_nl tRPAREN
- {
- result = val[1]
- }
- rbracket: opt_nl tRBRACK
- {
- result = val[1]
- }
- trailer: | tNL | tCOMMA
-
- term: tSEMI
- {
- yyerrok
- }
- | tNL
-
- terms: term
- | terms tSEMI
-
- none: # nothing
- {
- result = nil
- }
-end
-
----- header
-
-require 'parser'
-
-Parser.check_for_encoding_support
-
----- inner
-
- def version
- 22
- end
-
- def default_encoding
- Encoding::UTF_8
- end
diff --git a/test/racc/assets/scan.y b/test/racc/assets/scan.y
deleted file mode 100644
index 709254ed66..0000000000
--- a/test/racc/assets/scan.y
+++ /dev/null
@@ -1,72 +0,0 @@
-class P
-
-rule
-
- a: A
- {
- # comment test
-
- # comment test
-
- # string
- @sstring = 'squote string'
- @dstring = 'dquote string'
-
- # regexp
- @regexp = /some regexp with spaces/
-
- # gvar
- /regexp/ === 'some regexp matches to this string'
- @pre_match = $`
- @matched = $&
- @post_match = $'
- @m = $~
-
- # braces
- @array = []
- [1,2,3].each {|i|
- @array.push i
- }
- 3.times { @array.push 10 }
- }
-
-end
-
----- inner
-
- def parse
- @sstring = @dstring = nil
- @regexp = nil
- @pre_match = @matched = @post_match = @m = nil
-
- @src = [[:A, 'A'], [false, '$']]
- do_parse
-
- assert_equal 'squote string', @sstring
- assert_equal 'dquote string', @dstring
- assert_equal(/some regexp with spaces/, @regexp)
- assert_equal 'some ', @pre_match
- assert_equal 'regexp', @matched
- assert_equal ' matches to this string', @post_match
- assert_instance_of MatchData, @m
- end
-
- def assert_equal(ok, data)
- unless ok == data
- raise "expected <#{ok.inspect}> but is <#{data.inspect}>"
- end
- end
-
- def assert_instance_of(klass, obj)
- unless obj.instance_of?(klass)
- raise "expected #{klass} but is #{obj.class}"
- end
- end
-
- def next_token
- @src.shift
- end
-
----- footer
-
-P.new.parse
diff --git a/test/racc/assets/syntax.y b/test/racc/assets/syntax.y
deleted file mode 100644
index 727f74a29d..0000000000
--- a/test/racc/assets/syntax.y
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# racc syntax checker
-#
-
-class M1::M2::ParserClass < S1::S2::SuperClass
-
- token A
- | B C
-
- convert
- A '5'
- end
-
- prechigh
- left B
- preclow
-
- start target
-
- expect 0
-
-rule
-
- target: A B C
- {
- print 'abc'
- }
- | B C A
- | C B A
- {
- print 'cba'
- }
- | cont
-
- cont : A c2 B c2 C
-
- c2 : C C C C C
-
-end
-
----- inner
-
- junk code !!!!
-
-kjaljlajrlaolanbla /// %%% (*((( token rule
-akiurtlajluealjflaj @@@@ end end end end __END__
- laieu2o879urkq96ga(Q#*&%Q#
- #&lkji END
-
- q395q?/// liutjqlkr7
diff --git a/test/racc/assets/tp_plus.y b/test/racc/assets/tp_plus.y
deleted file mode 100644
index 388ed1302d..0000000000
--- a/test/racc/assets/tp_plus.y
+++ /dev/null
@@ -1,622 +0,0 @@
-# Released under an MIT License (http://www.opensource.org/licenses/MIT)
-# By Jay Strybis (https://github.com/unreal)
-
-class TPPlus::Parser
-token ASSIGN AT_SYM COMMENT JUMP IO_METHOD INPUT OUTPUT
-token NUMREG POSREG VREG SREG TIME_SEGMENT ARG UALM
-token MOVE DOT TO AT TERM OFFSET SKIP GROUP
-token SEMICOLON NEWLINE STRING
-token REAL DIGIT WORD EQUAL
-token EEQUAL NOTEQUAL GTE LTE LT GT BANG
-token PLUS MINUS STAR SLASH DIV AND OR MOD
-token IF ELSE END UNLESS FOR IN WHILE
-token WAIT_FOR WAIT_UNTIL TIMEOUT AFTER
-token FANUC_USE SET_SKIP_CONDITION NAMESPACE
-token CASE WHEN INDIRECT POSITION
-token EVAL TIMER TIMER_METHOD RAISE ABORT
-token POSITION_DATA TRUE_FALSE RUN TP_HEADER PAUSE
-token LPAREN RPAREN COLON COMMA LBRACK RBRACK LBRACE RBRACE
-token LABEL ADDRESS
-token false
-
-prechigh
- right BANG
- left STAR SLASH DIV MOD
- left PLUS MINUS
- left GT GTE LT LTE
- left EEQUAL NOTEQUAL
- left AND
- left OR
- right EQUAL
-preclow
-
-rule
- program
- #: statements { @interpreter.nodes = val[0].flatten }
- : statements { @interpreter.nodes = val[0] }
- |
- ;
-
-
- statements
- : statement terminator {
- result = [val[0]]
- result << val[1] unless val[1].nil?
- }
- | statements statement terminator {
- result = val[0] << val[1]
- result << val[2] unless val[2].nil?
- }
- ;
-
- block
- : NEWLINE statements { result = val[1] }
- ;
-
- optional_newline
- : NEWLINE
- |
- ;
-
- statement
- : comment
- | definition
- | namespace
- #| assignment
- | motion_statement
- #| jump
- #| io_method
- | label_definition
- | address
- | conditional
- | inline_conditional
- | forloop
- | while_loop
- #| program_call
- | use_statement
- | set_skip_statement
- | wait_statement
- | case_statement
- | fanuc_eval
- | timer_method
- | position_data
- | raise
- | tp_header_definition
- | empty_stmt
- | PAUSE { result = PauseNode.new }
- | ABORT { result = AbortNode.new }
- ;
-
- empty_stmt
- : NEWLINE { result = EmptyStmtNode.new() }
- ;
-
- tp_header_definition
- : TP_HEADER EQUAL tp_header_value { result = HeaderNode.new(val[0],val[2]) }
- ;
-
- tp_header_value
- : STRING
- | TRUE_FALSE
- ;
-
- raise
- : RAISE var_or_indirect { result = RaiseNode.new(val[1]) }
- ;
-
- timer_method
- : TIMER_METHOD var_or_indirect { result = TimerMethodNode.new(val[0],val[1]) }
- ;
-
- fanuc_eval
- : EVAL STRING { result = EvalNode.new(val[1]) }
- ;
-
- wait_statement
- : WAIT_FOR LPAREN indirectable COMMA STRING RPAREN
- { result = WaitForNode.new(val[2], val[4]) }
- | WAIT_UNTIL LPAREN expression RPAREN
- { result = WaitUntilNode.new(val[2], nil) }
- | WAIT_UNTIL LPAREN expression RPAREN DOT wait_modifier
- { result = WaitUntilNode.new(val[2],val[5]) }
- | WAIT_UNTIL LPAREN expression RPAREN DOT wait_modifier DOT wait_modifier
- { result = WaitUntilNode.new(val[2],val[5].merge(val[7])) }
- ;
-
- wait_modifier
- : timeout_modifier
- | after_modifier
- ;
-
- timeout_modifier
- : swallow_newlines TIMEOUT LPAREN label RPAREN
- { result = { label: val[3] } }
- ;
-
- after_modifier
- : swallow_newlines AFTER LPAREN indirectable COMMA STRING RPAREN
- { result = { timeout: [val[3],val[5]] } }
- ;
-
- label
- : LABEL { result = val[0] }
- ;
-
- use_statement
- : FANUC_USE indirectable { result = UseNode.new(val[0],val[1]) }
- ;
-
- # set_skip_condition x
- set_skip_statement
- : SET_SKIP_CONDITION expression { result = SetSkipNode.new(val[1]) }
- ;
-
- program_call
- : WORD LPAREN args RPAREN { result = CallNode.new(val[0],val[2]) }
- | RUN WORD LPAREN args RPAREN { result = CallNode.new(val[1],val[3],async: true) }
- ;
-
- args
- : arg { result = [val[0]] }
- | args COMMA arg { result = val[0] << val[2] }
- | { result = [] }
- ;
-
- arg
- : number
- | var
- | string
- | address
- ;
-
- string
- : STRING { result = StringNode.new(val[0]) }
- ;
-
- io_method
- : IO_METHOD var_or_indirect { result = IOMethodNode.new(val[0],val[1]) }
- | IO_METHOD LPAREN var_or_indirect RPAREN
- { result = IOMethodNode.new(val[0],val[2]) }
- | IO_METHOD LPAREN var_or_indirect COMMA number COMMA STRING RPAREN
- { result = IOMethodNode.new(val[0],val[2],{ pulse_time: val[4], pulse_units: val[6] }) }
- ;
-
- var_or_indirect
- : var
- | indirect_thing
- ;
-
-
- jump
- : JUMP label { result = JumpNode.new(val[1]) }
- ;
-
- conditional
- : IF expression block else_block END
- { result = ConditionalNode.new("if",val[1],val[2],val[3]) }
- | UNLESS expression block else_block END
- { result = ConditionalNode.new("unless",val[1],val[2],val[3]) }
- ;
-
- forloop
- : FOR var IN LPAREN minmax_val TO minmax_val RPAREN block END
- { result = ForNode.new(val[1],val[4],val[6],val[8]) }
- ;
-
- while_loop
- : WHILE expression block END { result = WhileNode.new(val[1],val[2]) }
- ;
-
- minmax_val
- : integer
- | var
- ;
-
- namespace
- : NAMESPACE WORD block END { result = NamespaceNode.new(val[1],val[2]) }
- ;
-
- case_statement
- : CASE var swallow_newlines
- case_conditions
- case_else
- END { result = CaseNode.new(val[1],val[3],val[4]) }
- ;
-
- case_conditions
- : case_condition { result = val }
- | case_conditions case_condition
- { result = val[0] << val[1] << val[2] }
- ;
-
- case_condition
- : WHEN case_allowed_condition swallow_newlines case_allowed_statement
- terminator { result = CaseConditionNode.new(val[1],val[3]) }
- ;
-
- case_allowed_condition
- : number
- | var
- ;
-
- case_else
- : ELSE swallow_newlines case_allowed_statement terminator
- { result = CaseConditionNode.new(nil,val[2]) }
- |
- ;
-
- case_allowed_statement
- : program_call
- | jump
- ;
-
- inline_conditional
- : inlineable
- | inlineable IF expression { result = InlineConditionalNode.new(val[1], val[2], val[0]) }
- | inlineable UNLESS expression { result = InlineConditionalNode.new(val[1], val[2], val[0]) }
- ;
-
- inlineable
- : jump
- | assignment
- | io_method
- | program_call
- ;
-
- else_block
- : ELSE block { result = val[1] }
- | { result = [] }
- ;
-
- motion_statement
- : MOVE DOT swallow_newlines TO LPAREN var RPAREN motion_modifiers
- { result = MotionNode.new(val[0],val[5],val[7]) }
- ;
-
- motion_modifiers
- : motion_modifier { result = val }
- | motion_modifiers motion_modifier
- { result = val[0] << val[1] }
- ;
-
- motion_modifier
- : DOT swallow_newlines AT LPAREN speed RPAREN
- { result = SpeedNode.new(val[4]) }
- | DOT swallow_newlines TERM LPAREN valid_terminations RPAREN
- { result = TerminationNode.new(val[4]) }
- | DOT swallow_newlines OFFSET LPAREN var RPAREN
- { result = OffsetNode.new(val[2],val[4]) }
- | DOT swallow_newlines TIME_SEGMENT LPAREN time COMMA time_seg_actions RPAREN
- { result = TimeNode.new(val[2],val[4],val[6]) }
- | DOT swallow_newlines SKIP LPAREN label optional_lpos_arg RPAREN
- { result = SkipNode.new(val[4],val[5]) }
- ;
-
- valid_terminations
- : integer
- | var
- | MINUS DIGIT {
- raise Racc::ParseError, sprintf("\ninvalid termination type: (%s)", val[1]) if val[1] != 1
-
- result = DigitNode.new(val[1].to_i * -1)
- }
- ;
-
- optional_lpos_arg
- : COMMA var { result = val[1] }
- |
- ;
-
- indirectable
- : number
- | var
- ;
-
- time_seg_actions
- : program_call
- | io_method
- ;
-
- time
- : var
- | number
- ;
-
- speed
- : indirectable COMMA STRING { result = { speed: val[0], units: val[2] } }
- | STRING { result = { speed: val[0], units: nil } }
- ;
-
- label_definition
- : label { result = LabelDefinitionNode.new(val[0]) }#@interpreter.add_label(val[1]) }
- ;
-
- definition
- : WORD ASSIGN definable { result = DefinitionNode.new(val[0],val[2]) }
- ;
-
- assignment
- : var_or_indirect EQUAL expression { result = AssignmentNode.new(val[0],val[2]) }
- | var_or_indirect PLUS EQUAL expression { result = AssignmentNode.new(
- val[0],
- ExpressionNode.new(val[0],"+",val[3])
- )
- }
- | var_or_indirect MINUS EQUAL expression { result = AssignmentNode.new(
- val[0],
- ExpressionNode.new(val[0],"-",val[3])
- )
- }
- ;
-
- var
- : var_without_namespaces
- | var_with_namespaces
- ;
-
- var_without_namespaces
- : WORD { result = VarNode.new(val[0]) }
- | WORD var_method_modifiers { result = VarMethodNode.new(val[0],val[1]) }
- ;
-
- var_with_namespaces
- : namespaces var_without_namespaces
- { result = NamespacedVarNode.new(val[0],val[1]) }
- ;
-
- var_method_modifiers
- : var_method_modifier { result = val[0] }
- | var_method_modifiers var_method_modifier
- { result = val[0].merge(val[1]) }
- ;
-
- var_method_modifier
- : DOT swallow_newlines WORD { result = { method: val[2] } }
- | DOT swallow_newlines GROUP LPAREN integer RPAREN
- { result = { group: val[4] } }
- ;
-
- namespaces
- : ns { result = [val[0]] }
- | namespaces ns { result = val[0] << val[1] }
- ;
-
- ns
- : WORD COLON COLON { result = val[0] }
- ;
-
-
- expression
- : unary_expression
- | binary_expression
- ;
-
- unary_expression
- : factor { result = val[0] }
- | address
- | BANG factor { result = ExpressionNode.new(val[1], "!", nil) }
- ;
-
- binary_expression
- : expression operator expression
- { result = ExpressionNode.new(val[0], val[1], val[2]) }
- ;
-
- operator
- : EEQUAL { result = "==" }
- | NOTEQUAL { result = "<>" }
- | LT { result = "<" }
- | GT { result = ">" }
- | GTE { result = ">=" }
- | LTE { result = "<=" }
- | PLUS { result = "+" }
- | MINUS { result = "-" }
- | OR { result = "||" }
- | STAR { result = "*" }
- | SLASH { result = "/" }
- | DIV { result = "DIV" }
- | MOD { result = "%" }
- | AND { result = "&&" }
- ;
-
- factor
- : number
- | signed_number
- | var
- | indirect_thing
- | paren_expr
- ;
-
- paren_expr
- : LPAREN expression RPAREN { result = ParenExpressionNode.new(val[1]) }
- ;
-
- indirect_thing
- : INDIRECT LPAREN STRING COMMA indirectable RPAREN
- { result = IndirectNode.new(val[2].to_sym, val[4]) }
- ;
-
- signed_number
- : sign DIGIT {
- val[1] = val[1].to_i * -1 if val[0] == "-"
- result = DigitNode.new(val[1])
- }
- | sign REAL { val[1] = val[1].to_f * -1 if val[0] == "-"; result = RealNode.new(val[1]) }
- ;
-
- sign
- : MINUS { result = "-" }
- ;
-
- number
- : integer
- | REAL { result = RealNode.new(val[0]) }
- ;
-
- integer
- : DIGIT { result = DigitNode.new(val[0]) }
- ;
-
- definable
- : numreg
- | output
- | input
- | posreg
- | position
- | vreg
- | number
- | signed_number
- | argument
- | timer
- | ualm
- | sreg
- ;
-
-
- sreg
- : SREG LBRACK DIGIT RBRACK { result = StringRegisterNode.new(val[2].to_i) }
- ;
-
- ualm
- : UALM LBRACK DIGIT RBRACK { result = UserAlarmNode.new(val[2].to_i) }
- ;
-
- timer
- : TIMER LBRACK DIGIT RBRACK { result = TimerNode.new(val[2].to_i) }
- ;
-
- argument
- : ARG LBRACK DIGIT RBRACK { result = ArgumentNode.new(val[2].to_i) }
- ;
-
- vreg
- : VREG LBRACK DIGIT RBRACK { result = VisionRegisterNode.new(val[2].to_i) }
- ;
-
- position
- : POSITION LBRACK DIGIT RBRACK { result = PositionNode.new(val[2].to_i) }
- ;
-
- numreg
- : NUMREG LBRACK DIGIT RBRACK { result = NumregNode.new(val[2].to_i) }
- ;
-
- posreg
- : POSREG LBRACK DIGIT RBRACK { result = PosregNode.new(val[2].to_i) }
- ;
-
- output
- : OUTPUT LBRACK DIGIT RBRACK { result = IONode.new(val[0], val[2].to_i) }
- ;
-
- input
- : INPUT LBRACK DIGIT RBRACK { result = IONode.new(val[0], val[2].to_i) }
- ;
-
- address
- : ADDRESS { result = AddressNode.new(val[0]) }
- ;
-
- comment
- : COMMENT { result = CommentNode.new(val[0]) }
- ;
-
- terminator
- : NEWLINE { result = TerminatorNode.new }
- | comment optional_newline { result = val[0] }
- # ^-- consume newlines or else we will get an extra space from EmptyStmt in the output
- | false
- |
- ;
-
- swallow_newlines
- : NEWLINE { result = TerminatorNode.new }
- |
- ;
-
- position_data
- : POSITION_DATA sn hash sn END
- { result = PositionDataNode.new(val[2]) }
- ;
-
- sn
- : swallow_newlines
- ;
-
- hash
- : LBRACE sn hash_attributes sn RBRACE { result = val[2] }
- | LBRACE sn RBRACE { result = {} }
- ;
-
- hash_attributes
- : hash_attribute { result = val[0] }
- | hash_attributes COMMA sn hash_attribute
- { result = val[0].merge(val[3]) }
- ;
-
- hash_attribute
- : STRING COLON hash_value { result = { val[0].to_sym => val[2] } }
- ;
-
- hash_value
- : STRING
- | hash
- | array
- | optional_sign DIGIT { val[1] = val[1].to_i * -1 if val[0] == "-"; result = val[1] }
- | optional_sign REAL { val[1] = val[1].to_f * -1 if val[0] == "-"; result = val[1] }
- | TRUE_FALSE { result = val[0] == "true" }
- ;
-
- optional_sign
- : sign
- |
- ;
-
- array
- : LBRACK sn array_values sn RBRACK { result = val[2] }
- ;
-
- array_values
- : array_value { result = val }
- | array_values COMMA sn array_value { result = val[0] << val[3] }
- ;
-
- array_value
- : hash_value
- ;
-
-
-end
-
----- inner
-
- include TPPlus::Nodes
-
- attr_reader :interpreter
- def initialize(scanner, interpreter = TPPlus::Interpreter.new)
- @scanner = scanner
- @interpreter = interpreter
- super()
- end
-
- def next_token
- t = @scanner.next_token
- @interpreter.line_count += 1 if t && t[0] == :NEWLINE
-
- #puts t.inspect
- t
- end
-
- def parse
- #@yydebug =true
-
- do_parse
- @interpreter
- end
-
- def on_error(t, val, vstack)
- raise ParseError, sprintf("Parse error on line #{@scanner.tok_line} column #{@scanner.tok_col}: %s (%s)",
- val.inspect, token_to_str(t) || '?')
- end
-
- class ParseError < StandardError ; end
diff --git a/test/racc/assets/twowaysql.y b/test/racc/assets/twowaysql.y
deleted file mode 100644
index d3bc748d3a..0000000000
--- a/test/racc/assets/twowaysql.y
+++ /dev/null
@@ -1,278 +0,0 @@
-# Copyright 2008-2015 Takuto Wada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-class TwoWaySQL::Parser
-
-rule
-
-sql : stmt_list
- {
- result = RootNode.new( val[0] )
- }
-
-stmt_list :
- {
- result = []
- }
- | stmt_list stmt
- {
- result.push val[1]
- }
-
-stmt : primary
- | if_stmt
- | begin_stmt
-
-begin_stmt : BEGIN stmt_list END
- {
- result = BeginNode.new( val[1] )
- }
-
-if_stmt : IF sub_stmt else_stmt END
- {
- result = IfNode.new( val[0][1], val[1], val[2] )
- }
-
-else_stmt : ELSE sub_stmt
- {
- result = val[1]
- }
- |
- {
- result = nil
- }
-
-sub_stmt : and_stmt
- | or_stmt
- | stmt_list
-
-and_stmt : AND stmt_list
- {
- result = SubStatementNode.new( val[0][1], val[1] )
- }
-
-or_stmt : OR stmt_list
- {
- result = SubStatementNode.new( val[0][1], val[1] )
- }
-
-primary : IDENT
- {
- result = LiteralNode.new( val[0][1] )
- }
- | STRING_LITERAL
- {
- result = LiteralNode.new( val[0][1] )
- }
- | AND
- {
- result = LiteralNode.new( val[0][1] )
- }
- | OR
- {
- result = LiteralNode.new( val[0][1] )
- }
- | SPACES
- {
- result = WhiteSpaceNode.new( val[0][1], @preserve_space )
- }
- | COMMA
- {
- result = LiteralNode.new( val[0][1] )
- }
- | LPAREN
- {
- result = LiteralNode.new( val[0][1] )
- }
- | RPAREN
- {
- result = LiteralNode.new( val[0][1] )
- }
- | QUESTION
- {
- @num_questions += 1
- result = QuestionNode.new( @num_questions )
- }
- | ACTUAL_COMMENT
- {
- result = ActualCommentNode.new( val[0][1] , val[0][2] )
- }
- | bind_var
- | embed_var
-
-bind_var : BIND_VARIABLE STRING_LITERAL
- {
- result = BindVariableNode.new( val[0][1] )
- }
- | BIND_VARIABLE SPACES STRING_LITERAL
- {
- result = BindVariableNode.new( val[0][1] )
- }
- | BIND_VARIABLE IDENT
- {
- result = BindVariableNode.new( val[0][1] )
- }
- | BIND_VARIABLE SPACES IDENT
- {
- result = BindVariableNode.new( val[0][1] )
- }
- | PAREN_BIND_VARIABLE
- {
- result = ParenBindVariableNode.new( val[0][1] )
- }
-
-embed_var : EMBED_VARIABLE IDENT
- {
- result = EmbedVariableNode.new( val[0][1] )
- }
- | EMBED_VARIABLE SPACES IDENT
- {
- result = EmbedVariableNode.new( val[0][1] )
- }
-
-end
-
-
----- inner
-
-require 'strscan'
-
-def initialize(opts={})
- opts = {
- :debug => false,
- :preserve_space => true,
- :preserve_comment => false
- }.merge(opts)
- @yydebug = opts[:debug]
- @preserve_space = opts[:preserve_space]
- @preserve_comment = opts[:preserve_comment]
- @num_questions = 0
-end
-
-
-PAREN_EXAMPLE = '\([^\)]+\)'
-BEGIN_BIND_VARIABLE = '(\/|\#)\*([^\*]+)\*\1'
-BIND_VARIABLE_PATTERN = /\A#{BEGIN_BIND_VARIABLE}\s*/
-PAREN_BIND_VARIABLE_PATTERN = /\A#{BEGIN_BIND_VARIABLE}\s*#{PAREN_EXAMPLE}/
-EMBED_VARIABLE_PATTERN = /\A(\/|\#)\*\$([^\*]+)\*\1\s*/
-
-CONDITIONAL_PATTERN = /\A(\/|\#)\*(IF)\s+([^\*]+)\s*\*\1/
-BEGIN_END_PATTERN = /\A(\/|\#)\*(BEGIN|END)\s*\*\1/
-STRING_LITERAL_PATTERN = /\A(\'(?:[^\']+|\'\')*\')/ ## quoted string
-SPLIT_TOKEN_PATTERN = /\A(\S+?)(?=\s*(?:(?:\/|\#)\*|-{2,}|\(|\)|\,))/ ## stop on delimiters --,/*,#*,',',(,)
-LITERAL_PATTERN = /\A([^;\s]+)/
-SPACES_PATTERN = /\A(\s+)/
-QUESTION_PATTERN = /\A\?/
-COMMA_PATTERN = /\A\,/
-LPAREN_PATTERN = /\A\(/
-RPAREN_PATTERN = /\A\)/
-ACTUAL_COMMENT_PATTERN = /\A(\/|\#)\*(\s{1,}(?:.*?))\*\1/m ## start with spaces
-SEMICOLON_AT_INPUT_END_PATTERN = /\A\;\s*\Z/
-UNMATCHED_COMMENT_START_PATTERN = /\A(?:(?:\/|\#)\*)/
-
-#TODO: remove trailing spaces for S2Dao compatibility, but this spec sometimes causes SQL bugs...
-ELSE_PATTERN = /\A\-{2,}\s*ELSE\s*/
-AND_PATTERN = /\A(\ *AND)\b/i
-OR_PATTERN = /\A(\ *OR)\b/i
-
-
-def parse( io )
- @q = []
- io.each_line(nil) do |whole|
- @s = StringScanner.new(whole)
- end
- scan_str
-
- # @q.push [ false, nil ]
- @q.push [ false, [@s.pos, nil] ]
-
- ## call racc's private parse method
- do_parse
-end
-
-
-## called by racc
-def next_token
- @q.shift
-end
-
-
-def scan_str
- until @s.eos? do
- case
- when @s.scan(AND_PATTERN)
- @q.push [ :AND, [@s.pos, @s[1]] ]
- when @s.scan(OR_PATTERN)
- @q.push [ :OR, [@s.pos, @s[1]] ]
- when @s.scan(SPACES_PATTERN)
- @q.push [ :SPACES, [@s.pos, @s[1]] ]
- when @s.scan(QUESTION_PATTERN)
- @q.push [ :QUESTION, [@s.pos, nil] ]
- when @s.scan(COMMA_PATTERN)
- @q.push [ :COMMA, [@s.pos, ','] ]
- when @s.scan(LPAREN_PATTERN)
- @q.push [ :LPAREN, [@s.pos, '('] ]
- when @s.scan(RPAREN_PATTERN)
- @q.push [ :RPAREN, [@s.pos, ')'] ]
- when @s.scan(ELSE_PATTERN)
- @q.push [ :ELSE, [@s.pos, nil] ]
- when @s.scan(ACTUAL_COMMENT_PATTERN)
- @q.push [ :ACTUAL_COMMENT, [@s.pos, @s[1], @s[2]] ] if @preserve_comment
- when @s.scan(BEGIN_END_PATTERN)
- @q.push [ @s[2].intern, [@s.pos, nil] ]
- when @s.scan(CONDITIONAL_PATTERN)
- @q.push [ @s[2].intern, [@s.pos, @s[3]] ]
- when @s.scan(EMBED_VARIABLE_PATTERN)
- @q.push [ :EMBED_VARIABLE, [@s.pos, @s[2]] ]
- when @s.scan(PAREN_BIND_VARIABLE_PATTERN)
- @q.push [ :PAREN_BIND_VARIABLE, [@s.pos, @s[2]] ]
- when @s.scan(BIND_VARIABLE_PATTERN)
- @q.push [ :BIND_VARIABLE, [@s.pos, @s[2]] ]
- when @s.scan(STRING_LITERAL_PATTERN)
- @q.push [ :STRING_LITERAL, [@s.pos, @s[1]] ]
- when @s.scan(SPLIT_TOKEN_PATTERN)
- @q.push [ :IDENT, [@s.pos, @s[1]] ]
- when @s.scan(UNMATCHED_COMMENT_START_PATTERN) ## unmatched comment start, '/*','#*'
- raise Racc::ParseError, "unmatched comment. line:[#{line_no(@s.pos)}], str:[#{@s.rest}]"
- when @s.scan(LITERAL_PATTERN) ## other string token
- @q.push [ :IDENT, [@s.pos, @s[1]] ]
- when @s.scan(SEMICOLON_AT_INPUT_END_PATTERN)
- #drop semicolon at input end
- else
- raise Racc::ParseError, "syntax error at or near line:[#{line_no(@s.pos)}], str:[#{@s.rest}]"
- end
- end
-end
-
-
-## override racc's default on_error method
-def on_error(t, v, vstack)
- ## cursor in value-stack is an array of two items,
- ## that have position value as 0th item. like [731, "ctx[:limit] "]
- cursor = vstack.find do |tokens|
- tokens.size == 2 and tokens[0].kind_of?(Fixnum)
- end
- pos = cursor[0]
- line = line_no(pos)
- rest = @s.string[pos .. -1]
- raise Racc::ParseError, "syntax error at or near line:[#{line}], str:[#{rest}]"
-end
-
-
-def line_no(pos)
- lines = 0
- scanned = @s.string[0..(pos)]
- scanned.each_line { lines += 1 }
- lines
-end
diff --git a/test/racc/assets/unterm.y b/test/racc/assets/unterm.y
deleted file mode 100644
index 518acc7f31..0000000000
--- a/test/racc/assets/unterm.y
+++ /dev/null
@@ -1,5 +0,0 @@
-# unterminated action
-
-class A
-rule
- a: A {
diff --git a/test/racc/assets/useless.y b/test/racc/assets/useless.y
deleted file mode 100644
index 3f172e341c..0000000000
--- a/test/racc/assets/useless.y
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-class A
-token A B C X
-rule
-
-targ : A list B
- | A B C
-
-list: list X
-
-end
diff --git a/test/racc/assets/yyerr.y b/test/racc/assets/yyerr.y
deleted file mode 100644
index 9faae89a79..0000000000
--- a/test/racc/assets/yyerr.y
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# yyerror/yyerrok/yyaccept test
-#
-
-class A
-rule
-
-target: a b c
-
-a:
- {
- yyerror
- raise ArgumentError, "yyerror failed"
- }
- | error
-
-b:
- {
- yyerrok
- }
-
-c:
- {
- yyaccept
- raise ArgumentError, "yyaccept failed"
- }
-
-end
-
----- inner
-
- def parse
- do_parse
- end
-
- def next_token
- [false, '$end']
- end
-
- def on_error( *args )
- $stderr.puts "on_error called: args=#{args.inspect}"
- end
-
----- footer
-
-A.new.parse
diff --git a/test/racc/bench.y b/test/racc/bench.y
deleted file mode 100644
index c6ba136201..0000000000
--- a/test/racc/bench.y
+++ /dev/null
@@ -1,36 +0,0 @@
-class BenchmarkParser
-
-rule
-
- target: a a a a a a a a a a;
- a: b b b b b b b b b b;
- b: c c c c c c c c c c;
- c: d d d d d d d d d d;
- d: e e e e e e e e e e;
-
-end
-
----- inner
-
-def initialize
- @old = [ :e, 'e' ]
- @i = 0
-end
-
-def next_token
- return [false, '$'] if @i >= 10_0000
- @i += 1
- @old
-end
-
-def parse
- do_parse
-end
-
----- footer
-
-require 'benchmark'
-
-Benchmark.bm do |x|
- x.report { BenchmarkParser.new.parse }
-end
diff --git a/test/racc/helper.rb b/test/racc/helper.rb
deleted file mode 100644
index 146beb5a73..0000000000
--- a/test/racc/helper.rb
+++ /dev/null
@@ -1,115 +0,0 @@
-verbose = $VERBOSE
-$VERBOSE = true
-begin
-
-require 'test/unit'
-begin
- require_relative './lib/core_assertions'
- Test::Unit::TestCase.include Test::Unit::CoreAssertions
-rescue LoadError
-end
-require 'racc/static'
-require 'fileutils'
-require 'tempfile'
-require 'timeout'
-
-module Racc
- class TestCase < Test::Unit::TestCase
- PROJECT_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..'))
-
- test_dir = File.join(PROJECT_DIR, 'test')
- test_dir = File.join(PROJECT_DIR, 'racc') unless File.exist?(test_dir)
- TEST_DIR = test_dir
- racc = File.join(PROJECT_DIR, 'bin', 'racc')
- racc = File.join(PROJECT_DIR, '..', 'libexec', 'racc') unless File.exist?(racc)
- RACC = racc
- ASSET_DIR = File.join(TEST_DIR, 'assets') # test grammars
- REGRESS_DIR = File.join(TEST_DIR, 'regress') # known-good generated outputs
-
- INC = [
- File.join(PROJECT_DIR, 'lib'),
- File.join(PROJECT_DIR, 'ext'),
- ].join(':')
-
- def setup
- @TEMP_DIR = Dir.mktmpdir("racc")
- @OUT_DIR = File.join(@TEMP_DIR, 'out')
- @TAB_DIR = File.join(@TEMP_DIR, 'tab') # generated parsers go here
- @LOG_DIR = File.join(@TEMP_DIR, 'log')
- @ERR_DIR = File.join(@TEMP_DIR, 'err')
- FileUtils.mkdir_p([@OUT_DIR, @TAB_DIR, @LOG_DIR, @ERR_DIR])
- FileUtils.cp File.join(TEST_DIR, "src.intp"), @TEMP_DIR
- end
-
- def teardown
- FileUtils.rm_f(File.join(@TEMP_DIR, "src.intp"))
- FileUtils.rm_rf([@OUT_DIR, @TAB_DIR, @LOG_DIR, @ERR_DIR, @TEMP_DIR])
- end
-
- def assert_compile(asset, args = [], **opt)
- file = File.basename(asset, '.y')
- args = ([args].flatten) + [
- "#{ASSET_DIR}/#{file}.y",
- '-Do',
- "-O#{@OUT_DIR}/#{file}",
- "-o#{@TAB_DIR}/#{file}",
- ]
- racc(*args, **opt)
- end
-
- def assert_debugfile(asset, ok)
- file = File.basename(asset, '.y')
- Dir.chdir(@LOG_DIR) do
- File.foreach("#{file}.y") do |line|
- line.strip!
- case line
- when /sr/ then assert_equal "sr#{ok[0]}", line
- when /rr/ then assert_equal "rr#{ok[1]}", line
- when /un/ then assert_equal "un#{ok[2]}", line
- when /ur/ then assert_equal "ur#{ok[3]}", line
- when /ex/ then assert_equal "ex#{ok[4]}", line
- else
- raise TestFailed, 'racc outputs unknown debug report???'
- end
- end
- end
- end
-
- def assert_exec(asset)
- lib_path = File.expand_path("../../lib", __FILE__)
- file = File.basename(asset, '.y')
- ruby "-I#{lib_path}", "#{@TAB_DIR}/#{file}"
- end
-
- def strip_version(source)
- source.sub(/This file is automatically generated by Racc \d+\.\d+\.\d+/, '')
- end
-
- def assert_output_unchanged(asset)
- file = File.basename(asset, '.y')
-
- # Code to re-generate the expectation files
- # File.write("#{REGRESS_DIR}/#{file}", File.read("#{@TAB_DIR}/#{file}"))
-
- expected = File.read("#{REGRESS_DIR}/#{file}")
- actual = File.read("#{@TAB_DIR}/#{file}")
- result = (strip_version(expected) == strip_version(actual))
-
- assert(result, "Output of test/assets/#{file}.y differed from " \
- "expectation. Try compiling it and diff with test/regress/#{file}.")
- end
-
- def racc(*arg, **opt)
- lib_path = File.expand_path("../../lib", __FILE__)
- ruby "-I#{lib_path}", "-S", RACC, *arg, **opt
- end
-
- def ruby(*arg, **opt)
- assert_ruby_status(["-C", @TEMP_DIR, *arg], **opt)
- end
- end
-end
-
-ensure
-$VERBOSE = verbose
-end
diff --git a/test/racc/infini.y b/test/racc/infini.y
deleted file mode 100644
index 88b1e1e93b..0000000000
--- a/test/racc/infini.y
+++ /dev/null
@@ -1,8 +0,0 @@
-
-class I
-
-rule
-
-list: list X
-
-end
diff --git a/test/racc/regress/README.txt b/test/racc/regress/README.txt
deleted file mode 100644
index dcab73260d..0000000000
--- a/test/racc/regress/README.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-These files are "known-good" compiler output, generated from a stable version of
-Racc. Whenever Racc is refactored, or changes are made which should not affect the
-compiler output, running "rake test" checks that the compiler output is exactly
-the same as these files.
-
-If a change is made which *should* change the compiler output, these files will
-have to be regenerated from the source in test/assets, and the results committed.
diff --git a/test/racc/regress/cadenza b/test/racc/regress/cadenza
deleted file mode 100644
index dafce3c9f3..0000000000
--- a/test/racc/regress/cadenza
+++ /dev/null
@@ -1,796 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-# racc_parser.rb : generated by racc
-
-module Cadenza
- class RaccParser < Racc::Parser
-
-module_eval(<<'...end cadenza.y/module_eval...', 'cadenza.y', 171)
-
-...end cadenza.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- 37, 89, 65, 66, 20, 21, 22, 23, 24, 17,
- 106, 37, 3, 76, 4, 3, 75, 4, 50, 37,
- 29, 68, 65, 66, 33, 67, 34, 110, 9, 74,
- 35, 9, 37, 36, 71, 33, 38, 34, 77, 78,
- 79, 35, 72, 33, 36, 34, 37, 38, 3, 35,
- 39, 83, 36, 54, 55, 38, 33, 89, 34, 37,
- 90, 3, 35, 43, 9, 36, 85, 103, 38, 108,
- 33, 109, 34, 56, 57, 111, 35, 9, 3, 36,
- 46, 122, 38, 33, 112, 34, 113, 78, 79, 35,
- 114, 3, 36, 4, 9, 38, 20, 21, 22, 23,
- 24, 20, 21, 22, 23, 24, 115, 9, 65, 66,
- 65, 66, 29, 54, 55, 120, 107, 29, 20, 21,
- 22, 23, 24, 20, 21, 22, 23, 24, 20, 21,
- 22, 23, 24, 3, 29, 39, 3, 121, 4, 29,
- 3, 3, 43, 46, 29, 3, 124, 87, 125, 9,
- 54, 55, 9, 56, 57, 128, 9, 9, 3, 103,
- 116, 9, 20, 21, 22, 23, 24, 20, 21, 22,
- 23, 24, 131, 3, 9, 116, 56, 57, 29, 3,
- 89, 116, nil, 29, 20, 21, 22, 23, 24, 9,
- 20, 21, 22, 23, 24, 9, 56, 57, 56, 57,
- 29, 20, 21, 22, 23, 24, 29, 58, 59, 60,
- 61, 62, 63, 56, 57, 56, 57, 29, 58, 59,
- 60, 61, 62, 63, 20, 21, 22, 23, 24, 20,
- 21, 22, 23, 24, 20, 21, 22, 23, 24, 20,
- 21, 22, 23, 24, 20, 21, 22, 23, 24, 20,
- 21, 22, 23, 24, 20, 21, 22, 23, 24, 20,
- 21, 22, 23, 24, 20, 21, 22, 23, 24, 20,
- 21, 22, 23, 24, 20, 21, 22, 23, 24, 65,
- 66 ]
-
-racc_action_check = [
- 4, 73, 69, 69, 37, 37, 37, 37, 37, 1,
- 69, 39, 0, 38, 0, 2, 38, 2, 17, 43,
- 37, 32, 31, 31, 4, 31, 4, 73, 0, 37,
- 4, 2, 46, 4, 35, 39, 4, 39, 39, 39,
- 39, 39, 36, 43, 39, 43, 87, 39, 5, 43,
- 5, 43, 43, 26, 26, 43, 46, 52, 46, 116,
- 53, 6, 46, 6, 5, 46, 46, 67, 46, 71,
- 87, 72, 87, 27, 27, 75, 87, 6, 7, 87,
- 7, 87, 87, 116, 76, 116, 77, 116, 116, 116,
- 78, 8, 116, 8, 7, 116, 3, 3, 3, 3,
- 3, 20, 20, 20, 20, 20, 79, 8, 70, 70,
- 51, 51, 3, 93, 93, 83, 70, 20, 24, 24,
- 24, 24, 24, 33, 33, 33, 33, 33, 34, 34,
- 34, 34, 34, 41, 24, 41, 42, 85, 42, 33,
- 45, 48, 45, 48, 34, 49, 103, 49, 105, 41,
- 94, 94, 42, 95, 95, 122, 45, 48, 81, 125,
- 81, 49, 65, 65, 65, 65, 65, 66, 66, 66,
- 66, 66, 126, 82, 81, 82, 96, 96, 65, 118,
- 129, 118, nil, 66, 89, 89, 89, 89, 89, 82,
- 108, 108, 108, 108, 108, 118, 97, 97, 98, 98,
- 89, 124, 124, 124, 124, 124, 108, 28, 28, 28,
- 28, 28, 28, 99, 99, 100, 100, 124, 64, 64,
- 64, 64, 64, 64, 29, 29, 29, 29, 29, 54,
- 54, 54, 54, 54, 55, 55, 55, 55, 55, 56,
- 56, 56, 56, 56, 57, 57, 57, 57, 57, 58,
- 58, 58, 58, 58, 59, 59, 59, 59, 59, 60,
- 60, 60, 60, 60, 61, 61, 61, 61, 61, 62,
- 62, 62, 62, 62, 63, 63, 63, 63, 63, 123,
- 123 ]
-
-racc_action_pointer = [
- -12, 9, -9, 93, -3, 24, 37, 54, 67, nil,
- nil, nil, nil, nil, nil, nil, nil, 18, nil, nil,
- 98, nil, nil, nil, 115, nil, 44, 62, 194, 221,
- nil, 2, -4, 120, 125, 31, 39, 1, 10, 8,
- nil, 109, 112, 16, nil, 116, 29, nil, 117, 121,
- nil, 90, 55, 52, 226, 231, 236, 241, 246, 251,
- 256, 261, 266, 271, 205, 159, 164, 64, nil, -18,
- 88, 35, 43, -1, nil, 47, 56, 58, 62, 78,
- nil, 134, 149, 87, nil, 109, nil, 43, nil, 181,
- nil, nil, nil, 104, 141, 142, 165, 185, 187, 202,
- 204, nil, nil, 124, nil, 125, nil, nil, 187, nil,
- nil, nil, nil, nil, nil, nil, 56, nil, 155, nil,
- nil, nil, 127, 259, 198, 156, 144, nil, nil, 178,
- nil, nil ]
-
-racc_action_default = [
- -2, -70, -1, -70, -70, -70, -70, -70, -70, -60,
- -61, -62, -63, -64, -65, -66, -68, -70, -67, -69,
- -5, -7, -8, -9, -70, -11, -14, -17, -24, -70,
- -26, -33, -70, -70, -70, -70, -70, -70, -70, -70,
- -41, -70, -70, -70, -48, -70, -70, -52, -70, -70,
- 132, -3, -6, -70, -70, -70, -70, -70, -70, -70,
- -70, -70, -70, -70, -25, -70, -70, -70, -35, -70,
- -70, -70, -70, -70, -54, -70, -70, -70, -70, -70,
- -42, -70, -70, -70, -49, -70, -53, -70, -57, -70,
- -10, -12, -13, -15, -16, -18, -19, -20, -21, -22,
- -23, -27, -28, -29, -31, -34, -36, -37, -70, -50,
- -55, -58, -59, -38, -39, -40, -70, -44, -70, -43,
- -47, -51, -70, -4, -70, -70, -70, -45, -56, -30,
- -32, -46 ]
-
-racc_goto_table = [
- 19, 40, 18, 32, 104, 52, 51, 1, 2, 64,
- 47, 91, 92, 41, 45, 48, 49, 44, 42, 69,
- 70, 105, 73, 51, 53, 95, 96, 97, 98, 99,
- 100, 93, 94, 101, 102, 88, nil, 80, nil, 19,
- nil, 18, nil, 19, nil, 18, 19, 19, 18, 18,
- 82, 86, nil, nil, 81, nil, 84, nil, nil, nil,
- nil, nil, 130, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 123, nil, 117, 119, nil,
- 19, nil, 18, nil, nil, nil, nil, nil, nil, 118,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 126, 129,
- 51, nil, nil, nil, 127, nil, 19, nil, 18 ]
-
-racc_goto_check = [
- 27, 16, 28, 6, 11, 3, 4, 1, 2, 9,
- 22, 5, 5, 2, 2, 2, 2, 19, 15, 4,
- 4, 12, 3, 4, 6, 8, 8, 8, 8, 8,
- 8, 7, 7, 10, 10, 25, nil, 16, nil, 27,
- nil, 28, nil, 27, nil, 28, 27, 27, 28, 28,
- 2, 22, nil, nil, 15, nil, 19, nil, nil, nil,
- nil, nil, 11, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 4, nil, 16, 16, nil,
- 27, nil, 28, nil, nil, nil, nil, nil, nil, 2,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 6, 3,
- 4, nil, nil, nil, 16, nil, 27, nil, 28 ]
-
-racc_goto_pointer = [
- nil, 7, 8, -15, -14, -43, 0, -25, -33, -20,
- -32, -63, -46, nil, nil, 13, -4, nil, nil, 11,
- nil, nil, 3, nil, nil, -14, nil, -2, 0 ]
-
-racc_goto_default = [
- nil, nil, nil, nil, 31, 25, nil, 26, 27, 28,
- 30, nil, nil, 10, 5, nil, nil, 11, 6, nil,
- 12, 7, nil, 14, 8, nil, 13, 16, 15 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 42, :_reduce_none,
- 0, 42, :_reduce_2,
- 1, 44, :_reduce_3,
- 3, 44, :_reduce_4,
- 1, 46, :_reduce_5,
- 2, 46, :_reduce_6,
- 1, 46, :_reduce_7,
- 1, 46, :_reduce_8,
- 1, 46, :_reduce_9,
- 3, 46, :_reduce_10,
- 1, 48, :_reduce_none,
- 3, 48, :_reduce_12,
- 3, 48, :_reduce_13,
- 1, 49, :_reduce_none,
- 3, 49, :_reduce_15,
- 3, 49, :_reduce_16,
- 1, 50, :_reduce_none,
- 3, 50, :_reduce_18,
- 3, 50, :_reduce_19,
- 3, 50, :_reduce_20,
- 3, 50, :_reduce_21,
- 3, 50, :_reduce_22,
- 3, 50, :_reduce_23,
- 1, 51, :_reduce_none,
- 2, 51, :_reduce_25,
- 1, 45, :_reduce_none,
- 3, 45, :_reduce_27,
- 3, 45, :_reduce_28,
- 1, 52, :_reduce_29,
- 3, 52, :_reduce_30,
- 1, 53, :_reduce_31,
- 3, 53, :_reduce_32,
- 1, 47, :_reduce_none,
- 3, 47, :_reduce_34,
- 3, 54, :_reduce_35,
- 4, 55, :_reduce_36,
- 4, 55, :_reduce_37,
- 3, 56, :_reduce_38,
- 3, 57, :_reduce_39,
- 3, 57, :_reduce_40,
- 2, 58, :_reduce_41,
- 3, 58, :_reduce_42,
- 4, 58, :_reduce_43,
- 4, 58, :_reduce_44,
- 5, 58, :_reduce_45,
- 6, 59, :_reduce_46,
- 3, 60, :_reduce_47,
- 2, 61, :_reduce_48,
- 3, 61, :_reduce_49,
- 4, 62, :_reduce_50,
- 3, 63, :_reduce_51,
- 2, 64, :_reduce_52,
- 3, 64, :_reduce_53,
- 3, 65, :_reduce_54,
- 4, 65, :_reduce_55,
- 3, 66, :_reduce_56,
- 3, 67, :_reduce_57,
- 4, 68, :_reduce_58,
- 4, 68, :_reduce_59,
- 1, 69, :_reduce_60,
- 1, 69, :_reduce_none,
- 1, 69, :_reduce_none,
- 1, 69, :_reduce_none,
- 1, 69, :_reduce_none,
- 1, 69, :_reduce_none,
- 1, 43, :_reduce_66,
- 2, 43, :_reduce_67,
- 1, 43, :_reduce_68,
- 2, 43, :_reduce_69 ]
-
-racc_reduce_n = 70
-
-racc_shift_n = 132
-
-racc_token_table = {
- false => 0,
- :error => 1,
- "," => 2,
- :IDENTIFIER => 3,
- :INTEGER => 4,
- :REAL => 5,
- :STRING => 6,
- "(" => 7,
- ")" => 8,
- "*" => 9,
- "/" => 10,
- "+" => 11,
- "-" => 12,
- :OP_EQ => 13,
- :OP_NEQ => 14,
- :OP_LEQ => 15,
- :OP_GEQ => 16,
- ">" => 17,
- "<" => 18,
- :NOT => 19,
- :AND => 20,
- :OR => 21,
- ":" => 22,
- "|" => 23,
- :VAR_OPEN => 24,
- :VAR_CLOSE => 25,
- :STMT_OPEN => 26,
- :IF => 27,
- :STMT_CLOSE => 28,
- :UNLESS => 29,
- :ELSE => 30,
- :ENDIF => 31,
- :ENDUNLESS => 32,
- :FOR => 33,
- :IN => 34,
- :ENDFOR => 35,
- :BLOCK => 36,
- :ENDBLOCK => 37,
- :END => 38,
- :EXTENDS => 39,
- :TEXT_BLOCK => 40 }
-
-racc_nt_base = 41
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "\",\"",
- "IDENTIFIER",
- "INTEGER",
- "REAL",
- "STRING",
- "\"(\"",
- "\")\"",
- "\"*\"",
- "\"/\"",
- "\"+\"",
- "\"-\"",
- "OP_EQ",
- "OP_NEQ",
- "OP_LEQ",
- "OP_GEQ",
- "\">\"",
- "\"<\"",
- "NOT",
- "AND",
- "OR",
- "\":\"",
- "\"|\"",
- "VAR_OPEN",
- "VAR_CLOSE",
- "STMT_OPEN",
- "IF",
- "STMT_CLOSE",
- "UNLESS",
- "ELSE",
- "ENDIF",
- "ENDUNLESS",
- "FOR",
- "IN",
- "ENDFOR",
- "BLOCK",
- "ENDBLOCK",
- "END",
- "EXTENDS",
- "TEXT_BLOCK",
- "$start",
- "target",
- "document",
- "parameter_list",
- "logical_expression",
- "primary_expression",
- "filtered_expression",
- "multiplicative_expression",
- "additive_expression",
- "boolean_expression",
- "inverse_expression",
- "filter",
- "filter_list",
- "inject_statement",
- "if_tag",
- "else_tag",
- "end_if_tag",
- "if_block",
- "for_tag",
- "end_for_tag",
- "for_block",
- "block_tag",
- "end_block_tag",
- "block_block",
- "generic_block_tag",
- "end_generic_block_tag",
- "generic_block",
- "extends_statement",
- "document_component" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-# reduce 1 omitted
-
-module_eval(<<'.,.,', 'cadenza.y', 12)
- def _reduce_2(val, _values, result)
- result = nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 16)
- def _reduce_3(val, _values, result)
- result = [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 17)
- def _reduce_4(val, _values, result)
- result = val[0].push(val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 22)
- def _reduce_5(val, _values, result)
- result = VariableNode.new(val[0].value)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 23)
- def _reduce_6(val, _values, result)
- result = VariableNode.new(val[0].value, val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 24)
- def _reduce_7(val, _values, result)
- result = ConstantNode.new(val[0].value)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 25)
- def _reduce_8(val, _values, result)
- result = ConstantNode.new(val[0].value)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 26)
- def _reduce_9(val, _values, result)
- result = ConstantNode.new(val[0].value)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 27)
- def _reduce_10(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-# reduce 11 omitted
-
-module_eval(<<'.,.,', 'cadenza.y', 32)
- def _reduce_12(val, _values, result)
- result = OperationNode.new(val[0], "*", val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 33)
- def _reduce_13(val, _values, result)
- result = OperationNode.new(val[0], "/", val[2])
- result
- end
-.,.,
-
-# reduce 14 omitted
-
-module_eval(<<'.,.,', 'cadenza.y', 38)
- def _reduce_15(val, _values, result)
- result = OperationNode.new(val[0], "+", val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 39)
- def _reduce_16(val, _values, result)
- result = OperationNode.new(val[0], "-", val[2])
- result
- end
-.,.,
-
-# reduce 17 omitted
-
-module_eval(<<'.,.,', 'cadenza.y', 44)
- def _reduce_18(val, _values, result)
- result = OperationNode.new(val[0], "==", val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 45)
- def _reduce_19(val, _values, result)
- result = OperationNode.new(val[0], "!=", val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 46)
- def _reduce_20(val, _values, result)
- result = OperationNode.new(val[0], "<=", val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 47)
- def _reduce_21(val, _values, result)
- result = OperationNode.new(val[0], ">=", val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 48)
- def _reduce_22(val, _values, result)
- result = OperationNode.new(val[0], ">", val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 49)
- def _reduce_23(val, _values, result)
- result = OperationNode.new(val[0], "<", val[2])
- result
- end
-.,.,
-
-# reduce 24 omitted
-
-module_eval(<<'.,.,', 'cadenza.y', 54)
- def _reduce_25(val, _values, result)
- result = BooleanInverseNode.new(val[1])
- result
- end
-.,.,
-
-# reduce 26 omitted
-
-module_eval(<<'.,.,', 'cadenza.y', 59)
- def _reduce_27(val, _values, result)
- result = OperationNode.new(val[0], "and", val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 60)
- def _reduce_28(val, _values, result)
- result = OperationNode.new(val[0], "or", val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 64)
- def _reduce_29(val, _values, result)
- result = FilterNode.new(val[0].value)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 65)
- def _reduce_30(val, _values, result)
- result = FilterNode.new(val[0].value, val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 69)
- def _reduce_31(val, _values, result)
- result = [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 70)
- def _reduce_32(val, _values, result)
- result = val[0].push(val[2])
- result
- end
-.,.,
-
-# reduce 33 omitted
-
-module_eval(<<'.,.,', 'cadenza.y', 75)
- def _reduce_34(val, _values, result)
- result = FilteredValueNode.new(val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 79)
- def _reduce_35(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 83)
- def _reduce_36(val, _values, result)
- open_scope!; result = val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 84)
- def _reduce_37(val, _values, result)
- open_scope!; result = BooleanInverseNode.new(val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 88)
- def _reduce_38(val, _values, result)
- result = close_scope!; open_scope!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 92)
- def _reduce_39(val, _values, result)
- result = close_scope!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 93)
- def _reduce_40(val, _values, result)
- result = close_scope!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 97)
- def _reduce_41(val, _values, result)
- result = IfNode.new(val[0], val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 98)
- def _reduce_42(val, _values, result)
- result = IfNode.new(val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 99)
- def _reduce_43(val, _values, result)
- result = IfNode.new(val[0], val[1], val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 100)
- def _reduce_44(val, _values, result)
- result = IfNode.new(val[0], val[2], val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 101)
- def _reduce_45(val, _values, result)
- result = IfNode.new(val[0], val[2], val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 105)
- def _reduce_46(val, _values, result)
- open_scope!; result = [val[2].value, val[4]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 109)
- def _reduce_47(val, _values, result)
- result = close_scope!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 114)
- def _reduce_48(val, _values, result)
- result = ForNode.new(VariableNode.new(val[0].first), val[0].last, val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 115)
- def _reduce_49(val, _values, result)
- result = ForNode.new(VariableNode.new(val[0].first), val[0].last, val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 119)
- def _reduce_50(val, _values, result)
- result = open_block_scope!(val[2].value)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 123)
- def _reduce_51(val, _values, result)
- result = close_block_scope!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 128)
- def _reduce_52(val, _values, result)
- result = BlockNode.new(val[0], val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 129)
- def _reduce_53(val, _values, result)
- result = BlockNode.new(val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 133)
- def _reduce_54(val, _values, result)
- open_scope!; result = [val[1].value, []]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 134)
- def _reduce_55(val, _values, result)
- open_scope!; result = [val[1].value, val[2]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 138)
- def _reduce_56(val, _values, result)
- result = close_scope!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 142)
- def _reduce_57(val, _values, result)
- result = GenericBlockNode.new(val[0].first, val[2], val[0].last)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 146)
- def _reduce_58(val, _values, result)
- result = val[2].value
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 147)
- def _reduce_59(val, _values, result)
- result = VariableNode.new(val[2].value)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 151)
- def _reduce_60(val, _values, result)
- result = TextNode.new(val[0].value)
- result
- end
-.,.,
-
-# reduce 61 omitted
-
-# reduce 62 omitted
-
-# reduce 63 omitted
-
-# reduce 64 omitted
-
-# reduce 65 omitted
-
-module_eval(<<'.,.,', 'cadenza.y', 160)
- def _reduce_66(val, _values, result)
- push val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 161)
- def _reduce_67(val, _values, result)
- push val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 162)
- def _reduce_68(val, _values, result)
- document.extends = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cadenza.y', 163)
- def _reduce_69(val, _values, result)
- document.extends = val[1]
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class RaccParser
-end # module Cadenza
diff --git a/test/racc/regress/cast b/test/racc/regress/cast
deleted file mode 100644
index 1892c73e01..0000000000
--- a/test/racc/regress/cast
+++ /dev/null
@@ -1,3428 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-
-require 'set'
-
-# Error classes
-module C
- class ParseError < StandardError; end
-end
-
-# Local variables:
-# mode: ruby
-# end:
-module C
- class Parser < Racc::Parser
-
-module_eval(<<'...end cast.y/module_eval...', 'cast.y', 564)
- # A.1.9 -- Preprocessing numbers -- skip
- # A.1.8 -- Header names -- skip
-
- # A.1.7 -- Puncuators -- we don't bother with {##,#,%:,%:%:} since
- # we don't do preprocessing
- @@punctuators = %r'\+\+|-[->]|&&|\|\||\.\.\.|(?:<<|>>|[<>=!*/%+\-&^|])=?|[\[\](){}.~?:;,]'
- @@digraphs = %r'<[:%]|[:%]>'
-
- # A.1.6 -- String Literals -- simple for us because we don't decode
- # the string (and indeed accept some illegal strings)
- @@string_literal = %r'L?"(?:[^\\]|\\.)*?"'m
-
- # A.1.5 -- Constants
- @@decimal_floating_constant = %r'(?:(?:\d*\.\d+|\d+\.)(?:e[-+]?\d+)?|\d+e[-+]?\d+)[fl]?'i
- @@hexadecimal_floating_constant = %r'0x(?:(?:[0-9a-f]*\.[0-9a-f]+|[0-9a-f]+\.)|[0-9a-f]+)p[-+]?\d+[fl]?'i
-
- @@integer_constant = %r'(?:[1-9][0-9]*|0x[0-9a-f]+|0[0-7]*)(?:ul?l?|ll?u?)?'i
- @@floating_constant = %r'#{@@decimal_floating_constant}|#{@@hexadecimal_floating_constant}'
- @@enumeration_constant = %r'[a-zA-Z_\\][a-zA-Z_\\0-9]*'
- @@character_constant = %r"L?'(?:[^\\]|\\.)+?'"
- # (note that as with string-literals, we accept some illegal
- # character-constants)
-
- # A.1.4 -- Universal character names -- skip
-
- # A.1.3 -- Identifiers -- skip, since an identifier is lexically
- # identical to an enumeration constant
-
- # A.1.2 Keywords
- keywords = %w'auto break case char const continue default do
-double else enum extern float for goto if inline int long register
-restrict return short signed sizeof static struct switch typedef union
- unsigned void volatile while _Bool _Complex _Imaginary'
- @@keywords = %r"#{keywords.join('|')}"
-
- def initialize
- @type_names = ::Set.new
-
- @warning_proc = lambda{}
- @pos = C::Node::Pos.new(nil, 1, 0)
- end
- def initialize_copy(x)
- @pos = x.pos.dup
- @type_names = x.type_names.dup
- end
- attr_accessor :pos, :type_names
-
- def parse(str)
- if str.respond_to? :read
- str = str.read
- end
- @str = str
- begin
- prepare_lexer(str)
- return do_parse
- rescue ParseError => e
- e.set_backtrace(caller)
- raise
- end
- end
-
- #
- # Error handler, as used by racc.
- #
- def on_error(error_token_id, error_value, value_stack)
- if error_value == '$'
- parse_error @pos, "unexpected EOF"
- else
- parse_error(error_value.pos,
- "parse error on #{token_to_str(error_token_id)} (#{error_value.val})")
- end
- end
-
- def self.feature(name)
- attr_writer "#{name}_enabled"
- class_eval <<-EOS
- def enable_#{name}
- @#{name}_enabled = true
- end
- def #{name}_enabled?
- @#{name}_enabled
- end
- EOS
- end
- private_class_method :feature
-
- #
- # Allow blocks in parentheses as expressions, as per the gcc
- # extension. [http://rubyurl.com/iB7]
- #
- feature :block_expressions
-
- private # ---------------------------------------------------------
-
- class Token
- attr_accessor :pos, :val
- def initialize(pos, val)
- @pos = pos
- @val = val
- end
- end
- def eat(str)
- lines = str.split(/\r\n|[\r\n]/, -1)
- if lines.length == 1
- @pos.col_num += lines[0].length
- else
- @pos.line_num += lines.length - 1
- @pos.col_num = lines[-1].length
- end
- end
-
- #
- # Make a Declaration from the given specs and declarators.
- #
- def make_declaration(pos, specs, declarators)
- specs.all?{|x| x.is_a?(Symbol) || x.is_a?(Type)} or raise specs.map{|x| x.class}.inspect
- decl = Declaration.new_at(pos, nil, declarators)
-
- # set storage class
- storage_classes = specs.find_all do |x|
- [:typedef, :extern, :static, :auto, :register].include? x
- end
- # 6.7.1p2: at most, one storage-class specifier may be given in
- # the declaration specifiers in a declaration
- storage_classes.length <= 1 or
- begin
- if declarators.length == 0
- for_name = ''
- else
- for_name = "for `#{declarators[0].name}'"
- end
- parse_error pos, "multiple or duplicate storage classes given #{for_name}'"
- end
- decl.storage = storage_classes[0]
-
- # set type (specifiers, qualifiers)
- decl.type = make_direct_type(pos, specs)
-
- # set function specifiers
- decl.inline = specs.include?(:inline)
-
- # look for new type names
- if decl.typedef?
- decl.declarators.each do |d|
- if d.name
- @type_names << d.name
- end
- end
- end
-
- return decl
- end
-
- def make_function_def(pos, specs, func_declarator, decl_list, defn)
- add_decl_type(func_declarator, make_direct_type(pos, specs))
-
- # get types from decl_list if necessary
- function = func_declarator.indirect_type
- function.is_a? Function or
- parse_error pos, "non function type for function `#{func_declarator.name}'"
- params = function.params
- if decl_list
- params.all?{|p| p.type.nil?} or
- parse_error pos, "both prototype and declaration list given for `#{func_declarator.name}'"
- decl_list.each do |declaration|
- declaration.declarators.each do |declarator|
- param = params.find{|p| p.name == declarator.name} or
- parse_error pos, "no parameter named #{declarator.name}"
- if declarator.indirect_type
- param.type = declarator.indirect_type
- param.type.direct_type = declaration.type.dup
- else
- param.type = declaration.type.dup
- end
- end
- end
- params.all?{|p| p.type} or
- begin
- s = params.find_all{|p| p.type.nil?}.map{|p| "`#{p.name}'"}.join(' and ')
- parse_error pos, "types missing for parameters #{s}"
- end
- end
-
- fd = FunctionDef.new_at(pos,
- function.detach,
- func_declarator.name,
- defn,
- :no_prototype => !decl_list.nil?)
-
- # set storage class
- # 6.9.1p4: only extern or static allowed
- specs.each do |s|
- [:typedef, :auto, :register].include?(s) and
- "`#{s}' illegal for function"
- end
- storage_classes = specs.find_all do |s|
- s == :extern || s == :static
- end
- # 6.7.1p2: at most, one storage-class specifier may be given in
- # the declaration specifiers in a declaration
- storage_classes.length <= 1 or
- "multiple or duplicate storage classes given for `#{func_declarator.name}'"
- fd.storage = storage_classes[0] if storage_classes[0]
-
- # set function specifiers
- # 6.7.4p5 'inline' can be repeated
- fd.inline = specs.include?(:inline)
-
- return fd
- end
-
- #
- # Make a direct type from the list of type specifiers and type
- # qualifiers.
- #
- def make_direct_type(pos, specs)
- specs_order = [:signed, :unsigned, :short, :long, :double, :void,
- :char, :int, :float, :_Bool, :_Complex, :_Imaginary]
-
- type_specs = specs.find_all do |x|
- specs_order.include?(x) || !x.is_a?(Symbol)
- end
- type_specs.sort! do |a, b|
- (specs_order.index(a)||100) <=> (specs_order.index(b)||100)
- end
-
- # set type specifiers
- # 6.7.2p2: the specifier list should be one of these
- type =
- case type_specs
- when [:void]
- Void.new
- when [:char]
- Char.new
- when [:signed, :char]
- Char.new :signed => true
- when [:unsigned, :char]
- Char.new :signed => false
- when [:short], [:signed, :short], [:short, :int],
- [:signed, :short, :int]
- Int.new :longness => -1
- when [:unsigned, :short], [:unsigned, :short, :int]
- Int.new :unsigned => true, :longness => -1
- when [:int], [:signed], [:signed, :int]
- Int.new
- when [:unsigned], [:unsigned, :int]
- Int.new :unsigned => true
- when [:long], [:signed, :long], [:long, :int],
- [:signed, :long, :int]
- Int.new :longness => 1
- when [:unsigned, :long], [:unsigned, :long, :int]
- Int.new :longness => 1, :unsigned => true
- when [:long, :long], [:signed, :long, :long],
- [:long, :long, :int], [:signed, :long, :long, :int]
- Int.new :longness => 2
- when [:unsigned, :long, :long], [:unsigned, :long, :long, :int]
- Int.new :longness => 2, :unsigned => true
- when [:float]
- Float.new
- when [:double]
- Float.new :longness => 1
- when [:long, :double]
- Float.new :longness => 2
- when [:_Bool]
- Bool.new
- when [:float, :_Complex]
- Complex.new
- when [:double, :_Complex]
- Complex.new :longness => 1
- when [:long, :double, :_Complex]
- Complex.new :longness => 2
- when [:float, :_Imaginary]
- Imaginary.new
- when [:double, :_Imaginary]
- Imaginary.new :longness => 1
- when [:long, :double, :_Imaginary]
- Imaginary.new :longness => 2
- else
- if type_specs.length == 1 &&
- [CustomType, Struct, Union, Enum].any?{|c| type_specs[0].is_a? c}
- type_specs[0]
- else
- if type_specs == []
- parse_error pos, "no type specifiers given"
- else
- parse_error pos, "invalid type specifier combination: #{type_specs.join(' ')}"
- end
- end
- end
- type.pos ||= pos
-
- # set type qualifiers
- # 6.7.3p4: type qualifiers can be repeated
- type.const = specs.any?{|x| x.equal? :const }
- type.restrict = specs.any?{|x| x.equal? :restrict}
- type.volatile = specs.any?{|x| x.equal? :volatile}
-
- return type
- end
-
- def make_parameter(pos, specs, indirect_type, name)
- type = indirect_type
- if type
- type.direct_type = make_direct_type(pos, specs)
- else
- type = make_direct_type(pos, specs)
- end
- [:typedef, :extern, :static, :auto, :inline].each do |sym|
- specs.include? sym and
- parse_error pos, "parameter `#{declarator.name}' declared `#{sym}'"
- end
- return Parameter.new_at(pos, type, name,
- :register => specs.include?(:register))
- end
-
- def add_type_quals(type, quals)
- type.const = quals.include?(:const )
- type.restrict = quals.include?(:restrict)
- type.volatile = quals.include?(:volatile)
- return type
- end
-
- #
- # Add te given type as the "most direct" type to the given
- # declarator. Return the declarator.
- #
- def add_decl_type(declarator, type)
- if declarator.indirect_type
- declarator.indirect_type.direct_type = type
- else
- declarator.indirect_type = type
- end
- return declarator
- end
-
- def param_list(params, var_args)
- if params.length == 1 &&
- params[0].type.is_a?(Void) &&
- params[0].name.nil?
- return NodeArray[]
- elsif params.empty?
- return nil
- else
- return params
- end
- end
-
- def parse_error(pos, str)
- raise ParseError, "#{pos}: #{str}"
- end
-
-...end cast.y/module_eval...
-##### State transition tables begin ###
-
-clist = [
-'99,100,65,103,108,109,120,312,61,110,111,112,113,114,115,116,117,77',
-'48,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35',
-'36,37,72,281,128,49,38,196,391,123,124,126,127,129,130,131,132,183,277',
-'83,273,84,238,288,293,88,196,72,290,38,274,184,372,373,386,239,240,289',
-'294,71,241,242,50,147,148,149,150,99,100,65,193,108,109,120,50,281,110',
-'111,112,113,114,115,116,117,71,50,10,11,12,13,14,15,16,17,18,19,20,21',
-'22,23,24,25,26,31,32,33,34,35,36,37,56,366,128,89,38,50,169,123,124',
-'126,127,129,130,131,132,99,100,65,88,108,109,120,88,88,110,111,112,113',
-'114,115,116,117,346,349,238,59,68,48,365,195,50,147,148,149,150,38,347',
-'239,240,69,178,283,196,312,366,243,244,48,262,88,128,185,38,263,284',
-'123,124,126,127,129,130,131,132,99,100,65,49,108,109,120,38,50,110,111',
-'112,113,114,115,116,117,281,365,309,440,249,250,49,238,50,147,148,149',
-'150,313,379,196,227,439,178,413,239,240,88,196,50,48,50,196,128,187',
-'38,191,196,123,124,126,127,129,130,131,132,99,100,65,50,108,109,120',
-'416,428,110,111,112,113,114,115,116,117,255,256,192,196,196,197,49,198',
-'50,147,148,149,150,228,229,230,231,232,233,234,235,236,237,43,199,48',
-'241,242,128,202,38,241,242,123,124,126,127,129,130,131,132,99,100,65',
-'50,108,109,120,375,376,110,111,112,113,114,115,116,117,196,196,205,377',
-'387,427,49,433,50,147,148,149,150,196,388,196,437,196,206,445,209,447',
-'450,43,251,48,196,252,128,196,38,196,196,123,124,126,127,129,130,131',
-'132,99,100,65,50,108,109,120,454,253,110,111,112,113,114,115,116,117',
-'196,34,35,36,243,244,49,49,50,147,148,149,150,34,35,36,243,244,254,49',
-'245,246,247,248,67,48,243,244,128,268,38,243,244,123,124,126,127,129',
-'130,131,132,99,100,65,50,108,109,120,249,250,110,111,112,113,114,115',
-'116,117,245,246,247,248,271,272,49,275,50,147,148,149,150,245,246,247',
-'248,285,296,192,303,307,308,314,315,277,50,50,128,50,38,353,355,123',
-'124,126,127,129,130,131,132,99,100,65,50,108,109,120,357,50,110,111',
-'112,113,114,115,116,117,378,389,390,251,281,252,49,253,50,147,148,149',
-'150,254,395,396,397,398,399,405,406,384,384,423,424,425,426,442,128',
-',38,,,123,124,126,127,129,130,131,132,99,100,65,50,108,109,120,,,110',
-'111,112,113,114,115,116,117,,,,,,,,,50,147,148,149,150,,,,,,,,,,,,,',
-',,128,,38,,,123,124,126,127,129,130,131,132,99,100,65,,108,109,120,',
-',110,111,112,113,114,115,116,117,,,,,,,,,50,147,148,149,150,,,,,,,,',
-',,,,,,,128,,38,,,123,124,126,127,129,130,131,132,99,100,65,,108,109',
-'120,,,110,111,112,113,114,115,116,117,,,,,,,,,50,147,148,149,150,,,',
-',,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131,132,99,100,65,,108',
-'109,120,,,110,111,112,113,114,115,116,117,,,,,,,,,50,147,148,149,150',
-',,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131,132,99,100,65,',
-'108,109,120,,,110,111,112,113,114,115,116,117,,,,,,,,,50,147,148,149',
-'150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131,132,99,100',
-'65,,108,109,120,,,110,111,112,113,114,115,116,117,,,,,,,,,50,147,148',
-'149,150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131,132,99',
-'100,65,,108,109,120,,,110,111,112,113,114,115,116,117,,,,,,,,,50,147',
-'148,149,150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131,132',
-'99,100,65,,108,109,120,,,110,111,112,113,114,115,116,117,,,,,,,,,50',
-'147,148,149,150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131',
-'132,99,100,65,,108,109,120,,,110,111,112,113,114,115,116,117,,,,,,,',
-',50,147,148,149,150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130',
-'131,132,99,100,65,,108,109,120,,,110,111,112,113,114,115,116,117,,,',
-',,,,,50,147,148,149,150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129',
-'130,131,132,99,100,65,,108,109,120,,,110,111,112,113,114,115,116,117',
-',,,,,,,,50,147,148,149,150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127',
-'129,130,131,132,99,100,65,,108,109,120,,,110,111,112,113,114,115,116',
-'117,,,,,,,,,50,147,148,149,150,,,,,,,,,,,,,,,,128,,38,,,123,124,126',
-'127,129,130,131,132,99,100,65,,108,109,120,,,110,111,112,113,114,115',
-'116,117,,,,,,,,,50,147,148,149,150,,,,,,,,,,,,,,,,128,,38,,,123,124',
-'126,127,129,130,131,132,99,100,65,,108,109,120,,,110,111,112,113,114',
-'115,116,117,154,,,,120,,,,50,147,148,149,150,,,,,,,215,,,,,,,,,128,',
-'38,,,123,124,126,127,129,130,131,132,,,128,,,,,123,124,126,127,129,130',
-'131,132,214,,,,,216,217,218,219,,50,147,148,149,150,65,,,,120,,,,,,50',
-'147,148,149,150,154,,,,120,,,15,16,17,18,19,20,21,22,23,24,25,26,31',
-'32,33,34,35,36,,,,128,,38,,,123,124,126,127,129,130,131,132,262,,128',
-',,263,,123,124,126,127,129,130,131,132,,,,,,,,,,,50,147,148,149,150',
-'65,,,,120,,,,,,50,147,148,149,150,,,,,,,,15,16,17,18,19,20,21,22,23',
-'24,25,26,31,32,33,34,35,36,,,,128,,38,,,123,124,126,127,129,130,131',
-'132,,,,,,,,,65,,,,120,,,,,,,,,,,,,50,147,148,149,150,15,16,17,18,19',
-'20,21,22,23,24,25,26,31,32,33,34,35,36,,,,128,,38,,,123,124,126,127',
-'129,130,131,132,154,,,,120,,,,,,,,,384,,,,120,,,,,,,,50,147,148,149',
-'150,,,,,,,,,,,,,,128,,,,,123,124,126,127,129,130,131,132,128,,,,,123',
-'124,126,127,129,130,131,132,154,392,,,120,,,,,,,,50,147,148,149,150',
-'154,,,,120,,,,50,147,148,149,150,,,,,,,,,,,,262,,128,,,263,,123,124',
-'126,127,129,130,131,132,,,262,,128,,,263,,123,124,126,127,129,130,131',
-'132,154,,,,120,,,,50,147,148,149,150,,,154,453,,,120,,,,,,50,147,148',
-'149,150,,,,,,,,,,,,,,128,,,,,123,124,126,127,129,130,131,132,262,,128',
-',208,263,120,123,124,126,127,129,130,131,132,,,,,,,,,,,50,147,148,149',
-'150,,,,,,,,,,,50,147,148,149,150,128,,,,,123,124,126,127,129,130,131',
-'132,,,,,,,,,,,,,,,,305,,120,,,,,,,,50,147,148,149,150,10,11,12,13,14',
-'15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,,,128,,38,',
-',123,124,126,127,129,130,131,132,381,,120,,,,,,,,,,,383,,120,,,,,,,',
-',,50,147,148,149,150,,,,,,,,,,,,128,,,,,123,124,126,127,129,130,131',
-'132,128,,412,,120,123,124,126,127,129,130,131,132,,,,,,,,,,,,,50,147',
-'148,149,150,,,,,,,,,50,147,148,149,150,128,,,,,123,124,126,127,129,130',
-'131,132,120,,,,,,,,,,,,,120,,160,,,,,,,,,,50,147,148,149,150,,,,34,35',
-'36,,,159,161,,,,,123,124,126,127,129,130,131,132,128,,,,220,123,124',
-'126,127,129,130,131,132,,,,,220,,,,,,,,50,147,148,149,150,,,,,,,,,50',
-'147,148,149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123',
-'124,126,127,129,130,131,132,,,,,224,,,,,,,,50,147,148,149,150,,,,,,',
-',,50,147,148,149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,',
-',123,124,126,127,129,130,131,132,,,120,,,,,,,,,,50,147,148,149,150,266',
-',,,120,,,,50,147,148,149,150,,,,,,34,35,36,,,265,267,,,,120,123,124',
-'126,127,129,130,131,132,34,35,36,,,,128,,,,120,123,124,126,127,129,130',
-'131,132,,,,,,,50,147,148,149,150,128,,,,120,123,124,126,127,129,130',
-'131,132,,50,147,148,149,150,128,,,,120,123,124,126,127,129,130,131,132',
-',,,,,,50,147,148,149,150,128,,,,120,123,124,126,127,129,130,131,132',
-',50,147,148,149,150,128,,,,120,123,124,126,127,129,130,131,132,,,,,',
-',50,147,148,149,150,128,,,,120,123,124,126,127,129,130,131,132,,50,147',
-'148,149,150,128,,,,,123,124,126,127,129,130,131,132,,,,,,,50,147,148',
-'149,150,128,,,,,123,124,126,127,129,130,131,132,,50,147,148,149,150',
-',,,,,,120,318,,,,,,,,,,,,50,147,148,149,150,15,16,17,18,19,20,21,22',
-'23,24,25,26,31,32,33,34,35,36,,,,128,,38,,120,123,124,126,127,129,130',
-'131,132,,,,,120,,,,,,,,,,,,,,,,,,,,,50,147,148,149,150,128,,,,,123,124',
-'126,127,129,130,131,132,128,,,,120,123,124,126,127,129,130,131,132,',
-',,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148,149,150,128,,,,',
-'123,124,126,127,129,130,131,132,128,,,,120,123,124,126,127,129,130,131',
-'132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148,149,150,128',
-',,,,123,124,126,127,129,130,131,132,128,,,,120,123,124,126,127,129,130',
-'131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148,149,150',
-'128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123,124,126,127,129',
-'130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148,149',
-'150,128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123,124,126,127',
-'129,130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148',
-'149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123,124,126',
-'127,129,130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147',
-'148,149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123,124',
-'126,127,129,130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50',
-'147,148,149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123',
-'124,126,127,129,130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,',
-',,50,147,148,149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,',
-'120,123,124,126,127,129,130,131,132,,,,,120,,,,,,,,50,147,148,149,150',
-',,,,,,,,50,147,148,149,150,128,,,,,123,124,126,127,129,130,131,132,128',
-',,,120,123,124,126,127,129,130,131,132,,,,,120,,,,,,,,50,147,148,149',
-'150,,,,,,,,,50,147,148,149,150,128,,,,,123,124,126,127,129,130,131,132',
-'128,,,,,123,124,126,127,129,130,131,132,120,,,,,,,,,,,,50,147,148,149',
-'150,120,,,,,,,,50,147,148,149,150,,,,34,35,36,,,,128,,,,,123,124,126',
-'127,129,130,131,132,,,,368,369,,,,120,123,124,126,127,129,130,131,132',
-',,,,,120,,,50,147,148,149,150,,,,,,,,,,,,,50,147,148,149,150,128,,,',
-',123,124,126,127,129,130,131,132,401,402,,,,120,123,124,126,127,129',
-'130,131,132,,,,,120,415,,,,,,50,147,148,149,150,,,,,,,,,,50,147,148',
-'149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,,,123,124,126',
-'127,129,130,131,132,120,418,,,,,,,,,,,50,147,148,149,150,,,,,,,,,50',
-'147,148,149,150,,,,,,,,,,128,,,,,123,124,126,127,129,130,131,132,,,',
-',,,,,,,,,120,,,,,,,,,,,,,50,147,148,149,150,15,16,17,18,19,20,21,22',
-'23,24,25,26,31,32,33,34,35,36,,,,128,,38,,120,123,124,126,127,129,130',
-'131,132,,,,,120,430,,,,,,,,,,,,,,,,,,,,50,147,148,149,150,128,,,,,123',
-'124,126,127,129,130,131,132,128,,,,,123,124,126,127,129,130,131,132',
-'120,432,,,,,,,,,,,50,147,148,149,150,120,436,,,,,,,50,147,148,149,150',
-',,,,,,,,,128,,,,,123,124,126,127,129,130,131,132,,,,,128,,,,,123,124',
-'126,127,129,130,131,132,120,444,,,,,,,50,147,148,149,150,,,,,,,,,,,',
-',50,147,148,149,150,,,,,,,,,,128,,,,,123,124,126,127,129,130,131,132',
-',,,,,,,,,,,,,,,,,277,364,,,,,,,50,147,148,149,150,10,11,12,13,14,15',
-'16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,281,164,49,,38',
-',,,,,,,,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33',
-'34,35,36,37,,,,50,38,,,,,,,,,,,,,,,39,,,,,,,,,,,,,,,,,,,,,50,10,11,12',
-'13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,65,,',
-',38,,,,,,,,,,,,67,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
-'31,32,33,34,35,36,37,65,,,,38,,,,,,,,,,,,,10,11,12,13,14,15,16,17,18',
-'19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,173,,,,38,,,,,,,,,,,,,',
-',,,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,282,,,,,38',
-',,,,,,,,,,,,,,,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36',
-'287,,,,,38,,,,,,,,,,,,,,,,15,16,17,18,19,20,21,22,23,24,25,26,31,32',
-'33,34,35,36,312,364,,,,38,,,,,,,,10,11,12,13,14,15,16,17,18,19,20,21',
-'22,23,24,25,26,31,32,33,34,35,36,37,281,404,49,,38,,,,,,,,,10,11,12',
-'13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,,,,,38',
-'10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36',
-'37,,,,,38,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33',
-'34,35,36,37,,,,,38,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
-'31,32,33,34,35,36,37,,,,,38,10,11,12,13,14,15,16,17,18,19,20,21,22,23',
-'24,25,26,31,32,33,34,35,36,37,,,,,38,10,11,12,13,14,15,16,17,18,19,20',
-'21,22,23,24,25,26,31,32,33,34,35,36,37,,,,,38,10,11,12,13,14,15,16,17',
-'18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,,,,359,38,15,16,17,18',
-'19,20,21,22,23,24,25,26,31,32,33,34,35,36,,,,,,38,15,16,17,18,19,20',
-'21,22,23,24,25,26,31,32,33,34,35,36,,,,,,38,15,16,17,18,19,20,21,22',
-'23,24,25,26,31,32,33,34,35,36,,,,,,38,15,16,17,18,19,20,21,22,23,24',
-'25,26,31,32,33,34,35,36,,,,,,38,15,16,17,18,19,20,21,22,23,24,25,26',
-'31,32,33,34,35,36,,,,,,38' ]
- racc_action_table = arr = ::Array.new(4321, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-clist = [
-'65,65,65,65,65,65,65,210,39,65,65,65,65,65,65,65,65,55,45,65,65,65,65',
-'65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,46,210,65',
-'210,65,316,345,65,65,65,65,65,65,65,65,85,276,57,163,58,135,182,186',
-'59,345,70,184,114,163,85,289,294,316,135,135,182,186,46,136,136,65,65',
-'65,65,65,102,102,102,102,102,102,102,45,276,102,102,102,102,102,102',
-'102,102,70,114,102,102,102,102,102,102,102,102,102,102,102,102,102,102',
-'102,102,102,102,102,102,102,102,102,102,30,280,102,60,102,276,73,102',
-'102,102,102,102,102,102,102,112,112,112,184,112,112,112,289,294,112',
-'112,112,112,112,112,112,112,257,260,330,33,42,48,280,107,102,102,102',
-'102,102,30,257,330,330,42,80,175,107,311,361,137,137,80,260,84,112,87',
-'112,260,175,112,112,112,112,112,112,112,112,187,187,187,48,187,187,187',
-'33,30,187,187,187,187,187,187,187,187,311,361,207,419,139,139,80,331',
-'112,112,112,112,112,211,304,207,133,419,284,380,331,331,89,211,48,284',
-'33,304,187,98,187,100,380,187,187,187,187,187,187,187,187,191,191,191',
-'80,191,191,191,382,411,191,191,191,191,191,191,191,191,144,144,101,382',
-'411,109,284,110,187,187,187,187,187,133,133,133,133,133,133,133,133',
-'133,133,5,111,5,332,332,191,113,191,333,333,191,191,191,191,191,191',
-'191,191,192,192,192,284,192,192,192,300,301,192,192,192,192,192,192',
-'192,192,300,301,115,302,317,410,5,414,191,191,191,191,191,302,317,410',
-'417,414,116,429,119,431,435,66,140,66,417,141,192,429,192,431,435,192',
-'192,192,192,192,192,192,192,296,296,296,5,296,296,296,443,142,296,296',
-'296,296,296,296,296,296,443,49,49,49,334,334,66,49,192,192,192,192,192',
-'74,74,74,335,335,143,74,138,138,138,138,151,69,336,336,296,158,296,337',
-'337,296,296,296,296,296,296,296,296,375,375,375,66,375,375,375,340,340',
-'375,375,375,375,375,375,375,375,338,338,338,338,161,162,69,165,296,296',
-'296,296,296,339,339,339,339,177,188,200,201,203,204,212,213,167,216',
-'217,375,263,375,264,267,375,375,375,375,375,375,375,375,376,376,376',
-'69,376,376,376,270,274,376,376,376,376,376,376,376,376,303,324,325,341',
-'167,342,167,343,375,375,375,375,375,344,351,354,356,362,363,367,369',
-'389,390,400,402,403,407,427,376,,376,,,376,376,376,376,376,376,376,376',
-'377,377,377,167,377,377,377,,,377,377,377,377,377,377,377,377,,,,,,',
-',,376,376,376,376,376,,,,,,,,,,,,,,,,377,,377,,,377,377,377,377,377',
-'377,377,377,415,415,415,,415,415,415,,,415,415,415,415,415,415,415,415',
-',,,,,,,,377,377,377,377,377,,,,,,,,,,,,,,,,415,,415,,,415,415,415,415',
-'415,415,415,415,418,418,418,,418,418,418,,,418,418,418,418,418,418,418',
-'418,,,,,,,,,415,415,415,415,415,,,,,,,,,,,,,,,,418,,418,,,418,418,418',
-'418,418,418,418,418,426,426,426,,426,426,426,,,426,426,426,426,426,426',
-'426,426,,,,,,,,,418,418,418,418,418,,,,,,,,,,,,,,,,426,,426,,,426,426',
-'426,426,426,426,426,426,430,430,430,,430,430,430,,,430,430,430,430,430',
-'430,430,430,,,,,,,,,426,426,426,426,426,,,,,,,,,,,,,,,,430,,430,,,430',
-'430,430,430,430,430,430,430,432,432,432,,432,432,432,,,432,432,432,432',
-'432,432,432,432,,,,,,,,,430,430,430,430,430,,,,,,,,,,,,,,,,432,,432',
-',,432,432,432,432,432,432,432,432,433,433,433,,433,433,433,,,433,433',
-'433,433,433,433,433,433,,,,,,,,,432,432,432,432,432,,,,,,,,,,,,,,,,433',
-',433,,,433,433,433,433,433,433,433,433,436,436,436,,436,436,436,,,436',
-'436,436,436,436,436,436,436,,,,,,,,,433,433,433,433,433,,,,,,,,,,,,',
-',,,436,,436,,,436,436,436,436,436,436,436,436,437,437,437,,437,437,437',
-',,437,437,437,437,437,437,437,437,,,,,,,,,436,436,436,436,436,,,,,,',
-',,,,,,,,,437,,437,,,437,437,437,437,437,437,437,437,444,444,444,,444',
-'444,444,,,444,444,444,444,444,444,444,444,,,,,,,,,437,437,437,437,437',
-',,,,,,,,,,,,,,,444,,444,,,444,444,444,444,444,444,444,444,445,445,445',
-',445,445,445,,,445,445,445,445,445,445,445,445,,,,,,,,,444,444,444,444',
-'444,,,,,,,,,,,,,,,,445,,445,,,445,445,445,445,445,445,445,445,447,447',
-'447,,447,447,447,,,447,447,447,447,447,447,447,447,,,,,,,,,445,445,445',
-'445,445,,,,,,,,,,,,,,,,447,,447,,,447,447,447,447,447,447,447,447,450',
-'450,450,,450,450,450,,,450,450,450,450,450,450,450,450,,,,,,,,,447,447',
-'447,447,447,,,,,,,,,,,,,,,,450,,450,,,450,450,450,450,450,450,450,450',
-'454,454,454,,454,454,454,,,454,454,454,454,454,454,454,454,67,,,,67',
-',,,450,450,450,450,450,,,,,,,122,,,,,,,,,454,,454,,,454,454,454,454',
-'454,454,454,454,,,67,,,,,67,67,67,67,67,67,67,67,122,,,,,122,122,122',
-'122,,454,454,454,454,454,120,,,,120,,,,,,67,67,67,67,67,154,,,,154,',
-',120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120',
-'120,,,,120,,120,,,120,120,120,120,120,120,120,120,154,,154,,,154,,154',
-'154,154,154,154,154,154,154,,,,,,,,,,,120,120,120,120,120,220,,,,220',
-',,,,,154,154,154,154,154,,,,,,,,220,220,220,220,220,220,220,220,220',
-'220,220,220,220,220,220,220,220,220,,,,220,,220,,,220,220,220,220,220',
-'220,220,220,,,,,,,,,224,,,,224,,,,,,,,,,,,,220,220,220,220,220,224,224',
-'224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,,,,224',
-',224,,,224,224,224,224,224,224,224,224,258,,,,258,,,,,,,,,315,,,,315',
-',,,,,,,224,224,224,224,224,,,,,,,,,,,,,,258,,,,,258,258,258,258,258',
-'258,258,258,315,,,,,315,315,315,315,315,315,315,315,347,347,,,347,,',
-',,,,,258,258,258,258,258,384,,,,384,,,,315,315,315,315,315,,,,,,,,,',
-',,347,,347,,,347,,347,347,347,347,347,347,347,347,,,384,,384,,,384,',
-'384,384,384,384,384,384,384,384,393,,,,393,,,,347,347,347,347,347,,',
-'439,439,,,439,,,,,,384,384,384,384,384,,,,,,,,,,,,,,393,,,,,393,393',
-'393,393,393,393,393,393,439,,439,,117,439,117,439,439,439,439,439,439',
-'439,439,,,,,,,,,,,393,393,393,393,393,,,,,,,,,,,439,439,439,439,439',
-'117,,,,,117,117,117,117,117,117,117,117,,,,,,,,,,,,,,,,202,,202,,,,',
-',,,117,117,117,117,117,202,202,202,202,202,202,202,202,202,202,202,202',
-'202,202,202,202,202,202,202,202,202,202,202,202,,,202,,202,,,202,202',
-'202,202,202,202,202,202,305,,305,,,,,,,,,,,306,,306,,,,,,,,,,202,202',
-'202,202,202,,,,,,,,,,,,305,,,,,305,305,305,305,305,305,305,305,306,',
-'379,,379,306,306,306,306,306,306,306,306,,,,,,,,,,,,,305,305,305,305',
-'305,,,,,,,,,306,306,306,306,306,379,,,,,379,379,379,379,379,379,379',
-'379,71,,,,,,,,,,,,,99,,71,,,,,,,,,,379,379,379,379,379,,,,71,71,71,',
-',71,71,,,,,71,71,71,71,71,71,71,71,99,,,,123,99,99,99,99,99,99,99,99',
-',,,,124,,,,,,,,71,71,71,71,71,,,,,,,,,99,99,99,99,99,123,,,,,123,123',
-'123,123,123,123,123,123,124,,,,125,124,124,124,124,124,124,124,124,',
-',,,126,,,,,,,,123,123,123,123,123,,,,,,,,,124,124,124,124,124,125,,',
-',,125,125,125,125,125,125,125,125,126,,,,,126,126,126,126,126,126,126',
-'126,,,157,,,,,,,,,,125,125,125,125,125,157,,,,160,,,,126,126,126,126',
-'126,,,,,,157,157,157,,,157,157,,,,178,157,157,157,157,157,157,157,157',
-'160,160,160,,,,160,,,,185,160,160,160,160,160,160,160,160,,,,,,,157',
-'157,157,157,157,178,,,,196,178,178,178,178,178,178,178,178,,160,160',
-'160,160,160,185,,,,197,185,185,185,185,185,185,185,185,,,,,,,178,178',
-'178,178,178,196,,,,198,196,196,196,196,196,196,196,196,,185,185,185',
-'185,185,197,,,,199,197,197,197,197,197,197,197,197,,,,,,,196,196,196',
-'196,196,198,,,,214,198,198,198,198,198,198,198,198,,197,197,197,197',
-'197,199,,,,,199,199,199,199,199,199,199,199,,,,,,,198,198,198,198,198',
-'214,,,,,214,214,214,214,214,214,214,214,,199,199,199,199,199,,,,,,,215',
-'215,,,,,,,,,,,,214,214,214,214,214,215,215,215,215,215,215,215,215,215',
-'215,215,215,215,215,215,215,215,215,,,,215,,215,,226,215,215,215,215',
-'215,215,215,215,,,,,238,,,,,,,,,,,,,,,,,,,,,215,215,215,215,215,226',
-',,,,226,226,226,226,226,226,226,226,238,,,,239,238,238,238,238,238,238',
-'238,238,,,,,240,,,,,,,,226,226,226,226,226,,,,,,,,,238,238,238,238,238',
-'239,,,,,239,239,239,239,239,239,239,239,240,,,,241,240,240,240,240,240',
-'240,240,240,,,,,242,,,,,,,,239,239,239,239,239,,,,,,,,,240,240,240,240',
-'240,241,,,,,241,241,241,241,241,241,241,241,242,,,,243,242,242,242,242',
-'242,242,242,242,,,,,244,,,,,,,,241,241,241,241,241,,,,,,,,,242,242,242',
-'242,242,243,,,,,243,243,243,243,243,243,243,243,244,,,,245,244,244,244',
-'244,244,244,244,244,,,,,246,,,,,,,,243,243,243,243,243,,,,,,,,,244,244',
-'244,244,244,245,,,,,245,245,245,245,245,245,245,245,246,,,,247,246,246',
-'246,246,246,246,246,246,,,,,248,,,,,,,,245,245,245,245,245,,,,,,,,,246',
-'246,246,246,246,247,,,,,247,247,247,247,247,247,247,247,248,,,,249,248',
-'248,248,248,248,248,248,248,,,,,250,,,,,,,,247,247,247,247,247,,,,,',
-',,,248,248,248,248,248,249,,,,,249,249,249,249,249,249,249,249,250,',
-',,251,250,250,250,250,250,250,250,250,,,,,252,,,,,,,,249,249,249,249',
-'249,,,,,,,,,250,250,250,250,250,251,,,,,251,251,251,251,251,251,251',
-'251,252,,,,253,252,252,252,252,252,252,252,252,,,,,254,,,,,,,,251,251',
-'251,251,251,,,,,,,,,252,252,252,252,252,253,,,,,253,253,253,253,253',
-'253,253,253,254,,,,255,254,254,254,254,254,254,254,254,,,,,256,,,,,',
-',,253,253,253,253,253,,,,,,,,,254,254,254,254,254,255,,,,,255,255,255',
-'255,255,255,255,255,256,,,,262,256,256,256,256,256,256,256,256,,,,,266',
-',,,,,,,255,255,255,255,255,,,,,,,,,256,256,256,256,256,262,,,,,262,262',
-'262,262,262,262,262,262,266,,,,,266,266,266,266,266,266,266,266,269',
-',,,,,,,,,,,262,262,262,262,262,281,,,,,,,,266,266,266,266,266,,,,269',
-'269,269,,,,269,,,,,269,269,269,269,269,269,269,269,,,,281,281,,,,285',
-'281,281,281,281,281,281,281,281,,,,,,365,,,269,269,269,269,269,,,,,',
-',,,,,,,281,281,281,281,281,285,,,,,285,285,285,285,285,285,285,285,365',
-'365,,,,378,365,365,365,365,365,365,365,365,,,,,381,381,,,,,,285,285',
-'285,285,285,,,,,,,,,,365,365,365,365,365,378,,,,,378,378,378,378,378',
-'378,378,378,381,,,,,381,381,381,381,381,381,381,381,383,383,,,,,,,,',
-',,378,378,378,378,378,,,,,,,,,381,381,381,381,381,,,,,,,,,,383,,,,,383',
-'383,383,383,383,383,383,383,,,,,,,,,,,,,388,,,,,,,,,,,,,383,383,383',
-'383,383,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388',
-'388,388,388,,,,388,,388,,391,388,388,388,388,388,388,388,388,,,,,412',
-'412,,,,,,,,,,,,,,,,,,,,388,388,388,388,388,391,,,,,391,391,391,391,391',
-'391,391,391,412,,,,,412,412,412,412,412,412,412,412,413,413,,,,,,,,',
-',,391,391,391,391,391,416,416,,,,,,,412,412,412,412,412,,,,,,,,,,413',
-',,,,413,413,413,413,413,413,413,413,,,,,416,,,,,416,416,416,416,416',
-'416,416,416,428,428,,,,,,,413,413,413,413,413,,,,,,,,,,,,,416,416,416',
-'416,416,,,,,,,,,,428,,,,,428,428,428,428,428,428,428,428,,,,,,,,,,,',
-',,,,,,277,277,,,,,,,428,428,428,428,428,277,277,277,277,277,277,277',
-'277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277',
-'277,72,277,,277,,,,,,,,,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72',
-'72,72,72,72,72,72,72,72,72,,,,277,72,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,',
-',,,,,72,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,,,,1,,,,',
-',,,,,,,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41',
-'41,41,41,41,62,,,,41,,,,,,,,,,,,,62,62,62,62,62,62,62,62,62,62,62,62',
-'62,62,62,62,62,62,62,62,62,62,62,62,78,,,,62,,,,,,,,,,,,,,,,,78,78,78',
-'78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,172,,,,,78,,,,,,,,,,,,',
-',,,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172',
-'172,181,,,,,172,,,,,,,,,,,,,,,,181,181,181,181,181,181,181,181,181,181',
-'181,181,181,181,181,181,181,181,312,312,,,,181,,,,,,,,312,312,312,312',
-'312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312',
-'312,312,312,312,366,312,,312,,,,,,,,,366,366,366,366,366,366,366,366',
-'366,366,366,366,366,366,366,366,366,366,366,366,366,366,366,366,,,,',
-'366,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,0,6,6,6,6,6',
-'6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,,,,,6,7,7,7,7,7,7,7,7,7,7,7,7',
-'7,7,7,7,7,7,7,7,7,7,7,7,,,,,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8',
-'8,8,8,8,8,,,,,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,,,,',
-'9,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275',
-'275,275,275,275,275,275,275,,,,275,275,56,56,56,56,56,56,56,56,56,56',
-'56,56,56,56,56,56,56,56,,,,,,56,77,77,77,77,77,77,77,77,77,77,77,77',
-'77,77,77,77,77,77,,,,,,77,81,81,81,81,81,81,81,81,81,81,81,81,81,81',
-'81,81,81,81,,,,,,81,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82',
-'82,82,,,,,,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83',
-',,,,,83' ]
- racc_action_check = arr = ::Array.new(4321, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-racc_action_pointer = [
- 4005, 3703, nil, nil, nil, 295, 4034, 4063, 4092, 4121,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 126, nil, nil, 161, nil, nil, nil, nil, nil, 8,
- nil, 3744, 160, nil, nil, 9, 34, nil, 159, 354,
- nil, nil, nil, nil, nil, 12, 4174, 55, 57, -20,
- 129, nil, 3785, nil, nil, -3, 353, 1318, nil, 411,
- 59, 2026, 3638, 127, 366, nil, nil, 4198, 3825, nil,
- 179, 4222, 4246, 4270, 104, 52, nil, 171, nil, 157,
- nil, nil, nil, nil, nil, nil, nil, nil, 248, 2039,
- 250, 279, 85, nil, nil, nil, nil, 163, nil, 275,
- 277, 294, 143, 299, 20, 332, 348, 1795, nil, 267,
- 1389, nil, 1333, 2082, 2095, 2138, 2151, nil, nil, nil,
- nil, nil, nil, 216, nil, 15, 24, 123, 350, 156,
- 305, 293, 314, 340, 205, nil, nil, nil, nil, nil,
- nil, 398, nil, nil, 1404, nil, nil, 2205, 377, nil,
- 2224, 410, 448, 51, nil, 440, nil, 469, nil, nil,
- nil, nil, 3864, nil, nil, 175, nil, 468, 2248, nil,
- nil, 3903, 58, nil, 63, 2267, 59, 201, 469, nil,
- nil, 259, 317, nil, nil, nil, 2291, 2310, 2334, 2353,
- 470, 460, 1864, 467, 468, nil, nil, 216, nil, nil,
- -2, 224, 466, 467, 2377, 2441, 393, 394, nil, nil,
- 1475, nil, nil, nil, 1539, nil, 2484, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 2497, 2540,
- 2553, 2596, 2609, 2652, 2665, 2708, 2721, 2764, 2777, 2820,
- 2833, 2876, 2889, 2932, 2945, 2988, 3001, 157, 1595, nil,
- 143, nil, 3044, 396, 437, nil, 3057, 438, nil, 3109,
- 454, nil, nil, nil, 416, 4150, 50, 3601, nil, nil,
- 123, 3126, nil, nil, 237, 3169, nil, nil, nil, 67,
- nil, nil, nil, nil, 68, nil, 375, nil, nil, nil,
- 317, 318, 330, 502, 228, 1918, 1931, nil, nil, nil,
- nil, 175, 3939, nil, nil, 1608, 28, 331, nil, nil,
- nil, nil, nil, nil, 502, 503, nil, nil, nil, nil,
- 117, 180, 248, 253, 336, 348, 358, 363, 388, 401,
- 374, 458, 445, 446, 451, 47, nil, 1664, nil, nil,
- nil, 478, nil, nil, 479, nil, 480, nil, nil, nil,
- nil, 176, 518, 519, nil, 3183, 3976, 483, nil, 484,
- nil, nil, nil, nil, nil, 433, 491, 549, 3226, 1974,
- 233, 3239, 262, 3291, 1681, nil, nil, nil, 3355, 527,
- 528, 3398, nil, 1737, nil, nil, nil, nil, nil, nil,
- 487, nil, 488, 526, nil, nil, nil, 526, nil, nil,
- 332, 263, 3411, 3463, 334, 607, 3480, 343, 665, 218,
- nil, nil, nil, nil, nil, nil, 723, 531, 3532, 346,
- 781, 348, 839, 897, nil, 349, 955, 1013, nil, 1752,
- nil, nil, nil, 375, 1071, 1129, nil, 1187, nil, nil,
- 1245, nil, nil, nil, 1303, nil, nil, nil, nil, nil ]
-
-racc_action_default = [
- -265, -265, -1, -3, -4, -265, -53, -55, -57, -59,
- -64, -65, -66, -67, -68, -69, -70, -71, -72, -73,
- -74, -75, -76, -77, -78, -79, -80, -81, -82, -83,
- -265, -89, -90, -265, -115, -116, -117, -118, -166, -265,
- -2, -62, -265, -51, -60, -265, -120, -121, -265, -136,
- -258, -52, -54, -56, -58, -86, -265, -88, -107, -265,
- -110, 460, -265, -6, -7, -265, -265, -265, -50, -265,
- -119, -265, -265, -265, -135, -138, -139, -265, -265, -91,
- -265, -95, -97, -265, -265, -265, -111, -113, -262, -265,
- -5, -8, -9, -10, -11, -12, -13, -14, -179, -265,
- -265, -83, -265, -20, -21, -23, -24, -265, -26, -265,
- -265, -265, -265, -265, -265, -265, -265, -265, -180, -181,
- -265, -184, -198, -265, -265, -265, -265, -204, -205, -206,
- -207, -208, -209, -210, -212, -216, -219, -222, -227, -230,
- -232, -234, -236, -238, -240, -242, -255, -259, -260, -261,
- -264, -62, -63, -167, -265, -179, -61, -265, -265, -126,
- -265, -205, -265, -265, -134, -141, -143, -147, -148, -122,
- -137, -140, -265, -85, -92, -265, -98, -100, -265, -94,
- -96, -265, -265, -104, -265, -265, -265, -265, -265, -210,
- -257, -265, -265, -19, -22, -25, -265, -265, -265, -265,
- -265, -265, -265, -265, -265, -45, -46, -265, -48, -263,
- -151, -265, -265, -265, -265, -265, -265, -265, -190, -191,
- -265, -199, -200, -201, -265, -202, -265, -244, -245, -246,
- -247, -248, -249, -250, -251, -252, -253, -254, -265, -265,
- -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
- -265, -265, -265, -265, -265, -265, -265, -265, -265, -171,
- -265, -175, -265, -265, -265, -124, -265, -205, -125, -265,
- -265, -131, -132, -133, -265, -265, -152, -265, -145, -146,
- -154, -265, -84, -93, -265, -265, -102, -87, -103, -265,
- -106, -112, -114, -108, -265, -15, -265, -17, -18, -256,
- -265, -265, -265, -265, -265, -265, -265, -44, -49, -47,
- -150, -152, -265, -182, -183, -265, -265, -265, -187, -194,
- -196, -197, -188, -189, -265, -265, -243, -213, -214, -215,
- -217, -218, -220, -221, -223, -224, -225, -226, -228, -229,
- -231, -233, -235, -237, -239, -265, -168, -265, -170, -174,
- -176, -265, -178, -123, -265, -130, -265, -128, -149, -142,
- -144, -153, -265, -265, -165, -265, -265, -265, -159, -205,
- -99, -101, -105, -109, -16, -265, -265, -265, -265, -265,
- -265, -265, -265, -265, -265, -211, -185, -186, -265, -265,
- -203, -265, -169, -265, -173, -177, -129, -127, -155, -164,
- -265, -157, -205, -265, -163, -158, -161, -27, -29, -30,
- -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
- -195, -241, -172, -156, -160, -162, -265, -265, -265, -265,
- -265, -265, -265, -265, -39, -265, -265, -265, -43, -265,
- -192, -28, -31, -265, -265, -265, -35, -265, -37, -38,
- -265, -41, -42, -193, -265, -33, -34, -36, -40, -32 ]
-
-racc_goto_table = [
- 47, 152, 57, 162, 75, 60, 70, 319, 153, 5,
- 5, 257, 158, 176, 174, 51, 52, 53, 54, 76,
- 393, 291, 279, 361, 74, 55, 82, 1, 58, 170,
- 62, 104, 179, 180, 190, 223, 63, 101, 102, 41,
- 47, 76, 188, 47, 171, 64, 157, 82, 82, 78,
- 156, 82, 82, 82, 213, 85, 175, 90, 361, 163,
- 98, 47, 2, 40, 47, 310, 91, 168, 194, 105,
- 172, 210, 330, 331, 101, 47, 181, 332, 333, 360,
- 182, 167, 338, 339, 200, 186, 204, 350, 317, 340,
- 82, 334, 335, 336, 337, 153, 341, 98, 264, 342,
- 151, 270, 343, 151, 344, 226, 105, 98, 174, 203,
- nil, nil, 393, 190, 177, 212, nil, 174, nil, 81,
- 190, 286, 276, nil, nil, nil, 291, 171, 292, nil,
- 76, 291, nil, nil, nil, 269, nil, 299, nil, nil,
- 81, 81, 82, nil, 81, 81, 81, nil, 327, 328,
- 329, 82, nil, nil, 324, nil, 320, nil, 325, 200,
- nil, nil, 47, 200, 200, 311, 210, 326, nil, nil,
- 201, 210, nil, nil, nil, 210, nil, nil, nil, nil,
- 420, nil, 98, 81, nil, 82, 98, 98, nil, nil,
- 82, nil, 348, nil, 82, nil, nil, 190, nil, 153,
- nil, 278, nil, nil, nil, 351, 306, 354, nil, nil,
- 356, 322, 323, nil, nil, 212, nil, 370, nil, 212,
- 190, nil, 367, nil, nil, 385, nil, nil, 371, nil,
- nil, nil, 276, nil, nil, 81, nil, 70, nil, 171,
- nil, 419, nil, nil, 81, 295, nil, nil, nil, 297,
- 298, nil, nil, nil, nil, nil, nil, nil, 352, nil,
- nil, nil, nil, nil, nil, nil, nil, 311, 200, 358,
- nil, 47, 47, nil, nil, nil, nil, nil, 81, 47,
- nil, 394, nil, 81, 167, nil, 167, 81, 153, nil,
- nil, 98, nil, nil, nil, nil, nil, 403, nil, nil,
- nil, nil, nil, nil, 207, nil, 400, 211, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 177, nil,
- nil, 167, nil, nil, nil, 153, 421, 422, nil, 320,
- nil, nil, nil, nil, 153, nil, nil, nil, nil, 210,
- nil, nil, nil, nil, nil, nil, nil, 200, 200, 200,
- nil, nil, nil, nil, 374, nil, nil, nil, 82, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 98, 98, 98, 394, nil, 167, nil, nil, nil, nil,
- 153, nil, nil, nil, 300, 301, 302, 200, nil, 304,
- 200, nil, nil, nil, nil, nil, nil, nil, 200, nil,
- nil, 316, 200, nil, 200, 200, nil, 211, 200, 200,
- 98, 211, nil, 98, nil, nil, 200, 200, nil, 200,
- nil, 98, 200, nil, nil, 98, 200, 98, 98, nil,
- nil, 98, 98, 407, 408, 409, nil, nil, 189, 98,
- 98, nil, 98, 345, nil, 98, nil, nil, nil, 98,
- nil, 81, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 221, 222, 189, 225, nil, nil, nil, nil,
- nil, nil, nil, 434, nil, nil, 438, nil, nil, nil,
- nil, nil, nil, nil, 441, nil, nil, nil, 446, nil,
- 448, 449, 380, 382, 451, 452, nil, nil, nil, nil,
- nil, nil, 455, 456, nil, 457, nil, nil, 458, nil,
- nil, nil, 459, nil, nil, nil, nil, 189, nil, nil,
- nil, nil, nil, nil, 189, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 410, 411, nil, 414, nil,
- 417, nil, nil, nil, nil, nil, nil, 189, 189, 189,
- 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
- 189, 189, 189, 189, 189, nil, nil, nil, nil, 429,
- 431, 189, nil, 435, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 443, nil, nil, nil, nil,
- nil, nil, nil, nil, 189, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 189, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 189 ]
-
-racc_goto_check = [
- 15, 27, 17, 43, 39, 17, 40, 59, 42, 5,
- 5, 50, 42, 35, 32, 5, 5, 5, 5, 24,
- 51, 37, 47, 49, 41, 15, 24, 1, 15, 39,
- 7, 19, 33, 33, 73, 62, 8, 17, 18, 6,
- 15, 24, 16, 15, 24, 4, 41, 24, 24, 31,
- 26, 24, 24, 24, 48, 36, 34, 8, 49, 44,
- 15, 15, 2, 2, 15, 47, 4, 15, 19, 4,
- 31, 33, 63, 63, 17, 15, 31, 64, 64, 46,
- 36, 5, 66, 66, 17, 36, 17, 53, 58, 67,
- 24, 65, 65, 65, 65, 42, 68, 15, 42, 69,
- 6, 42, 70, 6, 71, 74, 4, 15, 32, 15,
- nil, nil, 51, 73, 6, 8, nil, 32, nil, 23,
- 73, 16, 39, nil, nil, nil, 37, 24, 16, nil,
- 24, 37, nil, nil, nil, 41, nil, 42, nil, nil,
- 23, 23, 24, nil, 23, 23, 23, nil, 62, 62,
- 62, 24, nil, nil, 48, nil, 42, nil, 48, 17,
- nil, nil, 15, 17, 17, 39, 33, 42, nil, nil,
- 9, 33, nil, nil, nil, 33, nil, nil, nil, nil,
- 59, nil, 15, 23, nil, 24, 15, 15, nil, nil,
- 24, nil, 27, nil, 24, nil, nil, 73, nil, 42,
- nil, 6, nil, nil, nil, 16, 4, 42, nil, nil,
- 42, 15, 15, nil, nil, 8, nil, 35, nil, 8,
- 73, nil, 42, nil, nil, 62, nil, nil, 16, nil,
- nil, nil, 39, nil, nil, 23, nil, 40, nil, 24,
- nil, 50, nil, nil, 23, 9, nil, nil, nil, 9,
- 9, nil, nil, nil, nil, nil, nil, nil, 15, nil,
- nil, nil, nil, nil, nil, nil, nil, 39, 17, 15,
- nil, 15, 15, nil, nil, nil, nil, nil, 23, 15,
- nil, 27, nil, 23, 5, nil, 5, 23, 42, nil,
- nil, 15, nil, nil, nil, nil, nil, 43, nil, nil,
- nil, nil, nil, nil, 20, nil, 42, 20, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 6, nil,
- nil, 5, nil, nil, nil, 42, 73, 27, nil, 42,
- nil, nil, nil, nil, 42, nil, nil, nil, nil, 33,
- nil, nil, nil, nil, nil, nil, nil, 17, 17, 17,
- nil, nil, nil, nil, 9, nil, nil, nil, 24, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 15, 15, 15, 27, nil, 5, nil, nil, nil, nil,
- 42, nil, nil, nil, 20, 20, 20, 17, nil, 20,
- 17, nil, nil, nil, nil, nil, nil, nil, 17, nil,
- nil, 20, 17, nil, 17, 17, nil, 20, 17, 17,
- 15, 20, nil, 15, nil, nil, 17, 17, nil, 17,
- nil, 15, 17, nil, nil, 15, 17, 15, 15, nil,
- nil, 15, 15, 9, 9, 9, nil, nil, 60, 15,
- 15, nil, 15, 20, nil, 15, nil, nil, nil, 15,
- nil, 23, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 60, 60, 60, 60, nil, nil, nil, nil,
- nil, nil, nil, 9, nil, nil, 9, nil, nil, nil,
- nil, nil, nil, nil, 9, nil, nil, nil, 9, nil,
- 9, 9, 20, 20, 9, 9, nil, nil, nil, nil,
- nil, nil, 9, 9, nil, 9, nil, nil, 9, nil,
- nil, nil, 9, nil, nil, nil, nil, 60, nil, nil,
- nil, nil, nil, nil, 60, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 20, 20, nil, 20, nil,
- 20, nil, nil, nil, nil, nil, nil, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, nil, nil, nil, nil, 20,
- 20, 60, nil, 20, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 20, nil, nil, nil, nil,
- nil, nil, nil, nil, 60, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 60, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 60 ]
-
-racc_goto_pointer = [
- nil, 27, 62, nil, 4, 9, 34, -11, -5, 58,
- nil, nil, nil, nil, nil, -5, -57, -28, -27, -34,
- 187, nil, nil, 63, -30, nil, -19, -66, nil, nil,
- nil, -7, -64, -49, -24, -67, -4, -163, nil, -45,
- -39, -25, -59, -69, -13, nil, -196, -145, -66, -253,
- -143, -327, nil, -173, nil, nil, nil, nil, -127, -208,
- 339, nil, -90, -169, -166, -154, -167, -162, -156, -154,
- -152, -151, nil, -65, -28 ]
-
-racc_goto_default = [
- nil, nil, nil, 3, 4, 66, 73, nil, 93, 106,
- 92, 94, 95, 96, 97, 155, nil, 29, nil, nil,
- 107, 42, 6, 7, 8, 9, 44, 259, 27, 28,
- 30, nil, 79, 80, nil, nil, nil, 86, 87, 45,
- 46, nil, 146, 363, nil, 165, 166, 362, 321, 280,
- nil, 258, 260, 261, 121, 118, 119, 122, nil, nil,
- 133, 125, 134, 135, 136, 137, 138, 139, 140, 141,
- 142, 143, 144, 145, nil ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 92, :_reduce_1,
- 2, 92, :_reduce_2,
- 1, 93, :_reduce_3,
- 1, 93, :_reduce_4,
- 4, 94, :_reduce_5,
- 3, 94, :_reduce_6,
- 1, 98, :_reduce_7,
- 2, 98, :_reduce_8,
- 1, 100, :_reduce_9,
- 1, 100, :_reduce_10,
- 1, 100, :_reduce_11,
- 1, 100, :_reduce_12,
- 1, 100, :_reduce_13,
- 1, 100, :_reduce_14,
- 3, 101, :_reduce_15,
- 4, 101, :_reduce_16,
- 3, 101, :_reduce_17,
- 3, 101, :_reduce_18,
- 3, 99, :_reduce_19,
- 2, 99, :_reduce_20,
- 1, 109, :_reduce_21,
- 2, 109, :_reduce_22,
- 1, 110, :_reduce_23,
- 1, 110, :_reduce_24,
- 2, 102, :_reduce_25,
- 1, 102, :_reduce_26,
- 5, 103, :_reduce_27,
- 7, 103, :_reduce_28,
- 5, 103, :_reduce_29,
- 5, 104, :_reduce_30,
- 7, 104, :_reduce_31,
- 9, 104, :_reduce_32,
- 8, 104, :_reduce_33,
- 8, 104, :_reduce_34,
- 7, 104, :_reduce_35,
- 8, 104, :_reduce_36,
- 7, 104, :_reduce_37,
- 7, 104, :_reduce_38,
- 6, 104, :_reduce_39,
- 8, 104, :_reduce_40,
- 7, 104, :_reduce_41,
- 7, 104, :_reduce_42,
- 6, 104, :_reduce_43,
- 3, 105, :_reduce_44,
- 2, 105, :_reduce_45,
- 2, 105, :_reduce_46,
- 3, 105, :_reduce_47,
- 2, 105, :_reduce_48,
- 3, 105, :_reduce_49,
- 3, 95, :_reduce_50,
- 2, 95, :_reduce_51,
- 2, 96, :_reduce_52,
- 1, 96, :_reduce_53,
- 2, 96, :_reduce_54,
- 1, 96, :_reduce_55,
- 2, 96, :_reduce_56,
- 1, 96, :_reduce_57,
- 2, 96, :_reduce_58,
- 1, 96, :_reduce_59,
- 1, 112, :_reduce_60,
- 3, 112, :_reduce_61,
- 1, 117, :_reduce_62,
- 3, 117, :_reduce_63,
- 1, 113, :_reduce_64,
- 1, 113, :_reduce_65,
- 1, 113, :_reduce_66,
- 1, 113, :_reduce_67,
- 1, 113, :_reduce_68,
- 1, 114, :_reduce_69,
- 1, 114, :_reduce_70,
- 1, 114, :_reduce_71,
- 1, 114, :_reduce_72,
- 1, 114, :_reduce_73,
- 1, 114, :_reduce_74,
- 1, 114, :_reduce_75,
- 1, 114, :_reduce_76,
- 1, 114, :_reduce_77,
- 1, 114, :_reduce_78,
- 1, 114, :_reduce_79,
- 1, 114, :_reduce_80,
- 1, 114, :_reduce_81,
- 1, 114, :_reduce_82,
- 1, 114, :_reduce_83,
- 5, 119, :_reduce_84,
- 4, 119, :_reduce_85,
- 2, 119, :_reduce_86,
- 5, 119, :_reduce_87,
- 2, 119, :_reduce_88,
- 1, 121, :_reduce_89,
- 1, 121, :_reduce_90,
- 1, 122, :_reduce_91,
- 2, 122, :_reduce_92,
- 3, 123, :_reduce_93,
- 2, 124, :_reduce_94,
- 1, 124, :_reduce_95,
- 2, 124, :_reduce_96,
- 1, 124, :_reduce_97,
- 1, 125, :_reduce_98,
- 3, 125, :_reduce_99,
- 1, 126, :_reduce_100,
- 3, 126, :_reduce_101,
- 2, 126, :_reduce_102,
- 5, 120, :_reduce_103,
- 4, 120, :_reduce_104,
- 6, 120, :_reduce_105,
- 5, 120, :_reduce_106,
- 2, 120, :_reduce_107,
- 5, 120, :_reduce_108,
- 6, 120, :_reduce_109,
- 2, 120, :_reduce_110,
- 1, 127, :_reduce_111,
- 3, 127, :_reduce_112,
- 1, 128, :_reduce_113,
- 3, 128, :_reduce_114,
- 1, 115, :_reduce_115,
- 1, 115, :_reduce_116,
- 1, 115, :_reduce_117,
- 1, 116, :_reduce_118,
- 2, 97, :_reduce_119,
- 1, 97, :_reduce_120,
- 1, 131, :_reduce_121,
- 3, 131, :_reduce_122,
- 5, 131, :_reduce_123,
- 4, 131, :_reduce_124,
- 4, 131, :_reduce_125,
- 3, 131, :_reduce_126,
- 6, 131, :_reduce_127,
- 5, 131, :_reduce_128,
- 6, 131, :_reduce_129,
- 5, 131, :_reduce_130,
- 4, 131, :_reduce_131,
- 4, 131, :_reduce_132,
- 4, 131, :_reduce_133,
- 3, 131, :_reduce_134,
- 2, 130, :_reduce_135,
- 1, 130, :_reduce_136,
- 3, 130, :_reduce_137,
- 2, 130, :_reduce_138,
- 1, 132, :_reduce_139,
- 2, 132, :_reduce_140,
- 1, 134, :_reduce_141,
- 3, 134, :_reduce_142,
- 1, 136, :_reduce_143,
- 3, 136, :_reduce_144,
- 2, 137, :_reduce_145,
- 2, 137, :_reduce_146,
- 1, 137, :_reduce_147,
- 1, 135, :_reduce_148,
- 3, 135, :_reduce_149,
- 2, 139, :_reduce_150,
- 1, 139, :_reduce_151,
- 1, 138, :_reduce_152,
- 2, 138, :_reduce_153,
- 1, 138, :_reduce_154,
- 3, 140, :_reduce_155,
- 4, 140, :_reduce_156,
- 3, 140, :_reduce_157,
- 3, 140, :_reduce_158,
- 2, 140, :_reduce_159,
- 4, 140, :_reduce_160,
- 3, 140, :_reduce_161,
- 4, 140, :_reduce_162,
- 3, 140, :_reduce_163,
- 3, 140, :_reduce_164,
- 2, 140, :_reduce_165,
- 1, 108, :_reduce_166,
- 1, 118, :_reduce_167,
- 3, 118, :_reduce_168,
- 4, 118, :_reduce_169,
- 2, 141, :_reduce_170,
- 1, 141, :_reduce_171,
- 4, 141, :_reduce_172,
- 3, 141, :_reduce_173,
- 2, 142, :_reduce_174,
- 1, 143, :_reduce_175,
- 2, 143, :_reduce_176,
- 3, 144, :_reduce_177,
- 2, 144, :_reduce_178,
- 1, 145, :_reduce_179,
- 1, 145, :_reduce_180,
- 1, 145, :_reduce_181,
- 3, 145, :_reduce_182,
- 3, 145, :_reduce_183,
- 1, 148, :_reduce_184,
- 4, 148, :_reduce_185,
- 4, 148, :_reduce_186,
- 3, 148, :_reduce_187,
- 3, 148, :_reduce_188,
- 3, 148, :_reduce_189,
- 2, 148, :_reduce_190,
- 2, 148, :_reduce_191,
- 6, 148, :_reduce_192,
- 7, 148, :_reduce_193,
- 1, 149, :_reduce_194,
- 3, 149, :_reduce_195,
- 1, 150, :_reduce_196,
- 1, 150, :_reduce_197,
- 1, 151, :_reduce_198,
- 2, 151, :_reduce_199,
- 2, 151, :_reduce_200,
- 2, 151, :_reduce_201,
- 2, 151, :_reduce_202,
- 4, 151, :_reduce_203,
- 1, 152, :_reduce_204,
- 1, 152, :_reduce_205,
- 1, 152, :_reduce_206,
- 1, 152, :_reduce_207,
- 1, 152, :_reduce_208,
- 1, 152, :_reduce_209,
- 1, 153, :_reduce_210,
- 4, 153, :_reduce_211,
- 1, 154, :_reduce_212,
- 3, 154, :_reduce_213,
- 3, 154, :_reduce_214,
- 3, 154, :_reduce_215,
- 1, 155, :_reduce_216,
- 3, 155, :_reduce_217,
- 3, 155, :_reduce_218,
- 1, 156, :_reduce_219,
- 3, 156, :_reduce_220,
- 3, 156, :_reduce_221,
- 1, 157, :_reduce_222,
- 3, 157, :_reduce_223,
- 3, 157, :_reduce_224,
- 3, 157, :_reduce_225,
- 3, 157, :_reduce_226,
- 1, 158, :_reduce_227,
- 3, 158, :_reduce_228,
- 3, 158, :_reduce_229,
- 1, 159, :_reduce_230,
- 3, 159, :_reduce_231,
- 1, 160, :_reduce_232,
- 3, 160, :_reduce_233,
- 1, 161, :_reduce_234,
- 3, 161, :_reduce_235,
- 1, 162, :_reduce_236,
- 3, 162, :_reduce_237,
- 1, 163, :_reduce_238,
- 3, 163, :_reduce_239,
- 1, 164, :_reduce_240,
- 5, 164, :_reduce_241,
- 1, 133, :_reduce_242,
- 3, 133, :_reduce_243,
- 1, 165, :_reduce_244,
- 1, 165, :_reduce_245,
- 1, 165, :_reduce_246,
- 1, 165, :_reduce_247,
- 1, 165, :_reduce_248,
- 1, 165, :_reduce_249,
- 1, 165, :_reduce_250,
- 1, 165, :_reduce_251,
- 1, 165, :_reduce_252,
- 1, 165, :_reduce_253,
- 1, 165, :_reduce_254,
- 1, 111, :_reduce_255,
- 3, 111, :_reduce_256,
- 1, 107, :_reduce_257,
- 1, 106, :_reduce_258,
- 1, 146, :_reduce_259,
- 1, 146, :_reduce_260,
- 1, 146, :_reduce_261,
- 1, 129, :_reduce_262,
- 2, 147, :_reduce_263,
- 1, 147, :_reduce_264 ]
-
-racc_reduce_n = 265
-
-racc_shift_n = 460
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :COLON => 2,
- :CASE => 3,
- :DEFAULT => 4,
- :LBRACE => 5,
- :RBRACE => 6,
- :SEMICOLON => 7,
- :IF => 8,
- :LPAREN => 9,
- :RPAREN => 10,
- :ELSE => 11,
- :SWITCH => 12,
- :WHILE => 13,
- :DO => 14,
- :FOR => 15,
- :GOTO => 16,
- :CONTINUE => 17,
- :BREAK => 18,
- :RETURN => 19,
- :COMMA => 20,
- :EQ => 21,
- :TYPEDEF => 22,
- :EXTERN => 23,
- :STATIC => 24,
- :AUTO => 25,
- :REGISTER => 26,
- :VOID => 27,
- :CHAR => 28,
- :SHORT => 29,
- :INT => 30,
- :LONG => 31,
- :FLOAT => 32,
- :DOUBLE => 33,
- :SIGNED => 34,
- :UNSIGNED => 35,
- :BOOL => 36,
- :COMPLEX => 37,
- :IMAGINARY => 38,
- :STRUCT => 39,
- :UNION => 40,
- :ENUM => 41,
- :CONST => 42,
- :RESTRICT => 43,
- :VOLATILE => 44,
- :INLINE => 45,
- :LBRACKET => 46,
- :RBRACKET => 47,
- :MUL => 48,
- :ELLIPSIS => 49,
- :TYPENAME => 50,
- :DOT => 51,
- :ARROW => 52,
- :INC => 53,
- :DEC => 54,
- :SIZEOF => 55,
- :AND => 56,
- :ADD => 57,
- :SUB => 58,
- :NOT => 59,
- :BANG => 60,
- :DIV => 61,
- :MOD => 62,
- :LSHIFT => 63,
- :RSHIFT => 64,
- :LT => 65,
- :GT => 66,
- :LEQ => 67,
- :GEQ => 68,
- :EQEQ => 69,
- :NEQ => 70,
- :XOR => 71,
- :OR => 72,
- :ANDAND => 73,
- :OROR => 74,
- :QUESTION => 75,
- :MULEQ => 76,
- :DIVEQ => 77,
- :MODEQ => 78,
- :ADDEQ => 79,
- :SUBEQ => 80,
- :LSHIFTEQ => 81,
- :RSHIFTEQ => 82,
- :ANDEQ => 83,
- :XOREQ => 84,
- :OREQ => 85,
- :ID => 86,
- :ICON => 87,
- :FCON => 88,
- :CCON => 89,
- :SCON => 90 }
-
-racc_nt_base = 91
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "COLON",
- "CASE",
- "DEFAULT",
- "LBRACE",
- "RBRACE",
- "SEMICOLON",
- "IF",
- "LPAREN",
- "RPAREN",
- "ELSE",
- "SWITCH",
- "WHILE",
- "DO",
- "FOR",
- "GOTO",
- "CONTINUE",
- "BREAK",
- "RETURN",
- "COMMA",
- "EQ",
- "TYPEDEF",
- "EXTERN",
- "STATIC",
- "AUTO",
- "REGISTER",
- "VOID",
- "CHAR",
- "SHORT",
- "INT",
- "LONG",
- "FLOAT",
- "DOUBLE",
- "SIGNED",
- "UNSIGNED",
- "BOOL",
- "COMPLEX",
- "IMAGINARY",
- "STRUCT",
- "UNION",
- "ENUM",
- "CONST",
- "RESTRICT",
- "VOLATILE",
- "INLINE",
- "LBRACKET",
- "RBRACKET",
- "MUL",
- "ELLIPSIS",
- "TYPENAME",
- "DOT",
- "ARROW",
- "INC",
- "DEC",
- "SIZEOF",
- "AND",
- "ADD",
- "SUB",
- "NOT",
- "BANG",
- "DIV",
- "MOD",
- "LSHIFT",
- "RSHIFT",
- "LT",
- "GT",
- "LEQ",
- "GEQ",
- "EQEQ",
- "NEQ",
- "XOR",
- "OR",
- "ANDAND",
- "OROR",
- "QUESTION",
- "MULEQ",
- "DIVEQ",
- "MODEQ",
- "ADDEQ",
- "SUBEQ",
- "LSHIFTEQ",
- "RSHIFTEQ",
- "ANDEQ",
- "XOREQ",
- "OREQ",
- "ID",
- "ICON",
- "FCON",
- "CCON",
- "SCON",
- "$start",
- "translation_unit",
- "external_declaration",
- "function_definition",
- "declaration",
- "declaration_specifiers",
- "declarator",
- "declaration_list",
- "compound_statement",
- "statement",
- "labeled_statement",
- "expression_statement",
- "selection_statement",
- "iteration_statement",
- "jump_statement",
- "identifier",
- "constant_expression",
- "typedef_name",
- "block_item_list",
- "block_item",
- "expression",
- "init_declarator_list",
- "storage_class_specifier",
- "type_specifier",
- "type_qualifier",
- "function_specifier",
- "init_declarator",
- "initializer",
- "struct_or_union_specifier",
- "enum_specifier",
- "struct_or_union",
- "struct_declaration_list",
- "struct_declaration",
- "specifier_qualifier_list",
- "struct_declarator_list",
- "struct_declarator",
- "enumerator_list",
- "enumerator",
- "enumeration_constant",
- "pointer",
- "direct_declarator",
- "type_qualifier_list",
- "assignment_expression",
- "parameter_type_list",
- "identifier_list",
- "parameter_list",
- "parameter_declaration",
- "abstract_declarator",
- "type_name",
- "direct_abstract_declarator",
- "initializer_list",
- "designation",
- "designator_list",
- "designator",
- "primary_expression",
- "constant",
- "string_literal",
- "postfix_expression",
- "argument_expression_list",
- "argument_expression",
- "unary_expression",
- "unary_operator",
- "cast_expression",
- "multiplicative_expression",
- "additive_expression",
- "shift_expression",
- "relational_expression",
- "equality_expression",
- "and_expression",
- "exclusive_or_expression",
- "inclusive_or_expression",
- "logical_and_expression",
- "logical_or_expression",
- "conditional_expression",
- "assignment_operator" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'cast.y', 32)
- def _reduce_1(val, _values, result)
- result = TranslationUnit.new_at(val[0].pos, NodeChain[val[0]])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 33)
- def _reduce_2(val, _values, result)
- result = val[0]; result.entities << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 37)
- def _reduce_3(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 38)
- def _reduce_4(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 42)
- def _reduce_5(val, _values, result)
- result = make_function_def(val[0][0], val[0][1], val[1], val[2], val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 43)
- def _reduce_6(val, _values, result)
- result = make_function_def(val[0][0], val[0][1], val[1], nil , val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 47)
- def _reduce_7(val, _values, result)
- result = [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 48)
- def _reduce_8(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 54)
- def _reduce_9(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 55)
- def _reduce_10(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 56)
- def _reduce_11(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 57)
- def _reduce_12(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 58)
- def _reduce_13(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 59)
- def _reduce_14(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 63)
- def _reduce_15(val, _values, result)
- val[2].labels.unshift(PlainLabel.new_at(val[0].pos, val[0].val)); result = val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 64)
- def _reduce_16(val, _values, result)
- val[3].labels.unshift(Case .new_at(val[0].pos, val[1] )); result = val[3]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 65)
- def _reduce_17(val, _values, result)
- val[2].labels.unshift(Default .new_at(val[0].pos )); result = val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 67)
- def _reduce_18(val, _values, result)
- val[2].labels.unshift(PlainLabel.new_at(val[0].pos, val[0].name)); result = val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 71)
- def _reduce_19(val, _values, result)
- result = Block.new_at(val[0].pos, val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 72)
- def _reduce_20(val, _values, result)
- result = Block.new_at(val[0].pos )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 76)
- def _reduce_21(val, _values, result)
- result = NodeChain[val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 77)
- def _reduce_22(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 81)
- def _reduce_23(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 82)
- def _reduce_24(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 86)
- def _reduce_25(val, _values, result)
- result = ExpressionStatement.new_at(val[0].pos, val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 87)
- def _reduce_26(val, _values, result)
- result = ExpressionStatement.new_at(val[0].pos )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 91)
- def _reduce_27(val, _values, result)
- result = If .new_at(val[0].pos, val[2], val[4] )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 92)
- def _reduce_28(val, _values, result)
- result = If .new_at(val[0].pos, val[2], val[4], val[6])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 93)
- def _reduce_29(val, _values, result)
- result = Switch.new_at(val[0].pos, val[2], val[4] )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 97)
- def _reduce_30(val, _values, result)
- result = While.new_at(val[0].pos, val[2], val[4] )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 98)
- def _reduce_31(val, _values, result)
- result = While.new_at(val[0].pos, val[4], val[1], :do => true )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 99)
- def _reduce_32(val, _values, result)
- result = For.new_at(val[0].pos, val[2], val[4], val[6], val[8])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 100)
- def _reduce_33(val, _values, result)
- result = For.new_at(val[0].pos, val[2], val[4], nil , val[7])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 101)
- def _reduce_34(val, _values, result)
- result = For.new_at(val[0].pos, val[2], nil , val[5], val[7])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 102)
- def _reduce_35(val, _values, result)
- result = For.new_at(val[0].pos, val[2], nil , nil , val[6])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 103)
- def _reduce_36(val, _values, result)
- result = For.new_at(val[0].pos, nil , val[3], val[5], val[7])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 104)
- def _reduce_37(val, _values, result)
- result = For.new_at(val[0].pos, nil , val[3], nil , val[6])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 105)
- def _reduce_38(val, _values, result)
- result = For.new_at(val[0].pos, nil , nil , val[4], val[6])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 106)
- def _reduce_39(val, _values, result)
- result = For.new_at(val[0].pos, nil , nil , nil , val[5])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 107)
- def _reduce_40(val, _values, result)
- result = For.new_at(val[0].pos, val[2], val[3], val[5], val[7])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 108)
- def _reduce_41(val, _values, result)
- result = For.new_at(val[0].pos, val[2], val[3], nil , val[6])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 109)
- def _reduce_42(val, _values, result)
- result = For.new_at(val[0].pos, val[2], nil , val[4], val[6])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 110)
- def _reduce_43(val, _values, result)
- result = For.new_at(val[0].pos, val[2], nil , nil , val[5])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 114)
- def _reduce_44(val, _values, result)
- result = Goto .new_at(val[0].pos, val[1].val)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 115)
- def _reduce_45(val, _values, result)
- result = Continue.new_at(val[0].pos )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 116)
- def _reduce_46(val, _values, result)
- result = Break .new_at(val[0].pos )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 117)
- def _reduce_47(val, _values, result)
- result = Return .new_at(val[0].pos, val[1] )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 118)
- def _reduce_48(val, _values, result)
- result = Return .new_at(val[0].pos )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 120)
- def _reduce_49(val, _values, result)
- result = Goto .new_at(val[0].pos, val[1].name)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 126)
- def _reduce_50(val, _values, result)
- result = make_declaration(val[0][0], val[0][1], val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 127)
- def _reduce_51(val, _values, result)
- result = make_declaration(val[0][0], val[0][1], NodeArray[])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 131)
- def _reduce_52(val, _values, result)
- val[1][1] << val[0][1]; result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 132)
- def _reduce_53(val, _values, result)
- result = [val[0][0], [val[0][1]]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 133)
- def _reduce_54(val, _values, result)
- val[1][1] << val[0][1]; result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 134)
- def _reduce_55(val, _values, result)
- result = [val[0][0], [val[0][1]]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 135)
- def _reduce_56(val, _values, result)
- val[1][1] << val[0][1]; result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 136)
- def _reduce_57(val, _values, result)
- result = [val[0][0], [val[0][1]]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 137)
- def _reduce_58(val, _values, result)
- val[1][1] << val[0][1]; result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 138)
- def _reduce_59(val, _values, result)
- result = [val[0][0], [val[0][1]]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 142)
- def _reduce_60(val, _values, result)
- result = NodeArray[val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 143)
- def _reduce_61(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 147)
- def _reduce_62(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 148)
- def _reduce_63(val, _values, result)
- val[0].init = val[2]; result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 152)
- def _reduce_64(val, _values, result)
- result = [val[0].pos, :typedef ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 153)
- def _reduce_65(val, _values, result)
- result = [val[0].pos, :extern ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 154)
- def _reduce_66(val, _values, result)
- result = [val[0].pos, :static ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 155)
- def _reduce_67(val, _values, result)
- result = [val[0].pos, :auto ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 156)
- def _reduce_68(val, _values, result)
- result = [val[0].pos, :register]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 160)
- def _reduce_69(val, _values, result)
- result = [val[0].pos, :void ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 161)
- def _reduce_70(val, _values, result)
- result = [val[0].pos, :char ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 162)
- def _reduce_71(val, _values, result)
- result = [val[0].pos, :short ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 163)
- def _reduce_72(val, _values, result)
- result = [val[0].pos, :int ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 164)
- def _reduce_73(val, _values, result)
- result = [val[0].pos, :long ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 165)
- def _reduce_74(val, _values, result)
- result = [val[0].pos, :float ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 166)
- def _reduce_75(val, _values, result)
- result = [val[0].pos, :double ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 167)
- def _reduce_76(val, _values, result)
- result = [val[0].pos, :signed ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 168)
- def _reduce_77(val, _values, result)
- result = [val[0].pos, :unsigned ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 169)
- def _reduce_78(val, _values, result)
- result = [val[0].pos, :_Bool ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 170)
- def _reduce_79(val, _values, result)
- result = [val[0].pos, :_Complex ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 171)
- def _reduce_80(val, _values, result)
- result = [val[0].pos, :_Imaginary]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 172)
- def _reduce_81(val, _values, result)
- result = [val[0].pos, val[0] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 173)
- def _reduce_82(val, _values, result)
- result = [val[0].pos, val[0] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 174)
- def _reduce_83(val, _values, result)
- result = [val[0].pos, val[0] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 178)
- def _reduce_84(val, _values, result)
- result = val[0][1].new_at(val[0][0], val[1].val, val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 179)
- def _reduce_85(val, _values, result)
- result = val[0][1].new_at(val[0][0], nil , val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 180)
- def _reduce_86(val, _values, result)
- result = val[0][1].new_at(val[0][0], val[1].val, nil )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 182)
- def _reduce_87(val, _values, result)
- result = val[0][1].new_at(val[0][0], val[1].name, val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 183)
- def _reduce_88(val, _values, result)
- result = val[0][1].new_at(val[0][0], val[1].name, nil )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 187)
- def _reduce_89(val, _values, result)
- result = [val[0].pos, Struct]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 188)
- def _reduce_90(val, _values, result)
- result = [val[0].pos, Union ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 192)
- def _reduce_91(val, _values, result)
- result = NodeArray[val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 193)
- def _reduce_92(val, _values, result)
- val[0] << val[1]; result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 197)
- def _reduce_93(val, _values, result)
- result = make_declaration(val[0][0], val[0][1], val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 201)
- def _reduce_94(val, _values, result)
- val[1][1] << val[0][1]; result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 202)
- def _reduce_95(val, _values, result)
- result = [val[0][0], [val[0][1]]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 203)
- def _reduce_96(val, _values, result)
- val[1][1] << val[0][1]; result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 204)
- def _reduce_97(val, _values, result)
- result = [val[0][0], [val[0][1]]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 208)
- def _reduce_98(val, _values, result)
- result = NodeArray[val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 209)
- def _reduce_99(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 213)
- def _reduce_100(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 214)
- def _reduce_101(val, _values, result)
- result = val[0]; val[0].num_bits = val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 215)
- def _reduce_102(val, _values, result)
- result = Declarator.new_at(val[0].pos, :num_bits => val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 219)
- def _reduce_103(val, _values, result)
- result = Enum.new_at(val[0].pos, val[1].val, val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 220)
- def _reduce_104(val, _values, result)
- result = Enum.new_at(val[0].pos, nil , val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 221)
- def _reduce_105(val, _values, result)
- result = Enum.new_at(val[0].pos, val[1].val, val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 222)
- def _reduce_106(val, _values, result)
- result = Enum.new_at(val[0].pos, nil , val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 223)
- def _reduce_107(val, _values, result)
- result = Enum.new_at(val[0].pos, val[1].val, nil )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 225)
- def _reduce_108(val, _values, result)
- result = Enum.new_at(val[0].pos, val[1].name, val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 226)
- def _reduce_109(val, _values, result)
- result = Enum.new_at(val[0].pos, val[1].name, val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 227)
- def _reduce_110(val, _values, result)
- result = Enum.new_at(val[0].pos, val[1].name, nil )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 231)
- def _reduce_111(val, _values, result)
- result = NodeArray[val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 232)
- def _reduce_112(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 236)
- def _reduce_113(val, _values, result)
- result = Enumerator.new_at(val[0].pos, val[0].val, nil )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 237)
- def _reduce_114(val, _values, result)
- result = Enumerator.new_at(val[0].pos, val[0].val, val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 241)
- def _reduce_115(val, _values, result)
- result = [val[0].pos, :const ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 242)
- def _reduce_116(val, _values, result)
- result = [val[0].pos, :restrict]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 243)
- def _reduce_117(val, _values, result)
- result = [val[0].pos, :volatile]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 247)
- def _reduce_118(val, _values, result)
- result = [val[0].pos, :inline]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 251)
- def _reduce_119(val, _values, result)
- result = add_decl_type(val[1], val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 252)
- def _reduce_120(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 256)
- def _reduce_121(val, _values, result)
- result = Declarator.new_at(val[0].pos, nil, val[0].val)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 257)
- def _reduce_122(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 258)
- def _reduce_123(val, _values, result)
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 259)
- def _reduce_124(val, _values, result)
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 260)
- def _reduce_125(val, _values, result)
- result = add_decl_type(val[0], Array.new_at(val[0].pos, nil, val[2]))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 261)
- def _reduce_126(val, _values, result)
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 262)
- def _reduce_127(val, _values, result)
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 263)
- def _reduce_128(val, _values, result)
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 264)
- def _reduce_129(val, _values, result)
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 265)
- def _reduce_130(val, _values, result)
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 266)
- def _reduce_131(val, _values, result)
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 267)
- def _reduce_132(val, _values, result)
- result = add_decl_type(val[0], Function.new_at(val[0].pos, nil, param_list(*val[2]), :var_args => val[2][1]))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 268)
- def _reduce_133(val, _values, result)
- result = add_decl_type(val[0], Function.new_at(val[0].pos, nil, val[2]))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 269)
- def _reduce_134(val, _values, result)
- result = add_decl_type(val[0], Function.new_at(val[0].pos ))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 273)
- def _reduce_135(val, _values, result)
- result = add_type_quals(Pointer.new_at(val[0].pos), val[1][1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 274)
- def _reduce_136(val, _values, result)
- result = Pointer.new_at(val[0].pos)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 275)
- def _reduce_137(val, _values, result)
- p = add_type_quals(Pointer.new_at(val[0].pos), val[1][1]); val[2].direct_type = p; result = val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 276)
- def _reduce_138(val, _values, result)
- p = Pointer.new_at(val[0].pos) ; val[1].direct_type = p; result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 280)
- def _reduce_139(val, _values, result)
- result = [val[0][0], [val[0][1]]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 281)
- def _reduce_140(val, _values, result)
- val[0][1] << val[1][1]; result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 285)
- def _reduce_141(val, _values, result)
- result = [val[0], false]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 286)
- def _reduce_142(val, _values, result)
- result = [val[0], true ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 290)
- def _reduce_143(val, _values, result)
- result = NodeArray[val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 291)
- def _reduce_144(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 295)
- def _reduce_145(val, _values, result)
- ind_type = val[1].indirect_type and ind_type.detach
- result = make_parameter(val[0][0], val[0][1], ind_type, val[1].name)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 297)
- def _reduce_146(val, _values, result)
- result = make_parameter(val[0][0], val[0][1], val[1] , nil )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 298)
- def _reduce_147(val, _values, result)
- result = make_parameter(val[0][0], val[0][1], nil , nil )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 302)
- def _reduce_148(val, _values, result)
- result = NodeArray[Parameter.new_at(val[0].pos, nil, val[0].val)]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 303)
- def _reduce_149(val, _values, result)
- result = val[0] << Parameter.new_at(val[2].pos, nil, val[2].val)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 307)
- def _reduce_150(val, _values, result)
- val[1].direct_type = make_direct_type(val[0][0], val[0][1]); result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 308)
- def _reduce_151(val, _values, result)
- result = make_direct_type(val[0][0], val[0][1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 312)
- def _reduce_152(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 313)
- def _reduce_153(val, _values, result)
- val[1].direct_type = val[0]; result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 314)
- def _reduce_154(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 318)
- def _reduce_155(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 319)
- def _reduce_156(val, _values, result)
- val[0].direct_type = Array.new_at(val[0].pos, nil, val[2]); result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 320)
- def _reduce_157(val, _values, result)
- val[0].direct_type = Array.new_at(val[0].pos, nil, nil ); result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 321)
- def _reduce_158(val, _values, result)
- result = Array.new_at(val[0].pos, nil, val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 322)
- def _reduce_159(val, _values, result)
- result = Array.new_at(val[0].pos )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 323)
- def _reduce_160(val, _values, result)
- val[0].direct_type = Array.new_at(val[0].pos); result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 324)
- def _reduce_161(val, _values, result)
- result = Array.new_at(val[0].pos)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 325)
- def _reduce_162(val, _values, result)
- val[0].direct_type = Function.new_at(val[0].pos, nil, param_list(*val[2]), val[2][1]); result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 326)
- def _reduce_163(val, _values, result)
- val[0].direct_type = Function.new_at(val[0].pos ); result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 327)
- def _reduce_164(val, _values, result)
- result = Function.new_at(val[0].pos, nil, param_list(*val[1]), val[1][1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 328)
- def _reduce_165(val, _values, result)
- result = Function.new_at(val[0].pos )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 334)
- def _reduce_166(val, _values, result)
- result = CustomType.new_at(val[0].pos, val[0].val)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 338)
- def _reduce_167(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 339)
- def _reduce_168(val, _values, result)
- result = CompoundLiteral.new_at(val[0].pos, nil, val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 340)
- def _reduce_169(val, _values, result)
- result = CompoundLiteral.new_at(val[0].pos, nil, val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 344)
- def _reduce_170(val, _values, result)
- result = NodeArray[MemberInit.new_at(val[0][0] , val[0][1], val[1])]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 345)
- def _reduce_171(val, _values, result)
- result = NodeArray[MemberInit.new_at(val[0].pos, nil , val[0])]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 346)
- def _reduce_172(val, _values, result)
- result = val[0] << MemberInit.new_at(val[2][0] , val[2][1], val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 347)
- def _reduce_173(val, _values, result)
- result = val[0] << MemberInit.new_at(val[2].pos, nil , val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 351)
- def _reduce_174(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 355)
- def _reduce_175(val, _values, result)
- result = val[0]; val[0][1] = NodeArray[val[0][1]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 356)
- def _reduce_176(val, _values, result)
- result = val[0]; val[0][1] << val[1][1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 360)
- def _reduce_177(val, _values, result)
- result = [val[1].pos, val[1] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 361)
- def _reduce_178(val, _values, result)
- result = [val[1].pos, Member.new_at(val[1].pos, val[1].val)]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 367)
- def _reduce_179(val, _values, result)
- result = Variable.new_at(val[0].pos, val[0].val)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 368)
- def _reduce_180(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 369)
- def _reduce_181(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 371)
- def _reduce_182(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 372)
- def _reduce_183(val, _values, result)
- block_expressions_enabled? or parse_error val[0].pos, "compound statement found where expression expected"
- result = BlockExpression.new(val[1]); result.pos = val[0].pos
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 377)
- def _reduce_184(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 378)
- def _reduce_185(val, _values, result)
- result = Index .new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 379)
- def _reduce_186(val, _values, result)
- result = Call .new_at(val[0].pos, val[0], val[2] )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 380)
- def _reduce_187(val, _values, result)
- result = Call .new_at(val[0].pos, val[0], NodeArray[])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 381)
- def _reduce_188(val, _values, result)
- result = Dot .new_at(val[0].pos, val[0], Member.new(val[2].val))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 382)
- def _reduce_189(val, _values, result)
- result = Arrow .new_at(val[0].pos, val[0], Member.new(val[2].val))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 383)
- def _reduce_190(val, _values, result)
- result = PostInc .new_at(val[0].pos, val[0] )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 384)
- def _reduce_191(val, _values, result)
- result = PostDec .new_at(val[0].pos, val[0] )
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 385)
- def _reduce_192(val, _values, result)
- result = CompoundLiteral.new_at(val[0].pos, val[1], val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 386)
- def _reduce_193(val, _values, result)
- result = CompoundLiteral.new_at(val[0].pos, val[1], val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 390)
- def _reduce_194(val, _values, result)
- result = NodeArray[val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 391)
- def _reduce_195(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 395)
- def _reduce_196(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 396)
- def _reduce_197(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 400)
- def _reduce_198(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 401)
- def _reduce_199(val, _values, result)
- result = PreInc.new_at(val[0].pos, val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 402)
- def _reduce_200(val, _values, result)
- result = PreDec.new_at(val[0].pos, val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 403)
- def _reduce_201(val, _values, result)
- result = val[0][0].new_at(val[0][1], val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 404)
- def _reduce_202(val, _values, result)
- result = Sizeof.new_at(val[0].pos, val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 405)
- def _reduce_203(val, _values, result)
- result = Sizeof.new_at(val[0].pos, val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 409)
- def _reduce_204(val, _values, result)
- result = [Address , val[0].pos]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 410)
- def _reduce_205(val, _values, result)
- result = [Dereference, val[0].pos]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 411)
- def _reduce_206(val, _values, result)
- result = [Positive , val[0].pos]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 412)
- def _reduce_207(val, _values, result)
- result = [Negative , val[0].pos]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 413)
- def _reduce_208(val, _values, result)
- result = [BitNot , val[0].pos]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 414)
- def _reduce_209(val, _values, result)
- result = [Not , val[0].pos]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 418)
- def _reduce_210(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 419)
- def _reduce_211(val, _values, result)
- result = Cast.new_at(val[0].pos, val[1], val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 423)
- def _reduce_212(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 424)
- def _reduce_213(val, _values, result)
- result = Multiply.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 425)
- def _reduce_214(val, _values, result)
- result = Divide .new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 426)
- def _reduce_215(val, _values, result)
- result = Mod .new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 430)
- def _reduce_216(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 431)
- def _reduce_217(val, _values, result)
- result = Add .new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 432)
- def _reduce_218(val, _values, result)
- result = Subtract.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 436)
- def _reduce_219(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 437)
- def _reduce_220(val, _values, result)
- result = ShiftLeft .new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 438)
- def _reduce_221(val, _values, result)
- result = ShiftRight.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 442)
- def _reduce_222(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 443)
- def _reduce_223(val, _values, result)
- result = Less.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 444)
- def _reduce_224(val, _values, result)
- result = More.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 445)
- def _reduce_225(val, _values, result)
- result = LessOrEqual.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 446)
- def _reduce_226(val, _values, result)
- result = MoreOrEqual.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 450)
- def _reduce_227(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 451)
- def _reduce_228(val, _values, result)
- result = Equal .new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 452)
- def _reduce_229(val, _values, result)
- result = NotEqual.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 456)
- def _reduce_230(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 457)
- def _reduce_231(val, _values, result)
- result = BitAnd.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 461)
- def _reduce_232(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 462)
- def _reduce_233(val, _values, result)
- result = BitXor.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 466)
- def _reduce_234(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 467)
- def _reduce_235(val, _values, result)
- result = BitOr.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 471)
- def _reduce_236(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 472)
- def _reduce_237(val, _values, result)
- result = And.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 476)
- def _reduce_238(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 477)
- def _reduce_239(val, _values, result)
- result = Or.new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 481)
- def _reduce_240(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 482)
- def _reduce_241(val, _values, result)
- result = Conditional.new_at(val[0].pos, val[0], val[2], val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 486)
- def _reduce_242(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 487)
- def _reduce_243(val, _values, result)
- result = val[1].new_at(val[0].pos, val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 491)
- def _reduce_244(val, _values, result)
- result = Assign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 492)
- def _reduce_245(val, _values, result)
- result = MultiplyAssign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 493)
- def _reduce_246(val, _values, result)
- result = DivideAssign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 494)
- def _reduce_247(val, _values, result)
- result = ModAssign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 495)
- def _reduce_248(val, _values, result)
- result = AddAssign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 496)
- def _reduce_249(val, _values, result)
- result = SubtractAssign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 497)
- def _reduce_250(val, _values, result)
- result = ShiftLeftAssign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 498)
- def _reduce_251(val, _values, result)
- result = ShiftRightAssign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 499)
- def _reduce_252(val, _values, result)
- result = BitAndAssign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 500)
- def _reduce_253(val, _values, result)
- result = BitXorAssign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 501)
- def _reduce_254(val, _values, result)
- result = BitOrAssign
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 505)
- def _reduce_255(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 507)
- def _reduce_256(val, _values, result)
- if val[0].is_a? Comma
- if val[2].is_a? Comma
- val[0].exprs.push(*val[2].exprs)
- else
- val[0].exprs << val[2]
- end
- result = val[0]
- else
- if val[2].is_a? Comma
- val[2].exprs.unshift(val[0])
- val[2].pos = val[0].pos
- result = val[2]
- else
- result = Comma.new_at(val[0].pos, NodeArray[val[0], val[2]])
- end
- end
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 527)
- def _reduce_257(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 542)
- def _reduce_258(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 546)
- def _reduce_259(val, _values, result)
- result = val[0].val; result.pos = val[0].pos
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 547)
- def _reduce_260(val, _values, result)
- result = val[0].val; result.pos = val[0].pos
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 550)
- def _reduce_261(val, _values, result)
- result = val[0].val; result.pos = val[0].pos
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 554)
- def _reduce_262(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 559)
- def _reduce_263(val, _values, result)
- val[0].val << val[1].val.val; result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'cast.y', 560)
- def _reduce_264(val, _values, result)
- result = val[0].val; result.pos = val[0].pos
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module C
diff --git a/test/racc/regress/csspool b/test/racc/regress/csspool
deleted file mode 100644
index a3d14a9b34..0000000000
--- a/test/racc/regress/csspool
+++ /dev/null
@@ -1,2314 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-module CSSPool
- module CSS
- class Parser < Racc::Parser
-
-module_eval(<<'...end csspool.y/module_eval...', 'csspool.y', 670)
-
-def numeric thing
- thing = thing.gsub(/[^\d.]/, '')
- Integer(thing) rescue Float(thing)
-end
-
-def interpret_identifier s
- interpret_escapes s
-end
-
-def interpret_uri s
- interpret_escapes s.match(/^url\((.*)\)$/mui)[1].strip.match(/^(['"]?)((?:\\.|.)*)\1$/mu)[2]
-end
-
-def interpret_string_no_quote s
- interpret_escapes s.match(/^(.*)\)$/mu)[1].strip.match(/^(['"]?)((?:\\.|.)*)\1$/mu)[2]
-end
-
-def interpret_string s
- interpret_escapes s.match(/^(['"])((?:\\.|.)*)\1$/mu)[2]
-end
-
-def interpret_escapes s
- token_exp = /\\(?:([0-9a-fA-F]{1,6}(?:\r\n|\s)?)|(.))/mu
- return s.gsub(token_exp) do |escape_sequence|
- if !$1.nil?
- code = $1.chomp.to_i 16
- code = 0xFFFD if code > 0x10FFFF
- next [code].pack('U')
- end
- next '' if $2 == "\n"
- next $2
- end
-end
-
-# override racc's on_error so we can have context in our error messages
-def on_error(t, val, vstack)
- errcontext = (@ss.pre_match[-10..-1] || @ss.pre_match) +
- @ss.matched + @ss.post_match[0..9]
- line_number = @ss.pre_match.lines.count
- raise ParseError, sprintf("parse error on value %s (%s) " +
- "on line %s around \"%s\"",
- val.inspect, token_to_str(t) || '?',
- line_number, errcontext)
-end
-
-def before_pos(val)
- # don't include leading whitespace
- return current_pos - val.last.length + val.last[/\A\s*/].size
-end
-
-def after_pos(val)
- # don't include trailing whitespace
- return current_pos - val.last[/\s*\z/].size
-end
-
-# charpos will work with multibyte strings but is not available until ruby 2
-def current_pos
- @ss.respond_to?('charpos') ? @ss.charpos : @ss.pos
-end
-...end csspool.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- 9, 10, 137, 129, 37, 31, 55, 139, 130, 39,
- 45, 47, 45, 47, 123, 9, 10, 103, 3, 37,
- 31, 98, 229, 103, 39, 45, 47, 230, 124, 125,
- 224, 20, 113, 56, 37, 31, 23, 114, 104, 39,
- 45, 47, 245, 27, 104, 11, 20, 126, 48, 25,
- 48, 23, 242, 29, 138, 244, 38, 46, 27, 46,
- 11, 108, 113, 48, 25, 9, 10, 114, 29, 37,
- 31, 38, 46, 223, 39, 45, 47, 49, 48, 115,
- 9, 10, 108, 113, 37, 31, 38, 46, 114, 39,
- 45, 47, 55, 339, 243, 155, 20, 108, 113, 37,
- 31, 23, 107, 114, 39, 45, 47, 231, 27, 115,
- 11, 20, 232, 48, 25, 55, 23, 59, 29, 56,
- 344, 38, 46, 27, 340, 11, 20, 53, 48, 25,
- 115, 23, 345, 29, 37, 31, 38, 46, 27, 39,
- 45, 47, 56, 48, 25, 115, -28, 105, 29, 37,
- 31, 38, 46, 116, 39, 45, 47, 250, 75, 120,
- 251, 20, 108, 113, 37, 31, 23, 118, 114, 39,
- 45, 47, 121, 27, 74, 73, 20, 313, 48, 25,
- 314, 23, 128, 29, 108, 113, 38, 46, 27, 215,
- 114, 20, 131, 48, 25, 75, 23, 136, 29, 37,
- 64, 38, 46, 27, 39, 45, 47, 92, 48, 25,
- 115, 74, 73, 29, 37, 31, 38, 46, 77, 39,
- 45, 47, 148, 94, 103, 156, 20, -89, 83, 37,
- 31, 23, 115, 87, 39, 45, 47, 160, 27, 85,
- 153, 20, 151, 48, 25, 104, 23, 84, 29, 157,
- 158, 38, 46, 27, 163, 252, 20, 151, 48, 25,
- 201, 23, 164, 29, 37, 31, 38, 46, 27, 39,
- 45, 47, 203, 48, 25, 188, 202, 59, 29, 37,
- 165, 38, 46, 187, 39, 45, 47, 201, 204, 166,
- 184, 83, 288, 198, 287, 190, 197, 192, 191, 193,
- 194, 195, 85, 202, 37, 45, 47, 37, 48, 39,
- 45, 47, 39, 45, 47, 167, 38, 46, 168, 83,
- 170, 113, 210, 48, 181, 186, 114, 185, 196, 37,
- 85, 38, 46, 92, 39, 45, 47, 203, 84, 150,
- 152, 151, 289, 48, 290, 292, 163, 291, 48, 94,
- -33, 48, 46, 204, 169, 199, 38, 46, 37, 38,
- 46, 200, -33, 39, 45, 47, 92, 188, 115, 59,
- 294, 258, 293, 48, 296, 187, 295, 298, 260, 297,
- 212, 38, 46, 83, 216, 198, 259, 190, 197, 192,
- 191, 193, 194, 195, 85, 45, 47, 45, 47, 45,
- 47, 217, 48, 218, 219, 188, 108, 59, 285, 108,
- 38, 46, 170, 187, 225, 226, 181, 186, 233, 185,
- 196, 83, 129, 198, 234, 190, 197, 192, 191, 193,
- 194, 195, 85, 48, 163, 48, 255, 48, 256, 155,
- 263, 169, 46, 188, 46, 59, 46, 264, 168, 265,
- 170, 187, 266, 92, 181, 186, 92, 185, 196, 83,
- 92, 198, 92, 190, 197, 192, 191, 193, 194, 195,
- 85, 198, 278, 190, 197, 192, 191, 193, 194, 195,
- 279, 188, 281, 59, 241, 235, 236, 237, 170, 187,
- 286, 229, 181, 186, 231, 185, 196, 83, 163, 198,
- 300, 190, 197, 192, 191, 193, 194, 195, 85, 301,
- 302, 238, 239, 240, 303, 306, 307, 255, 141, 188,
- 75, 59, 322, 163, 185, 168, 170, 187, 312, 317,
- 181, 186, 143, 185, 196, 83, 319, 198, 323, 190,
- 197, 192, 191, 193, 194, 195, 85, 324, 325, 145,
- 326, 327, 328, 329, 330, 331, 144, 188, 146, 59,
- 147, 332, 142, 333, 170, 187, 334, 306, 181, 186,
- 163, 185, 196, 83, 338, 198, 163, 190, 197, 192,
- 191, 193, 194, 195, 85, 346, 319, 319, 163, 351,
- 306, 163, 319, 357, 359, 188, nil, 59, nil, nil,
- nil, nil, 170, 187, nil, nil, 181, 186, nil, 185,
- 196, 83, nil, 198, nil, 190, 197, 192, 191, 193,
- 194, 195, 85, 272, nil, 83, nil, 198, nil, 190,
- 197, 192, 191, 193, 194, 195, nil, nil, nil, nil,
- 170, nil, nil, nil, 181, 186, nil, 185, 196, 272,
- nil, 83, nil, 198, nil, 190, 197, 192, 191, 193,
- 194, 195, 272, nil, 83, nil, 198, nil, 190, 197,
- 192, 191, 193, 194, 195, 272, nil, 83, nil, 198,
- nil, 190, 197, 192, 191, 193, 194, 195, 272, nil,
- 83, nil, 198, nil, 190, 197, 192, 191, 193, 194,
- 195, 272, nil, 83, nil, 198, nil, 190, 197, 192,
- 191, 193, 194, 195 ]
-
-racc_action_check = [
- 2, 2, 47, 38, 2, 2, 10, 47, 38, 2,
- 2, 2, 35, 35, 34, 5, 5, 26, 1, 5,
- 5, 26, 128, 217, 5, 5, 5, 128, 34, 34,
- 112, 2, 210, 10, 31, 31, 2, 210, 26, 31,
- 31, 31, 143, 2, 217, 2, 5, 34, 2, 2,
- 35, 5, 142, 2, 47, 143, 2, 2, 5, 35,
- 5, 110, 110, 5, 5, 6, 6, 110, 5, 6,
- 6, 5, 5, 112, 6, 6, 6, 3, 31, 210,
- 7, 7, 221, 221, 7, 7, 31, 31, 221, 7,
- 7, 7, 58, 309, 142, 58, 6, 28, 28, 12,
- 12, 6, 28, 28, 12, 12, 12, 131, 6, 110,
- 6, 7, 131, 6, 6, 11, 7, 11, 6, 58,
- 315, 6, 6, 7, 309, 7, 12, 9, 7, 7,
- 221, 12, 315, 7, 13, 13, 7, 7, 12, 13,
- 13, 13, 11, 12, 12, 28, 20, 27, 12, 14,
- 14, 12, 12, 29, 14, 14, 14, 149, 20, 32,
- 149, 13, 30, 30, 15, 15, 13, 30, 30, 15,
- 15, 15, 33, 13, 20, 20, 14, 269, 13, 13,
- 269, 14, 37, 13, 100, 100, 13, 13, 14, 100,
- 100, 15, 39, 14, 14, 157, 15, 46, 14, 19,
- 19, 14, 14, 15, 19, 19, 19, 25, 15, 15,
- 30, 157, 157, 15, 21, 21, 15, 15, 21, 21,
- 21, 21, 53, 25, 99, 67, 19, 99, 22, 24,
- 24, 19, 100, 24, 24, 24, 24, 71, 19, 22,
- 57, 21, 57, 19, 19, 99, 21, 22, 19, 70,
- 70, 19, 19, 21, 75, 154, 24, 154, 21, 21,
- 90, 24, 76, 21, 64, 64, 21, 21, 24, 64,
- 64, 64, 91, 24, 24, 83, 90, 83, 24, 121,
- 78, 24, 24, 83, 121, 121, 121, 206, 91, 79,
- 83, 83, 235, 83, 235, 83, 83, 83, 83, 83,
- 83, 83, 83, 206, 122, 41, 41, 144, 64, 122,
- 122, 122, 144, 144, 144, 80, 64, 64, 81, 166,
- 83, 92, 92, 121, 83, 83, 92, 83, 83, 146,
- 166, 121, 121, 92, 146, 146, 146, 207, 166, 54,
- 54, 54, 236, 41, 236, 237, 270, 237, 122, 92,
- 270, 144, 41, 207, 82, 86, 122, 122, 302, 144,
- 144, 88, 270, 302, 302, 302, 94, 171, 92, 171,
- 238, 171, 238, 146, 239, 171, 239, 240, 171, 240,
- 97, 146, 146, 171, 101, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 42, 42, 43, 43, 44,
- 44, 102, 302, 105, 106, 223, 108, 223, 223, 109,
- 302, 302, 171, 223, 114, 117, 171, 171, 137, 171,
- 171, 223, 138, 223, 139, 223, 223, 223, 223, 223,
- 223, 223, 223, 42, 147, 43, 161, 44, 162, 172,
- 175, 176, 42, 261, 43, 261, 44, 177, 179, 183,
- 223, 261, 185, 201, 223, 223, 202, 223, 223, 261,
- 203, 261, 204, 261, 261, 261, 261, 261, 261, 261,
- 261, 189, 208, 189, 189, 189, 189, 189, 189, 189,
- 209, 285, 214, 285, 140, 140, 140, 140, 261, 285,
- 224, 233, 261, 261, 234, 261, 261, 285, 243, 285,
- 245, 285, 285, 285, 285, 285, 285, 285, 285, 246,
- 247, 140, 140, 140, 248, 249, 251, 254, 48, 286,
- 255, 286, 286, 256, 266, 267, 285, 286, 268, 280,
- 285, 285, 48, 285, 285, 286, 284, 286, 287, 286,
- 286, 286, 286, 286, 286, 286, 286, 288, 289, 48,
- 290, 291, 292, 293, 294, 295, 48, 322, 48, 322,
- 48, 296, 48, 297, 286, 322, 298, 299, 286, 286,
- 304, 286, 286, 322, 306, 322, 312, 322, 322, 322,
- 322, 322, 322, 322, 322, 316, 320, 321, 335, 337,
- 338, 340, 349, 350, 358, 353, nil, 353, nil, nil,
- nil, nil, 322, 353, nil, nil, 322, 322, nil, 322,
- 322, 353, nil, 353, nil, 353, 353, 353, 353, 353,
- 353, 353, 353, 186, nil, 186, nil, 186, nil, 186,
- 186, 186, 186, 186, 186, 186, nil, nil, nil, nil,
- 353, nil, nil, nil, 353, 353, nil, 353, 353, 272,
- nil, 272, nil, 272, nil, 272, 272, 272, 272, 272,
- 272, 272, 313, nil, 313, nil, 313, nil, 313, 313,
- 313, 313, 313, 313, 313, 314, nil, 314, nil, 314,
- nil, 314, 314, 314, 314, 314, 314, 314, 344, nil,
- 344, nil, 344, nil, 344, 344, 344, 344, 344, 344,
- 344, 345, nil, 345, nil, 345, nil, 345, 345, 345,
- 345, 345, 345, 345 ]
-
-racc_action_pointer = [
- nil, 18, -2, 77, nil, 13, 63, 78, nil, 123,
- 2, 111, 93, 128, 143, 158, nil, nil, nil, 193,
- 140, 208, 208, nil, 223, 189, 11, 141, 92, 144,
- 157, 28, 150, 164, 7, 0, nil, 124, -3, 134,
- nil, 293, 383, 385, 387, nil, 191, -4, 512, nil,
- nil, nil, nil, 217, 334, nil, nil, 235, 88, nil,
- nil, nil, nil, nil, 258, nil, nil, 215, nil, nil,
- 241, 231, nil, nil, nil, 247, 252, nil, 271, 281,
- 308, 311, 347, 271, nil, nil, 345, nil, 352, nil,
- 224, 236, 315, nil, 348, nil, nil, 370, nil, 218,
- 179, 375, 393, nil, nil, 394, 394, nil, 401, 404,
- 56, nil, 23, nil, 408, nil, nil, 405, nil, nil,
- nil, 273, 298, nil, nil, nil, nil, nil, 16, nil,
- nil, 101, nil, nil, nil, nil, nil, 360, 416, 366,
- 470, nil, 46, 36, 301, nil, 323, 427, nil, 152,
- nil, nil, nil, nil, 250, nil, nil, 177, nil, nil,
- nil, 400, 432, nil, nil, nil, 299, nil, nil, nil,
- nil, 363, 432, nil, nil, 433, 434, 440, nil, 441,
- nil, nil, nil, 430, nil, 444, 605, nil, nil, 449,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 435, 438, 442, 444, nil, 251, 301, 453, 461,
- 26, nil, nil, nil, 472, nil, nil, 17, nil, nil,
- nil, 77, nil, 401, 440, nil, nil, nil, nil, nil,
- nil, nil, nil, 485, 488, 288, 338, 341, 366, 370,
- 373, nil, nil, 491, nil, 481, 490, 502, 495, 509,
- nil, 510, nil, nil, 481, 502, 516, nil, nil, nil,
- nil, 439, nil, nil, nil, nil, 468, 518, 509, 155,
- 339, nil, 631, nil, nil, nil, nil, nil, nil, nil,
- 510, nil, nil, nil, 504, 477, 515, 524, 533, 534,
- 536, 537, 538, 539, 540, 541, 547, 549, 552, 561,
- nil, nil, 352, nil, 563, nil, 566, nil, nil, 74,
- nil, nil, 569, 644, 657, 109, 566, nil, nil, nil,
- 554, 555, 553, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 581, nil, 570, 584, nil,
- 584, nil, nil, nil, 670, 683, nil, nil, nil, 560,
- 574, nil, nil, 591, nil, nil, nil, nil, 575, nil ]
-
-racc_action_default = [
- -1, -229, -10, -229, -2, -6, -7, -8, -9, -229,
- -229, -229, -41, -42, -43, -44, -45, -46, -47, -33,
- -23, -229, -229, -55, -229, -229, -89, -229, -229, -229,
- -229, -229, -229, -103, -105, -111, -112, -115, -229, -120,
- -119, -124, -125, -126, -127, -132, -229, -229, -229, 360,
- -3, -4, -5, -229, -229, -15, -16, -229, -229, -228,
- -37, -38, -39, -40, -32, -48, -49, -229, -99, -21,
- -229, -229, -35, -26, -27, -33, -229, -53, -229, -57,
- -58, -59, -60, -229, -198, -214, -229, -62, -229, -64,
- -65, -66, -229, -71, -229, -73, -74, -229, -82, -85,
- -229, -229, -91, -92, -93, -229, -229, -95, -160, -165,
- -166, -167, -229, -174, -229, -176, -96, -229, -98, -100,
- -101, -229, -229, -106, -107, -108, -109, -110, -229, -117,
- -121, -229, -128, -129, -130, -131, -133, -115, -229, -229,
- -229, -147, -229, -229, -229, -152, -229, -33, -11, -229,
- -13, -14, -20, -18, -229, -227, -50, -28, -51, -35,
- -29, -25, -229, -32, -52, -54, -229, -197, -194, -213,
- -36, -182, -183, -184, -185, -186, -187, -188, -189, -190,
- -191, -192, -193, -229, -196, -200, -229, -212, -216, -229,
- -218, -219, -220, -221, -222, -223, -224, -225, -226, -61,
- -63, -229, -229, -229, -229, -67, -68, -69, -229, -229,
- -229, -72, -81, -84, -229, -87, -88, -89, -83, -94,
- -161, -164, -163, -229, -229, -175, -97, -102, -104, -116,
- -123, -118, -122, -229, -229, -229, -229, -229, -229, -229,
- -229, -146, -148, -33, -149, -229, -229, -114, -229, -156,
- -12, -229, -17, -22, -24, -229, -33, -56, -177, -178,
- -179, -229, -181, -215, -211, -195, -229, -209, -229, -202,
- -205, -208, -229, -217, -76, -78, -75, -77, -70, -79,
- -229, -86, -90, -162, -173, -229, -229, -229, -229, -229,
- -229, -229, -229, -229, -229, -229, -229, -229, -229, -156,
- -150, -151, -229, -153, -33, -157, -158, -19, -34, -229,
- -180, -199, -33, -229, -229, -229, -229, -80, -168, -172,
- -173, -173, -229, -134, -135, -136, -137, -138, -139, -140,
- -141, -142, -143, -144, -145, -33, -113, -229, -229, -30,
- -33, -201, -203, -204, -229, -229, -210, -169, -170, -173,
- -229, -154, -159, -229, -206, -207, -171, -155, -229, -31 ]
-
-racc_goto_table = [
- 81, 248, 183, 68, 106, 91, 117, 271, 78, 246,
- 273, 247, 82, 69, 209, 161, 97, 89, 268, 304,
- 90, 119, 54, 57, 220, 221, 318, 60, 61, 62,
- 63, 354, 355, 1, 65, 127, 76, 2, 149, 86,
- 58, 132, 133, 134, 135, 4, 70, 159, 50, 51,
- 52, 308, 67, 66, 119, 88, 208, 282, 227, 162,
- 228, 122, 347, 348, 140, 352, 261, 311, nil, 335,
- 154, nil, 207, nil, 211, nil, 214, nil, nil, nil,
- nil, nil, nil, nil, 205, nil, 222, 206, nil, 213,
- 262, 356, nil, 271, nil, nil, nil, nil, nil, nil,
- nil, nil, 254, nil, 316, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 249, 280, nil, 271, 271, nil, nil, nil, nil,
- nil, nil, 284, nil, 81, 342, 343, nil, nil, nil,
- 253, nil, 257, nil, nil, nil, 82, 336, nil, nil,
- nil, nil, nil, nil, 267, 271, 271, 247, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 310, 274, 275, 276, 277, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 283, nil, nil,
- nil, nil, nil, nil, 320, 321, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 299, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 309, 349, nil, nil, nil, nil, nil, nil, nil, nil,
- 267, nil, nil, nil, 315, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 358, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 337, nil,
- nil, 267, 267, nil, nil, nil, 341, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 350,
- nil, nil, 267, 267, 353 ]
-
-racc_goto_check = [
- 35, 62, 18, 17, 51, 41, 51, 77, 32, 58,
- 77, 58, 36, 12, 46, 15, 48, 39, 82, 68,
- 40, 55, 8, 8, 70, 70, 73, 7, 7, 7,
- 7, 84, 84, 1, 7, 61, 7, 3, 9, 7,
- 10, 61, 61, 61, 61, 2, 11, 14, 2, 2,
- 2, 16, 27, 28, 55, 38, 42, 52, 56, 17,
- 57, 59, 73, 73, 63, 69, 74, 81, nil, 68,
- 8, nil, 41, nil, 41, nil, 51, nil, nil, nil,
- nil, nil, nil, nil, 39, nil, 51, 40, nil, 48,
- 18, 73, nil, 77, nil, nil, nil, nil, nil, nil,
- nil, nil, 15, nil, 82, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 17, 46, nil, 77, 77, nil, nil, nil, nil,
- nil, nil, 18, nil, 35, 82, 82, nil, nil, nil,
- 12, nil, 32, nil, nil, nil, 36, 62, nil, nil,
- nil, nil, nil, nil, 35, 77, 77, 58, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 18, 41, 41, 41, 41, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 51, nil, nil,
- nil, nil, nil, nil, 18, 18, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 17, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 17, 18, nil, nil, nil, nil, nil, nil, nil, nil,
- 35, nil, nil, nil, 17, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 18, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 17, nil,
- nil, 35, 35, nil, nil, nil, 17, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 17,
- nil, nil, 35, 35, 17 ]
-
-racc_goto_pointer = [
- nil, 33, 43, 37, nil, nil, nil, 15, 12, -16,
- 29, 26, -7, nil, -24, -57, -204, -16, -81, nil,
- nil, nil, nil, nil, nil, nil, nil, 33, 34, nil,
- nil, nil, -14, nil, nil, -22, -10, nil, 30, -8,
- -5, -20, -36, nil, nil, nil, -78, nil, -10, nil,
- nil, -24, -160, nil, nil, -10, -63, -62, -135, 27,
- nil, 0, -145, 17, nil, nil, nil, nil, -230, -273,
- -84, nil, nil, -258, -105, nil, nil, -179, nil, nil,
- nil, -199, -168, nil, -313, nil ]
-
-racc_goto_default = [
- nil, nil, nil, nil, 5, 6, 7, 8, nil, nil,
- 172, nil, nil, 71, nil, nil, 72, nil, nil, 180,
- 12, 13, 14, 15, 16, 17, 18, nil, nil, 19,
- 21, 22, nil, 79, 80, 179, 176, 24, nil, nil,
- nil, nil, nil, 93, 95, 96, 111, 26, nil, 99,
- 100, nil, 101, 102, 28, 30, 32, 33, 34, nil,
- 35, 36, nil, 40, 41, 42, 43, 44, nil, 305,
- 110, 109, 112, nil, nil, 171, 173, 174, 175, 177,
- 178, 182, nil, 269, 270, 189 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 0, 63, :_reduce_1,
- 2, 61, :_reduce_2,
- 2, 62, :_reduce_none,
- 2, 62, :_reduce_none,
- 2, 62, :_reduce_none,
- 1, 62, :_reduce_none,
- 1, 62, :_reduce_none,
- 1, 62, :_reduce_none,
- 1, 62, :_reduce_none,
- 0, 62, :_reduce_none,
- 3, 64, :_reduce_11,
- 4, 65, :_reduce_12,
- 3, 65, :_reduce_13,
- 2, 68, :_reduce_none,
- 1, 68, :_reduce_15,
- 1, 68, :_reduce_16,
- 4, 66, :_reduce_17,
- 3, 66, :_reduce_18,
- 3, 69, :_reduce_19,
- 1, 69, :_reduce_20,
- 1, 71, :_reduce_21,
- 3, 71, :_reduce_22,
- 0, 71, :_reduce_23,
- 3, 72, :_reduce_24,
- 2, 72, :_reduce_25,
- 1, 73, :_reduce_26,
- 1, 73, :_reduce_27,
- 0, 73, :_reduce_28,
- 1, 74, :_reduce_29,
- 5, 76, :_reduce_30,
- 8, 76, :_reduce_31,
- 1, 77, :_reduce_32,
- 0, 77, :_reduce_33,
- 3, 75, :_reduce_34,
- 0, 75, :_reduce_35,
- 1, 79, :_reduce_36,
- 2, 67, :_reduce_none,
- 2, 67, :_reduce_none,
- 2, 67, :_reduce_none,
- 2, 67, :_reduce_none,
- 1, 67, :_reduce_none,
- 1, 67, :_reduce_none,
- 1, 67, :_reduce_none,
- 1, 67, :_reduce_none,
- 1, 81, :_reduce_none,
- 1, 81, :_reduce_none,
- 1, 81, :_reduce_none,
- 1, 87, :_reduce_none,
- 1, 87, :_reduce_none,
- 3, 84, :_reduce_50,
- 3, 89, :_reduce_51,
- 3, 85, :_reduce_52,
- 2, 85, :_reduce_53,
- 3, 90, :_reduce_54,
- 1, 91, :_reduce_55,
- 3, 92, :_reduce_56,
- 1, 92, :_reduce_57,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_none,
- 3, 86, :_reduce_61,
- 2, 86, :_reduce_62,
- 3, 97, :_reduce_63,
- 1, 98, :_reduce_64,
- 1, 98, :_reduce_65,
- 1, 98, :_reduce_66,
- 1, 102, :_reduce_67,
- 1, 102, :_reduce_68,
- 1, 102, :_reduce_69,
- 3, 101, :_reduce_70,
- 1, 101, :_reduce_71,
- 2, 99, :_reduce_72,
- 1, 100, :_reduce_none,
- 1, 100, :_reduce_none,
- 3, 104, :_reduce_75,
- 3, 104, :_reduce_76,
- 3, 105, :_reduce_77,
- 3, 105, :_reduce_78,
- 3, 103, :_reduce_79,
- 4, 103, :_reduce_80,
- 3, 82, :_reduce_none,
- 2, 82, :_reduce_none,
- 3, 107, :_reduce_83,
- 2, 108, :_reduce_none,
- 1, 108, :_reduce_none,
- 3, 109, :_reduce_86,
- 2, 109, :_reduce_87,
- 2, 110, :_reduce_88,
- 0, 112, :_reduce_none,
- 3, 112, :_reduce_90,
- 1, 112, :_reduce_none,
- 1, 113, :_reduce_none,
- 1, 113, :_reduce_93,
- 3, 83, :_reduce_94,
- 2, 83, :_reduce_95,
- 2, 114, :_reduce_96,
- 3, 80, :_reduce_97,
- 2, 80, :_reduce_98,
- 1, 88, :_reduce_99,
- 2, 115, :_reduce_100,
- 2, 115, :_reduce_101,
- 3, 116, :_reduce_102,
- 1, 116, :_reduce_103,
- 3, 117, :_reduce_104,
- 1, 117, :_reduce_none,
- 1, 119, :_reduce_106,
- 1, 119, :_reduce_107,
- 1, 119, :_reduce_108,
- 1, 119, :_reduce_109,
- 2, 118, :_reduce_110,
- 1, 118, :_reduce_111,
- 1, 118, :_reduce_112,
- 3, 122, :_reduce_113,
- 1, 122, :_reduce_none,
- 1, 123, :_reduce_115,
- 3, 123, :_reduce_116,
- 2, 123, :_reduce_117,
- 3, 123, :_reduce_118,
- 1, 120, :_reduce_119,
- 1, 120, :_reduce_120,
- 2, 120, :_reduce_121,
- 3, 120, :_reduce_122,
- 3, 120, :_reduce_123,
- 1, 121, :_reduce_124,
- 1, 121, :_reduce_125,
- 1, 121, :_reduce_126,
- 1, 121, :_reduce_127,
- 2, 121, :_reduce_128,
- 2, 121, :_reduce_129,
- 2, 121, :_reduce_130,
- 2, 121, :_reduce_131,
- 1, 124, :_reduce_132,
- 2, 125, :_reduce_133,
- 5, 126, :_reduce_134,
- 5, 126, :_reduce_135,
- 5, 126, :_reduce_136,
- 5, 126, :_reduce_137,
- 5, 126, :_reduce_138,
- 5, 126, :_reduce_139,
- 5, 126, :_reduce_140,
- 5, 126, :_reduce_141,
- 5, 126, :_reduce_142,
- 5, 126, :_reduce_143,
- 5, 126, :_reduce_144,
- 5, 126, :_reduce_145,
- 3, 126, :_reduce_146,
- 2, 127, :_reduce_147,
- 3, 127, :_reduce_148,
- 3, 127, :_reduce_149,
- 4, 127, :_reduce_150,
- 4, 127, :_reduce_151,
- 2, 127, :_reduce_152,
- 4, 127, :_reduce_153,
- 6, 127, :_reduce_154,
- 7, 127, :_reduce_155,
- 0, 128, :_reduce_none,
- 1, 128, :_reduce_none,
- 1, 129, :_reduce_none,
- 3, 129, :_reduce_none,
- 1, 130, :_reduce_none,
- 2, 130, :_reduce_none,
- 3, 111, :_reduce_none,
- 2, 111, :_reduce_none,
- 2, 111, :_reduce_none,
- 1, 111, :_reduce_none,
- 1, 111, :_reduce_none,
- 1, 131, :_reduce_167,
- 4, 106, :_reduce_168,
- 5, 106, :_reduce_169,
- 5, 106, :_reduce_170,
- 6, 106, :_reduce_171,
- 1, 133, :_reduce_172,
- 0, 133, :_reduce_173,
- 1, 132, :_reduce_174,
- 2, 132, :_reduce_175,
- 1, 132, :_reduce_176,
- 1, 134, :_reduce_none,
- 1, 134, :_reduce_none,
- 1, 134, :_reduce_none,
- 3, 78, :_reduce_180,
- 2, 78, :_reduce_181,
- 1, 78, :_reduce_182,
- 1, 135, :_reduce_none,
- 1, 135, :_reduce_none,
- 1, 135, :_reduce_none,
- 1, 135, :_reduce_none,
- 1, 135, :_reduce_none,
- 1, 135, :_reduce_none,
- 1, 135, :_reduce_none,
- 1, 135, :_reduce_none,
- 1, 135, :_reduce_none,
- 1, 135, :_reduce_none,
- 1, 135, :_reduce_none,
- 2, 95, :_reduce_194,
- 3, 95, :_reduce_195,
- 2, 95, :_reduce_196,
- 2, 94, :_reduce_197,
- 1, 94, :_reduce_198,
- 3, 141, :_reduce_none,
- 1, 141, :_reduce_none,
- 4, 140, :_reduce_201,
- 1, 142, :_reduce_none,
- 3, 142, :_reduce_203,
- 3, 142, :_reduce_204,
- 1, 143, :_reduce_none,
- 4, 143, :_reduce_206,
- 4, 143, :_reduce_207,
- 1, 144, :_reduce_208,
- 1, 144, :_reduce_209,
- 3, 144, :_reduce_210,
- 2, 139, :_reduce_211,
- 1, 139, :_reduce_212,
- 2, 96, :_reduce_213,
- 1, 96, :_reduce_214,
- 2, 138, :_reduce_215,
- 1, 138, :_reduce_216,
- 2, 137, :_reduce_217,
- 1, 137, :_reduce_218,
- 1, 137, :_reduce_219,
- 1, 137, :_reduce_220,
- 1, 137, :_reduce_221,
- 1, 137, :_reduce_222,
- 1, 137, :_reduce_223,
- 1, 136, :_reduce_224,
- 1, 145, :_reduce_225,
- 1, 145, :_reduce_226,
- 2, 70, :_reduce_227,
- 1, 70, :_reduce_228 ]
-
-racc_reduce_n = 229
-
-racc_shift_n = 360
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :CHARSET_SYM => 2,
- :IMPORT_SYM => 3,
- :STRING => 4,
- :SEMI => 5,
- :IDENT => 6,
- :S => 7,
- :COMMA => 8,
- :LBRACE => 9,
- :RBRACE => 10,
- :STAR => 11,
- :HASH => 12,
- :LSQUARE => 13,
- :RSQUARE => 14,
- :EQUAL => 15,
- :INCLUDES => 16,
- :DASHMATCH => 17,
- :LPAREN => 18,
- :RPAREN => 19,
- :FUNCTION => 20,
- :GREATER => 21,
- :PLUS => 22,
- :SLASH => 23,
- :NUMBER => 24,
- :MINUS => 25,
- :LENGTH => 26,
- :PERCENTAGE => 27,
- :ANGLE => 28,
- :TIME => 29,
- :FREQ => 30,
- :URI => 31,
- :IMPORTANT_SYM => 32,
- :MEDIA_SYM => 33,
- :NOT => 34,
- :ONLY => 35,
- :AND => 36,
- :NTH_PSEUDO_CLASS => 37,
- :DOCUMENT_QUERY_SYM => 38,
- :FUNCTION_NO_QUOTE => 39,
- :TILDE => 40,
- :PREFIXMATCH => 41,
- :SUFFIXMATCH => 42,
- :SUBSTRINGMATCH => 43,
- :NOT_PSEUDO_CLASS => 44,
- :KEYFRAMES_SYM => 45,
- :MATCHES_PSEUDO_CLASS => 46,
- :NAMESPACE_SYM => 47,
- :MOZ_PSEUDO_ELEMENT => 48,
- :RESOLUTION => 49,
- :COLON => 50,
- :SUPPORTS_SYM => 51,
- :OR => 52,
- :VARIABLE_NAME => 53,
- :CALC_SYM => 54,
- :FONTFACE_SYM => 55,
- :UNICODE_RANGE => 56,
- :RATIO => 57,
- "|" => 58,
- "." => 59 }
-
-racc_nt_base = 60
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "CHARSET_SYM",
- "IMPORT_SYM",
- "STRING",
- "SEMI",
- "IDENT",
- "S",
- "COMMA",
- "LBRACE",
- "RBRACE",
- "STAR",
- "HASH",
- "LSQUARE",
- "RSQUARE",
- "EQUAL",
- "INCLUDES",
- "DASHMATCH",
- "LPAREN",
- "RPAREN",
- "FUNCTION",
- "GREATER",
- "PLUS",
- "SLASH",
- "NUMBER",
- "MINUS",
- "LENGTH",
- "PERCENTAGE",
- "ANGLE",
- "TIME",
- "FREQ",
- "URI",
- "IMPORTANT_SYM",
- "MEDIA_SYM",
- "NOT",
- "ONLY",
- "AND",
- "NTH_PSEUDO_CLASS",
- "DOCUMENT_QUERY_SYM",
- "FUNCTION_NO_QUOTE",
- "TILDE",
- "PREFIXMATCH",
- "SUFFIXMATCH",
- "SUBSTRINGMATCH",
- "NOT_PSEUDO_CLASS",
- "KEYFRAMES_SYM",
- "MATCHES_PSEUDO_CLASS",
- "NAMESPACE_SYM",
- "MOZ_PSEUDO_ELEMENT",
- "RESOLUTION",
- "COLON",
- "SUPPORTS_SYM",
- "OR",
- "VARIABLE_NAME",
- "CALC_SYM",
- "FONTFACE_SYM",
- "UNICODE_RANGE",
- "RATIO",
- "\"|\"",
- "\".\"",
- "$start",
- "document",
- "stylesheet",
- "@1",
- "charset",
- "import",
- "namespace",
- "body",
- "import_location",
- "medium",
- "ident",
- "media_query_list",
- "media_query",
- "optional_only_or_not",
- "media_type",
- "optional_and_exprs",
- "media_expr",
- "optional_space",
- "expr",
- "resolution",
- "ruleset",
- "conditional_rule",
- "keyframes_rule",
- "fontface_rule",
- "media",
- "document_query",
- "supports",
- "body_in_media",
- "empty_ruleset",
- "start_media",
- "start_document_query",
- "start_document_query_pos",
- "url_match_fns",
- "url_match_fn",
- "function_no_quote",
- "function",
- "uri",
- "start_supports",
- "supports_condition_root",
- "supports_negation",
- "supports_conjunction_or_disjunction",
- "supports_condition_in_parens",
- "supports_condition",
- "supports_declaration_condition",
- "supports_conjunction",
- "supports_disjunction",
- "declaration_internal",
- "start_keyframes_rule",
- "keyframes_blocks",
- "keyframes_block",
- "start_keyframes_block",
- "declarations",
- "keyframes_selectors",
- "keyframes_selector",
- "start_fontface_rule",
- "start_selector",
- "selectors",
- "selector",
- "simple_selector",
- "combinator",
- "element_name",
- "hcap",
- "simple_selectors",
- "ident_with_namespace",
- "hash",
- "class",
- "attrib",
- "pseudo",
- "any_number_of_idents",
- "multiple_idents",
- "one_or_more_semis",
- "declaration",
- "property",
- "prio",
- "operator",
- "term",
- "ratio",
- "numeric",
- "string",
- "hexcolor",
- "calc",
- "uranges",
- "calc_sum",
- "calc_product",
- "calc_value",
- "unary_operator" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 26)
- def _reduce_1(val, _values, result)
- @handler.start_document
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 28)
- def _reduce_2(val, _values, result)
- @handler.end_document
- result
- end
-.,.,
-
-# reduce 3 omitted
-
-# reduce 4 omitted
-
-# reduce 5 omitted
-
-# reduce 6 omitted
-
-# reduce 7 omitted
-
-# reduce 8 omitted
-
-# reduce 9 omitted
-
-# reduce 10 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 41)
- def _reduce_11(val, _values, result)
- @handler.charset interpret_string(val[1]), {}
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 45)
- def _reduce_12(val, _values, result)
- @handler.import_style val[2], val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 48)
- def _reduce_13(val, _values, result)
- @handler.import_style [], val[1]
-
- result
- end
-.,.,
-
-# reduce 14 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 53)
- def _reduce_15(val, _values, result)
- result = Terms::String.new interpret_string val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 54)
- def _reduce_16(val, _values, result)
- result = Terms::URI.new interpret_uri val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 58)
- def _reduce_17(val, _values, result)
- @handler.namespace val[1], val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 61)
- def _reduce_18(val, _values, result)
- @handler.namespace nil, val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 66)
- def _reduce_19(val, _values, result)
- result = val[0] << MediaType.new(val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 69)
- def _reduce_20(val, _values, result)
- result = [MediaType.new(val[0])]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 73)
- def _reduce_21(val, _values, result)
- result = MediaQueryList.new([ val[0] ])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 74)
- def _reduce_22(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 75)
- def _reduce_23(val, _values, result)
- result = MediaQueryList.new
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 78)
- def _reduce_24(val, _values, result)
- result = MediaQuery.new(val[0], val[1], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 79)
- def _reduce_25(val, _values, result)
- result = MediaQuery.new(nil, val[0], val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 82)
- def _reduce_26(val, _values, result)
- result = :only
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 83)
- def _reduce_27(val, _values, result)
- result = :not
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 84)
- def _reduce_28(val, _values, result)
- result = nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 87)
- def _reduce_29(val, _values, result)
- result = MediaType.new(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 90)
- def _reduce_30(val, _values, result)
- result = MediaType.new(val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 91)
- def _reduce_31(val, _values, result)
- result = MediaFeature.new(val[2], val[6][0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 94)
- def _reduce_32(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 95)
- def _reduce_33(val, _values, result)
- result = nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 98)
- def _reduce_34(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 99)
- def _reduce_35(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 103)
- def _reduce_36(val, _values, result)
- unit = val.first.gsub(/[\s\d.]/, '')
- number = numeric(val.first)
- result = Terms::Resolution.new(number, unit)
-
- result
- end
-.,.,
-
-# reduce 37 omitted
-
-# reduce 38 omitted
-
-# reduce 39 omitted
-
-# reduce 40 omitted
-
-# reduce 41 omitted
-
-# reduce 42 omitted
-
-# reduce 43 omitted
-
-# reduce 44 omitted
-
-# reduce 45 omitted
-
-# reduce 46 omitted
-
-# reduce 47 omitted
-
-# reduce 48 omitted
-
-# reduce 49 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 128)
- def _reduce_50(val, _values, result)
- @handler.end_media val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 132)
- def _reduce_51(val, _values, result)
- result = val[1]
- @handler.start_media result
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 137)
- def _reduce_52(val, _values, result)
- @handler.end_document_query(before_pos(val), after_pos(val))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 138)
- def _reduce_53(val, _values, result)
- @handler.end_document_query(before_pos(val), after_pos(val))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 142)
- def _reduce_54(val, _values, result)
- @handler.start_document_query(val[1], after_pos(val))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 147)
- def _reduce_55(val, _values, result)
- @handler.node_start_pos = before_pos(val)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 152)
- def _reduce_56(val, _values, result)
- result = [val[0], val[2]].flatten
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 155)
- def _reduce_57(val, _values, result)
- result = val
-
- result
- end
-.,.,
-
-# reduce 58 omitted
-
-# reduce 59 omitted
-
-# reduce 60 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 164)
- def _reduce_61(val, _values, result)
- @handler.end_supports
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 165)
- def _reduce_62(val, _values, result)
- @handler.end_supports
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 169)
- def _reduce_63(val, _values, result)
- @handler.start_supports val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 173)
- def _reduce_64(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 174)
- def _reduce_65(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 175)
- def _reduce_66(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 178)
- def _reduce_67(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 179)
- def _reduce_68(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 180)
- def _reduce_69(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 183)
- def _reduce_70(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 184)
- def _reduce_71(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 187)
- def _reduce_72(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-# reduce 73 omitted
-
-# reduce 74 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 194)
- def _reduce_75(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 195)
- def _reduce_76(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 198)
- def _reduce_77(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 199)
- def _reduce_78(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 202)
- def _reduce_79(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 203)
- def _reduce_80(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-# reduce 81 omitted
-
-# reduce 82 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 211)
- def _reduce_83(val, _values, result)
- @handler.start_keyframes_rule val[1]
-
- result
- end
-.,.,
-
-# reduce 84 omitted
-
-# reduce 85 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 219)
- def _reduce_86(val, _values, result)
- @handler.end_keyframes_block
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 220)
- def _reduce_87(val, _values, result)
- @handler.end_keyframes_block
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 224)
- def _reduce_88(val, _values, result)
- @handler.start_keyframes_block val[0]
-
- result
- end
-.,.,
-
-# reduce 89 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 229)
- def _reduce_90(val, _values, result)
- result = val[0] + ', ' + val[2]
-
- result
- end
-.,.,
-
-# reduce 91 omitted
-
-# reduce 92 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 235)
- def _reduce_93(val, _values, result)
- result = val[0].strip
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 238)
- def _reduce_94(val, _values, result)
- @handler.end_fontface_rule
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 239)
- def _reduce_95(val, _values, result)
- @handler.end_fontface_rule
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 243)
- def _reduce_96(val, _values, result)
- @handler.start_fontface_rule
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 248)
- def _reduce_97(val, _values, result)
- @handler.end_selector val.first
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 251)
- def _reduce_98(val, _values, result)
- @handler.end_selector val.first
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 256)
- def _reduce_99(val, _values, result)
- start = @handler.start_selector([])
- @handler.end_selector(start)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 261)
- def _reduce_100(val, _values, result)
- result = val.last
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 263)
- def _reduce_101(val, _values, result)
- @handler.start_selector val.first
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 269)
- def _reduce_102(val, _values, result)
- sel = Selector.new(val.first, {})
- result = [sel].concat(val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 274)
- def _reduce_103(val, _values, result)
- result = [Selector.new(val.first, {})]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 280)
- def _reduce_104(val, _values, result)
- val.flatten!
- val[2].combinator = val.delete_at 1
- result = val
-
- result
- end
-.,.,
-
-# reduce 105 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 287)
- def _reduce_106(val, _values, result)
- result = :s
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 288)
- def _reduce_107(val, _values, result)
- result = :>
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 289)
- def _reduce_108(val, _values, result)
- result = :+
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 290)
- def _reduce_109(val, _values, result)
- result = :~
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 294)
- def _reduce_110(val, _values, result)
- selector = val.first
- selector.additional_selectors = val.last
- result = [selector]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 298)
- def _reduce_111(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 301)
- def _reduce_112(val, _values, result)
- ss = Selectors::Simple.new nil, nil
- ss.additional_selectors = val.flatten
- result = [ss]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 307)
- def _reduce_113(val, _values, result)
- result = [val[0], val[2]].flatten
- result
- end
-.,.,
-
-# reduce 114 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 311)
- def _reduce_115(val, _values, result)
- result = [interpret_identifier(val[0]), nil]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 312)
- def _reduce_116(val, _values, result)
- result = [interpret_identifier(val[2]), interpret_identifier(val[0])]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 313)
- def _reduce_117(val, _values, result)
- result = [interpret_identifier(val[1]), nil]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 314)
- def _reduce_118(val, _values, result)
- result = [interpret_identifier(val[2]), '*']
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 317)
- def _reduce_119(val, _values, result)
- result = Selectors::Type.new val.first[0], nil, val.first[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 318)
- def _reduce_120(val, _values, result)
- result = Selectors::Universal.new val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 319)
- def _reduce_121(val, _values, result)
- result = Selectors::Universal.new val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 320)
- def _reduce_122(val, _values, result)
- result = Selectors::Universal.new val[2], nil, val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 321)
- def _reduce_123(val, _values, result)
- result = Selectors::Universal.new val[2], nil, interpret_identifier(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 324)
- def _reduce_124(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 325)
- def _reduce_125(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 326)
- def _reduce_126(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 327)
- def _reduce_127(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 328)
- def _reduce_128(val, _values, result)
- result = val.flatten
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 329)
- def _reduce_129(val, _values, result)
- result = val.flatten
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 330)
- def _reduce_130(val, _values, result)
- result = val.flatten
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 331)
- def _reduce_131(val, _values, result)
- result = val.flatten
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 335)
- def _reduce_132(val, _values, result)
- result = Selectors::Id.new interpret_identifier val.first.sub(/^#/, '')
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 339)
- def _reduce_133(val, _values, result)
- result = Selectors::Class.new interpret_identifier val.last
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 344)
- def _reduce_134(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::EQUALS,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 352)
- def _reduce_135(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::EQUALS,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 360)
- def _reduce_136(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::INCLUDES,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 368)
- def _reduce_137(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::INCLUDES,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 376)
- def _reduce_138(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::DASHMATCH,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 384)
- def _reduce_139(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::DASHMATCH,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 392)
- def _reduce_140(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::PREFIXMATCH,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 400)
- def _reduce_141(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::PREFIXMATCH,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 408)
- def _reduce_142(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::SUFFIXMATCH,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 416)
- def _reduce_143(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::SUFFIXMATCH,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 424)
- def _reduce_144(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_identifier(val[3]),
- Selectors::Attribute::SUBSTRINGMATCH,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 432)
- def _reduce_145(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- interpret_string(val[3]),
- Selectors::Attribute::SUBSTRINGMATCH,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 440)
- def _reduce_146(val, _values, result)
- result = Selectors::Attribute.new(
- val[1][0],
- nil,
- Selectors::Attribute::SET,
- val[1][1]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 450)
- def _reduce_147(val, _values, result)
- result = Selectors::pseudo interpret_identifier(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 453)
- def _reduce_148(val, _values, result)
- result = Selectors::PseudoElement.new(
- interpret_identifier(val[2])
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 458)
- def _reduce_149(val, _values, result)
- result = Selectors::PseudoClass.new(
- interpret_identifier(val[1].sub(/\($/, '')),
- ''
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 464)
- def _reduce_150(val, _values, result)
- result = Selectors::PseudoClass.new(
- interpret_identifier(val[1].sub(/\($/, '')),
- interpret_identifier(val[2])
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 470)
- def _reduce_151(val, _values, result)
- result = Selectors::PseudoClass.new(
- 'not',
- val[2].first.to_s
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 476)
- def _reduce_152(val, _values, result)
- result = Selectors::PseudoClass.new(
- interpret_identifier(val[1].sub(/\(.*/, '')),
- interpret_identifier(val[1].sub(/.*\(/, '').sub(/\).*/, ''))
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 482)
- def _reduce_153(val, _values, result)
- result = Selectors::PseudoClass.new(
- val[1].split('(').first.strip,
- val[2].join(', ')
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 488)
- def _reduce_154(val, _values, result)
- result = Selectors::PseudoElement.new(
- interpret_identifier(val[1].sub(/\($/, ''))
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 493)
- def _reduce_155(val, _values, result)
- result = Selectors::PseudoElement.new(
- interpret_identifier(val[2].sub(/\($/, ''))
- )
-
- result
- end
-.,.,
-
-# reduce 156 omitted
-
-# reduce 157 omitted
-
-# reduce 158 omitted
-
-# reduce 159 omitted
-
-# reduce 160 omitted
-
-# reduce 161 omitted
-
-# reduce 162 omitted
-
-# reduce 163 omitted
-
-# reduce 164 omitted
-
-# reduce 165 omitted
-
-# reduce 166 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 519)
- def _reduce_167(val, _values, result)
- @handler.property val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 523)
- def _reduce_168(val, _values, result)
- result = Declaration.new(val.first, val[2], val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 525)
- def _reduce_169(val, _values, result)
- result = Declaration.new(val.first, val[3], val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 527)
- def _reduce_170(val, _values, result)
- result = Declaration.new(val.first, val[3], val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 529)
- def _reduce_171(val, _values, result)
- result = Declaration.new(val.first, val[4], val[5])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 532)
- def _reduce_172(val, _values, result)
- result = true
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 533)
- def _reduce_173(val, _values, result)
- result = false
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 536)
- def _reduce_174(val, _values, result)
- result = interpret_identifier val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 537)
- def _reduce_175(val, _values, result)
- result = interpret_identifier val.join
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 538)
- def _reduce_176(val, _values, result)
- result = interpret_identifier val[0]
- result
- end
-.,.,
-
-# reduce 177 omitted
-
-# reduce 178 omitted
-
-# reduce 179 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 547)
- def _reduce_180(val, _values, result)
- result = [val.first, val.last].flatten
- val.last.first.operator = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 550)
- def _reduce_181(val, _values, result)
- result = val.flatten
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 551)
- def _reduce_182(val, _values, result)
- result = val
- result
- end
-.,.,
-
-# reduce 183 omitted
-
-# reduce 184 omitted
-
-# reduce 185 omitted
-
-# reduce 186 omitted
-
-# reduce 187 omitted
-
-# reduce 188 omitted
-
-# reduce 189 omitted
-
-# reduce 190 omitted
-
-# reduce 191 omitted
-
-# reduce 192 omitted
-
-# reduce 193 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 567)
- def _reduce_194(val, _values, result)
- result = val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 569)
- def _reduce_195(val, _values, result)
- name = interpret_identifier val.first.sub(/\($/, '')
- if name == 'rgb'
- result = Terms::Rgb.new(*val[1])
- else
- result = Terms::Function.new name, val[1]
- end
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 577)
- def _reduce_196(val, _values, result)
- name = interpret_identifier val.first.sub(/\($/, '')
- result = Terms::Function.new name
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 582)
- def _reduce_197(val, _values, result)
- result = val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 584)
- def _reduce_198(val, _values, result)
- parts = val.first.split('(')
- name = interpret_identifier parts.first
- result = Terms::Function.new(name, [Terms::String.new(interpret_string_no_quote(parts.last))])
-
- result
- end
-.,.,
-
-# reduce 199 omitted
-
-# reduce 200 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 595)
- def _reduce_201(val, _values, result)
- result = Terms::Math.new(val.first.split('(').first, val[1])
-
- result
- end
-.,.,
-
-# reduce 202 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 601)
- def _reduce_203(val, _values, result)
- val.insert(1, ' '); result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 602)
- def _reduce_204(val, _values, result)
- val.insert(1, ' '); result = val.join('')
- result
- end
-.,.,
-
-# reduce 205 omitted
-
-module_eval(<<'.,.,', 'csspool.y', 606)
- def _reduce_206(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 607)
- def _reduce_207(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 610)
- def _reduce_208(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 611)
- def _reduce_209(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 612)
- def _reduce_210(val, _values, result)
- result = val.join('')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 615)
- def _reduce_211(val, _values, result)
- result = val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 616)
- def _reduce_212(val, _values, result)
- result = Terms::Hash.new val.first.sub(/^#/, '')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 619)
- def _reduce_213(val, _values, result)
- result = val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 620)
- def _reduce_214(val, _values, result)
- result = Terms::URI.new interpret_uri val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 623)
- def _reduce_215(val, _values, result)
- result = val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 624)
- def _reduce_216(val, _values, result)
- result = Terms::String.new interpret_string val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 628)
- def _reduce_217(val, _values, result)
- result = val[1]
- val[1].unary_operator = val.first
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 632)
- def _reduce_218(val, _values, result)
- result = Terms::Number.new numeric val.first
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 635)
- def _reduce_219(val, _values, result)
- result = Terms::Number.new numeric(val.first), nil, '%'
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 638)
- def _reduce_220(val, _values, result)
- unit = val.first.gsub(/[\s\d.]/, '')
- result = Terms::Number.new numeric(val.first), nil, unit
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 642)
- def _reduce_221(val, _values, result)
- unit = val.first.gsub(/[\s\d.]/, '')
- result = Terms::Number.new numeric(val.first), nil, unit
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 646)
- def _reduce_222(val, _values, result)
- unit = val.first.gsub(/[\s\d.]/, '')
- result = Terms::Number.new numeric(val.first), nil, unit
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 650)
- def _reduce_223(val, _values, result)
- unit = val.first.gsub(/[\s\d.]/, '')
- result = Terms::Number.new numeric(val.first), nil, unit
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 656)
- def _reduce_224(val, _values, result)
- result = Terms::Ratio.new(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 660)
- def _reduce_225(val, _values, result)
- result = :minus
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 661)
- def _reduce_226(val, _values, result)
- result = :plus
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 664)
- def _reduce_227(val, _values, result)
- result = val.first
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'csspool.y', 665)
- def _reduce_228(val, _values, result)
- result = Terms::Ident.new interpret_identifier val.first
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
- end # module CSS
-end # module CSSPool
diff --git a/test/racc/regress/edtf b/test/racc/regress/edtf
deleted file mode 100644
index 5947931260..0000000000
--- a/test/racc/regress/edtf
+++ /dev/null
@@ -1,1794 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-require 'strscan'
-
-module EDTF
- class Parser < Racc::Parser
-
-module_eval(<<'...end edtf.y/module_eval...', 'edtf.y', 468)
-
- @defaults = {
- :level => 2,
- :debug => false
- }.freeze
-
- class << self; attr_reader :defaults; end
-
- attr_reader :options
-
- def initialize(options = {})
- @options = Parser.defaults.merge(options)
- end
-
- def debug?
- !!(options[:debug] || ENV['DEBUG'])
- end
-
- def parse(input)
- parse!(input)
- rescue => e
- warn e.message if debug?
- nil
- end
-
- def parse!(input)
- @yydebug = debug?
- @src = StringScanner.new(input)
- do_parse
- end
-
- def on_error(tid, value, stack)
- raise ArgumentError,
- "failed to parse date: unexpected '#{value}' at #{stack.inspect}"
- end
-
- def apply_uncertainty(date, uncertainty, scope = nil)
- uncertainty.each do |u|
- scope.nil? ? date.send(u) : date.send(u, scope)
- end
- date
- end
-
- alias uoa apply_uncertainty
-
- def next_token
- case
- when @src.eos?
- nil
- # when @src.scan(/\s+/)
- # ignore whitespace
- when @src.scan(/\(/)
- ['(', @src.matched]
- # when @src.scan(/\)\?~-/)
- # [:PUA, [:uncertain!, :approximate!]]
- # when @src.scan(/\)\?-/)
- # [:PUA, [:uncertain!]]
- # when @src.scan(/\)~-/)
- # [:PUA, [:approximate!]]
- when @src.scan(/\)/)
- [')', @src.matched]
- when @src.scan(/\[/)
- ['[', @src.matched]
- when @src.scan(/\]/)
- [']', @src.matched]
- when @src.scan(/\{/)
- ['{', @src.matched]
- when @src.scan(/\}/)
- ['}', @src.matched]
- when @src.scan(/T/)
- [:T, @src.matched]
- when @src.scan(/Z/)
- [:Z, @src.matched]
- when @src.scan(/\?~/)
- [:UA, [:uncertain!, :approximate!]]
- when @src.scan(/\?/)
- [:UA, [:uncertain!]]
- when @src.scan(/~/)
- [:UA, [:approximate!]]
- when @src.scan(/open/i)
- [:OPEN, :open]
- when @src.scan(/unkn?own/i) # matches 'unkown' typo too
- [:UNKNOWN, :unknown]
- when @src.scan(/u/)
- [:U, @src.matched]
- when @src.scan(/x/i)
- [:X, @src.matched]
- when @src.scan(/y/)
- [:LONGYEAR, @src.matched]
- when @src.scan(/e/)
- [:E, @src.matched]
- when @src.scan(/\+/)
- ['+', @src.matched]
- when @src.scan(/-\(/)
- ['-(', @src.matched]
- when @src.scan(/-/)
- ['-', @src.matched]
- when @src.scan(/:/)
- [':', @src.matched]
- when @src.scan(/\//)
- ['/', @src.matched]
- when @src.scan(/\s*\.\.\s*/)
- [:DOTS, '..']
- when @src.scan(/\s*,\s*/)
- [',', ',']
- when @src.scan(/\^\w+/)
- ['^', @src.matched[1..-1]]
- when @src.scan(/\d/)
- [@src.matched, @src.matched.to_i]
- else @src.scan(/./)
- [:UNMATCHED, @src.rest]
- end
- end
-
-
-# -*- racc -*-
-...end edtf.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- 129, 128, 52, 111, 51, 112, 149, 208, 207, 57,
- -50, 43, 45, 40, 55, 42, 54, 44, 43, 45,
- 40, -48, 42, 53, 44, 64, 58, 46, 47, 48,
- 49, 50, 128, 56, 46, 47, 48, 49, 50, 207,
- 57, 65, 43, 45, 40, 55, 42, 157, 44, 43,
- 45, 40, 55, 42, 214, 44, 92, 58, 46, 47,
- 48, 49, 50, 66, 56, 46, 47, 48, 49, 50,
- 25, 56, 26, 93, 94, 67, 108, 12, -65, 43,
- 45, 40, -66, 42, 159, 44, 110, 33, 111, 34,
- 112, 95, 36, 25, 141, 46, 47, 48, 49, 50,
- 12, 58, 43, 45, 40, 101, 42, 103, 44, 104,
- 96, 148, 55, 133, 147, 36, 124, 125, 46, 47,
- 48, 49, 50, 87, 165, 111, 12, 112, 43, 45,
- 40, 56, 42, 146, 44, 166, 111, 150, 112, 218,
- 167, 36, 152, 153, 46, 47, 48, 49, 50, 87,
- 108, 111, 12, 112, 43, 45, 40, 188, 42, 186,
- 44, 187, 111, 190, 112, 154, 111, 36, 112, 156,
- 46, 47, 48, 49, 50, 69, 158, 43, 45, 189,
- 191, 42, 12, 44, 43, 45, 40, 200, 42, 201,
- 44, 168, 177, 46, 47, 48, 49, 50, 233, 178,
- 46, 47, 48, 49, 50, 12, 180, 43, 45, 40,
- 111, 42, 112, 44, 232, 234, 111, 240, 112, 239,
- 36, 192, 193, 46, 47, 48, 49, 50, 12, 202,
- 43, 45, 40, 118, 42, 117, 44, 104, 118, 121,
- 117, 209, 104, 36, 121, 210, 46, 47, 48, 49,
- 50, 12, 212, 43, 45, 40, 244, 42, 239, 44,
- 213, 43, 45, 40, 215, 42, 36, 44, 229, 46,
- 47, 48, 49, 50, 180, 180, 236, 46, 47, 48,
- 49, 50, 43, 45, 40, 253, 42, 254, 44, 43,
- 45, 40, 255, 42, 258, 44, 261, 264, 46, 47,
- 48, 49, 50, 124, 125, 46, 47, 48, 49, 50,
- 43, 45, 40, 265, 42, 192, 44, 43, 45, 266,
- 269, 42, 270, 44, 275, 280, 46, 47, 48, 49,
- 50, 284, 285, 46, 47, 48, 49, 50, 43, 45,
- 40, 286, 42, 290, 44, 43, 45, 292, 293, 42,
- 295, 44, 296, 297, 46, 47, 48, 49, 50, 300,
- 301, 46, 47, 48, 49, 50, 43, 45, 40, 180,
- 42, 303, 44, 43, 45, 40, 304, 42, 305, 44,
- 281, 306, 46, 47, 48, 49, 50, 307, 308, 46,
- 47, 48, 49, 50, 43, 45, 175, 311, 42, 312,
- 44, 43, 45, 40, 313, 42, 314, 44, 316, 317,
- 46, 47, 48, 49, 50, 318, 319, 46, 47, 48,
- 49, 50, 43, 45, nil, nil, 42, nil, 44, 43,
- 45, nil, nil, 42, nil, 44, nil, nil, 46, 47,
- 48, 49, 50, nil, nil, 46, 47, 48, 49, 50,
- 172, 194, 170, nil, 171, nil, 173, 43, 45, 40,
- nil, 42, nil, 44, nil, nil, 195, 196, 197, 198,
- 199, nil, nil, 46, 47, 48, 49, 50, 43, 45,
- 40, nil, 42, nil, 44, 43, 45, 40, nil, 42,
- nil, 44, nil, nil, 46, 47, 48, 49, 50, nil,
- nil, 46, 47, 48, 49, 50, 43, 45, 40, nil,
- 42, nil, 44, 43, 45, nil, nil, 42, nil, 44,
- nil, nil, 46, 47, 48, 49, 50, nil, nil, 46,
- 47, 48, 49, 50, 43, 45, 40, nil, 42, nil,
- 44, 43, 45, 40, nil, 42, nil, 44, nil, nil,
- 46, 47, 48, 49, 50, nil, nil, 46, 47, 48,
- 49, 50, 43, 45, 40, nil, 42, nil, 44, 43,
- 45, 40, nil, 42, nil, 44, nil, nil, 46, 47,
- 48, 49, 50, nil, nil, 46, 47, 48, 49, 50,
- 43, 45, nil, nil, 42, nil, 44, 43, 45, 40,
- nil, 42, nil, 44, nil, nil, 46, 47, 48, 49,
- 50, nil, nil, 46, 47, 48, 49, 50, 43, 45,
- 40, nil, 42, nil, 44, 43, 45, 273, nil, 42,
- nil, 44, nil, nil, 46, 47, 48, 49, 50, nil,
- nil, 46, 47, 48, 49, 50, 43, 45, 274, nil,
- 42, nil, 44, 43, 45, 276, nil, 42, nil, 44,
- nil, nil, 46, 47, 48, 49, 50, nil, nil, 46,
- 47, 48, 49, 50, 43, 45, 40, nil, 42, nil,
- 44, 43, 45, 40, nil, 42, nil, 44, nil, nil,
- 46, 47, 48, 49, 50, nil, nil, 46, 47, 48,
- 49, 50, 43, 45, 40, nil, 42, nil, 44, 43,
- 45, 40, nil, 42, nil, 44, nil, nil, 46, 47,
- 48, 49, 50, nil, nil, 46, 47, 48, 49, 50,
- 43, 45, 40, nil, 42, nil, 44, 43, 45, 315,
- nil, 42, nil, 44, nil, nil, 46, 47, 48, 49,
- 50, 116, nil, 46, 47, 48, 49, 50, 118, 250,
- 247, 118, 104, 117, 249, 104, 260, 121, nil, 281,
- nil, nil, nil, nil, 251, nil, 118, 288, 117, 118,
- 104, 117, 121, 104, 118, 121, 117, 118, 104, 117,
- 121, 104, nil, 121, 118, 250, 247, nil, 104, nil,
- 249, 118, 250, 247, nil, 104, nil, 249, nil, nil,
- 251, nil, 118, 250, 117, nil, 104, 251, 249, 118,
- 250, 310, nil, 104, nil, 249, nil, nil, 251, nil,
- 172, 169, 170, nil, 171, 251, 173, 182, 184, nil,
- 118, 181, 117, 183, 104, 118, 121, 117, 118, 104,
- 117, 121, 104, 118, 121, 117, 118, 104, 117, 121,
- 104, 118, 121, 117, nil, 104, nil, 121, 188, 271,
- 186, 118, 187, 117, 272, 104, nil, 121 ]
-
-racc_action_check = [
- 63, 63, 5, 56, 1, 56, 73, 127, 127, 73,
- 14, 63, 63, 63, 9, 63, 9, 63, 127, 127,
- 127, 5, 127, 5, 127, 16, 73, 63, 63, 63,
- 63, 63, 151, 9, 127, 127, 127, 127, 127, 224,
- 10, 17, 151, 151, 151, 89, 151, 89, 151, 224,
- 224, 224, 134, 224, 134, 224, 37, 10, 151, 151,
- 151, 151, 151, 18, 89, 224, 224, 224, 224, 224,
- 0, 134, 0, 37, 38, 22, 54, 0, 23, 0,
- 0, 0, 24, 0, 91, 0, 54, 0, 54, 0,
- 54, 38, 0, 67, 67, 0, 0, 0, 0, 0,
- 67, 91, 67, 67, 67, 52, 67, 52, 67, 52,
- 51, 72, 72, 66, 72, 67, 59, 60, 67, 67,
- 67, 67, 67, 33, 98, 66, 33, 66, 33, 33,
- 33, 72, 33, 71, 33, 98, 92, 74, 92, 147,
- 98, 33, 77, 78, 33, 33, 33, 33, 33, 34,
- 214, 147, 34, 147, 34, 34, 34, 112, 34, 112,
- 34, 112, 214, 113, 214, 79, 93, 34, 93, 88,
- 34, 34, 34, 34, 34, 26, 90, 26, 26, 113,
- 113, 26, 87, 26, 87, 87, 87, 121, 87, 121,
- 87, 99, 107, 26, 26, 26, 26, 26, 161, 108,
- 87, 87, 87, 87, 87, 153, 109, 153, 153, 153,
- 124, 153, 124, 153, 161, 161, 157, 166, 157, 166,
- 153, 115, 116, 153, 153, 153, 153, 153, 154, 123,
- 154, 154, 154, 58, 154, 58, 154, 58, 94, 58,
- 94, 128, 94, 154, 94, 129, 154, 154, 154, 154,
- 154, 265, 132, 265, 265, 265, 167, 265, 167, 265,
- 133, 12, 12, 12, 144, 12, 265, 12, 158, 265,
- 265, 265, 265, 265, 160, 162, 163, 12, 12, 12,
- 12, 12, 13, 13, 13, 169, 13, 178, 13, 36,
- 36, 36, 189, 36, 202, 36, 213, 218, 13, 13,
- 13, 13, 13, 220, 222, 36, 36, 36, 36, 36,
- 62, 62, 62, 225, 62, 230, 62, 64, 64, 232,
- 236, 64, 238, 64, 245, 253, 62, 62, 62, 62,
- 62, 256, 257, 64, 64, 64, 64, 64, 68, 68,
- 68, 260, 68, 264, 68, 69, 69, 267, 268, 69,
- 271, 69, 273, 274, 68, 68, 68, 68, 68, 280,
- 281, 69, 69, 69, 69, 69, 70, 70, 70, 283,
- 70, 284, 70, 75, 75, 75, 285, 75, 288, 75,
- 290, 292, 70, 70, 70, 70, 70, 293, 295, 75,
- 75, 75, 75, 75, 103, 103, 103, 300, 103, 304,
- 103, 104, 104, 104, 307, 104, 308, 104, 311, 312,
- 103, 103, 103, 103, 103, 313, 316, 104, 104, 104,
- 104, 104, 111, 111, nil, nil, 111, nil, 111, 117,
- 117, nil, nil, 117, nil, 117, nil, nil, 111, 111,
- 111, 111, 111, nil, nil, 117, 117, 117, 117, 117,
- 118, 118, 118, nil, 118, nil, 118, 126, 126, 126,
- nil, 126, nil, 126, nil, nil, 118, 118, 118, 118,
- 118, nil, nil, 126, 126, 126, 126, 126, 130, 130,
- 130, nil, 130, nil, 130, 143, 143, 143, nil, 143,
- nil, 143, nil, nil, 130, 130, 130, 130, 130, nil,
- nil, 143, 143, 143, 143, 143, 145, 145, 145, nil,
- 145, nil, 145, 146, 146, nil, nil, 146, nil, 146,
- nil, nil, 145, 145, 145, 145, 145, nil, nil, 146,
- 146, 146, 146, 146, 148, 148, 148, nil, 148, nil,
- 148, 149, 149, 149, nil, 149, nil, 149, nil, nil,
- 148, 148, 148, 148, 148, nil, nil, 149, 149, 149,
- 149, 149, 150, 150, 150, nil, 150, nil, 150, 205,
- 205, 205, nil, 205, nil, 205, nil, nil, 150, 150,
- 150, 150, 150, nil, nil, 205, 205, 205, 205, 205,
- 215, 215, nil, nil, 215, nil, 215, 216, 216, 216,
- nil, 216, nil, 216, nil, nil, 215, 215, 215, 215,
- 215, nil, nil, 216, 216, 216, 216, 216, 217, 217,
- 217, nil, 217, nil, 217, 240, 240, 240, nil, 240,
- nil, 240, nil, nil, 217, 217, 217, 217, 217, nil,
- nil, 240, 240, 240, 240, 240, 244, 244, 244, nil,
- 244, nil, 244, 247, 247, 247, nil, 247, nil, 247,
- nil, nil, 244, 244, 244, 244, 244, nil, nil, 247,
- 247, 247, 247, 247, 249, 249, 249, nil, 249, nil,
- 249, 250, 250, 250, nil, 250, nil, 250, nil, nil,
- 249, 249, 249, 249, 249, nil, nil, 250, 250, 250,
- 250, 250, 251, 251, 251, nil, 251, nil, 251, 262,
- 262, 262, nil, 262, nil, 262, nil, nil, 251, 251,
- 251, 251, 251, nil, nil, 262, 262, 262, 262, 262,
- 263, 263, 263, nil, 263, nil, 263, 310, 310, 310,
- nil, 310, nil, 310, nil, nil, 263, 263, 263, 263,
- 263, 57, nil, 310, 310, 310, 310, 310, 168, 168,
- 168, 57, 168, 57, 168, 57, 212, 57, nil, 254,
- nil, nil, nil, nil, 168, nil, 212, 261, 212, 254,
- 212, 254, 212, 254, 95, 254, 95, 261, 95, 261,
- 95, 261, nil, 261, 270, 270, 270, nil, 270, nil,
- 270, 275, 275, 275, nil, 275, nil, 275, nil, nil,
- 270, nil, 296, 296, 296, nil, 296, 275, 296, 297,
- 297, 297, nil, 297, nil, 297, nil, nil, 296, nil,
- 101, 101, 101, nil, 101, 297, 101, 110, 110, nil,
- 125, 110, 125, 110, 125, 159, 125, 159, 190, 159,
- 190, 159, 190, 191, 190, 191, 233, 191, 233, 191,
- 233, 234, 233, 234, nil, 234, nil, 234, 239, 239,
- 239, 255, 239, 255, 239, 255, nil, 255 ]
-
-racc_action_pointer = [
- 63, 4, nil, nil, nil, 0, nil, nil, nil, 2,
- 26, nil, 245, 266, -11, nil, 21, 18, 49, nil,
- nil, nil, 54, 78, 82, nil, 161, nil, nil, nil,
- nil, nil, nil, 112, 138, nil, 273, 42, 60, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 110, 89, nil, 70, nil, -15, 745, 217, 102,
- 103, nil, 294, -5, 301, nil, 107, 86, 322, 329,
- 350, 129, 100, -5, 126, 357, nil, 117, 115, 137,
- nil, nil, nil, nil, nil, nil, nil, 168, 142, 33,
- 146, 70, 118, 148, 222, 768, nil, nil, 121, 176,
- nil, 814, nil, 378, 385, nil, nil, 180, 193, 194,
- 821, 406, 141, 149, nil, 209, 216, 413, 434, nil,
- nil, 169, nil, 199, 192, 824, 441, 2, 235, 240,
- 462, nil, 238, 254, 40, nil, nil, nil, nil, nil,
- nil, nil, nil, 469, 260, 490, 497, 133, 518, 525,
- 546, 26, nil, 191, 214, nil, nil, 198, 256, 829,
- 262, 184, 263, 246, nil, nil, 199, 238, 742, 270,
- nil, nil, nil, nil, nil, nil, nil, nil, 273, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 280,
- 832, 837, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 282, nil, nil, 553, nil, nil, nil, nil,
- nil, nil, 760, 282, 144, 574, 581, 602, 291, nil,
- 289, nil, 290, nil, 33, 285, nil, nil, nil, nil,
- 303, nil, 307, 840, 845, nil, 308, nil, 307, 852,
- 609, nil, nil, nil, 630, 309, nil, 637, nil, 658,
- 665, 686, nil, 307, 763, 855, 301, 302, nil, nil,
- 335, 771, 693, 714, 329, 237, nil, 317, 318, nil,
- 778, 335, nil, 337, 338, 785, nil, nil, nil, nil,
- 341, 354, nil, 357, 359, 364, nil, nil, 372, nil,
- 374, nil, 369, 375, nil, 370, 796, 803, nil, nil,
- 382, nil, nil, nil, 369, nil, nil, 374, 388, nil,
- 721, 390, 397, 403, nil, nil, 398, nil, nil, nil ]
-
-racc_action_default = [
- -176, -176, -1, -2, -3, -4, -5, -6, -7, -8,
- -9, -10, -176, -176, -34, -35, -36, -37, -38, -39,
- -40, -41, -176, -49, -51, -52, -176, -64, -67, -68,
- -69, -70, -71, -176, -176, -107, -176, -109, -110, -111,
- -128, -129, -130, -131, -132, -133, -134, -135, -136, -137,
- -138, -176, -176, -76, -176, -112, -176, -176, -176, -8,
- -9, -11, -176, -176, -176, -72, -176, -176, -55, -176,
- -170, -176, -8, -9, -10, -176, -38, -176, -81, -86,
- -87, -88, -90, -91, -92, -93, -94, -176, -176, -176,
- -176, -176, -176, -176, -176, -176, 320, -12, -13, -176,
- -16, -176, -31, -176, -176, -152, -27, -29, -176, -126,
- -176, -176, -176, -176, -28, -30, -176, -176, -176, -153,
- -160, -176, -162, -176, -176, -176, -176, -176, -176, -176,
- -73, -174, -176, -176, -8, -47, -48, -49, -50, -51,
- -53, -54, -58, -56, -176, -171, -176, -176, -98, -97,
- -96, -176, -79, -176, -176, -95, -80, -176, -176, -176,
- -126, -176, -126, -176, -14, -18, -176, -176, -176, -176,
- -147, -148, -149, -150, -145, -151, -146, -114, -44, -59,
- -127, -60, -61, -62, -63, -139, -140, -141, -142, -176,
- -176, -176, -120, -45, -154, -155, -156, -157, -158, -159,
- -161, -163, -176, -29, -30, -176, -26, -42, -77, -43,
- -78, -175, -176, -176, -176, -176, -172, -74, -176, -101,
- -176, -100, -176, -99, -176, -83, -84, -85, -89, -108,
- -176, -113, -176, -176, -176, -117, -176, -19, -176, -176,
- -176, -143, -20, -21, -176, -176, -32, -176, -164, -176,
- -176, -176, -169, -176, -176, -115, -176, -176, -121, -102,
- -176, -176, -75, -173, -44, -176, -116, -176, -176, -118,
- -176, -176, -144, -176, -176, -176, -168, -165, -166, -167,
- -176, -176, -106, -126, -176, -176, -105, -103, -176, -57,
- -176, -82, -176, -176, -23, -176, -176, -176, -15, -33,
- -176, -46, -119, -122, -176, -104, -124, -176, -176, -25,
- -176, -176, -176, -176, -24, -22, -176, -123, -125, -17 ]
-
-racc_goto_table = [
- 70, 179, 130, 13, 228, 11, 248, 115, 123, 226,
- 227, 113, 245, 5, 14, 9, 63, 11, 68, 10,
- 18, 132, 22, 23, 71, 1, 24, 59, 237, 243,
- 2, 60, 309, 309, 241, 241, 75, 75, 131, 77,
- 88, 3, 4, 70, 162, 163, 6, 160, 161, 61,
- 97, 89, 231, 98, 235, 91, 164, 99, 298, 100,
- 242, 143, 102, 299, 15, 126, 127, 144, 16, 17,
- 75, 142, 11, 145, 135, 204, 109, 174, 151, 203,
- 136, 138, 134, 27, 217, 185, 10, 18, 28, 140,
- 137, 174, 11, 139, 29, 30, 31, 32, 225, 90,
- 155, 105, 59, nil, nil, nil, 60, 176, 248, 230,
- nil, nil, nil, 248, 294, 228, nil, nil, nil, nil,
- 131, 291, nil, nil, nil, nil, nil, nil, nil, 205,
- 206, nil, nil, 211, 248, 248, nil, nil, nil, nil,
- 256, 257, nil, nil, nil, nil, 142, nil, 216, nil,
- nil, nil, nil, 262, 224, 223, 75, 75, nil, nil,
- nil, nil, 259, 219, 220, 220, nil, nil, 221, 222,
- nil, nil, nil, nil, nil, 302, nil, nil, nil, nil,
- nil, nil, nil, 267, 268, nil, nil, nil, nil, 131,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 282, 283, nil, nil, 206, nil,
- nil, 287, nil, nil, 185, nil, nil, nil, 185, 263,
- 211, 174, nil, nil, nil, nil, nil, 206, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 277, 278, 279, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 211, 289, nil, 75, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 174 ]
-
-racc_goto_check = [
- 43, 45, 52, 23, 58, 11, 66, 26, 26, 57,
- 57, 24, 16, 5, 30, 9, 23, 11, 42, 10,
- 34, 24, 38, 40, 53, 1, 41, 9, 19, 19,
- 2, 10, 22, 22, 25, 25, 23, 23, 43, 54,
- 54, 3, 4, 43, 26, 26, 6, 24, 24, 7,
- 12, 9, 45, 13, 45, 10, 14, 15, 17, 18,
- 20, 42, 28, 29, 31, 23, 23, 53, 32, 33,
- 23, 23, 11, 23, 39, 26, 44, 43, 23, 24,
- 5, 30, 9, 46, 52, 43, 10, 34, 47, 38,
- 40, 43, 11, 41, 48, 49, 50, 51, 56, 61,
- 5, 65, 9, nil, nil, nil, 10, 23, 66, 26,
- nil, nil, nil, 66, 16, 58, nil, nil, nil, nil,
- 43, 57, nil, nil, nil, nil, nil, nil, nil, 23,
- 23, nil, nil, 23, 66, 66, nil, nil, nil, nil,
- 26, 26, nil, nil, nil, nil, 23, nil, 23, nil,
- nil, nil, nil, 52, 23, 11, 23, 23, nil, nil,
- nil, nil, 26, 9, 9, 9, nil, nil, 10, 10,
- nil, nil, nil, nil, nil, 45, nil, nil, nil, nil,
- nil, nil, nil, 26, 26, nil, nil, nil, nil, 43,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 26, 26, nil, nil, 23, nil,
- nil, 26, nil, nil, 43, nil, nil, nil, 43, 23,
- 23, 43, nil, nil, nil, nil, nil, 23, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 23, 23, 23, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 23, 23, nil, 23, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 43 ]
-
-racc_goto_pointer = [
- nil, 25, 30, 41, 42, 13, 46, 37, nil, 15,
- 19, 5, -2, 1, -42, 5, -156, -217, 7, -138,
- -107, nil, -264, 3, -45, -132, -50, nil, 10, -212,
- 14, 64, 68, 69, 20, nil, nil, nil, 22, 7,
- 23, 26, -8, -26, 22, -108, 83, 88, 94, 95,
- 96, 97, -62, -2, 6, nil, -55, -144, -150, nil,
- nil, 63, nil, nil, nil, 49, -162, nil ]
-
-racc_goto_default = [
- nil, nil, nil, nil, nil, 84, nil, 7, 8, 72,
- 73, 74, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 238, 252, 62, 107, 106, nil, 114, nil, 246,
- 86, nil, nil, nil, 76, 19, 20, 21, nil, nil,
- 85, nil, nil, 41, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 78, 79, 80, 81, 82,
- 83, 35, 37, 38, 39, 119, 120, 122 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 38, :_reduce_none,
- 1, 38, :_reduce_none,
- 1, 38, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 42, :_reduce_none,
- 1, 42, :_reduce_none,
- 1, 44, :_reduce_8,
- 1, 44, :_reduce_9,
- 1, 44, :_reduce_10,
- 2, 45, :_reduce_11,
- 3, 43, :_reduce_12,
- 1, 49, :_reduce_none,
- 2, 49, :_reduce_14,
- 5, 50, :_reduce_15,
- 1, 50, :_reduce_none,
- 8, 55, :_reduce_17,
- 1, 51, :_reduce_18,
- 2, 51, :_reduce_19,
- 2, 51, :_reduce_20,
- 1, 57, :_reduce_none,
- 5, 57, :_reduce_22,
- 3, 56, :_reduce_23,
- 5, 56, :_reduce_24,
- 4, 56, :_reduce_25,
- 4, 46, :_reduce_26,
- 1, 61, :_reduce_none,
- 1, 63, :_reduce_none,
- 3, 47, :_reduce_29,
- 3, 48, :_reduce_30,
- 1, 52, :_reduce_none,
- 1, 53, :_reduce_none,
- 1, 54, :_reduce_none,
- 1, 40, :_reduce_none,
- 1, 40, :_reduce_none,
- 1, 40, :_reduce_none,
- 1, 40, :_reduce_none,
- 1, 67, :_reduce_38,
- 1, 67, :_reduce_none,
- 1, 67, :_reduce_none,
- 1, 67, :_reduce_none,
- 4, 71, :_reduce_42,
- 4, 71, :_reduce_43,
- 4, 72, :_reduce_44,
- 4, 73, :_reduce_45,
- 7, 74, :_reduce_46,
- 3, 68, :_reduce_47,
- 1, 75, :_reduce_none,
- 1, 75, :_reduce_none,
- 1, 75, :_reduce_none,
- 1, 75, :_reduce_none,
- 1, 75, :_reduce_none,
- 1, 76, :_reduce_none,
- 1, 76, :_reduce_none,
- 2, 69, :_reduce_55,
- 3, 69, :_reduce_56,
- 5, 79, :_reduce_57,
- 2, 79, :_reduce_58,
- 4, 70, :_reduce_59,
- 2, 81, :_reduce_60,
- 2, 81, :_reduce_61,
- 2, 81, :_reduce_62,
- 2, 81, :_reduce_63,
- 1, 41, :_reduce_none,
- 1, 41, :_reduce_none,
- 1, 41, :_reduce_none,
- 1, 41, :_reduce_none,
- 1, 41, :_reduce_none,
- 1, 41, :_reduce_none,
- 1, 41, :_reduce_none,
- 1, 41, :_reduce_none,
- 2, 83, :_reduce_72,
- 3, 88, :_reduce_73,
- 4, 88, :_reduce_74,
- 5, 88, :_reduce_75,
- 2, 87, :_reduce_76,
- 4, 86, :_reduce_77,
- 4, 86, :_reduce_78,
- 3, 84, :_reduce_79,
- 3, 85, :_reduce_80,
- 1, 91, :_reduce_81,
- 5, 91, :_reduce_82,
- 3, 91, :_reduce_83,
- 3, 91, :_reduce_84,
- 3, 91, :_reduce_85,
- 1, 91, :_reduce_86,
- 1, 91, :_reduce_87,
- 1, 93, :_reduce_88,
- 3, 93, :_reduce_89,
- 1, 95, :_reduce_none,
- 1, 95, :_reduce_none,
- 1, 96, :_reduce_none,
- 1, 96, :_reduce_none,
- 1, 96, :_reduce_none,
- 2, 92, :_reduce_95,
- 2, 94, :_reduce_96,
- 2, 94, :_reduce_97,
- 2, 94, :_reduce_98,
- 3, 97, :_reduce_99,
- 3, 97, :_reduce_100,
- 3, 97, :_reduce_101,
- 5, 78, :_reduce_102,
- 6, 78, :_reduce_103,
- 7, 78, :_reduce_104,
- 6, 78, :_reduce_105,
- 6, 78, :_reduce_106,
- 1, 77, :_reduce_none,
- 4, 77, :_reduce_108,
- 1, 98, :_reduce_109,
- 1, 98, :_reduce_110,
- 1, 98, :_reduce_111,
- 2, 99, :_reduce_112,
- 4, 100, :_reduce_113,
- 4, 100, :_reduce_114,
- 5, 100, :_reduce_115,
- 5, 100, :_reduce_116,
- 4, 101, :_reduce_117,
- 5, 101, :_reduce_118,
- 7, 101, :_reduce_119,
- 4, 101, :_reduce_120,
- 5, 101, :_reduce_121,
- 7, 101, :_reduce_122,
- 9, 101, :_reduce_123,
- 7, 101, :_reduce_124,
- 9, 101, :_reduce_125,
- 0, 82, :_reduce_126,
- 1, 82, :_reduce_none,
- 1, 60, :_reduce_128,
- 1, 60, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 2, 62, :_reduce_139,
- 2, 62, :_reduce_140,
- 2, 62, :_reduce_141,
- 2, 62, :_reduce_142,
- 1, 58, :_reduce_none,
- 2, 58, :_reduce_144,
- 2, 102, :_reduce_145,
- 2, 102, :_reduce_146,
- 2, 102, :_reduce_147,
- 2, 102, :_reduce_148,
- 2, 102, :_reduce_149,
- 2, 102, :_reduce_150,
- 2, 65, :_reduce_none,
- 1, 65, :_reduce_none,
- 1, 103, :_reduce_none,
- 2, 103, :_reduce_154,
- 2, 103, :_reduce_155,
- 2, 103, :_reduce_156,
- 2, 103, :_reduce_157,
- 2, 103, :_reduce_158,
- 2, 103, :_reduce_159,
- 1, 104, :_reduce_none,
- 2, 104, :_reduce_161,
- 1, 64, :_reduce_none,
- 2, 64, :_reduce_163,
- 1, 59, :_reduce_none,
- 2, 59, :_reduce_165,
- 2, 59, :_reduce_166,
- 2, 59, :_reduce_167,
- 2, 66, :_reduce_none,
- 1, 66, :_reduce_none,
- 1, 90, :_reduce_170,
- 2, 90, :_reduce_171,
- 3, 90, :_reduce_172,
- 4, 90, :_reduce_173,
- 1, 89, :_reduce_174,
- 2, 89, :_reduce_175 ]
-
-racc_reduce_n = 176
-
-racc_shift_n = 320
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :T => 2,
- :Z => 3,
- :E => 4,
- :X => 5,
- :U => 6,
- :UNKNOWN => 7,
- :OPEN => 8,
- :LONGYEAR => 9,
- :UNMATCHED => 10,
- :DOTS => 11,
- :UA => 12,
- :PUA => 13,
- "-" => 14,
- ":" => 15,
- "2" => 16,
- "4" => 17,
- "0" => 18,
- "+" => 19,
- "1" => 20,
- "/" => 21,
- "3" => 22,
- "^" => 23,
- "[" => 24,
- "]" => 25,
- "{" => 26,
- "}" => 27,
- "," => 28,
- "(" => 29,
- ")" => 30,
- "-(" => 31,
- "5" => 32,
- "6" => 33,
- "7" => 34,
- "8" => 35,
- "9" => 36 }
-
-racc_nt_base = 37
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "T",
- "Z",
- "E",
- "X",
- "U",
- "UNKNOWN",
- "OPEN",
- "LONGYEAR",
- "UNMATCHED",
- "DOTS",
- "UA",
- "PUA",
- "\"-\"",
- "\":\"",
- "\"2\"",
- "\"4\"",
- "\"0\"",
- "\"+\"",
- "\"1\"",
- "\"/\"",
- "\"3\"",
- "\"^\"",
- "\"[\"",
- "\"]\"",
- "\"{\"",
- "\"}\"",
- "\",\"",
- "\"(\"",
- "\")\"",
- "\"-(\"",
- "\"5\"",
- "\"6\"",
- "\"7\"",
- "\"8\"",
- "\"9\"",
- "$start",
- "edtf",
- "level_0_expression",
- "level_1_expression",
- "level_2_expression",
- "date",
- "date_time",
- "positive_date",
- "negative_date",
- "year",
- "year_month",
- "year_month_day",
- "time",
- "base_time",
- "zone_offset",
- "hour",
- "minute",
- "second",
- "midnight",
- "zone_offset_hour",
- "positive_zone_offset",
- "d01_13",
- "d01_59",
- "digit",
- "month",
- "d01_12",
- "day",
- "d01_31",
- "d00_23",
- "d00_59",
- "unspecified",
- "level_1_interval",
- "long_year_simple",
- "season",
- "unspecified_year",
- "unspecified_month",
- "unspecified_day",
- "unspecified_day_and_month",
- "level_1_start",
- "level_1_end",
- "partial_uncertain_or_approximate",
- "partial_unspecified",
- "long_year",
- "positive_digit",
- "season_number",
- "ua",
- "season_qualified",
- "choice_list",
- "inclusive_list",
- "masked_precision",
- "date_and_calendar",
- "long_year_scientific",
- "integer",
- "int1_4",
- "list",
- "earlier",
- "list_elements",
- "later",
- "list_element",
- "atomic",
- "consecutives",
- "pua_base",
- "pua_year",
- "pua_year_month",
- "pua_year_month_day",
- "d01_23",
- "d01_29",
- "d01_30" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-# reduce 1 omitted
-
-# reduce 2 omitted
-
-# reduce 3 omitted
-
-# reduce 4 omitted
-
-# reduce 5 omitted
-
-# reduce 6 omitted
-
-# reduce 7 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 54)
- def _reduce_8(val, _values, result)
- result = Date.new(val[0]).year_precision!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 55)
- def _reduce_9(val, _values, result)
- result = Date.new(*val.flatten).month_precision!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 56)
- def _reduce_10(val, _values, result)
- result = Date.new(*val.flatten).day_precision!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 59)
- def _reduce_11(val, _values, result)
- result = -val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 63)
- def _reduce_12(val, _values, result)
- result = DateTime.new(val[0].year, val[0].month, val[0].day, *val[2])
- result.skip_timezone = (val[2].length == 3)
-
- result
- end
-.,.,
-
-# reduce 13 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 68)
- def _reduce_14(val, _values, result)
- result = val.flatten
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 70)
- def _reduce_15(val, _values, result)
- result = val.values_at(0, 2, 4)
- result
- end
-.,.,
-
-# reduce 16 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 73)
- def _reduce_17(val, _values, result)
- result = [24, 0, 0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 75)
- def _reduce_18(val, _values, result)
- result = 0
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 76)
- def _reduce_19(val, _values, result)
- result = -1 * val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 77)
- def _reduce_20(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-# reduce 21 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 81)
- def _reduce_22(val, _values, result)
- result = 0
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 85)
- def _reduce_23(val, _values, result)
- result = Rational(val[0] * 60 + val[2], 1440)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 86)
- def _reduce_24(val, _values, result)
- result = Rational(840, 1440)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 87)
- def _reduce_25(val, _values, result)
- result = Rational(val[3], 1440)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 91)
- def _reduce_26(val, _values, result)
- result = val.zip([1000,100,10,1]).reduce(0) { |s,(a,b)| s += a * b }
-
- result
- end
-.,.,
-
-# reduce 27 omitted
-
-# reduce 28 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 97)
- def _reduce_29(val, _values, result)
- result = [val[0], val[2]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 104)
- def _reduce_30(val, _values, result)
- result = val[0] << val[2]
- if result[2] > 31 || (result[2] > 30 && [2,4,6,9,11].include?(result[1])) || (result[2] > 29 && result[1] == 2)
- raise ArgumentError, "invalid date (invalid days #{result[2]} for month #{result[1]})"
- end
-
- result
- end
-.,.,
-
-# reduce 31 omitted
-
-# reduce 32 omitted
-
-# reduce 33 omitted
-
-# reduce 34 omitted
-
-# reduce 35 omitted
-
-# reduce 36 omitted
-
-# reduce 37 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 127)
- def _reduce_38(val, _values, result)
- result = Date.new(val[0][0]).year_precision!
- result.unspecified.year[2,2] = val[0][1]
-
- result
- end
-.,.,
-
-# reduce 39 omitted
-
-# reduce 40 omitted
-
-# reduce 41 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 138)
- def _reduce_42(val, _values, result)
- result = [val[0,3].zip([1000,100,10]).reduce(0) { |s,(a,b)| s += a * b }, [false,true]]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 142)
- def _reduce_43(val, _values, result)
- result = [val[0,2].zip([1000,100]).reduce(0) { |s,(a,b)| s += a * b }, [true, true]]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 146)
- def _reduce_44(val, _values, result)
- result = Date.new(val[0]).unspecified!(:month)
- result.precision = :month
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 151)
- def _reduce_45(val, _values, result)
- result = Date.new(*val[0]).unspecified!(:day)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 155)
- def _reduce_46(val, _values, result)
- result = Date.new(val[0]).unspecified!([:day,:month])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 160)
- def _reduce_47(val, _values, result)
- result = Interval.new(val[0], val[2])
-
- result
- end
-.,.,
-
-# reduce 48 omitted
-
-# reduce 49 omitted
-
-# reduce 50 omitted
-
-# reduce 51 omitted
-
-# reduce 52 omitted
-
-# reduce 53 omitted
-
-# reduce 54 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 171)
- def _reduce_55(val, _values, result)
- result = Date.new(val[1])
- result.precision = :year
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 176)
- def _reduce_56(val, _values, result)
- result = Date.new(-1 * val[2])
- result.precision = :year
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 183)
- def _reduce_57(val, _values, result)
- result = val.zip([10000,1000,100,10,1]).reduce(0) { |s,(a,b)| s += a * b }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 185)
- def _reduce_58(val, _values, result)
- result = 10 * val[0] + val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 190)
- def _reduce_59(val, _values, result)
- result = Season.new(val[0], val[2])
- val[3].each { |ua| result.send(ua) }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 194)
- def _reduce_60(val, _values, result)
- result = 21
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 195)
- def _reduce_61(val, _values, result)
- result = 22
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 196)
- def _reduce_62(val, _values, result)
- result = 23
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 197)
- def _reduce_63(val, _values, result)
- result = 24
- result
- end
-.,.,
-
-# reduce 64 omitted
-
-# reduce 65 omitted
-
-# reduce 66 omitted
-
-# reduce 67 omitted
-
-# reduce 68 omitted
-
-# reduce 69 omitted
-
-# reduce 70 omitted
-
-# reduce 71 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 215)
- def _reduce_72(val, _values, result)
- result = val[0]; result.qualifier = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 221)
- def _reduce_73(val, _values, result)
- result = Date.new(val[0].year * 10 ** val[2]).year_precision!
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 225)
- def _reduce_74(val, _values, result)
- result = Date.new(val[1] * 10 ** val[3]).year_precision!
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 229)
- def _reduce_75(val, _values, result)
- result = Date.new(-1 * val[2] * 10 ** val[4]).year_precision!
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 234)
- def _reduce_76(val, _values, result)
- result = val[0]; result.calendar = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 240)
- def _reduce_77(val, _values, result)
- d = val[0,3].zip([1000,100,10]).reduce(0) { |s,(a,b)| s += a * b }
- result = EDTF::Decade.new(d)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 245)
- def _reduce_78(val, _values, result)
- d = val[0,2].zip([1000,100]).reduce(0) { |s,(a,b)| s += a * b }
- result = EDTF::Century.new(d)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 251)
- def _reduce_79(val, _values, result)
- result = val[1].choice!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 253)
- def _reduce_80(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 255)
- def _reduce_81(val, _values, result)
- result = EDTF::Set.new(val[0]).earlier!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 256)
- def _reduce_82(val, _values, result)
- result = EDTF::Set.new([val[0]] + val[2] + [val[4]]).earlier!.later!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 257)
- def _reduce_83(val, _values, result)
- result = EDTF::Set.new([val[0]] + val[2]).earlier!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 258)
- def _reduce_84(val, _values, result)
- result = EDTF::Set.new([val[0]] + [val[2]]).earlier!.later!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 259)
- def _reduce_85(val, _values, result)
- result = EDTF::Set.new(val[0] + [val[2]]).later!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 260)
- def _reduce_86(val, _values, result)
- result = EDTF::Set.new(*val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 261)
- def _reduce_87(val, _values, result)
- result = EDTF::Set.new(val[0]).later!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 264)
- def _reduce_88(val, _values, result)
- result = [val[0]].flatten
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 265)
- def _reduce_89(val, _values, result)
- result = val[0] + [val[2]].flatten
- result
- end
-.,.,
-
-# reduce 90 omitted
-
-# reduce 91 omitted
-
-# reduce 92 omitted
-
-# reduce 93 omitted
-
-# reduce 94 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 277)
- def _reduce_95(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 279)
- def _reduce_96(val, _values, result)
- result = Date.new(*val[0]).year_precision!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 280)
- def _reduce_97(val, _values, result)
- result = Date.new(*val[0]).month_precision!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 281)
- def _reduce_98(val, _values, result)
- result = Date.new(val[0]).year_precision!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 284)
- def _reduce_99(val, _values, result)
- result = (Date.new(val[0]).day_precision! .. Date.new(val[2]).day_precision!)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 285)
- def _reduce_100(val, _values, result)
- result = (Date.new(val[0]).month_precision! .. Date.new(val[2]).month_precision!)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 286)
- def _reduce_101(val, _values, result)
- result = (Date.new(val[0]).year_precision! .. Date.new(val[2]).year_precision!)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 292)
- def _reduce_102(val, _values, result)
- result = Date.new(val[0][0], val[2], val[4])
- result.unspecified.year[2,2] = val[0][1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 297)
- def _reduce_103(val, _values, result)
- result = Date.new(val[0][0], 1, val[5])
- result.unspecified.year[2,2] = val[0][1]
- result.unspecified!(:month)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 303)
- def _reduce_104(val, _values, result)
- result = Date.new(val[0][0], 1, 1)
- result.unspecified.year[2,2] = val[0][1]
- result.unspecified!([:month, :day])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 309)
- def _reduce_105(val, _values, result)
- result = Date.new(val[0][0], val[2], 1)
- result.unspecified.year[2,2] = val[0][1]
- result.unspecified!(:day)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 315)
- def _reduce_106(val, _values, result)
- result = Date.new(val[0], 1, val[5])
- result.unspecified!(:month)
-
- result
- end
-.,.,
-
-# reduce 107 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 322)
- def _reduce_108(val, _values, result)
- result = uoa(val[1], val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 325)
- def _reduce_109(val, _values, result)
- result = val[0].year_precision!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 326)
- def _reduce_110(val, _values, result)
- result = val[0][0].month_precision!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 327)
- def _reduce_111(val, _values, result)
- result = val[0].day_precision!
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 329)
- def _reduce_112(val, _values, result)
- result = uoa(Date.new(val[0]), val[1], :year)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 333)
- def _reduce_113(val, _values, result)
- result = [uoa(val[0].change(:month => val[2]), val[3], [:month, :year])]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 336)
- def _reduce_114(val, _values, result)
- result = [uoa(Date.new(val[0], val[2]), val[3], [:year, :month])]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 339)
- def _reduce_115(val, _values, result)
- result = [uoa(Date.new(val[0], val[2]), val[4], [:month]), true]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 342)
- def _reduce_116(val, _values, result)
- result = [uoa(val[0].change(:month => val[2]), val[4], [:month]), true]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 348)
- def _reduce_117(val, _values, result)
- result = uoa(val[0][0].change(:day => val[2]), val[3], val[0][1] ? [:day] : nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 351)
- def _reduce_118(val, _values, result)
- result = uoa(val[0][0].change(:day => val[2]), val[4], [:day])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 354)
- def _reduce_119(val, _values, result)
- result = uoa(uoa(Date.new(val[0], val[2], val[5]), val[4], :month), val[6], :day)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 357)
- def _reduce_120(val, _values, result)
- result = uoa(Date.new(val[0][0], val[0][1], val[2]), val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 360)
- def _reduce_121(val, _values, result)
- result = uoa(Date.new(val[0][0], val[0][1], val[2]), val[4], [:day])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 363)
- def _reduce_122(val, _values, result)
- result = uoa(Date.new(val[0], val[2], val[4]), val[6], [:month, :day])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 366)
- def _reduce_123(val, _values, result)
- result = Date.new(val[0], val[2], val[4])
- result = uoa(result, val[6], [:day])
- result = uoa(result, val[8], [:month, :day])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 371)
- def _reduce_124(val, _values, result)
- result = val[0].change(:month => val[2], :day => val[4])
- result = uoa(result, val[6], [:month, :day])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 375)
- def _reduce_125(val, _values, result)
- result = val[0].change(:month => val[2], :day => val[4])
- result = uoa(result, val[6], [:day])
- result = uoa(result, val[8], [:month, :day])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 386)
- def _reduce_126(val, _values, result)
- result = []
- result
- end
-.,.,
-
-# reduce 127 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 390)
- def _reduce_128(val, _values, result)
- result = 0
- result
- end
-.,.,
-
-# reduce 129 omitted
-
-# reduce 130 omitted
-
-# reduce 131 omitted
-
-# reduce 132 omitted
-
-# reduce 133 omitted
-
-# reduce 134 omitted
-
-# reduce 135 omitted
-
-# reduce 136 omitted
-
-# reduce 137 omitted
-
-# reduce 138 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 396)
- def _reduce_139(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 397)
- def _reduce_140(val, _values, result)
- result = 10
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 398)
- def _reduce_141(val, _values, result)
- result = 11
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 399)
- def _reduce_142(val, _values, result)
- result = 12
- result
- end
-.,.,
-
-# reduce 143 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 403)
- def _reduce_144(val, _values, result)
- result = 13
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 406)
- def _reduce_145(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 407)
- def _reduce_146(val, _values, result)
- result = 10 + val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 408)
- def _reduce_147(val, _values, result)
- result = 20
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 409)
- def _reduce_148(val, _values, result)
- result = 21
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 410)
- def _reduce_149(val, _values, result)
- result = 22
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 411)
- def _reduce_150(val, _values, result)
- result = 23
- result
- end
-.,.,
-
-# reduce 151 omitted
-
-# reduce 152 omitted
-
-# reduce 153 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 419)
- def _reduce_154(val, _values, result)
- result = 24
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 420)
- def _reduce_155(val, _values, result)
- result = 25
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 421)
- def _reduce_156(val, _values, result)
- result = 26
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 422)
- def _reduce_157(val, _values, result)
- result = 27
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 423)
- def _reduce_158(val, _values, result)
- result = 28
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 424)
- def _reduce_159(val, _values, result)
- result = 29
- result
- end
-.,.,
-
-# reduce 160 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 428)
- def _reduce_161(val, _values, result)
- result = 30
- result
- end
-.,.,
-
-# reduce 162 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 432)
- def _reduce_163(val, _values, result)
- result = 31
- result
- end
-.,.,
-
-# reduce 164 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 436)
- def _reduce_165(val, _values, result)
- result = 30 + val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 437)
- def _reduce_166(val, _values, result)
- result = 40 + val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 438)
- def _reduce_167(val, _values, result)
- result = 50 + val[1]
- result
- end
-.,.,
-
-# reduce 168 omitted
-
-# reduce 169 omitted
-
-module_eval(<<'.,.,', 'edtf.y', 445)
- def _reduce_170(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 446)
- def _reduce_171(val, _values, result)
- result = 10 * val[0] + val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 449)
- def _reduce_172(val, _values, result)
- result = val.zip([100,10,1]).reduce(0) { |s,(a,b)| s += a * b }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 453)
- def _reduce_173(val, _values, result)
- result = val.zip([1000,100,10,1]).reduce(0) { |s,(a,b)| s += a * b }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 457)
- def _reduce_174(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'edtf.y', 458)
- def _reduce_175(val, _values, result)
- result = 10 * val[0] + val[1]
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module EDTF
diff --git a/test/racc/regress/huia b/test/racc/regress/huia
deleted file mode 100644
index 0b75d39735..0000000000
--- a/test/racc/regress/huia
+++ /dev/null
@@ -1,1392 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-module Huia
- class Parser < Racc::Parser
-
-module_eval(<<'...end huia.y/module_eval...', 'huia.y', 211)
-
-attr_accessor :lexer, :scopes, :state
-
-def initialize lexer
- @lexer = lexer
- @state = []
- @scopes = []
- push_scope
-end
-
-def ast
- @ast ||= do_parse
- @scopes.first
-end
-
-def on_error t, val, vstack
- line = lexer.line
- col = lexer.column
- message = "Unexpected #{token_to_str t} at #{lexer.filename} line #{line}:#{col}:\n\n"
-
- start = line - 5 > 0 ? line - 5 : 0
- i_size = line.to_s.size
- (start..(start + 5)).each do |i|
- message << sprintf("\t%#{i_size}d: %s\n", i, lexer.get_line(i))
- message << "\t#{' ' * i_size} #{'-' * (col - 1)}^\n" if i == line
- end
-
- raise SyntaxError, message
-end
-
-def next_token
- nt = lexer.next_computed_token
- # just use a state stack for now, we'll have to do something
- # more sophisticated soon.
- if nt && nt.first == :state
- if nt.last
- state.push << nt.last
- else
- state.pop
- end
- next_token
- else
- nt
- end
-end
-
-def push_scope
- new_scope = Huia::AST::Scope.new scope
- new_scope.file = lexer.filename
- new_scope.line = lexer.line
- new_scope.column = lexer.column
- scopes.push new_scope
- new_scope
-end
-
-def pop_scope
- scopes.pop
-end
-
-def scope
- scopes.last
-end
-
-def binary left, right, method
- node(:MethodCall, left, node(:CallSignature, method, [right]))
-end
-
-def unary left, method
- node(:MethodCall, left, node(:CallSignature, method))
-end
-
-def node type, *args
- Huia::AST.const_get(type).new(*args).tap do |n|
- n.file = lexer.filename
- n.line = lexer.line
- n.column = lexer.column
- end
-end
-alias n node
-
-def allocate_local name
- node(:Variable, name).tap do |n|
- scope.allocate_local n
- end
-end
-
-def allocate_local_assignment name, value
- node(:Assignment, name, value).tap do |n|
- scope.allocate_local n
- end
-end
-
-def this_closure
- allocate_local('@')
-end
-
-def scope_instance
- node(:ScopeInstance, scope)
-end
-
-def constant name
- return scope_instance if name == 'self'
- node(:Constant, name)
-end
-
-def to_string expr
- node(:MethodCall, expr, node(:CallSignature, 'toString'))
-end
-...end huia.y/module_eval...
-##### State transition tables begin ###
-
-clist = [
-'81,106,40,37,61,62,123,153,135,71,72,77,155,178,179,39,164,37,37,5,6',
-'137,152,73,74,75,36,36,76,28,154,80,166,172,180,22,23,37,26,27,182,60',
-'63,19,164,40,36,61,62,186,,33,71,72,77,,,134,39,133,129,37,5,6,,,73',
-'74,75,,36,76,28,134,80,169,129,,22,23,,26,27,,60,63,19,,40,,61,62,,',
-'33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60',
-'63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80',
-',,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73',
-'74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72',
-'77,,114,,39,,,37,,,113,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63',
-'19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,',
-',22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74',
-'75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77',
-',,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40',
-',61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23',
-',26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36',
-'76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,',
-',37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62',
-',,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27',
-',60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28',
-',80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,',
-',,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71',
-'72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19',
-',40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22',
-'23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75',
-',36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,',
-'39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61',
-'62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26',
-'27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76',
-'28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37',
-',,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33',
-'71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63',
-'19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,',
-',22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74',
-'75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77',
-',,160,39,,,37,5,6,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19',
-',40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22',
-'23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75',
-',36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,',
-'39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61',
-'62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26',
-'27,,60,63,19,,40,,61,62,,,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76',
-'28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62,,,33,71,72,77,,,160,39,',
-',37,5,6,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27,,60,63,19,,40,,61,62',
-',,33,71,72,77,,,,39,,,37,,,,,73,74,75,,36,76,28,,80,,,,22,23,,26,27',
-',60,63,19,85,86,87,88,,84,,33,89,,,,,84,91,5,6,85,86,87,88,,91,,,89',
-',,,,84,,92,93,94,95,96,97,98,91,92,93,94,95,96,97,98,,90,,,,,,,,,92',
-'93,94,95,96,97,98,,90,85,86,87,88,,,,,89,,,,,84,,85,86,87,88,156,,,91',
-'89,,,,,84,,,,,,,,,91,,,92,93,94,95,96,97,98,,90,,,,,,,92,93,94,95,96',
-'97,98,,90,85,86,87,88,,,,,89,,,,,84,,165,85,86,87,88,,,91,,89,,,,167',
-'84,,,,,,,,,91,,92,93,94,95,96,97,98,,90,,,,,,,,92,93,94,95,96,97,98',
-',90,85,86,87,88,,,,,89,,,,,84,,85,86,87,88,,,,91,89,,,,,84,,,,,,,,,91',
-',,92,93,94,95,96,97,98,,90,,,,,,,92,93,94,95,96,97,98,,90,85,86,87,88',
-',,,,89,,,,,84,,85,86,87,88,,,,91,89,,,,,84,,,,,,,,,91,,,92,93,94,95',
-'96,97,98,,90,,,,,,,92,93,94,95,96,97,98,,90,85,86,87,88,,,,,89,,,,,84',
-',85,86,87,88,,,,91,89,,,,,84,,,,,,,,,91,,,92,93,94,95,96,97,98,,90,',
-',,,,,92,93,94,95,96,97,98,,90,85,86,87,88,,,,,89,,,,,84,,85,86,87,88',
-',,,91,89,,,,,84,,,,,,,,,91,,,92,93,94,95,96,97,98,,90,,,,,,,92,93,94',
-'95,96,97,98,,90,85,86,87,88,,,,,89,,160,,,84,,5,6,85,86,87,88,,91,,',
-'89,,,,,84,,,,,,,,,91,92,93,94,95,96,97,98,,90,,,,,,,,,92,93,94,95,96',
-'97,98,,90,85,86,87,88,,,,,89,,,,,84,,85,86,87,88,,,,91,89,,,,,84,,181',
-',,,,,,91,,,92,93,94,95,96,97,98,,90,,,,,,,92,93,94,95,96,97,98,,90,85',
-'86,87,88,,,,,89,,,,,84,,85,86,87,88,,,,91,89,,,,,84,,,,,,,,,91,,,92',
-'93,94,95,96,97,98,,90,,,,,,,92,93,94,95,96,97,98,,90,87,88,,,,,89,,',
-',,84,87,88,,,,,89,,91,,,84,,87,88,,,,,89,91,,,,84,,92,93,94,95,96,97',
-'98,91,90,,,,92,93,94,95,96,97,98,,90,,,,,92,93,94,95,96,97,98,89,90',
-'87,88,,84,,,89,,,,,84,91,,,,,,,,91,,,89,,,,,84,,92,93,94,95,96,97,98',
-'91,92,93,94,95,96,97,98,,90,,89,,,,,84,,92,93,94,95,96,97,98,91,89,',
-',,,84,,,,,89,,,,91,84,,92,93,94,95,96,97,98,91,,,,,,,,92,93,94,95,96',
-'97,98,,,,92,93,94,95,96,97,98' ]
- racc_action_table = arr = ::Array.new(2249, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-clist = [
-'1,33,1,34,1,1,40,100,81,1,1,1,102,161,161,1,112,33,1,1,1,84,100,1,1',
-'1,33,1,1,1,102,1,121,131,163,1,1,84,1,1,178,1,1,1,179,0,84,0,0,183,',
-'1,0,0,0,,,80,0,80,80,0,0,0,,,0,0,0,,0,0,0,128,0,128,128,,0,0,,0,0,,0',
-'0,0,,19,,19,19,,,0,19,19,19,,,,19,,,19,,,,,19,19,19,,19,19,19,,19,,',
-',19,19,,19,19,,19,19,19,,23,,23,23,,,19,23,23,23,,,,23,,,23,,,,,23,23',
-'23,,23,23,23,,23,,,,23,23,,23,23,,23,23,23,,27,,27,27,,,23,27,27,27',
-',,,27,,,27,,,,,27,27,27,,27,27,27,,27,,,,27,27,,27,27,,27,27,27,,37',
-',37,37,,,27,37,37,37,,37,,37,,,37,,,37,,37,37,37,,37,37,37,,37,,,,37',
-'37,,37,37,,37,37,37,,39,,39,39,,,37,39,39,39,,,,39,,,39,,,,,39,39,39',
-',39,39,39,,39,,,,39,39,,39,39,,39,39,39,,60,,60,60,,,39,60,60,60,,,',
-'60,,,60,,,,,60,60,60,,60,60,60,,60,,,,60,60,,60,60,,60,60,60,,61,,61',
-'61,,,60,61,61,61,,,,61,,,61,,,,,61,61,61,,61,61,61,,61,,,,61,61,,61',
-'61,,61,61,61,,62,,62,62,,,61,62,62,62,,,,62,,,62,,,,,62,62,62,,62,62',
-'62,,62,,,,62,62,,62,62,,62,62,62,,63,,63,63,,,62,63,63,63,,,,63,,,63',
-',,,,63,63,63,,63,63,63,,63,,,,63,63,,63,63,,63,63,63,,85,,85,85,,,63',
-'85,85,85,,,,85,,,85,,,,,85,85,85,,85,85,85,,85,,,,85,85,,85,85,,85,85',
-'85,,86,,86,86,,,85,86,86,86,,,,86,,,86,,,,,86,86,86,,86,86,86,,86,,',
-',86,86,,86,86,,86,86,86,,87,,87,87,,,86,87,87,87,,,,87,,,87,,,,,87,87',
-'87,,87,87,87,,87,,,,87,87,,87,87,,87,87,87,,88,,88,88,,,87,88,88,88',
-',,,88,,,88,,,,,88,88,88,,88,88,88,,88,,,,88,88,,88,88,,88,88,88,,89',
-',89,89,,,88,89,89,89,,,,89,,,89,,,,,89,89,89,,89,89,89,,89,,,,89,89',
-',89,89,,89,89,89,,90,,90,90,,,89,90,90,90,,,,90,,,90,,,,,90,90,90,,90',
-'90,90,,90,,,,90,90,,90,90,,90,90,90,,91,,91,91,,,90,91,91,91,,,,91,',
-',91,,,,,91,91,91,,91,91,91,,91,,,,91,91,,91,91,,91,91,91,,92,,92,92',
-',,91,92,92,92,,,,92,,,92,,,,,92,92,92,,92,92,92,,92,,,,92,92,,92,92',
-',92,92,92,,93,,93,93,,,92,93,93,93,,,,93,,,93,,,,,93,93,93,,93,93,93',
-',93,,,,93,93,,93,93,,93,93,93,,94,,94,94,,,93,94,94,94,,,,94,,,94,,',
-',,94,94,94,,94,94,94,,94,,,,94,94,,94,94,,94,94,94,,95,,95,95,,,94,95',
-'95,95,,,,95,,,95,,,,,95,95,95,,95,95,95,,95,,,,95,95,,95,95,,95,95,95',
-',96,,96,96,,,95,96,96,96,,,,96,,,96,,,,,96,96,96,,96,96,96,,96,,,,96',
-'96,,96,96,,96,96,96,,97,,97,97,,,96,97,97,97,,,,97,,,97,,,,,97,97,97',
-',97,97,97,,97,,,,97,97,,97,97,,97,97,97,,98,,98,98,,,97,98,98,98,,,',
-'98,,,98,,,,,98,98,98,,98,98,98,,98,,,,98,98,,98,98,,98,98,98,,111,,111',
-'111,,,98,111,111,111,,,111,111,,,111,111,111,,,111,111,111,,111,111',
-'111,,111,,,,111,111,,111,111,,111,111,111,,123,,123,123,,,111,123,123',
-'123,,,,123,,,123,,,,,123,123,123,,123,123,123,,123,,,,123,123,,123,123',
-',123,123,123,,129,,129,129,,,123,129,129,129,,,,129,,,129,,,,,129,129',
-'129,,129,129,129,,129,,,,129,129,,129,129,,129,129,129,,153,,153,153',
-',,129,153,153,153,,,,153,,,153,,,,,153,153,153,,153,153,153,,153,,,',
-'153,153,,153,153,,153,153,153,,155,,155,155,,,153,155,155,155,,,,155',
-',,155,,,,,155,155,155,,155,155,155,,155,,,,155,155,,155,155,,155,155',
-'155,,156,,156,156,,,155,156,156,156,,,,156,,,156,,,,,156,156,156,,156',
-'156,156,,156,,,,156,156,,156,156,,156,156,156,,157,,157,157,,,156,157',
-'157,157,,,157,157,,,157,157,157,,,157,157,157,,157,157,157,,157,,,,157',
-'157,,157,157,,157,157,157,,180,,180,180,,,157,180,180,180,,,,180,,,180',
-',,,,180,180,180,,180,180,180,,180,,,,180,180,,180,180,,180,180,180,3',
-'3,3,3,,142,,180,3,,,,,3,142,3,3,99,99,99,99,,3,,,99,,,,,99,,142,142',
-'142,142,142,142,142,99,3,3,3,3,3,3,3,,3,,,,,,,,,99,99,99,99,99,99,99',
-',99,101,101,101,101,,,,,101,,,,,101,,104,104,104,104,104,,,101,104,',
-',,,104,,,,,,,,,104,,,101,101,101,101,101,101,101,,101,,,,,,,104,104',
-'104,104,104,104,104,,104,117,117,117,117,,,,,117,,,,,117,,117,122,122',
-'122,122,,,117,,122,,,,122,122,,,,,,,,,122,,117,117,117,117,117,117,117',
-',117,,,,,,,,122,122,122,122,122,122,122,,122,144,144,144,144,,,,,144',
-',,,,144,,145,145,145,145,,,,144,145,,,,,145,,,,,,,,,145,,,144,144,144',
-'144,144,144,144,,144,,,,,,,145,145,145,145,145,145,145,,145,146,146',
-'146,146,,,,,146,,,,,146,,147,147,147,147,,,,146,147,,,,,147,,,,,,,,',
-'147,,,146,146,146,146,146,146,146,,146,,,,,,,147,147,147,147,147,147',
-'147,,147,148,148,148,148,,,,,148,,,,,148,,149,149,149,149,,,,148,149',
-',,,,149,,,,,,,,,149,,,148,148,148,148,148,148,148,,148,,,,,,,149,149',
-'149,149,149,149,149,,149,150,150,150,150,,,,,150,,,,,150,,151,151,151',
-'151,,,,150,151,,,,,151,,,,,,,,,151,,,150,150,150,150,150,150,150,,150',
-',,,,,,151,151,151,151,151,151,151,,151,158,158,158,158,,,,,158,,158',
-',,158,,158,158,168,168,168,168,,158,,,168,,,,,168,,,,,,,,,168,158,158',
-'158,158,158,158,158,,158,,,,,,,,,168,168,168,168,168,168,168,,168,171',
-'171,171,171,,,,,171,,,,,171,,173,173,173,173,,,,171,173,,,,,173,,171',
-',,,,,,173,,,171,171,171,171,171,171,171,,171,,,,,,,173,173,173,173,173',
-'173,173,,173,175,175,175,175,,,,,175,,,,,175,,185,185,185,185,,,,175',
-'185,,,,,185,,,,,,,,,185,,,175,175,175,175,175,175,175,,175,,,,,,,185',
-'185,185,185,185,185,185,,185,125,125,,,,,125,,,,,125,126,126,,,,,126',
-',125,,,126,,138,138,,,,,138,126,,,,138,,125,125,125,125,125,125,125',
-'138,125,,,,126,126,126,126,126,126,126,,126,,,,,138,138,138,138,138',
-'138,138,124,138,139,139,,124,,,139,,,,,139,124,,,,,,,,139,,,127,,,,',
-'127,,124,124,124,124,124,124,124,127,139,139,139,139,139,139,139,,139',
-',140,,,,,140,,127,127,127,127,127,127,127,140,141,,,,,141,,,,,143,,',
-',141,143,,140,140,140,140,140,140,140,143,,,,,,,,141,141,141,141,141',
-'141,141,,,,143,143,143,143,143,143,143' ]
- racc_action_check = arr = ::Array.new(2249, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-racc_action_pointer = [
- 43, 0, nil, 1416, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 86,
- nil, nil, nil, 129, nil, nil, nil, 172, nil, nil,
- nil, nil, nil, -1, -15, nil, nil, 215, nil, 258,
- 3, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 301, 344, 387, 430, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 27, 8, nil, nil, 19, 473, 516, 559, 602, 645,
- 688, 731, 774, 817, 860, 903, 946, 989, 1032, 1433,
- -15, 1482, -10, nil, 1497, nil, nil, nil, nil, nil,
- nil, 1075, 14, nil, nil, nil, nil, 1546, nil, nil,
- nil, 13, 1562, 1118, 2123, 2059, 2071, 2148, 43, 1161,
- nil, 3, nil, nil, nil, nil, nil, nil, 2084, 2131,
- 2173, 2188, 1408, 2198, 1611, 1626, 1675, 1690, 1739, 1754,
- 1803, 1818, nil, 1204, nil, 1247, 1290, 1333, 1867, nil,
- nil, -8, nil, 31, nil, nil, nil, nil, 1884, nil,
- nil, 1933, nil, 1948, nil, 1997, nil, nil, 21, 42,
- 1376, nil, nil, 36, nil, 2012, nil ]
-
-racc_action_default = [
- -140, -140, -1, -4, -5, -6, -7, -10, -11, -12,
- -13, -14, -15, -16, -17, -18, -19, -20, -21, -23,
- -24, -25, -26, -140, -30, -31, -32, -140, -37, -55,
- -56, -57, -60, -140, -63, -64, -65, -140, -73, -140,
- -76, -77, -78, -79, -80, -81, -82, -83, -84, -85,
- -86, -87, -88, -89, -90, -91, -107, -108, -109, -110,
- -140, -140, -140, -140, -115, -116, -117, -118, -119, -120,
- -121, -122, -123, -124, -125, -126, -127, -128, -129, -130,
- -140, -140, -2, -3, -140, -140, -140, -140, -140, -140,
- -140, -140, -140, -140, -140, -140, -140, -140, -140, -22,
- -140, -28, -140, -34, -140, -61, -62, -74, -38, -39,
- -40, -140, -140, -46, -47, -48, -49, -69, -66, -67,
- -68, -71, -140, -140, -111, -112, -113, -114, -140, -140,
- -133, -135, -136, -137, -138, 187, -58, -59, -93, -94,
- -95, -96, -97, -98, -99, -100, -101, -102, -103, -104,
- -105, -106, -27, -140, -33, -140, -140, -140, -4, -43,
- -44, -140, -50, -52, -54, -70, -72, -75, -92, -131,
- -134, -140, -139, -29, -35, -36, -41, -42, -9, -140,
- -140, -132, -8, -140, -51, -53, -45 ]
-
-racc_goto_table = [
- 99, 82, 103, 83, 101, 1, 105, 130, 104, 183,
- 100, 102, 159, 162, 121, 108, 109, 110, 117, 111,
- 122, 115, 112, 161, 116, 107, 118, 119, 120, 128,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 124, 125, 126, 127, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 170, nil, 136, 176, 177,
- nil, nil, nil, nil, nil, nil, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 184, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 158, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 168, nil, nil, nil, nil, nil,
- 171, nil, nil, nil, nil, nil, 157, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 174, nil, nil, nil, 173, nil, 104, 175, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 82, 83, nil,
- nil, 185 ]
-
-racc_goto_check = [
- 3, 2, 24, 4, 3, 1, 40, 77, 3, 5,
- 20, 23, 30, 35, 25, 26, 27, 28, 3, 29,
- 3, 31, 32, 33, 34, 43, 44, 45, 46, 75,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 3, 3, 3, 3, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 77, nil, 40, 30, 30,
- nil, nil, nil, nil, nil, nil, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 35, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 3, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 3, nil, nil, nil, nil, nil,
- 3, nil, nil, nil, nil, nil, 1, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 24, nil, nil, nil, 3, nil, 3, 3, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 2, 4, nil,
- nil, 3 ]
-
-racc_goto_pointer = [
- nil, 5, 0, -19, 0, -169, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- -13, nil, nil, -16, -25, -23, -22, -21, -20, -18,
- -99, -16, -15, -89, -13, -99, nil, nil, nil, nil,
- -27, nil, nil, -9, -11, -10, -9, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, -51, nil, -73, nil ]
-
-racc_goto_default = [
- nil, nil, 2, 3, 4, nil, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 20, 21,
- nil, 24, 25, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 163, 29, 30, 31,
- 32, 34, 35, 38, nil, nil, nil, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 64, 65, 66, 67,
- 68, 69, 70, 78, 79, nil, 132, nil, 131 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 54, :_reduce_none,
- 2, 54, :_reduce_2,
- 2, 55, :_reduce_3,
- 1, 55, :_reduce_4,
- 1, 55, :_reduce_5,
- 1, 57, :_reduce_none,
- 1, 57, :_reduce_none,
- 1, 58, :_reduce_none,
- 0, 58, :_reduce_none,
- 1, 56, :_reduce_none,
- 1, 56, :_reduce_none,
- 1, 56, :_reduce_none,
- 1, 56, :_reduce_none,
- 1, 56, :_reduce_none,
- 1, 56, :_reduce_none,
- 1, 56, :_reduce_none,
- 1, 56, :_reduce_none,
- 1, 56, :_reduce_none,
- 1, 56, :_reduce_none,
- 1, 68, :_reduce_none,
- 1, 68, :_reduce_none,
- 2, 69, :_reduce_22,
- 1, 70, :_reduce_23,
- 1, 66, :_reduce_none,
- 1, 66, :_reduce_none,
- 1, 71, :_reduce_26,
- 3, 72, :_reduce_27,
- 1, 73, :_reduce_28,
- 3, 73, :_reduce_29,
- 1, 67, :_reduce_none,
- 1, 67, :_reduce_none,
- 1, 74, :_reduce_32,
- 3, 75, :_reduce_33,
- 1, 76, :_reduce_34,
- 3, 76, :_reduce_35,
- 3, 77, :_reduce_36,
- 1, 64, :_reduce_37,
- 1, 78, :_reduce_none,
- 1, 78, :_reduce_none,
- 1, 78, :_reduce_none,
- 3, 79, :_reduce_41,
- 3, 80, :_reduce_42,
- 2, 81, :_reduce_43,
- 1, 83, :_reduce_44,
- 5, 84, :_reduce_45,
- 1, 85, :_reduce_46,
- 1, 87, :_reduce_47,
- 1, 82, :_reduce_none,
- 1, 82, :_reduce_none,
- 1, 86, :_reduce_none,
- 3, 86, :_reduce_none,
- 1, 88, :_reduce_52,
- 3, 88, :_reduce_53,
- 1, 89, :_reduce_54,
- 1, 63, :_reduce_none,
- 1, 63, :_reduce_none,
- 1, 63, :_reduce_none,
- 3, 90, :_reduce_58,
- 3, 90, :_reduce_59,
- 1, 91, :_reduce_60,
- 2, 92, :_reduce_61,
- 2, 92, :_reduce_62,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_none,
- 1, 95, :_reduce_65,
- 2, 96, :_reduce_66,
- 1, 97, :_reduce_none,
- 1, 97, :_reduce_none,
- 1, 98, :_reduce_none,
- 2, 98, :_reduce_none,
- 1, 99, :_reduce_none,
- 2, 99, :_reduce_none,
- 1, 94, :_reduce_73,
- 2, 94, :_reduce_74,
- 3, 60, :_reduce_75,
- 1, 65, :_reduce_76,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 1, 61, :_reduce_none,
- 3, 100, :_reduce_92,
- 3, 101, :_reduce_93,
- 3, 102, :_reduce_94,
- 3, 103, :_reduce_95,
- 3, 104, :_reduce_96,
- 3, 105, :_reduce_97,
- 3, 106, :_reduce_98,
- 3, 107, :_reduce_99,
- 3, 108, :_reduce_100,
- 3, 109, :_reduce_101,
- 3, 110, :_reduce_102,
- 3, 111, :_reduce_103,
- 3, 112, :_reduce_104,
- 3, 113, :_reduce_105,
- 3, 114, :_reduce_106,
- 1, 62, :_reduce_none,
- 1, 62, :_reduce_none,
- 1, 62, :_reduce_none,
- 1, 62, :_reduce_none,
- 2, 115, :_reduce_111,
- 2, 116, :_reduce_112,
- 2, 117, :_reduce_113,
- 2, 118, :_reduce_114,
- 1, 59, :_reduce_none,
- 1, 59, :_reduce_none,
- 1, 59, :_reduce_none,
- 1, 59, :_reduce_none,
- 1, 59, :_reduce_none,
- 1, 59, :_reduce_none,
- 1, 59, :_reduce_none,
- 1, 120, :_reduce_122,
- 1, 119, :_reduce_123,
- 1, 122, :_reduce_124,
- 1, 123, :_reduce_125,
- 1, 124, :_reduce_126,
- 1, 125, :_reduce_127,
- 1, 121, :_reduce_128,
- 1, 121, :_reduce_none,
- 1, 121, :_reduce_none,
- 3, 126, :_reduce_131,
- 3, 129, :_reduce_132,
- 1, 128, :_reduce_133,
- 2, 128, :_reduce_134,
- 1, 130, :_reduce_135,
- 1, 130, :_reduce_136,
- 2, 127, :_reduce_137,
- 1, 131, :_reduce_138,
- 2, 131, :_reduce_139 ]
-
-racc_reduce_n = 140
-
-racc_shift_n = 187
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :IDENTIFIER => 2,
- :EQUAL => 3,
- :PLUS => 4,
- :MINUS => 5,
- :ASTERISK => 6,
- :FWD_SLASH => 7,
- :COLON => 8,
- :FLOAT => 9,
- :INTEGER => 10,
- :STRING => 11,
- :EXPO => 12,
- :INDENT => 13,
- :OUTDENT => 14,
- :OPAREN => 15,
- :CPAREN => 16,
- :DOT => 17,
- :SIGNATURE => 18,
- :NL => 19,
- :EOF => 20,
- :PIPE => 21,
- :COMMA => 22,
- :NIL => 23,
- :TRUE => 24,
- :FALSE => 25,
- :EQUALITY => 26,
- :CALL => 27,
- :SELF => 28,
- :CONSTANT => 29,
- :CHAR => 30,
- :DOUBLE_TICK_STRING => 31,
- :DOUBLE_TICK_STRING_END => 32,
- :INTERPOLATE_START => 33,
- :INTERPOLATE_END => 34,
- :BOX => 35,
- :LSQUARE => 36,
- :RSQUARE => 37,
- :FACES => 38,
- :LFACE => 39,
- :RFACE => 40,
- :BANG => 41,
- :TILDE => 42,
- :RETURN => 43,
- :NOT_EQUALITY => 44,
- :OR => 45,
- :AND => 46,
- :GT => 47,
- :LT => 48,
- :GTE => 49,
- :LTE => 50,
- :AT => 51,
- :PERCENT => 52 }
-
-racc_nt_base = 53
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "IDENTIFIER",
- "EQUAL",
- "PLUS",
- "MINUS",
- "ASTERISK",
- "FWD_SLASH",
- "COLON",
- "FLOAT",
- "INTEGER",
- "STRING",
- "EXPO",
- "INDENT",
- "OUTDENT",
- "OPAREN",
- "CPAREN",
- "DOT",
- "SIGNATURE",
- "NL",
- "EOF",
- "PIPE",
- "COMMA",
- "NIL",
- "TRUE",
- "FALSE",
- "EQUALITY",
- "CALL",
- "SELF",
- "CONSTANT",
- "CHAR",
- "DOUBLE_TICK_STRING",
- "DOUBLE_TICK_STRING_END",
- "INTERPOLATE_START",
- "INTERPOLATE_END",
- "BOX",
- "LSQUARE",
- "RSQUARE",
- "FACES",
- "LFACE",
- "RFACE",
- "BANG",
- "TILDE",
- "RETURN",
- "NOT_EQUALITY",
- "OR",
- "AND",
- "GT",
- "LT",
- "GTE",
- "LTE",
- "AT",
- "PERCENT",
- "$start",
- "statements",
- "statement",
- "expr",
- "eol",
- "nlq",
- "literal",
- "grouped_expr",
- "binary_op",
- "unary_op",
- "method_call",
- "constant",
- "variable",
- "array",
- "hash",
- "return",
- "return_expr",
- "return_nil",
- "empty_array",
- "array_list",
- "array_items",
- "empty_hash",
- "hash_list",
- "hash_items",
- "hash_item",
- "indented",
- "indented_w_stmts",
- "indented_w_expr",
- "indented_wo_stmts",
- "indent",
- "outdent",
- "indent_w_args",
- "indent_pipe",
- "indent_args",
- "indent_wo_args",
- "indent_arg",
- "arg_var",
- "method_call_on_object",
- "method_call_on_self",
- "method_call_on_closure",
- "call_signature",
- "call_arguments",
- "call_simple_name",
- "call_argument",
- "call_passed_arg",
- "call_passed_simple",
- "call_passed_indented",
- "assignment",
- "addition",
- "subtraction",
- "multiplication",
- "division",
- "exponentiation",
- "modulo",
- "equality",
- "not_equality",
- "logical_or",
- "logical_and",
- "greater_than",
- "less_than",
- "greater_or_eq",
- "less_or_eq",
- "unary_not",
- "unary_plus",
- "unary_minus",
- "unary_complement",
- "integer",
- "float",
- "string",
- "nil",
- "true",
- "false",
- "self",
- "interpolated_string",
- "empty_string",
- "interpolated_string_contents",
- "interpolation",
- "interpolated_string_chunk",
- "chars" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-# reduce 1 omitted
-
-module_eval(<<'.,.,', 'huia.y', 44)
- def _reduce_2(val, _values, result)
- return scope
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 46)
- def _reduce_3(val, _values, result)
- return scope.append val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 47)
- def _reduce_4(val, _values, result)
- return scope.append val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 48)
- def _reduce_5(val, _values, result)
- return scope
- result
- end
-.,.,
-
-# reduce 6 omitted
-
-# reduce 7 omitted
-
-# reduce 8 omitted
-
-# reduce 9 omitted
-
-# reduce 10 omitted
-
-# reduce 11 omitted
-
-# reduce 12 omitted
-
-# reduce 13 omitted
-
-# reduce 14 omitted
-
-# reduce 15 omitted
-
-# reduce 16 omitted
-
-# reduce 17 omitted
-
-# reduce 18 omitted
-
-# reduce 19 omitted
-
-# reduce 20 omitted
-
-# reduce 21 omitted
-
-module_eval(<<'.,.,', 'huia.y', 66)
- def _reduce_22(val, _values, result)
- return n(:Return, val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 67)
- def _reduce_23(val, _values, result)
- return n(:Return, n(:Nil))
- result
- end
-.,.,
-
-# reduce 24 omitted
-
-# reduce 25 omitted
-
-module_eval(<<'.,.,', 'huia.y', 72)
- def _reduce_26(val, _values, result)
- return n :Array
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 74)
- def _reduce_27(val, _values, result)
- return val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 75)
- def _reduce_28(val, _values, result)
- return n :Array, [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 76)
- def _reduce_29(val, _values, result)
- val[0].append(val[2]); return val[0]
- result
- end
-.,.,
-
-# reduce 30 omitted
-
-# reduce 31 omitted
-
-module_eval(<<'.,.,', 'huia.y', 80)
- def _reduce_32(val, _values, result)
- return n :Hash
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 81)
- def _reduce_33(val, _values, result)
- return val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 82)
- def _reduce_34(val, _values, result)
- return n :Hash, val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 83)
- def _reduce_35(val, _values, result)
- val[0].append(val[2]); return val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 84)
- def _reduce_36(val, _values, result)
- return n :HashItem, val[0], val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 86)
- def _reduce_37(val, _values, result)
- return constant val[0]
- result
- end
-.,.,
-
-# reduce 38 omitted
-
-# reduce 39 omitted
-
-# reduce 40 omitted
-
-module_eval(<<'.,.,', 'huia.y', 91)
- def _reduce_41(val, _values, result)
- return val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 92)
- def _reduce_42(val, _values, result)
- return val[0].append(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 93)
- def _reduce_43(val, _values, result)
- return val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 94)
- def _reduce_44(val, _values, result)
- return pop_scope
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 97)
- def _reduce_45(val, _values, result)
- return val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 98)
- def _reduce_46(val, _values, result)
- return push_scope
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 99)
- def _reduce_47(val, _values, result)
- return push_scope
- result
- end
-.,.,
-
-# reduce 48 omitted
-
-# reduce 49 omitted
-
-# reduce 50 omitted
-
-# reduce 51 omitted
-
-module_eval(<<'.,.,', 'huia.y', 105)
- def _reduce_52(val, _values, result)
- return scope.add_argument val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 106)
- def _reduce_53(val, _values, result)
- return n :Assignment, val[0], val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 107)
- def _reduce_54(val, _values, result)
- return n :Variable, val[0]
- result
- end
-.,.,
-
-# reduce 55 omitted
-
-# reduce 56 omitted
-
-# reduce 57 omitted
-
-module_eval(<<'.,.,', 'huia.y', 112)
- def _reduce_58(val, _values, result)
- return n :MethodCall, val[0], val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 113)
- def _reduce_59(val, _values, result)
- return n :MethodCall, val[0], n(:CallSignature, val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 114)
- def _reduce_60(val, _values, result)
- return n :MethodCall, scope_instance, val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 116)
- def _reduce_61(val, _values, result)
- return n :MethodCall, this_closure, val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 117)
- def _reduce_62(val, _values, result)
- return n :MethodCall, this_closure, n(:CallSignature, val[1])
- result
- end
-.,.,
-
-# reduce 63 omitted
-
-# reduce 64 omitted
-
-module_eval(<<'.,.,', 'huia.y', 121)
- def _reduce_65(val, _values, result)
- return n :CallSignature, val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 122)
- def _reduce_66(val, _values, result)
- return n :CallSignature, val[0], [val[1]]
- result
- end
-.,.,
-
-# reduce 67 omitted
-
-# reduce 68 omitted
-
-# reduce 69 omitted
-
-# reduce 70 omitted
-
-# reduce 71 omitted
-
-# reduce 72 omitted
-
-module_eval(<<'.,.,', 'huia.y', 129)
- def _reduce_73(val, _values, result)
- return val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 130)
- def _reduce_74(val, _values, result)
- return val[0].concat_signature val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 132)
- def _reduce_75(val, _values, result)
- return n :Expression, val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 134)
- def _reduce_76(val, _values, result)
- return allocate_local val[0]
- result
- end
-.,.,
-
-# reduce 77 omitted
-
-# reduce 78 omitted
-
-# reduce 79 omitted
-
-# reduce 80 omitted
-
-# reduce 81 omitted
-
-# reduce 82 omitted
-
-# reduce 83 omitted
-
-# reduce 84 omitted
-
-# reduce 85 omitted
-
-# reduce 86 omitted
-
-# reduce 87 omitted
-
-# reduce 88 omitted
-
-# reduce 89 omitted
-
-# reduce 90 omitted
-
-# reduce 91 omitted
-
-module_eval(<<'.,.,', 'huia.y', 152)
- def _reduce_92(val, _values, result)
- return allocate_local_assignment val[0], val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 153)
- def _reduce_93(val, _values, result)
- return binary val[0], val[2], 'plus:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 154)
- def _reduce_94(val, _values, result)
- return binary val[0], val[2], 'minus:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 155)
- def _reduce_95(val, _values, result)
- return binary val[0], val[2], 'multiplyBy:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 156)
- def _reduce_96(val, _values, result)
- return binary val[0], val[2], 'divideBy:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 157)
- def _reduce_97(val, _values, result)
- return binary val[0], val[2], 'toThePowerOf:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 158)
- def _reduce_98(val, _values, result)
- return binary val[0], val[2], 'moduloOf:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 159)
- def _reduce_99(val, _values, result)
- return binary val[0], val[2], 'isEqualTo:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 160)
- def _reduce_100(val, _values, result)
- return binary val[0], val[2], 'isNotEqualTo:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 161)
- def _reduce_101(val, _values, result)
- return binary val[0], val[2], 'logicalOr:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 162)
- def _reduce_102(val, _values, result)
- return binary val[0], val[2], 'logicalAnd:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 163)
- def _reduce_103(val, _values, result)
- return binary val[0], val[2], 'isGreaterThan:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 164)
- def _reduce_104(val, _values, result)
- return binary val[0], val[2], 'isLessThan:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 165)
- def _reduce_105(val, _values, result)
- return binary val[0], val[2], 'isGreaterOrEqualTo:'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 166)
- def _reduce_106(val, _values, result)
- return binary val[0], val[2], 'isLessOrEqualTo:'
- result
- end
-.,.,
-
-# reduce 107 omitted
-
-# reduce 108 omitted
-
-# reduce 109 omitted
-
-# reduce 110 omitted
-
-module_eval(<<'.,.,', 'huia.y', 173)
- def _reduce_111(val, _values, result)
- return unary val[1], 'unaryNot'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 174)
- def _reduce_112(val, _values, result)
- return unary val[1], 'unaryPlus'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 175)
- def _reduce_113(val, _values, result)
- return unary val[1], 'unaryMinus'
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 176)
- def _reduce_114(val, _values, result)
- return unary val[1], 'unaryComplement'
- result
- end
-.,.,
-
-# reduce 115 omitted
-
-# reduce 116 omitted
-
-# reduce 117 omitted
-
-# reduce 118 omitted
-
-# reduce 119 omitted
-
-# reduce 120 omitted
-
-# reduce 121 omitted
-
-module_eval(<<'.,.,', 'huia.y', 186)
- def _reduce_122(val, _values, result)
- return n :Float, val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 187)
- def _reduce_123(val, _values, result)
- return n :Integer, val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 188)
- def _reduce_124(val, _values, result)
- return n :Nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 189)
- def _reduce_125(val, _values, result)
- return n :True
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 190)
- def _reduce_126(val, _values, result)
- return n :False
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 191)
- def _reduce_127(val, _values, result)
- return n :Self
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 193)
- def _reduce_128(val, _values, result)
- return n :String, val[0]
- result
- end
-.,.,
-
-# reduce 129 omitted
-
-# reduce 130 omitted
-
-module_eval(<<'.,.,', 'huia.y', 197)
- def _reduce_131(val, _values, result)
- return val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 198)
- def _reduce_132(val, _values, result)
- return val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 199)
- def _reduce_133(val, _values, result)
- return n :InterpolatedString, val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 200)
- def _reduce_134(val, _values, result)
- val[0].append(val[1]); return val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 201)
- def _reduce_135(val, _values, result)
- return val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 202)
- def _reduce_136(val, _values, result)
- return to_string(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 203)
- def _reduce_137(val, _values, result)
- return n :String, ''
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 205)
- def _reduce_138(val, _values, result)
- return n :String, val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'huia.y', 206)
- def _reduce_139(val, _values, result)
- val[0].append(val[1]); return val[0]
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module Huia
diff --git a/test/racc/regress/journey b/test/racc/regress/journey
deleted file mode 100644
index 3daf81dac0..0000000000
--- a/test/racc/regress/journey
+++ /dev/null
@@ -1,222 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-
-require 'journey/parser_extras'
-module Journey
- class Parser < Racc::Parser
-##### State transition tables begin ###
-
-racc_action_table = [
- 17, 21, 13, 15, 14, 7, nil, 16, 8, 19,
- 13, 15, 14, 7, 23, 16, 8, 19, 13, 15,
- 14, 7, nil, 16, 8, 13, 15, 14, 7, nil,
- 16, 8, 13, 15, 14, 7, nil, 16, 8 ]
-
-racc_action_check = [
- 1, 17, 1, 1, 1, 1, nil, 1, 1, 1,
- 20, 20, 20, 20, 20, 20, 20, 20, 0, 0,
- 0, 0, nil, 0, 0, 7, 7, 7, 7, nil,
- 7, 7, 19, 19, 19, 19, nil, 19, 19 ]
-
-racc_action_pointer = [
- 16, 0, nil, nil, nil, nil, nil, 23, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 1, nil, 30,
- 8, nil, nil, nil ]
-
-racc_action_default = [
- -18, -18, -2, -3, -4, -5, -6, -18, -9, -10,
- -11, -12, -13, -14, -15, -16, -17, -18, -1, -18,
- -18, 24, -8, -7 ]
-
-racc_goto_table = [
- 18, 1, nil, nil, nil, nil, nil, nil, 20, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 22, 18 ]
-
-racc_goto_check = [
- 2, 1, nil, nil, nil, nil, nil, nil, 1, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, 2, 2 ]
-
-racc_goto_pointer = [
- nil, 1, -1, nil, nil, nil, nil, nil, nil, nil,
- nil ]
-
-racc_goto_default = [
- nil, nil, 2, 3, 4, 5, 6, 9, 10, 11,
- 12 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 2, 11, :_reduce_1,
- 1, 11, :_reduce_2,
- 1, 11, :_reduce_none,
- 1, 12, :_reduce_none,
- 1, 12, :_reduce_none,
- 1, 12, :_reduce_none,
- 3, 15, :_reduce_7,
- 3, 13, :_reduce_8,
- 1, 16, :_reduce_9,
- 1, 14, :_reduce_none,
- 1, 14, :_reduce_none,
- 1, 14, :_reduce_none,
- 1, 14, :_reduce_none,
- 1, 19, :_reduce_14,
- 1, 17, :_reduce_15,
- 1, 18, :_reduce_16,
- 1, 20, :_reduce_17 ]
-
-racc_reduce_n = 18
-
-racc_shift_n = 24
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :SLASH => 2,
- :LITERAL => 3,
- :SYMBOL => 4,
- :LPAREN => 5,
- :RPAREN => 6,
- :DOT => 7,
- :STAR => 8,
- :OR => 9 }
-
-racc_nt_base = 10
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "SLASH",
- "LITERAL",
- "SYMBOL",
- "LPAREN",
- "RPAREN",
- "DOT",
- "STAR",
- "OR",
- "$start",
- "expressions",
- "expression",
- "or",
- "terminal",
- "group",
- "star",
- "symbol",
- "literal",
- "slash",
- "dot" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'journey.y', 6)
- def _reduce_1(val, _values, result)
- result = Cat.new(val.first, val.last)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'journey.y', 7)
- def _reduce_2(val, _values, result)
- result = val.first
- result
- end
-.,.,
-
-# reduce 3 omitted
-
-# reduce 4 omitted
-
-# reduce 5 omitted
-
-# reduce 6 omitted
-
-module_eval(<<'.,.,', 'journey.y', 16)
- def _reduce_7(val, _values, result)
- result = Group.new(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'journey.y', 19)
- def _reduce_8(val, _values, result)
- result = Or.new([val.first, val.last])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'journey.y', 22)
- def _reduce_9(val, _values, result)
- result = Star.new(Symbol.new(val.last))
- result
- end
-.,.,
-
-# reduce 10 omitted
-
-# reduce 11 omitted
-
-# reduce 12 omitted
-
-# reduce 13 omitted
-
-module_eval(<<'.,.,', 'journey.y', 31)
- def _reduce_14(val, _values, result)
- result = Slash.new('/')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'journey.y', 34)
- def _reduce_15(val, _values, result)
- result = Symbol.new(val.first)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'journey.y', 37)
- def _reduce_16(val, _values, result)
- result = Literal.new(val.first)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'journey.y', 39)
- def _reduce_17(val, _values, result)
- result = Dot.new(val.first)
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module Journey
diff --git a/test/racc/regress/liquor b/test/racc/regress/liquor
deleted file mode 100644
index 9fa2ca4da0..0000000000
--- a/test/racc/regress/liquor
+++ /dev/null
@@ -1,885 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-module Liquor
- class Parser < Racc::Parser
-
-module_eval(<<'...end liquor.y/module_eval...', 'liquor.y', 216)
- attr_reader :errors, :ast
-
- def initialize(tags={})
- super()
-
- @errors = []
- @ast = nil
- @tags = tags
- end
-
- def success?
- @errors.empty?
- end
-
- def parse(string, name='(code)')
- @errors.clear
- @name = name
- @ast = nil
-
- begin
- @stream = Lexer.lex(string, @name, @tags)
- @ast = do_parse
- rescue Liquor::SyntaxError => e
- @errors << e
- end
-
- success?
- end
-
- def next_token
- tok = @stream.shift
- [ tok[0], tok ] if tok
- end
-
- TOKEN_NAME_MAP = {
- :comma => ',',
- :dot => '.',
- :lblock => '{%',
- :rblock => '%}',
- :linterp => '{{',
- :rinterp => '}}',
- :lbracket => '[',
- :rbracket => ']',
- :lparen => '(',
- :rparen => ')',
- :pipe => '|',
- :op_not => '!',
- :op_mul => '*',
- :op_div => '/',
- :op_mod => '%',
- :op_plus => '+',
- :op_minus => '-',
- :op_eq => '==',
- :op_neq => '!=',
- :op_lt => '<',
- :op_leq => '<=',
- :op_gt => '>',
- :op_geq => '>=',
- :keyword => 'keyword argument name',
- :kwarg => 'keyword argument',
- :ident => 'identifier',
- }
-
- def on_error(error_token_id, error_token, value_stack)
- if token_to_str(error_token_id) == "$end"
- raise Liquor::SyntaxError.new("unexpected end of program", {
- file: @name
- })
- else
- type, (loc, value) = error_token
- type = TOKEN_NAME_MAP[type] || type
-
- raise Liquor::SyntaxError.new("unexpected token `#{type}'", loc)
- end
- end
-
- def retag(nodes)
- loc = nodes.map { |node| node[1] }.compact
- first, *, last = loc
- return first if last.nil?
-
- {
- file: first[:file],
- line: first[:line],
- start: first[:start],
- end: last[:end],
- }
- end
-
- def reduce_tag_args(list)
- list.each_slice(2).reduce([]) { |args, (k, v)|
- if v[0] == :block
- args << [ :blockarg, retag([ k, v ]), k, v[2] || [] ]
- else
- args << [ :kwarg, retag([ k, v ]), k, v ]
- end
- }
- end
-...end liquor.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- 76, 26, 26, 6, 7, 22, 5, 6, 25, 25,
- 5, 28, 32, 36, 37, 34, 35, 31, 29, 27,
- 33, 2, 30, 26, 26, 2, 6, 23, 41, 5,
- 25, 25, 38, 39, 28, 32, 36, 37, 34, 35,
- 31, 29, 27, 33, 2, 30, 40, 26, 96, 6,
- 24, 97, 5, 43, 25, 38, 39, 28, 32, 36,
- 37, 34, 35, 31, 29, 27, 33, 2, 30, 26,
- 54, 70, 77, 26, 75, 26, 25, 52, 38, 39,
- 25, 43, 25, 28, 32, 36, 37, 34, 35, 31,
- 29, 27, 33, 26, 30, 84, 26, 51, 6, 96,
- 25, 5, 97, 25, 38, 39, 28, 32, 36, 37,
- 34, 35, 31, 29, 27, 33, 2, 30, 74, 26,
- 87, 82, 96, 74, 70, 97, 25, 38, 39, 28,
- 32, 36, 37, 34, 35, 31, 29, 27, 33, 94,
- 30, 98, 26, 107, 6, 111, 52, 5, nil, 25,
- 38, 39, 28, 32, 36, 37, 34, 35, 31, 29,
- 27, 33, 2, 30, nil, 26, 51, 6, nil, 74,
- 5, nil, 25, 38, 39, 28, 32, 36, 37, 34,
- 35, 31, 29, 27, 33, 2, 30, nil, 26, nil,
- nil, nil, 102, nil, nil, 25, 38, 39, 28, 32,
- 36, 37, 34, 35, 31, 29, 27, 33, nil, 30,
- nil, 26, 96, nil, nil, 97, nil, nil, 25, 38,
- 39, 28, 32, 36, 37, 34, 35, 31, 29, 27,
- 33, nil, 30, nil, 26, nil, nil, nil, nil, nil,
- nil, 25, 38, 39, 28, 32, 36, 37, 34, 35,
- 31, 29, 27, 33, nil, 30, 13, 15, nil, 13,
- 15, 21, nil, 14, 21, 38, 14, nil, nil, nil,
- 18, nil, nil, 18, 19, nil, nil, 19, nil, 13,
- 15, nil, 16, nil, 21, 16, 14, nil, nil, 13,
- 15, nil, nil, 18, 21, nil, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, 52, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, 51, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, 74, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, 81, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, nil, 18, 21, 16, 14, 19, nil, 13,
- 15, nil, 26, 18, 21, 16, 14, 19, nil, 25,
- nil, 101, 28, 18, nil, 16, nil, 19, 31, 29,
- 27, 106, 26, 30, nil, 16, nil, nil, nil, 25,
- nil, nil, 28, nil, 26, nil, nil, nil, 31, 29,
- 27, 25, nil, 30, 28, nil, 26, nil, nil, nil,
- 31, 29, 27, 25, nil, 30, 28, nil, 26, nil,
- nil, nil, 31, 29, 27, 25, nil, 30, 28, nil,
- 26, nil, nil, nil, 31, 29, 27, 25, nil, 30,
- 28, nil, 26, nil, nil, nil, 31, 29, 27, 25,
- nil, 30, 28, 32, 36, 37, 34, 35, 31, 29,
- 27, 33, 26, 30, 26, nil, nil, nil, nil, 25,
- nil, 25, 28, nil, 28, nil, nil, nil, nil, 29,
- 27, 29, 27 ]
-
-racc_action_check = [
- 47, 47, 45, 0, 1, 6, 0, 2, 47, 45,
- 2, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 0, 47, 46, 11, 2, 3, 7, 12, 3,
- 46, 11, 47, 47, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 3, 11, 11, 44, 94, 4,
- 11, 94, 4, 13, 44, 11, 11, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 4, 44, 55,
- 26, 40, 48, 49, 44, 56, 55, 49, 44, 44,
- 49, 54, 56, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 57, 49, 69, 53, 49, 81, 107,
- 57, 81, 107, 53, 49, 49, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 81, 53, 70, 71,
- 72, 53, 111, 71, 84, 111, 71, 53, 53, 71,
- 71, 71, 71, 71, 71, 71, 71, 71, 71, 91,
- 71, 96, 79, 103, 101, 109, 79, 101, nil, 79,
- 71, 71, 79, 79, 79, 79, 79, 79, 79, 79,
- 79, 79, 101, 79, nil, 88, 79, 106, nil, 88,
- 106, nil, 88, 79, 79, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 106, 88, nil, 99, nil,
- nil, nil, 99, nil, nil, 99, 88, 88, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99, nil, 99,
- nil, 104, 104, nil, nil, 104, nil, nil, 104, 99,
- 99, 104, 104, 104, 104, 104, 104, 104, 104, 104,
- 104, nil, 104, nil, 67, nil, nil, nil, nil, nil,
- nil, 67, 104, 104, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, nil, 67, 5, 5, nil, 14,
- 14, 5, nil, 5, 14, 67, 14, nil, nil, nil,
- 5, nil, nil, 14, 5, nil, nil, 14, nil, 18,
- 18, nil, 5, nil, 18, 14, 18, nil, nil, 19,
- 19, nil, nil, 18, 19, nil, 19, 18, nil, 21,
- 21, nil, nil, 19, 21, 18, 21, 19, nil, 22,
- 22, 22, nil, 21, 22, 19, 22, 21, nil, 25,
- 25, nil, nil, 22, 25, 21, 25, 22, nil, 27,
- 27, 22, nil, 25, 27, 22, 27, 25, nil, 28,
- 28, nil, nil, 27, 28, 25, 28, 27, nil, 29,
- 29, nil, nil, 28, 29, 27, 29, 28, nil, 30,
- 30, nil, nil, 29, 30, 28, 30, 29, nil, 31,
- 31, nil, nil, 30, 31, 29, 31, 30, nil, 32,
- 32, nil, nil, 31, 32, 30, 32, 31, nil, 33,
- 33, nil, nil, 32, 33, 31, 33, 32, nil, 34,
- 34, nil, nil, 33, 34, 32, 34, 33, nil, 35,
- 35, nil, nil, 34, 35, 33, 35, 34, nil, 36,
- 36, nil, nil, 35, 36, 34, 36, 35, nil, 37,
- 37, nil, nil, 36, 37, 35, 37, 36, nil, 38,
- 38, nil, nil, 37, 38, 36, 38, 37, nil, 39,
- 39, nil, nil, 38, 39, 37, 39, 38, nil, 43,
- 43, 43, nil, 39, 43, 38, 43, 39, nil, 52,
- 52, nil, nil, 43, 52, 39, 52, 43, nil, 74,
- 74, nil, nil, 52, 74, 43, 74, 52, nil, 76,
- 76, 52, nil, 74, 76, 52, 76, 74, nil, 97,
- 97, nil, nil, 76, 97, 74, 97, 76, nil, 102,
- 102, nil, 60, 97, 102, 76, 102, 97, nil, 60,
- nil, 97, 60, 102, nil, 97, nil, 102, 60, 60,
- 60, 102, 61, 60, nil, 102, nil, nil, nil, 61,
- nil, nil, 61, nil, 62, nil, nil, nil, 61, 61,
- 61, 62, nil, 61, 62, nil, 63, nil, nil, nil,
- 62, 62, 62, 63, nil, 62, 63, nil, 64, nil,
- nil, nil, 63, 63, 63, 64, nil, 63, 64, nil,
- 65, nil, nil, nil, 64, 64, 64, 65, nil, 64,
- 65, nil, 66, nil, nil, nil, 65, 65, 65, 66,
- nil, 65, 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 58, 66, 59, nil, nil, nil, nil, 58,
- nil, 59, 58, nil, 59, nil, nil, nil, nil, 58,
- 58, 59, 59 ]
-
-racc_action_pointer = [
- -5, 4, -1, 18, 41, 251, 0, 27, nil, nil,
- nil, 21, -1, 41, 254, nil, nil, nil, 274, 284,
- nil, 294, 304, nil, nil, 314, 65, 324, 334, 344,
- 354, 364, 374, 384, 394, 404, 414, 424, 434, 444,
- 66, nil, nil, 454, 44, -1, 20, -2, 44, 70,
- nil, nil, 464, 93, 69, 66, 72, 90, 609, 611,
- 509, 529, 541, 553, 565, 577, 589, 231, nil, 70,
- 111, 116, 90, nil, 474, nil, 484, nil, nil, 139,
- nil, 90, nil, nil, 119, nil, nil, nil, 162, nil,
- nil, 130, nil, nil, 44, nil, 114, 494, nil, 185,
- nil, 136, 504, 134, 208, nil, 159, 95, nil, 136,
- nil, 118, nil ]
-
-racc_action_default = [
- -1, -57, -1, -1, -1, -57, -57, -57, -2, -3,
- -4, -57, -57, -7, -57, -9, -10, -11, -57, -57,
- -31, -35, -57, 113, -5, -57, -57, -57, -57, -57,
- -57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
- -57, -6, -12, -40, -57, -16, -17, -34, -57, -57,
- -46, -47, -57, -57, -15, -18, -19, -20, -21, -22,
- -23, -24, -25, -26, -27, -28, -29, -30, -41, -43,
- -40, -40, -57, -38, -57, -8, -35, -32, -45, -57,
- -48, -1, -13, -14, -57, -44, -37, -36, -40, -33,
- -50, -57, -42, -39, -57, -49, -57, -57, -51, -57,
- -52, -1, -57, -57, -57, -54, -1, -57, -56, -57,
- -53, -57, -55 ]
-
-racc_goto_table = [
- 1, 11, 8, 9, 10, 48, 68, 12, 42, 50,
- 44, 72, 80, 73, 45, 46, 100, 105, 49, nil,
- nil, 53, nil, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, 78, nil, nil, 71,
- 85, 86, 95, nil, nil, nil, nil, nil, 79, 83,
- 92, nil, 108, nil, nil, 110, nil, nil, 93, 112,
- 89, nil, nil, nil, nil, nil, 90, nil, nil, nil,
- 88, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 91, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 99, nil, nil, nil, nil, 104, nil,
- nil, 103, nil, nil, nil, nil, 109 ]
-
-racc_goto_check = [
- 1, 4, 1, 1, 1, 9, 12, 5, 8, 14,
- 4, 10, 15, 11, 4, 4, 17, 18, 4, nil,
- nil, 4, nil, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 14, nil, nil, 4,
- 11, 11, 16, nil, nil, nil, nil, nil, 4, 8,
- 12, nil, 16, nil, nil, 16, nil, nil, 11, 16,
- 9, nil, nil, nil, nil, nil, 14, nil, nil, nil,
- 4, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 1, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 4, nil, nil, nil, nil, 4, nil,
- nil, 1, nil, nil, nil, nil, 1 ]
-
-racc_goto_pointer = [
- nil, 0, nil, nil, -4, 2, nil, nil, -5, -16,
- -32, -30, -34, nil, -13, -40, -52, -81, -85 ]
-
-racc_goto_default = [
- nil, nil, 3, 4, 47, nil, 20, 17, nil, nil,
- nil, nil, nil, 69, nil, nil, nil, nil, nil ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 0, 37, :_reduce_1,
- 2, 37, :_reduce_2,
- 2, 37, :_reduce_3,
- 2, 37, :_reduce_4,
- 3, 38, :_reduce_5,
- 3, 38, :_reduce_6,
- 1, 42, :_reduce_none,
- 3, 42, :_reduce_8,
- 1, 40, :_reduce_none,
- 1, 40, :_reduce_none,
- 1, 40, :_reduce_none,
- 2, 40, :_reduce_12,
- 4, 40, :_reduce_13,
- 4, 40, :_reduce_14,
- 3, 40, :_reduce_15,
- 2, 40, :_reduce_16,
- 2, 40, :_reduce_17,
- 3, 40, :_reduce_18,
- 3, 40, :_reduce_19,
- 3, 40, :_reduce_20,
- 3, 40, :_reduce_21,
- 3, 40, :_reduce_22,
- 3, 40, :_reduce_23,
- 3, 40, :_reduce_24,
- 3, 40, :_reduce_25,
- 3, 40, :_reduce_26,
- 3, 40, :_reduce_27,
- 3, 40, :_reduce_28,
- 3, 40, :_reduce_29,
- 3, 40, :_reduce_30,
- 1, 40, :_reduce_none,
- 3, 43, :_reduce_32,
- 3, 45, :_reduce_33,
- 1, 45, :_reduce_34,
- 0, 45, :_reduce_35,
- 3, 44, :_reduce_36,
- 2, 46, :_reduce_37,
- 1, 46, :_reduce_38,
- 3, 47, :_reduce_39,
- 0, 47, :_reduce_40,
- 3, 41, :_reduce_41,
- 3, 48, :_reduce_42,
- 1, 48, :_reduce_43,
- 2, 49, :_reduce_44,
- 4, 39, :_reduce_45,
- 3, 39, :_reduce_46,
- 1, 50, :_reduce_47,
- 2, 50, :_reduce_48,
- 4, 51, :_reduce_49,
- 2, 51, :_reduce_50,
- 2, 52, :_reduce_51,
- 2, 52, :_reduce_52,
- 4, 53, :_reduce_53,
- 3, 53, :_reduce_54,
- 4, 54, :_reduce_55,
- 2, 54, :_reduce_56 ]
-
-racc_reduce_n = 57
-
-racc_shift_n = 113
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :comma => 2,
- :dot => 3,
- :endtag => 4,
- :ident => 5,
- :integer => 6,
- :keyword => 7,
- :lblock => 8,
- :lblock2 => 9,
- :lbracket => 10,
- :linterp => 11,
- :lparen => 12,
- :op_div => 13,
- :op_eq => 14,
- :op_gt => 15,
- :op_geq => 16,
- :op_lt => 17,
- :op_leq => 18,
- :op_minus => 19,
- :op_mod => 20,
- :op_mul => 21,
- :op_neq => 22,
- :op_not => 23,
- :op_plus => 24,
- :pipe => 25,
- :plaintext => 26,
- :rblock => 27,
- :rbracket => 28,
- :rinterp => 29,
- :rparen => 30,
- :string => 31,
- :tag_ident => 32,
- :op_uminus => 33,
- :op_and => 34,
- :op_or => 35 }
-
-racc_nt_base = 36
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "comma",
- "dot",
- "endtag",
- "ident",
- "integer",
- "keyword",
- "lblock",
- "lblock2",
- "lbracket",
- "linterp",
- "lparen",
- "op_div",
- "op_eq",
- "op_gt",
- "op_geq",
- "op_lt",
- "op_leq",
- "op_minus",
- "op_mod",
- "op_mul",
- "op_neq",
- "op_not",
- "op_plus",
- "pipe",
- "plaintext",
- "rblock",
- "rbracket",
- "rinterp",
- "rparen",
- "string",
- "tag_ident",
- "op_uminus",
- "op_and",
- "op_or",
- "$start",
- "block",
- "interp",
- "tag",
- "expr",
- "filter_chain",
- "primary_expr",
- "tuple",
- "function_args",
- "tuple_content",
- "function_args_inside",
- "function_keywords",
- "filter_chain_cont",
- "filter_call",
- "tag_first_cont",
- "tag_first_cont2",
- "tag_next_cont",
- "tag_next_cont2",
- "tag_next_cont3" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'liquor.y', 47)
- def _reduce_1(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 49)
- def _reduce_2(val, _values, result)
- result = [ val[0], *val[1] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 51)
- def _reduce_3(val, _values, result)
- result = [ val[0], *val[1] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 53)
- def _reduce_4(val, _values, result)
- result = [ val[0], *val[1] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 57)
- def _reduce_5(val, _values, result)
- result = [ :interp, retag(val), val[1] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 59)
- def _reduce_6(val, _values, result)
- result = [ :interp, retag(val), val[1] ]
- result
- end
-.,.,
-
-# reduce 7 omitted
-
-module_eval(<<'.,.,', 'liquor.y', 64)
- def _reduce_8(val, _values, result)
- result = [ val[1][0], retag(val), *val[1][2..-1] ]
- result
- end
-.,.,
-
-# reduce 9 omitted
-
-# reduce 10 omitted
-
-# reduce 11 omitted
-
-module_eval(<<'.,.,', 'liquor.y', 71)
- def _reduce_12(val, _values, result)
- result = [ :call, retag(val), val[0], val[1] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 73)
- def _reduce_13(val, _values, result)
- result = [ :index, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 75)
- def _reduce_14(val, _values, result)
- result = [ :external, retag(val), val[0], val[2], val[3] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 77)
- def _reduce_15(val, _values, result)
- result = [ :external, retag(val), val[0], val[2], nil ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 79)
- def _reduce_16(val, _values, result)
- result = [ :uminus, retag(val), val[1] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 81)
- def _reduce_17(val, _values, result)
- result = [ :not, retag(val), val[1] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 83)
- def _reduce_18(val, _values, result)
- result = [ :mul, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 85)
- def _reduce_19(val, _values, result)
- result = [ :div, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 87)
- def _reduce_20(val, _values, result)
- result = [ :mod, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 89)
- def _reduce_21(val, _values, result)
- result = [ :plus, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 91)
- def _reduce_22(val, _values, result)
- result = [ :minus, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 93)
- def _reduce_23(val, _values, result)
- result = [ :eq, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 95)
- def _reduce_24(val, _values, result)
- result = [ :neq, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 97)
- def _reduce_25(val, _values, result)
- result = [ :lt, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 99)
- def _reduce_26(val, _values, result)
- result = [ :leq, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 101)
- def _reduce_27(val, _values, result)
- result = [ :gt, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 103)
- def _reduce_28(val, _values, result)
- result = [ :geq, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 105)
- def _reduce_29(val, _values, result)
- result = [ :and, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 107)
- def _reduce_30(val, _values, result)
- result = [ :or, retag(val), val[0], val[2] ]
- result
- end
-.,.,
-
-# reduce 31 omitted
-
-module_eval(<<'.,.,', 'liquor.y', 112)
- def _reduce_32(val, _values, result)
- result = [ :tuple, retag(val), val[1].compact ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 116)
- def _reduce_33(val, _values, result)
- result = [ val[0], *val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 118)
- def _reduce_34(val, _values, result)
- result = [ val[0] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 120)
- def _reduce_35(val, _values, result)
- result = [ ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 124)
- def _reduce_36(val, _values, result)
- result = [ :args, retag(val), *val[1] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 128)
- def _reduce_37(val, _values, result)
- result = [ val[0], val[1][2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 130)
- def _reduce_38(val, _values, result)
- result = [ nil, val[0][2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 134)
- def _reduce_39(val, _values, result)
- name = val[0][2].to_sym
- tail = val[2][2]
- loc = retag([ val[0], val[1] ])
-
- if tail.include? name
- @errors << SyntaxError.new("duplicate keyword argument `#{val[0][2]}'",
- tail[name][1])
- end
-
- hash = {
- name => [ val[1][0], loc, *val[1][2..-1] ]
- }.merge(tail)
-
- result = [ :keywords, retag([ loc, val[2] ]), hash ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 150)
- def _reduce_40(val, _values, result)
- result = [ :keywords, nil, {} ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 154)
- def _reduce_41(val, _values, result)
- result = [ val[0], *val[2] ].
- reduce { |tree, node| node[3][2] = tree; node }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 160)
- def _reduce_42(val, _values, result)
- result = [ val[0], *val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 162)
- def _reduce_43(val, _values, result)
- result = [ val[0] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 166)
- def _reduce_44(val, _values, result)
- ident_loc = val[0][1]
- empty_args_loc = { line: ident_loc[:line],
- start: ident_loc[:end] + 1,
- end: ident_loc[:end] + 1, }
- result = [ :call, val[0][1], val[0],
- [ :args, val[1][1] || empty_args_loc, nil, val[1][2] ] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 176)
- def _reduce_45(val, _values, result)
- result = [ :tag, retag(val), val[1], val[2], *reduce_tag_args(val[3][2]) ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 178)
- def _reduce_46(val, _values, result)
- result = [ :tag, retag(val), val[1], nil, *reduce_tag_args(val[2][2]) ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 186)
- def _reduce_47(val, _values, result)
- result = [ :cont, retag(val), [] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 188)
- def _reduce_48(val, _values, result)
- result = [ :cont, retag(val), [ val[0], *val[1][2] ] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 192)
- def _reduce_49(val, _values, result)
- result = [ :cont2, val[0][1], [ [:block, val[0][1], val[1] ], *val[3] ] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 194)
- def _reduce_50(val, _values, result)
- result = [ :cont2, retag(val), [ val[0], *val[1][2] ] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 198)
- def _reduce_51(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 200)
- def _reduce_52(val, _values, result)
- result = [ val[0], *val[1] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 204)
- def _reduce_53(val, _values, result)
- result = [ [:block, val[0][1], val[1] ], *val[3] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 206)
- def _reduce_54(val, _values, result)
- result = [ val[0], val[1], *val[2] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 210)
- def _reduce_55(val, _values, result)
- result = [ [:block, val[0][1], val[1] ], *val[3] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'liquor.y', 212)
- def _reduce_56(val, _values, result)
- result = [ val[0], *val[1] ]
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module Liquor
diff --git a/test/racc/regress/machete b/test/racc/regress/machete
deleted file mode 100644
index 6297fe2ac9..0000000000
--- a/test/racc/regress/machete
+++ /dev/null
@@ -1,833 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-module Machete
- class Parser < Racc::Parser
-
-module_eval(<<'...end machete.y/module_eval...', 'machete.y', 175)
-
-include Matchers
-
-class SyntaxError < StandardError; end
-
-def parse(input)
- @input = input
- @pos = 0
-
- do_parse
-end
-
-private
-
-def integer_value(value)
- if value =~ /^0[bB]/
- value[2..-1].to_i(2)
- elsif value =~ /^0[oO]/
- value[2..-1].to_i(8)
- elsif value =~ /^0[dD]/
- value[2..-1].to_i(10)
- elsif value =~ /^0[xX]/
- value[2..-1].to_i(16)
- elsif value =~ /^0/
- value.to_i(8)
- else
- value.to_i
- end
-end
-
-def symbol_value(value)
- value[1..-1].to_sym
-end
-
-def string_value(value)
- quote = value[0..0]
- if quote == "'"
- value[1..-2].gsub("\\\\", "\\").gsub("\\'", "'")
- elsif quote == '"'
- value[1..-2].
- gsub("\\\\", "\\").
- gsub('\\"', '"').
- gsub("\\n", "\n").
- gsub("\\t", "\t").
- gsub("\\r", "\r").
- gsub("\\f", "\f").
- gsub("\\v", "\v").
- gsub("\\a", "\a").
- gsub("\\e", "\e").
- gsub("\\b", "\b").
- gsub("\\s", "\s").
- gsub(/\\([0-7]{1,3})/) { $1.to_i(8).chr }.
- gsub(/\\x([0-9a-fA-F]{1,2})/) { $1.to_i(16).chr }
- else
- raise "Unknown quote: #{quote.inspect}."
- end
-end
-
-REGEXP_OPTIONS = {
- 'i' => Regexp::IGNORECASE,
- 'm' => Regexp::MULTILINE,
- 'x' => Regexp::EXTENDED
-}
-
-def regexp_value(value)
- /\A\/(.*)\/([imx]*)\z/ =~ value
- pattern, options = $1, $2
-
- Regexp.new(pattern, options.chars.map { |ch| REGEXP_OPTIONS[ch] }.inject(:|))
-end
-
-# "^" needs to be here because if it were among operators recognized by
-# METHOD_NAME, "^=" would be recognized as two tokens.
-SIMPLE_TOKENS = [
- "|",
- "<",
- ">",
- ",",
- "=",
- "^=",
- "^",
- "$=",
- "[",
- "]",
- "*=",
- "*",
- "+",
- "?",
- "{",
- "}"
-]
-
-COMPLEX_TOKENS = [
- [:NIL, /^nil/],
- [:TRUE, /^true/],
- [:FALSE, /^false/],
- # INTEGER needs to be before METHOD_NAME, otherwise e.g. "+1" would be
- # recognized as two tokens.
- [
- :INTEGER,
- /^
- [+-]? # sign
- (
- 0[bB][01]+(_[01]+)* # binary (prefixed)
- |
- 0[oO][0-7]+(_[0-7]+)* # octal (prefixed)
- |
- 0[dD]\d+(_\d+)* # decimal (prefixed)
- |
- 0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)* # hexadecimal (prefixed)
- |
- 0[0-7]*(_[0-7]+)* # octal (unprefixed)
- |
- [1-9]\d*(_\d+)* # decimal (unprefixed)
- )
- /x
- ],
- [
- :SYMBOL,
- /^
- :
- (
- # class name
- [A-Z][a-zA-Z0-9_]*
- |
- # regular method name
- [a-z_][a-zA-Z0-9_]*[?!=]?
- |
- # instance variable name
- @[a-zA-Z_][a-zA-Z0-9_]*
- |
- # class variable name
- @@[a-zA-Z_][a-zA-Z0-9_]*
- |
- # operator (sorted by length, then alphabetically)
- (<=>|===|\[\]=|\*\*|\+@|-@|<<|<=|==|=~|>=|>>|\[\]|[%&*+\-\/<>^`|~])
- )
- /x
- ],
- [
- :STRING,
- /^
- (
- ' # sinqle-quoted string
- (
- \\[\\'] # escape
- |
- [^'] # regular character
- )*
- '
- |
- " # double-quoted string
- (
- \\ # escape
- (
- [\\"ntrfvaebs] # one-character escape
- |
- [0-7]{1,3} # octal number escape
- |
- x[0-9a-fA-F]{1,2} # hexadecimal number escape
- )
- |
- [^"] # regular character
- )*
- "
- )
- /x
- ],
- [
- :REGEXP,
- /^
- \/
- (
- \\ # escape
- (
- [\\\/ntrfvaebs\(\)\[\]\{\}\-\.\?\*\+\|\^\$] # one-character escape
- |
- [0-7]{2,3} # octal number escape
- |
- x[0-9a-fA-F]{1,2} # hexadecimal number escape
- )
- |
- [^\/] # regular character
- )*
- \/
- [imx]*
- /x
- ],
- # ANY, EVEN and ODD need to be before METHOD_NAME, otherwise they would be
- # recognized as method names.
- [:ANY, /^any/],
- [:EVEN, /^even/],
- [:ODD, /^odd/],
- # We exclude "*", "+", "<", ">", "^" and "|" from method names since they are
- # lexed as simple tokens. This is because they have also other meanings in
- # Machette patterns beside Ruby method names.
- [
- :METHOD_NAME,
- /^
- (
- # regular name
- [a-z_][a-zA-Z0-9_]*[?!=]?
- |
- # operator (sorted by length, then alphabetically)
- (<=>|===|\[\]=|\*\*|\+@|-@|<<|<=|==|=~|>=|>>|\[\]|[%&\-\/`~])
- )
- /x
- ],
- [:CLASS_NAME, /^[A-Z][a-zA-Z0-9_]*/]
-]
-
-def next_token
- skip_whitespace
-
- return false if remaining_input.empty?
-
- # Complex tokens need to be before simple tokens, otherwise e.g. "<<" would be
- # recognized as two tokens.
-
- COMPLEX_TOKENS.each do |type, regexp|
- if remaining_input =~ regexp
- @pos += $&.length
- return [type, $&]
- end
- end
-
- SIMPLE_TOKENS.each do |token|
- if remaining_input[0...token.length] == token
- @pos += token.length
- return [token, token]
- end
- end
-
- raise SyntaxError, "Unexpected character: #{remaining_input[0..0].inspect}."
-end
-
-def skip_whitespace
- if remaining_input =~ /\A^[ \t\r\n]+/
- @pos += $&.length
- end
-end
-
-def remaining_input
- @input[@pos..-1]
-end
-
-def on_error(error_token_id, error_value, value_stack)
- raise SyntaxError, "Unexpected token: #{error_value.inspect}."
-end
-...end machete.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- 75, 19, 9, 10, 11, 12, 13, 14, 15, 16,
- 66, 67, 68, 7, 24, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 74, 8, 7, 47, 9, 10,
- 11, 12, 13, 14, 15, 16, 48, 18, 8, 7,
- 71, 9, 10, 11, 12, 13, 14, 15, 16, 72,
- 70, 8, 7, 73, 9, 10, 11, 12, 13, 14,
- 15, 16, 69, 18, 8, 7, 30, 31, 32, 51,
- 52, 53, 54, 33, 34, 35, 29, 8, 41, 38,
- 39, 76, 30, 31, 32, 77, 36, 37, 40, 33,
- 34, 35, 29, nil, 41, 38, 39, 18, 49, 50,
- 62, 63, 36, 37, 40, 43, 44, 55, 64, 65,
- 45, 46, 57, 58, nil, nil, nil, nil, nil, 56 ]
-
-racc_action_check = [
- 70, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 54, 54, 54, 0, 17, 8, 8, 8, 8, 8,
- 8, 8, 8, 1, 70, 0, 8, 21, 18, 18,
- 18, 18, 18, 18, 18, 18, 22, 1, 8, 18,
- 56, 48, 48, 48, 48, 48, 48, 48, 48, 57,
- 55, 18, 48, 58, 51, 51, 51, 51, 51, 51,
- 51, 51, 55, 61, 48, 51, 19, 19, 19, 28,
- 28, 28, 28, 19, 19, 19, 19, 51, 19, 19,
- 19, 71, 50, 50, 50, 75, 19, 19, 19, 50,
- 50, 50, 50, nil, 50, 50, 50, 20, 26, 26,
- 52, 52, 50, 50, 50, 20, 20, 46, 53, 53,
- 20, 20, 46, 46, nil, nil, nil, nil, nil, 46 ]
-
-racc_action_pointer = [
- 0, 23, nil, nil, nil, nil, nil, -14, 13, nil,
- nil, nil, nil, nil, nil, nil, nil, 14, 26, 64,
- 83, 1, 19, nil, nil, nil, 82, nil, 51, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 102, nil, 39, nil,
- 80, 52, 94, 102, 4, 33, 35, 20, 24, nil,
- nil, 49, nil, nil, nil, nil, nil, nil, nil, nil,
- -5, 52, nil, nil, nil, 56, nil, nil ]
-
-racc_action_default = [
- -56, -56, -1, -3, -4, -5, -6, -7, -33, -48,
- -49, -50, -51, -52, -53, -54, -55, -56, -56, -56,
- -37, -56, -34, -35, 78, -2, -56, -9, -56, -19,
- -20, -21, -22, -23, -24, -25, -26, -27, -28, -29,
- -30, -31, -38, -39, -40, -41, -56, -32, -56, -8,
- -56, -56, -56, -56, -56, -56, -56, -56, -56, -36,
- -10, -11, -12, -15, -13, -16, -14, -17, -18, -42,
- -56, -56, -46, -47, -43, -56, -44, -45 ]
-
-racc_goto_table = [
- 1, 23, 27, 25, 26, 21, 22, 42, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 60, nil, nil, nil, nil, nil, nil,
- nil, 59, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 61 ]
-
-racc_goto_check = [
- 1, 12, 8, 2, 7, 10, 11, 13, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 8, nil, nil, nil, nil, nil, nil,
- nil, 12, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 1 ]
-
-racc_goto_pointer = [
- nil, 0, -15, nil, nil, nil, nil, -15, -17, nil,
- -3, -2, -7, -13 ]
-
-racc_goto_default = [
- nil, 20, 2, 3, 4, 5, 6, nil, nil, 28,
- nil, nil, nil, nil ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 31, :_reduce_none,
- 3, 31, :_reduce_2,
- 1, 32, :_reduce_none,
- 1, 32, :_reduce_none,
- 1, 32, :_reduce_none,
- 1, 32, :_reduce_none,
- 1, 33, :_reduce_7,
- 4, 33, :_reduce_8,
- 1, 37, :_reduce_none,
- 3, 37, :_reduce_10,
- 3, 38, :_reduce_11,
- 3, 38, :_reduce_12,
- 3, 38, :_reduce_13,
- 3, 38, :_reduce_14,
- 3, 38, :_reduce_15,
- 3, 38, :_reduce_16,
- 3, 38, :_reduce_17,
- 3, 38, :_reduce_18,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 1, 39, :_reduce_none,
- 3, 34, :_reduce_32,
- 0, 40, :_reduce_33,
- 1, 40, :_reduce_none,
- 1, 41, :_reduce_35,
- 3, 41, :_reduce_36,
- 1, 42, :_reduce_none,
- 2, 42, :_reduce_38,
- 1, 43, :_reduce_39,
- 1, 43, :_reduce_40,
- 1, 43, :_reduce_41,
- 3, 43, :_reduce_42,
- 4, 43, :_reduce_43,
- 4, 43, :_reduce_44,
- 5, 43, :_reduce_45,
- 3, 43, :_reduce_46,
- 3, 43, :_reduce_47,
- 1, 35, :_reduce_48,
- 1, 35, :_reduce_49,
- 1, 35, :_reduce_50,
- 1, 35, :_reduce_51,
- 1, 35, :_reduce_52,
- 1, 35, :_reduce_53,
- 1, 35, :_reduce_54,
- 1, 36, :_reduce_55 ]
-
-racc_reduce_n = 56
-
-racc_shift_n = 78
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :NIL => 2,
- :TRUE => 3,
- :FALSE => 4,
- :INTEGER => 5,
- :SYMBOL => 6,
- :STRING => 7,
- :REGEXP => 8,
- :ANY => 9,
- :EVEN => 10,
- :ODD => 11,
- :METHOD_NAME => 12,
- :CLASS_NAME => 13,
- "|" => 14,
- "<" => 15,
- ">" => 16,
- "," => 17,
- "=" => 18,
- "^=" => 19,
- "$=" => 20,
- "*=" => 21,
- "*" => 22,
- "+" => 23,
- "^" => 24,
- "[" => 25,
- "]" => 26,
- "?" => 27,
- "{" => 28,
- "}" => 29 }
-
-racc_nt_base = 30
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "NIL",
- "TRUE",
- "FALSE",
- "INTEGER",
- "SYMBOL",
- "STRING",
- "REGEXP",
- "ANY",
- "EVEN",
- "ODD",
- "METHOD_NAME",
- "CLASS_NAME",
- "\"|\"",
- "\"<\"",
- "\">\"",
- "\",\"",
- "\"=\"",
- "\"^=\"",
- "\"$=\"",
- "\"*=\"",
- "\"*\"",
- "\"+\"",
- "\"^\"",
- "\"[\"",
- "\"]\"",
- "\"?\"",
- "\"{\"",
- "\"}\"",
- "$start",
- "expression",
- "primary",
- "node",
- "array",
- "literal",
- "any",
- "attrs",
- "attr",
- "method_name",
- "items_opt",
- "items",
- "item",
- "quantifier" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-# reduce 1 omitted
-
-module_eval(<<'.,.,', 'machete.y', 44)
- def _reduce_2(val, _values, result)
- result = if val[0].is_a?(ChoiceMatcher)
- ChoiceMatcher.new(val[0].alternatives << val[2])
- else
- ChoiceMatcher.new([val[0], val[2]])
- end
-
- result
- end
-.,.,
-
-# reduce 3 omitted
-
-# reduce 4 omitted
-
-# reduce 5 omitted
-
-# reduce 6 omitted
-
-module_eval(<<'.,.,', 'machete.y', 57)
- def _reduce_7(val, _values, result)
- result = NodeMatcher.new(val[0].to_sym)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 60)
- def _reduce_8(val, _values, result)
- result = NodeMatcher.new(val[0].to_sym, val[2])
-
- result
- end
-.,.,
-
-# reduce 9 omitted
-
-module_eval(<<'.,.,', 'machete.y', 64)
- def _reduce_10(val, _values, result)
- result = val[0].merge(val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 66)
- def _reduce_11(val, _values, result)
- result = { val[0].to_sym => val[2] }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 68)
- def _reduce_12(val, _values, result)
- result = {
- val[0].to_sym => SymbolRegexpMatcher.new(
- Regexp.new("^" + Regexp.escape(symbol_value(val[2]).to_s))
- )
- }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 75)
- def _reduce_13(val, _values, result)
- result = {
- val[0].to_sym => SymbolRegexpMatcher.new(
- Regexp.new(Regexp.escape(symbol_value(val[2]).to_s) + "$")
- )
- }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 82)
- def _reduce_14(val, _values, result)
- result = {
- val[0].to_sym => SymbolRegexpMatcher.new(
- Regexp.new(Regexp.escape(symbol_value(val[2]).to_s))
- )
- }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 89)
- def _reduce_15(val, _values, result)
- result = {
- val[0].to_sym => StringRegexpMatcher.new(
- Regexp.new("^" + Regexp.escape(string_value(val[2])))
- )
- }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 96)
- def _reduce_16(val, _values, result)
- result = {
- val[0].to_sym => StringRegexpMatcher.new(
- Regexp.new(Regexp.escape(string_value(val[2])) + "$")
- )
- }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 103)
- def _reduce_17(val, _values, result)
- result = {
- val[0].to_sym => StringRegexpMatcher.new(
- Regexp.new(Regexp.escape(string_value(val[2])))
- )
- }
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 110)
- def _reduce_18(val, _values, result)
- result = {
- val[0].to_sym => IndifferentRegexpMatcher.new(
- Regexp.new(regexp_value(val[2]))
- )
- }
-
- result
- end
-.,.,
-
-# reduce 19 omitted
-
-# reduce 20 omitted
-
-# reduce 21 omitted
-
-# reduce 22 omitted
-
-# reduce 23 omitted
-
-# reduce 24 omitted
-
-# reduce 25 omitted
-
-# reduce 26 omitted
-
-# reduce 27 omitted
-
-# reduce 28 omitted
-
-# reduce 29 omitted
-
-# reduce 30 omitted
-
-# reduce 31 omitted
-
-module_eval(<<'.,.,', 'machete.y', 134)
- def _reduce_32(val, _values, result)
- result = ArrayMatcher.new(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 136)
- def _reduce_33(val, _values, result)
- result = []
- result
- end
-.,.,
-
-# reduce 34 omitted
-
-module_eval(<<'.,.,', 'machete.y', 139)
- def _reduce_35(val, _values, result)
- result = [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 140)
- def _reduce_36(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-# reduce 37 omitted
-
-module_eval(<<'.,.,', 'machete.y', 143)
- def _reduce_38(val, _values, result)
- result = Quantifier.new(val[0], *val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 145)
- def _reduce_39(val, _values, result)
- result = [0, nil, 1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 146)
- def _reduce_40(val, _values, result)
- result = [1, nil, 1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 147)
- def _reduce_41(val, _values, result)
- result = [0, 1, 1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 149)
- def _reduce_42(val, _values, result)
- result = [integer_value(val[1]), integer_value(val[1]), 1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 152)
- def _reduce_43(val, _values, result)
- result = [integer_value(val[1]), nil, 1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 155)
- def _reduce_44(val, _values, result)
- result = [0, integer_value(val[2]), 1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 158)
- def _reduce_45(val, _values, result)
- result = [integer_value(val[1]), integer_value(val[3]), 1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 160)
- def _reduce_46(val, _values, result)
- result = [0, nil, 2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 161)
- def _reduce_47(val, _values, result)
- result = [1, nil, 2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 163)
- def _reduce_48(val, _values, result)
- result = LiteralMatcher.new(nil)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 164)
- def _reduce_49(val, _values, result)
- result = LiteralMatcher.new(true)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 165)
- def _reduce_50(val, _values, result)
- result = LiteralMatcher.new(false)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 166)
- def _reduce_51(val, _values, result)
- result = LiteralMatcher.new(integer_value(val[0]))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 167)
- def _reduce_52(val, _values, result)
- result = LiteralMatcher.new(symbol_value(val[0]))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 168)
- def _reduce_53(val, _values, result)
- result = LiteralMatcher.new(string_value(val[0]))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 169)
- def _reduce_54(val, _values, result)
- result = LiteralMatcher.new(regexp_value(val[0]))
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'machete.y', 171)
- def _reduce_55(val, _values, result)
- result = AnyMatcher.new
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module Machete
diff --git a/test/racc/regress/mediacloth b/test/racc/regress/mediacloth
deleted file mode 100644
index cca7d3c7e4..0000000000
--- a/test/racc/regress/mediacloth
+++ /dev/null
@@ -1,1463 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-require 'mediacloth/mediawikiast'
-
-class MediaWikiParser < Racc::Parser
-
-module_eval(<<'...end mediacloth.y/module_eval...', 'mediacloth.y', 564)
-
-attr_accessor :lexer
-
-def initialize
- @nodes = []
- @context = []
- @wiki_ast_length = 0
- super
-end
-
-#Tokenizes input string and parses it.
-def parse(input)
- @yydebug=true
- lexer.tokenize(input)
- do_parse
- return @nodes.last
-end
-
-#Asks the lexer to return the next token.
-def next_token
- token = @lexer.lex
- if token[0].to_s.upcase.include? "_START"
- @context << token[2..3]
- elsif token[0].to_s.upcase.include? "_END"
- @ast_index = @context.last[0]
- @ast_length = token[2] + token[3] - @context.last[0]
- @context.pop
- else
- @ast_index = token[2]
- @ast_length = token[3]
- end
-
- @wiki_ast_length += token[3]
-
- return token[0..1]
-end
-...end mediacloth.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- 22, 28, 50, 29, 61, 13, 63, 132, 15, 86,
- 37, 87, 24, 33, 86, 34, 87, 35, 85, 23,
- 26, 25, 27, 12, 86, 30, 87, 31, 86, 42,
- 87, 32, 44, 86, 48, 87, 57, 17, 57, 22,
- 28, 21, 29, 46, 13, 51, 67, 15, 68, 11,
- 36, 24, 33, 14, 34, 69, 35, 36, 23, 26,
- 25, 27, 12, 86, 30, 87, 31, 75, 73, 70,
- 32, 48, 81, 71, 72, 76, 17, 77, 22, 28,
- 21, 29, 82, 13, 45, 51, 15, -65, 11, 36,
- 24, 33, 14, 34, -65, 35, 63, 23, 26, 25,
- 27, 12, 96, 30, 63, 31, 106, 109, 110, 32,
- 113, 114, 48, 117, 118, 17, 124, 22, 28, 21,
- 29, 57, 13, 127, 128, 15, 131, 11, 36, 24,
- 33, 14, 34, 136, 35, 137, 23, 26, 25, 27,
- 12, 138, 30, 75, 31, 51, 141, -63, 32, 106,
- 106, 150, 153, 51, 17, nil, nil, nil, 21, nil,
- 22, 28, 53, 29, nil, 13, 11, 36, 15, nil,
- 14, nil, 24, 33, nil, 34, nil, 35, nil, 23,
- 26, 25, 27, 12, nil, 30, nil, 31, nil, nil,
- nil, 32, nil, nil, nil, nil, nil, 17, nil, 22,
- 28, 21, 29, 55, 13, nil, nil, 15, nil, 11,
- 36, 24, 33, 14, 34, nil, 35, nil, 23, 26,
- 25, 27, 12, nil, 30, nil, 31, nil, nil, nil,
- 32, nil, nil, nil, nil, nil, 17, nil, 22, 28,
- 21, 29, nil, 13, nil, nil, 15, nil, 11, 36,
- 24, 33, 14, 34, nil, 35, nil, 23, 26, 25,
- 27, 12, nil, 30, nil, 31, nil, nil, nil, 32,
- nil, nil, nil, nil, nil, 17, nil, 22, 28, 21,
- 29, nil, 13, nil, nil, 15, nil, 11, 36, 24,
- 33, 14, 34, nil, 35, nil, 23, 26, 25, 27,
- 12, nil, 30, nil, 31, nil, nil, nil, 32, nil,
- nil, nil, nil, nil, 17, nil, 22, 28, 21, 29,
- nil, 13, nil, nil, 15, nil, 11, 36, 24, 33,
- 14, 34, nil, 35, nil, 23, 26, 25, 27, 12,
- nil, 30, nil, 31, nil, nil, nil, 32, nil, nil,
- nil, nil, nil, 17, nil, 22, 28, 21, 29, nil,
- 13, nil, nil, 15, nil, 11, 36, 24, 33, 14,
- 34, nil, 35, nil, 23, 26, 25, 27, 12, nil,
- 30, nil, 31, nil, nil, nil, 32, nil, nil, nil,
- nil, nil, 17, nil, 22, 28, 21, 29, nil, 13,
- nil, nil, 15, nil, 11, 36, 24, 33, 14, 34,
- nil, 35, nil, 23, 26, 25, 27, 12, nil, 30,
- nil, 31, nil, nil, nil, 32, nil, nil, nil, nil,
- nil, 17, 78, nil, nil, 21, nil, 22, 28, 88,
- 29, nil, 13, 11, 36, 15, nil, 14, nil, 24,
- 33, nil, 34, nil, 35, nil, 23, 26, 25, 27,
- 12, nil, 30, nil, 31, nil, nil, nil, 32, nil,
- nil, nil, nil, nil, 17, nil, 22, 28, 21, 29,
- 89, 13, nil, nil, 15, nil, 11, 36, 24, 33,
- 14, 34, nil, 35, nil, 23, 26, 25, 27, 12,
- nil, 30, nil, 31, nil, nil, nil, 32, nil, nil,
- nil, nil, nil, 17, nil, 22, 28, 21, 29, nil,
- 13, nil, nil, 15, nil, 11, 36, 24, 33, 14,
- 34, nil, 35, nil, 23, 26, 25, 27, 12, nil,
- 30, nil, 31, nil, nil, 93, 32, nil, nil, nil,
- nil, nil, 17, nil, 22, 28, 21, 29, nil, 13,
- nil, nil, 15, nil, 11, 36, 24, 33, 14, 34,
- nil, 35, nil, 23, 26, 25, 27, 12, nil, 30,
- nil, 31, nil, nil, nil, 32, nil, nil, 98, nil,
- nil, 17, nil, 22, 28, 21, 29, nil, 13, nil,
- nil, 15, nil, 11, 36, 24, 33, 14, 34, nil,
- 35, nil, 23, 26, 25, 27, 12, nil, 30, nil,
- 31, nil, nil, nil, 32, nil, nil, nil, nil, 101,
- 17, nil, nil, nil, 21, nil, 22, 28, nil, 29,
- nil, 13, 11, 36, 15, nil, 14, nil, 24, 33,
- 102, 34, nil, 35, nil, 23, 26, 25, 27, 12,
- nil, 30, nil, 31, nil, nil, nil, 32, nil, nil,
- nil, nil, nil, 17, nil, 22, 28, 21, 29, nil,
- 13, nil, nil, 15, nil, 11, 36, 24, 33, 14,
- 34, 103, 35, nil, 23, 26, 25, 27, 12, nil,
- 30, nil, 31, nil, nil, nil, 32, nil, nil, nil,
- nil, nil, 17, nil, 22, 28, 21, 29, nil, 13,
- nil, nil, 15, nil, 11, 36, 24, 33, 14, 34,
- nil, 35, 104, 23, 26, 25, 27, 12, nil, 30,
- nil, 31, nil, nil, nil, 32, nil, nil, nil, nil,
- nil, 17, nil, 22, 28, 21, 29, nil, 13, nil,
- nil, 15, nil, 11, 36, 24, 33, 14, 34, nil,
- 35, nil, 23, 26, 25, 27, 12, nil, 30, nil,
- 31, nil, nil, nil, 32, nil, nil, nil, nil, nil,
- 17, nil, 22, 28, 21, 29, nil, 13, nil, nil,
- 15, nil, 11, 36, 24, 33, 14, 34, nil, 35,
- nil, 23, 26, 25, 27, 12, nil, 30, nil, 31,
- nil, nil, nil, 32, nil, nil, nil, nil, nil, 17,
- nil, 22, 28, 21, 29, nil, 13, nil, nil, 15,
- nil, 11, 36, 24, 33, 14, 34, nil, 35, nil,
- 23, 26, 25, 27, 12, nil, 30, nil, 31, nil,
- nil, nil, 32, nil, nil, nil, nil, nil, 17, 115,
- 22, 28, 21, 29, nil, 13, nil, nil, 15, nil,
- 11, 36, 24, 33, 14, 34, nil, 35, nil, 23,
- 26, 25, 27, 12, nil, 30, nil, 31, nil, nil,
- nil, 32, nil, nil, nil, nil, nil, 17, nil, 22,
- 28, 21, 29, nil, 13, nil, 121, 15, nil, 11,
- 36, 24, 33, 14, 34, nil, 35, nil, 23, 26,
- 25, 27, 12, nil, 30, nil, 31, nil, nil, nil,
- 32, nil, nil, nil, nil, nil, 17, nil, 22, 28,
- 21, 29, nil, 13, nil, nil, 15, 123, 11, 36,
- 24, 33, 14, 34, nil, 35, nil, 23, 26, 25,
- 27, 12, nil, 30, nil, 31, nil, nil, 126, 32,
- nil, nil, nil, nil, nil, 17, nil, 22, 28, 21,
- 29, nil, 13, nil, nil, 15, nil, 11, 36, 24,
- 33, 14, 34, nil, 35, nil, 23, 26, 25, 27,
- 12, nil, 30, nil, 31, nil, nil, nil, 32, nil,
- nil, 129, nil, nil, 17, nil, 22, 28, 21, 29,
- nil, 13, nil, nil, 15, nil, 11, 36, 24, 33,
- 14, 34, nil, 35, nil, 23, 26, 25, 27, 12,
- nil, 30, nil, 31, nil, nil, nil, 32, nil, nil,
- nil, nil, 130, 17, nil, 22, 28, 21, 29, nil,
- 13, nil, 134, 15, nil, 11, 36, 24, 33, 14,
- 34, nil, 35, nil, 23, 26, 25, 27, 12, nil,
- 30, nil, 31, nil, nil, nil, 32, nil, nil, nil,
- nil, nil, 17, nil, 22, 28, 21, 29, nil, 13,
- nil, nil, 15, nil, 11, 36, 24, 33, 14, 34,
- nil, 35, nil, 23, 26, 25, 27, 12, nil, 30,
- nil, 31, nil, nil, nil, 32, nil, nil, nil, nil,
- nil, 17, nil, 22, 28, 21, 29, nil, 13, nil,
- nil, 15, nil, 11, 36, 24, 33, 14, 34, nil,
- 35, nil, 23, 26, 25, 27, 12, nil, 30, nil,
- 31, nil, nil, nil, 32, nil, nil, nil, nil, nil,
- 17, nil, 22, 28, 21, 29, nil, 13, nil, 142,
- 15, nil, 11, 36, 24, 33, 14, 34, nil, 35,
- nil, 23, 26, 25, 27, 12, nil, 30, nil, 31,
- nil, nil, nil, 32, nil, nil, nil, nil, nil, 17,
- nil, 22, 28, 21, 29, nil, 13, nil, nil, 15,
- 144, 11, 36, 24, 33, 14, 34, nil, 35, nil,
- 23, 26, 25, 27, 12, nil, 30, nil, 31, nil,
- nil, nil, 32, nil, nil, nil, nil, nil, 17, nil,
- nil, nil, 21, nil, nil, nil, nil, nil, nil, nil,
- 11, 36, 22, 28, 14, 29, nil, 13, nil, nil,
- 15, nil, 136, nil, 24, 33, nil, 34, nil, 35,
- nil, 23, 26, 25, 27, 12, nil, 30, nil, 31,
- nil, nil, nil, 32, nil, nil, nil, nil, nil, 17,
- nil, nil, nil, 21, nil, nil, nil, nil, nil, nil,
- nil, 11, 36, 22, 28, 14, 29, nil, 13, nil,
- nil, 15, nil, 136, nil, 24, 33, nil, 34, nil,
- 35, nil, 23, 26, 25, 27, 12, nil, 30, nil,
- 31, nil, nil, nil, 32, nil, nil, nil, nil, nil,
- 17, nil, nil, nil, 21, nil, nil, nil, nil, nil,
- nil, nil, 11, 36, nil, nil, 14 ]
-
-racc_action_check = [
- 0, 0, 21, 0, 32, 0, 32, 106, 0, 85,
- 1, 85, 0, 0, 121, 0, 121, 0, 51, 0,
- 0, 0, 0, 0, 123, 0, 123, 0, 142, 13,
- 142, 0, 15, 144, 17, 144, 30, 0, 31, 2,
- 2, 0, 2, 15, 2, 21, 36, 2, 37, 0,
- 0, 2, 2, 0, 2, 39, 2, 106, 2, 2,
- 2, 2, 2, 51, 2, 51, 2, 44, 44, 41,
- 2, 48, 48, 42, 43, 45, 2, 46, 12, 12,
- 2, 12, 49, 12, 15, 50, 12, 56, 2, 2,
- 12, 12, 2, 12, 58, 12, 59, 12, 12, 12,
- 12, 12, 60, 12, 62, 12, 67, 73, 74, 12,
- 76, 77, 81, 83, 84, 12, 90, 14, 14, 12,
- 14, 91, 14, 94, 95, 14, 105, 12, 12, 14,
- 14, 12, 14, 109, 14, 112, 14, 14, 14, 14,
- 14, 113, 14, 114, 14, 118, 119, 125, 14, 132,
- 133, 135, 139, 141, 14, nil, nil, nil, 14, nil,
- 28, 28, 28, 28, nil, 28, 14, 14, 28, nil,
- 14, nil, 28, 28, nil, 28, nil, 28, nil, 28,
- 28, 28, 28, 28, nil, 28, nil, 28, nil, nil,
- nil, 28, nil, nil, nil, nil, nil, 28, nil, 29,
- 29, 28, 29, 29, 29, nil, nil, 29, nil, 28,
- 28, 29, 29, 28, 29, nil, 29, nil, 29, 29,
- 29, 29, 29, nil, 29, nil, 29, nil, nil, nil,
- 29, nil, nil, nil, nil, nil, 29, nil, 33, 33,
- 29, 33, nil, 33, nil, nil, 33, nil, 29, 29,
- 33, 33, 29, 33, nil, 33, nil, 33, 33, 33,
- 33, 33, nil, 33, nil, 33, nil, nil, nil, 33,
- nil, nil, nil, nil, nil, 33, nil, 34, 34, 33,
- 34, nil, 34, nil, nil, 34, nil, 33, 33, 34,
- 34, 33, 34, nil, 34, nil, 34, 34, 34, 34,
- 34, nil, 34, nil, 34, nil, nil, nil, 34, nil,
- nil, nil, nil, nil, 34, nil, 35, 35, 34, 35,
- nil, 35, nil, nil, 35, nil, 34, 34, 35, 35,
- 34, 35, nil, 35, nil, 35, 35, 35, 35, 35,
- nil, 35, nil, 35, nil, nil, nil, 35, nil, nil,
- nil, nil, nil, 35, nil, 40, 40, 35, 40, nil,
- 40, nil, nil, 40, nil, 35, 35, 40, 40, 35,
- 40, nil, 40, nil, 40, 40, 40, 40, 40, nil,
- 40, nil, 40, nil, nil, nil, 40, nil, nil, nil,
- nil, nil, 40, nil, 47, 47, 40, 47, nil, 47,
- nil, nil, 47, nil, 40, 40, 47, 47, 40, 47,
- nil, 47, nil, 47, 47, 47, 47, 47, nil, 47,
- nil, 47, nil, nil, nil, 47, nil, nil, nil, nil,
- nil, 47, 47, nil, nil, 47, nil, 52, 52, 52,
- 52, nil, 52, 47, 47, 52, nil, 47, nil, 52,
- 52, nil, 52, nil, 52, nil, 52, 52, 52, 52,
- 52, nil, 52, nil, 52, nil, nil, nil, 52, nil,
- nil, nil, nil, nil, 52, nil, 54, 54, 52, 54,
- 54, 54, nil, nil, 54, nil, 52, 52, 54, 54,
- 52, 54, nil, 54, nil, 54, 54, 54, 54, 54,
- nil, 54, nil, 54, nil, nil, nil, 54, nil, nil,
- nil, nil, nil, 54, nil, 57, 57, 54, 57, nil,
- 57, nil, nil, 57, nil, 54, 54, 57, 57, 54,
- 57, nil, 57, nil, 57, 57, 57, 57, 57, nil,
- 57, nil, 57, nil, nil, 57, 57, nil, nil, nil,
- nil, nil, 57, nil, 61, 61, 57, 61, nil, 61,
- nil, nil, 61, nil, 57, 57, 61, 61, 57, 61,
- nil, 61, nil, 61, 61, 61, 61, 61, nil, 61,
- nil, 61, nil, nil, nil, 61, nil, nil, 61, nil,
- nil, 61, nil, 63, 63, 61, 63, nil, 63, nil,
- nil, 63, nil, 61, 61, 63, 63, 61, 63, nil,
- 63, nil, 63, 63, 63, 63, 63, nil, 63, nil,
- 63, nil, nil, nil, 63, nil, nil, nil, nil, 63,
- 63, nil, nil, nil, 63, nil, 64, 64, nil, 64,
- nil, 64, 63, 63, 64, nil, 63, nil, 64, 64,
- 64, 64, nil, 64, nil, 64, 64, 64, 64, 64,
- nil, 64, nil, 64, nil, nil, nil, 64, nil, nil,
- nil, nil, nil, 64, nil, 65, 65, 64, 65, nil,
- 65, nil, nil, 65, nil, 64, 64, 65, 65, 64,
- 65, 65, 65, nil, 65, 65, 65, 65, 65, nil,
- 65, nil, 65, nil, nil, nil, 65, nil, nil, nil,
- nil, nil, 65, nil, 66, 66, 65, 66, nil, 66,
- nil, nil, 66, nil, 65, 65, 66, 66, 65, 66,
- nil, 66, 66, 66, 66, 66, 66, 66, nil, 66,
- nil, 66, nil, nil, nil, 66, nil, nil, nil, nil,
- nil, 66, nil, 71, 71, 66, 71, nil, 71, nil,
- nil, 71, nil, 66, 66, 71, 71, 66, 71, nil,
- 71, nil, 71, 71, 71, 71, 71, nil, 71, nil,
- 71, nil, nil, nil, 71, nil, nil, nil, nil, nil,
- 71, nil, 75, 75, 71, 75, nil, 75, nil, nil,
- 75, nil, 71, 71, 75, 75, 71, 75, nil, 75,
- nil, 75, 75, 75, 75, 75, nil, 75, nil, 75,
- nil, nil, nil, 75, nil, nil, nil, nil, nil, 75,
- nil, 79, 79, 75, 79, nil, 79, nil, nil, 79,
- nil, 75, 75, 79, 79, 75, 79, nil, 79, nil,
- 79, 79, 79, 79, 79, nil, 79, nil, 79, nil,
- nil, nil, 79, nil, nil, nil, nil, nil, 79, 79,
- 86, 86, 79, 86, nil, 86, nil, nil, 86, nil,
- 79, 79, 86, 86, 79, 86, nil, 86, nil, 86,
- 86, 86, 86, 86, nil, 86, nil, 86, nil, nil,
- nil, 86, nil, nil, nil, nil, nil, 86, nil, 87,
- 87, 86, 87, nil, 87, nil, 86, 87, nil, 86,
- 86, 87, 87, 86, 87, nil, 87, nil, 87, 87,
- 87, 87, 87, nil, 87, nil, 87, nil, nil, nil,
- 87, nil, nil, nil, nil, nil, 87, nil, 92, 92,
- 87, 92, nil, 92, nil, nil, 92, 87, 87, 87,
- 92, 92, 87, 92, nil, 92, nil, 92, 92, 92,
- 92, 92, nil, 92, nil, 92, nil, nil, 92, 92,
- nil, nil, nil, nil, nil, 92, nil, 97, 97, 92,
- 97, nil, 97, nil, nil, 97, nil, 92, 92, 97,
- 97, 92, 97, nil, 97, nil, 97, 97, 97, 97,
- 97, nil, 97, nil, 97, nil, nil, nil, 97, nil,
- nil, 97, nil, nil, 97, nil, 100, 100, 97, 100,
- nil, 100, nil, nil, 100, nil, 97, 97, 100, 100,
- 97, 100, nil, 100, nil, 100, 100, 100, 100, 100,
- nil, 100, nil, 100, nil, nil, nil, 100, nil, nil,
- nil, nil, 100, 100, nil, 108, 108, 100, 108, nil,
- 108, nil, 108, 108, nil, 100, 100, 108, 108, 100,
- 108, nil, 108, nil, 108, 108, 108, 108, 108, nil,
- 108, nil, 108, nil, nil, nil, 108, nil, nil, nil,
- nil, nil, 108, nil, 111, 111, 108, 111, nil, 111,
- nil, nil, 111, nil, 108, 108, 111, 111, 108, 111,
- nil, 111, nil, 111, 111, 111, 111, 111, nil, 111,
- nil, 111, nil, nil, nil, 111, nil, nil, nil, nil,
- nil, 111, nil, 120, 120, 111, 120, nil, 120, nil,
- nil, 120, nil, 111, 111, 120, 120, 111, 120, nil,
- 120, nil, 120, 120, 120, 120, 120, nil, 120, nil,
- 120, nil, nil, nil, 120, nil, nil, nil, nil, nil,
- 120, nil, 122, 122, 120, 122, nil, 122, nil, 120,
- 122, nil, 120, 120, 122, 122, 120, 122, nil, 122,
- nil, 122, 122, 122, 122, 122, nil, 122, nil, 122,
- nil, nil, nil, 122, nil, nil, nil, nil, nil, 122,
- nil, 134, 134, 122, 134, nil, 134, nil, nil, 134,
- 122, 122, 122, 134, 134, 122, 134, nil, 134, nil,
- 134, 134, 134, 134, 134, nil, 134, nil, 134, nil,
- nil, nil, 134, nil, nil, nil, nil, nil, 134, nil,
- nil, nil, 134, nil, nil, nil, nil, nil, nil, nil,
- 134, 134, 136, 136, 134, 136, nil, 136, nil, nil,
- 136, nil, 136, nil, 136, 136, nil, 136, nil, 136,
- nil, 136, 136, 136, 136, 136, nil, 136, nil, 136,
- nil, nil, nil, 136, nil, nil, nil, nil, nil, 136,
- nil, nil, nil, 136, nil, nil, nil, nil, nil, nil,
- nil, 136, 136, 152, 152, 136, 152, nil, 152, nil,
- nil, 152, nil, 152, nil, 152, 152, nil, 152, nil,
- 152, nil, 152, 152, 152, 152, 152, nil, 152, nil,
- 152, nil, nil, nil, 152, nil, nil, nil, nil, nil,
- 152, nil, nil, nil, 152, nil, nil, nil, nil, nil,
- nil, nil, 152, 152, nil, nil, 152 ]
-
-racc_action_pointer = [
- -2, 10, 37, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 76, 27, 115, 30, nil, -7, nil, nil,
- nil, 0, nil, nil, nil, nil, nil, nil, 158, 197,
- 5, 7, -31, 236, 275, 314, 44, 48, nil, 29,
- 353, 61, 64, 18, 55, 73, 23, 392, 30, 38,
- 40, 16, 435, nil, 474, nil, 59, 513, 64, 59,
- 68, 552, 67, 591, 634, 673, 712, 94, nil, nil,
- nil, 751, nil, 105, 97, 790, 98, 109, nil, 829,
- nil, 71, nil, 69, 68, -38, 868, 907, nil, nil,
- 88, 90, 946, nil, 93, 90, nil, 985, nil, nil,
- 1024, nil, nil, nil, nil, 73, 5, nil, 1063, 121,
- nil, 1102, 124, 139, 131, nil, nil, nil, 100, 100,
- 1141, -33, 1180, -23, nil, 116, nil, nil, nil, nil,
- nil, nil, 137, 138, 1219, 140, 1270, nil, nil, 141,
- nil, 108, -19, nil, -14, nil, nil, nil, nil, nil,
- nil, nil, 1321, nil, nil, nil, nil, nil ]
-
-racc_action_default = [
- -83, -83, -1, -2, -3, -4, -5, -6, -7, -8,
- -9, -10, -19, -83, -19, -83, -18, -23, -37, -39,
- -40, -43, -51, -52, -53, -54, -55, -56, -83, -83,
- -83, -83, -73, -83, -83, -83, -83, -83, -38, -83,
- -20, -83, -26, -83, -30, -83, -83, -83, -23, -83,
- -43, -46, -83, -57, -83, -58, -63, -83, -63, -73,
- -83, -83, -73, -83, -83, -83, -83, -80, 158, -11,
- -12, -83, -13, -83, -83, -83, -32, -83, -21, -83,
- -24, -23, -41, -83, -83, -46, -83, -83, -59, -60,
- -83, -83, -83, -66, -83, -83, -69, -83, -70, -72,
- -83, -74, -76, -77, -78, -83, -83, -27, -28, -34,
- -15, -31, -83, -83, -30, -22, -25, -42, -43, -83,
- -83, -46, -83, -46, -61, -65, -67, -62, -68, -71,
- -75, -79, -80, -80, -83, -83, -34, -16, -33, -83,
- -44, -43, -46, -47, -46, -49, -64, -81, -82, -29,
- -14, -35, -34, -17, -45, -48, -50, -36 ]
-
-racc_goto_table = [
- 38, 84, 74, 105, 49, 39, 90, 43, 94, 60,
- 135, 1, 133, 2, 47, 41, 107, 112, 59, 56,
- 58, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 83, nil, 119, 95, 151, 38, 99,
- nil, 52, 54, nil, nil, 80, 64, 65, 66, nil,
- 38, nil, 38, 157, nil, nil, nil, nil, nil, nil,
- 79, nil, 38, 38, 38, nil, nil, nil, 147, 148,
- 92, 143, 139, 145, 97, 146, 100, 38, 116, 149,
- 125, nil, nil, nil, 108, nil, nil, nil, 111, nil,
- 38, nil, 155, nil, 156, 38, nil, nil, 38, 120,
- 122, 140, nil, nil, nil, nil, 38, nil, nil, 38,
- nil, nil, nil, nil, nil, nil, nil, nil, 38, nil,
- 38, nil, nil, nil, 154, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 108, nil, 152,
- 38 ]
-
-racc_goto_check = [
- 3, 23, 15, 30, 22, 12, 25, 12, 25, 28,
- 14, 1, 11, 2, 18, 13, 19, 16, 27, 24,
- 24, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 22, nil, 23, 28, 14, 3, 28,
- nil, 2, 2, nil, nil, 18, 2, 2, 2, nil,
- 3, nil, 3, 14, nil, nil, nil, nil, nil, nil,
- 2, nil, 3, 3, 3, nil, nil, nil, 30, 30,
- 2, 23, 15, 23, 2, 25, 2, 3, 18, 19,
- 24, nil, nil, nil, 2, nil, nil, nil, 2, nil,
- 3, nil, 23, nil, 23, 3, nil, nil, 3, 2,
- 2, 22, nil, nil, nil, nil, 3, nil, nil, 3,
- nil, nil, nil, nil, nil, nil, nil, nil, 3, nil,
- 3, nil, nil, nil, 22, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 2, nil, 2,
- 3 ]
-
-racc_goto_pointer = [
- nil, 11, 13, -2, nil, nil, nil, nil, nil, nil,
- nil, -94, -7, 2, -99, -42, -59, nil, -3, -55,
- nil, nil, -17, -50, -11, -50, nil, -14, -23, nil,
- -64 ]
-
-racc_goto_default = [
- nil, nil, 40, 18, 3, 4, 5, 6, 7, 8,
- 9, 10, nil, nil, nil, nil, nil, 16, nil, nil,
- 19, 20, nil, nil, nil, nil, 91, nil, nil, 62,
- nil ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 58, :_reduce_1,
- 1, 60, :_reduce_2,
- 1, 60, :_reduce_3,
- 1, 60, :_reduce_4,
- 1, 60, :_reduce_5,
- 1, 60, :_reduce_6,
- 1, 60, :_reduce_7,
- 1, 60, :_reduce_8,
- 1, 60, :_reduce_9,
- 1, 60, :_reduce_10,
- 3, 60, :_reduce_11,
- 3, 60, :_reduce_12,
- 3, 60, :_reduce_13,
- 6, 60, :_reduce_14,
- 4, 60, :_reduce_15,
- 5, 60, :_reduce_16,
- 6, 60, :_reduce_17,
- 1, 60, :_reduce_none,
- 0, 69, :_reduce_19,
- 1, 69, :_reduce_20,
- 3, 67, :_reduce_21,
- 4, 67, :_reduce_22,
- 0, 75, :_reduce_23,
- 2, 75, :_reduce_24,
- 3, 75, :_reduce_25,
- 1, 70, :_reduce_26,
- 3, 70, :_reduce_27,
- 1, 76, :_reduce_28,
- 3, 76, :_reduce_29,
- 0, 72, :_reduce_30,
- 2, 72, :_reduce_31,
- 0, 73, :_reduce_32,
- 2, 73, :_reduce_33,
- 0, 71, :_reduce_34,
- 2, 71, :_reduce_35,
- 3, 71, :_reduce_36,
- 1, 59, :_reduce_37,
- 2, 59, :_reduce_38,
- 1, 61, :_reduce_39,
- 1, 61, :_reduce_40,
- 3, 74, :_reduce_41,
- 4, 74, :_reduce_42,
- 0, 79, :_reduce_43,
- 4, 79, :_reduce_44,
- 5, 79, :_reduce_45,
- 0, 80, :_reduce_46,
- 3, 80, :_reduce_47,
- 4, 80, :_reduce_48,
- 3, 80, :_reduce_49,
- 4, 80, :_reduce_50,
- 1, 77, :_reduce_51,
- 1, 77, :_reduce_52,
- 1, 77, :_reduce_53,
- 1, 77, :_reduce_54,
- 1, 77, :_reduce_55,
- 1, 77, :_reduce_56,
- 2, 78, :_reduce_57,
- 2, 78, :_reduce_58,
- 3, 78, :_reduce_59,
- 3, 78, :_reduce_60,
- 4, 62, :_reduce_61,
- 4, 63, :_reduce_62,
- 0, 83, :_reduce_63,
- 3, 82, :_reduce_64,
- 0, 82, :_reduce_65,
- 2, 81, :_reduce_66,
- 3, 81, :_reduce_67,
- 4, 64, :_reduce_68,
- 3, 64, :_reduce_69,
- 2, 84, :_reduce_70,
- 3, 84, :_reduce_71,
- 2, 85, :_reduce_72,
- 0, 85, :_reduce_73,
- 2, 86, :_reduce_74,
- 3, 86, :_reduce_75,
- 3, 65, :_reduce_76,
- 3, 65, :_reduce_77,
- 3, 66, :_reduce_78,
- 4, 68, :_reduce_79,
- 0, 87, :_reduce_80,
- 3, 87, :_reduce_81,
- 3, 87, :_reduce_82 ]
-
-racc_reduce_n = 83
-
-racc_shift_n = 158
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :TEXT => 2,
- :BOLD_START => 3,
- :BOLD_END => 4,
- :ITALIC_START => 5,
- :ITALIC_END => 6,
- :LINK_START => 7,
- :LINK_END => 8,
- :LINKSEP => 9,
- :INTLINK_START => 10,
- :INTLINK_END => 11,
- :INTLINKSEP => 12,
- :RESOURCESEP => 13,
- :CHAR_ENT => 14,
- :PRE_START => 15,
- :PRE_END => 16,
- :PREINDENT_START => 17,
- :PREINDENT_END => 18,
- :SECTION_START => 19,
- :SECTION_END => 20,
- :HLINE => 21,
- :SIGNATURE_NAME => 22,
- :SIGNATURE_DATE => 23,
- :SIGNATURE_FULL => 24,
- :PARA_START => 25,
- :PARA_END => 26,
- :UL_START => 27,
- :UL_END => 28,
- :OL_START => 29,
- :OL_END => 30,
- :LI_START => 31,
- :LI_END => 32,
- :DL_START => 33,
- :DL_END => 34,
- :DT_START => 35,
- :DT_END => 36,
- :DD_START => 37,
- :DD_END => 38,
- :TAG_START => 39,
- :TAG_END => 40,
- :ATTR_NAME => 41,
- :ATTR_VALUE => 42,
- :TABLE_START => 43,
- :TABLE_END => 44,
- :ROW_START => 45,
- :ROW_END => 46,
- :HEAD_START => 47,
- :HEAD_END => 48,
- :CELL_START => 49,
- :CELL_END => 50,
- :KEYWORD => 51,
- :TEMPLATE_START => 52,
- :TEMPLATE_END => 53,
- :CATEGORY => 54,
- :PASTE_START => 55,
- :PASTE_END => 56 }
-
-racc_nt_base = 57
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "TEXT",
- "BOLD_START",
- "BOLD_END",
- "ITALIC_START",
- "ITALIC_END",
- "LINK_START",
- "LINK_END",
- "LINKSEP",
- "INTLINK_START",
- "INTLINK_END",
- "INTLINKSEP",
- "RESOURCESEP",
- "CHAR_ENT",
- "PRE_START",
- "PRE_END",
- "PREINDENT_START",
- "PREINDENT_END",
- "SECTION_START",
- "SECTION_END",
- "HLINE",
- "SIGNATURE_NAME",
- "SIGNATURE_DATE",
- "SIGNATURE_FULL",
- "PARA_START",
- "PARA_END",
- "UL_START",
- "UL_END",
- "OL_START",
- "OL_END",
- "LI_START",
- "LI_END",
- "DL_START",
- "DL_END",
- "DT_START",
- "DT_END",
- "DD_START",
- "DD_END",
- "TAG_START",
- "TAG_END",
- "ATTR_NAME",
- "ATTR_VALUE",
- "TABLE_START",
- "TABLE_END",
- "ROW_START",
- "ROW_END",
- "HEAD_START",
- "HEAD_END",
- "CELL_START",
- "CELL_END",
- "KEYWORD",
- "TEMPLATE_START",
- "TEMPLATE_END",
- "CATEGORY",
- "PASTE_START",
- "PASTE_END",
- "$start",
- "wiki",
- "repeated_contents",
- "contents",
- "text",
- "bulleted_list",
- "numbered_list",
- "dictionary_list",
- "preformatted",
- "section",
- "tag",
- "template",
- "para_contents",
- "link_contents",
- "reslink_repeated_contents",
- "intlink_repeated_contents",
- "cat_sort_contents",
- "table",
- "tag_attributes",
- "link_repeated_contents",
- "element",
- "formatted_element",
- "table_contents",
- "row_contents",
- "list_item",
- "list_contents",
- "@1",
- "dictionary_term",
- "dictionary_contents",
- "dictionary_definition",
- "template_parameters" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'mediacloth.y', 47)
- def _reduce_1(val, _values, result)
- @nodes.push WikiAST.new(0, @wiki_ast_length)
- #@nodes.last.children.insert(0, val[0])
- #puts val[0]
- @nodes.last.children += val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 57)
- def _reduce_2(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 61)
- def _reduce_3(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 65)
- def _reduce_4(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 69)
- def _reduce_5(val, _values, result)
- list = ListAST.new(@ast_index, @ast_length)
- list.list_type = :Dictionary
- list.children = val[0]
- result = list
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 76)
- def _reduce_6(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 80)
- def _reduce_7(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 84)
- def _reduce_8(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 88)
- def _reduce_9(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 92)
- def _reduce_10(val, _values, result)
- k = KeywordAST.new(@ast_index, @ast_length)
- k.text = val[0]
- result = k
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 98)
- def _reduce_11(val, _values, result)
- p = ParagraphAST.new(@ast_index, @ast_length)
- p.children = val[1]
- result = p
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 104)
- def _reduce_12(val, _values, result)
- l = LinkAST.new(@ast_index, @ast_length)
- l.link_type = val[0]
- l.url = val[1][0]
- l.children += val[1][1..-1] if val[1].length > 1
- result = l
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 112)
- def _reduce_13(val, _values, result)
- p = PasteAST.new(@ast_index, @ast_length)
- p.children = val[1]
- result = p
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 118)
- def _reduce_14(val, _values, result)
- l = ResourceLinkAST.new(@ast_index, @ast_length)
- l.prefix = val[1]
- l.locator = val[3]
- l.children = val[4] unless val[4].nil? or val[4].empty?
- result = l
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 126)
- def _reduce_15(val, _values, result)
- l = InternalLinkAST.new(@ast_index, @ast_length)
- l.locator = val[1]
- l.children = val[2] unless val[2].nil? or val[2].empty?
- result = l
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 133)
- def _reduce_16(val, _values, result)
- l = CategoryAST.new(@ast_index, @ast_length)
- l.locator = val[2]
- l.sort_as = val[3]
- result = l
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 140)
- def _reduce_17(val, _values, result)
- l = CategoryLinkAST.new(@ast_index, @ast_length)
- l.locator = val[3]
- l.children = val[4] unless val[4].nil? or val[4].empty?
- result = l
-
- result
- end
-.,.,
-
-# reduce 18 omitted
-
-module_eval(<<'.,.,', 'mediacloth.y', 150)
- def _reduce_19(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 154)
- def _reduce_20(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 161)
- def _reduce_21(val, _values, result)
- if val[0] != val[2]
- raise Racc::ParseError.new("XHTML end tag #{val[2]} does not match start tag #{val[0]}")
- end
- elem = ElementAST.new(@ast_index, @ast_length)
- elem.name = val[0]
- elem.attributes = val[1]
- result = elem
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 171)
- def _reduce_22(val, _values, result)
- if val[0] != val[3]
- raise Racc::ParseError.new("XHTML end tag #{val[3]} does not match start tag #{val[0]}")
- end
- elem = ElementAST.new(@ast_index, @ast_length)
- elem.name = val[0]
- elem.attributes = val[1]
- elem.children += val[2]
- result = elem
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 184)
- def _reduce_23(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 188)
- def _reduce_24(val, _values, result)
- attr_map = val[2] ? val[2] : {}
- attr_map[val[0]] = true
- result = attr_map
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 194)
- def _reduce_25(val, _values, result)
- attr_map = val[2] ? val[2] : {}
- attr_map[val[0]] = val[1]
- result = attr_map
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 204)
- def _reduce_26(val, _values, result)
- result = val
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 208)
- def _reduce_27(val, _values, result)
- result = [val[0]]
- result += val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 217)
- def _reduce_28(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 221)
- def _reduce_29(val, _values, result)
- result = val[0]
- result += val[2] if val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 229)
- def _reduce_30(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 233)
- def _reduce_31(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 239)
- def _reduce_32(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 243)
- def _reduce_33(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 249)
- def _reduce_34(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 253)
- def _reduce_35(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 257)
- def _reduce_36(val, _values, result)
- i = InternalLinkItemAST.new(@ast_index, @ast_length)
- i.children = val[1]
- result = [i]
- result += val[2] if val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 266)
- def _reduce_37(val, _values, result)
- result = []
- result << val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 271)
- def _reduce_38(val, _values, result)
- result = []
- result += val[0]
- result << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 279)
- def _reduce_39(val, _values, result)
- p = TextAST.new(@ast_index, @ast_length)
- p.formatting = val[0][0]
- p.contents = val[0][1]
- result = p
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 286)
- def _reduce_40(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 293)
- def _reduce_41(val, _values, result)
- table = TableAST.new(@ast_index, @ast_length)
- table.children = val[1] unless val[1].nil? or val[1].empty?
- result = table
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 299)
- def _reduce_42(val, _values, result)
- table = TableAST.new(@ast_index, @ast_length)
- table.options = val[1]
- table.children = val[2] unless val[2].nil? or val[2].empty?
- result = table
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 307)
- def _reduce_43(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 311)
- def _reduce_44(val, _values, result)
- row = TableRowAST.new(@ast_index, @ast_length)
- row.children = val[1] unless val[1].nil? or val[1].empty?
- result = [row]
- result += val[3] unless val[3].nil? or val[3].empty?
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 318)
- def _reduce_45(val, _values, result)
- row = TableRowAST.new(@ast_index, @ast_length)
- row.children = val[2] unless val[2].nil? or val[2].empty?
- row.options = val[1]
- result = [row]
- result += val[4] unless val[4].nil? or val[4].empty?
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 327)
- def _reduce_46(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 331)
- def _reduce_47(val, _values, result)
- cell = TableCellAST.new(@ast_index, @ast_length)
- cell.type = :head
- result = [cell]
- result += val[2] unless val[2].nil? or val[2].empty?
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 338)
- def _reduce_48(val, _values, result)
- cell = TableCellAST.new(@ast_index, @ast_length)
- cell.children = val[1] unless val[1].nil? or val[1].empty?
- cell.type = :head
- result = [cell]
- result += val[3] unless val[3].nil? or val[3].empty?
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 346)
- def _reduce_49(val, _values, result)
- cell = TableCellAST.new(@ast_index, @ast_length)
- cell.type = :body
- result = [cell]
- result += val[2] unless val[2].nil? or val[2].empty?
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 353)
- def _reduce_50(val, _values, result)
- if val[2] == 'attributes'
- result = []
- else
- cell = TableCellAST.new(@ast_index, @ast_length)
- cell.children = val[1] unless val[1].nil? or val[1].empty?
- cell.type = :body
- result = [cell]
- end
- result += val[3] unless val[3].nil? or val[3].empty?
- if val[2] == 'attributes' and val[3] and val[3].first.class == TableCellAST
- val[3].first.attributes = val[1]
- end
- result
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 371)
- def _reduce_51(val, _values, result)
- return [:None, val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 373)
- def _reduce_52(val, _values, result)
- return [:HLine, val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 375)
- def _reduce_53(val, _values, result)
- return [:CharacterEntity, val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 377)
- def _reduce_54(val, _values, result)
- return [:SignatureDate, val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 379)
- def _reduce_55(val, _values, result)
- return [:SignatureName, val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 381)
- def _reduce_56(val, _values, result)
- return [:SignatureFull, val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 387)
- def _reduce_57(val, _values, result)
- result = FormattedAST.new(@ast_index, @ast_length)
- result.formatting = :Bold
- result
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 393)
- def _reduce_58(val, _values, result)
- result = FormattedAST.new(@ast_index, @ast_length)
- result.formatting = :Italic
- result
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 399)
- def _reduce_59(val, _values, result)
- p = FormattedAST.new(@ast_index, @ast_length)
- p.formatting = :Bold
- p.children += val[1]
- result = p
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 406)
- def _reduce_60(val, _values, result)
- p = FormattedAST.new(@ast_index, @ast_length)
- p.formatting = :Italic
- p.children += val[1]
- result = p
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 415)
- def _reduce_61(val, _values, result)
- list = ListAST.new(@ast_index, @ast_length)
- list.list_type = :Bulleted
- list.children << val[1]
- list.children += val[2]
- result = list
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 425)
- def _reduce_62(val, _values, result)
- list = ListAST.new(@ast_index, @ast_length)
- list.list_type = :Numbered
- list.children << val[1]
- list.children += val[2]
- result = list
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 434)
- def _reduce_63(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 437)
- def _reduce_64(val, _values, result)
- result << val[1]
- result += val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 441)
- def _reduce_65(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 447)
- def _reduce_66(val, _values, result)
- result = ListItemAST.new(@ast_index, @ast_length)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 451)
- def _reduce_67(val, _values, result)
- li = ListItemAST.new(@ast_index, @ast_length)
- li.children += val[1]
- result = li
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 460)
- def _reduce_68(val, _values, result)
- result = [val[1]]
- result += val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 465)
- def _reduce_69(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 472)
- def _reduce_70(val, _values, result)
- result = ListTermAST.new(@ast_index, @ast_length)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 476)
- def _reduce_71(val, _values, result)
- term = ListTermAST.new(@ast_index, @ast_length)
- term.children += val[1]
- result = term
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 484)
- def _reduce_72(val, _values, result)
- result = [val[0]]
- result += val[1] if val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 489)
- def _reduce_73(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 495)
- def _reduce_74(val, _values, result)
- result = ListDefinitionAST.new(@ast_index, @ast_length)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 499)
- def _reduce_75(val, _values, result)
- term = ListDefinitionAST.new(@ast_index, @ast_length)
- term.children += val[1]
- result = term
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 506)
- def _reduce_76(val, _values, result)
- p = PreformattedAST.new(@ast_index, @ast_length)
- p.children += val[1]
- result = p
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 512)
- def _reduce_77(val, _values, result)
- p = PreformattedAST.new(@ast_index, @ast_length)
- p.indented = true
- p.children += val[1]
- result = p
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 520)
- def _reduce_78(val, _values, result)
- result = [val[1], val[0].length]
- s = SectionAST.new(@ast_index, @ast_length)
- s.children = val[1]
- s.level = val[0].length
- result = s
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 530)
- def _reduce_79(val, _values, result)
- t = TemplateAST.new(@ast_index, @ast_length)
- t.template_name = val[1]
- t.children = val[2] unless val[2].nil? or val[2].empty?
- result = t
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 539)
- def _reduce_80(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 543)
- def _reduce_81(val, _values, result)
- p = TemplateParameterAST.new(@ast_index, @ast_length)
- p.parameter_value = val[1]
- result = [p]
- result += val[2] if val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mediacloth.y', 550)
- def _reduce_82(val, _values, result)
- p = TemplateParameterAST.new(@ast_index, @ast_length)
- p.children << val[1]
- result = [p]
- result += val[2] if val[2]
-
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
-end # class MediaWikiParser
diff --git a/test/racc/regress/mof b/test/racc/regress/mof
deleted file mode 100644
index 836604744b..0000000000
--- a/test/racc/regress/mof
+++ /dev/null
@@ -1,1368 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-
-# parser.rb - generated by racc
-
-require 'strscan'
-require 'rubygems'
-require 'cim'
-require File.join(File.dirname(__FILE__), 'result')
-require File.join(File.dirname(__FILE__), 'scanner')
-require File.join(File.dirname(__FILE__), 'helper')
-
-module MOF
- class Parser < Racc::Parser
-
-module_eval(<<'...end mof.y/module_eval...', 'mof.y', 571)
-
-#
-# Initialize MOF::Parser
-# MOF::Parser.new options = {}
-#
-# options -> Hash of options
-# :debug -> boolean
-# :includes -> array of include dirs
-# :style -> :cim or :wmi
-#
-def initialize options = {}
- @yydebug = options[:debug]
- @includes = options[:includes] || []
- @quiet = options[:quiet]
- @style = options[:style] || :cim # default to style CIM v2.2 syntax
-
- @lineno = 1
- @file = nil
- @iconv = nil
- @eol = "\n"
- @fname = nil
- @fstack = []
- @in_comment = false
- @seen_files = []
- @qualifiers = {}
-end
-
-#
-# Make options hash from argv
-#
-# returns [ files, options ]
-#
-
- def self.argv_handler name, argv
- files = []
- options = { :namespace => "" }
- while argv.size > 0
- case opt = argv.shift
- when "-h"
- $stderr.puts "Ruby MOF compiler"
- $stderr.puts "#{name} [-h] [-d] [-I <dir>] [<moffiles>]"
- $stderr.puts "Compiles <moffile>"
- $stderr.puts "\t-d debug"
- $stderr.puts "\t-h this help"
- $stderr.puts "\t-I <dir> include dir"
- $stderr.puts "\t-f force"
- $stderr.puts "\t-n <namespace>"
- $stderr.puts "\t-o <output>"
- $stderr.puts "\t-s <style> syntax style (wmi,cim)"
- $stderr.puts "\t-q quiet"
- $stderr.puts "\t<moffiles> file(s) to read (else use $stdin)"
- exit 0
- when "-f" then options[:force] = true
- when "-s" then options[:style] = argv.shift.to_sym
- when "-d" then options[:debug] = true
- when "-q" then options[:quiet] = true
- when "-I"
- options[:includes] ||= []
- dirname = argv.shift
- unless File.directory?(dirname)
- files << dirname
- dirname = File.dirname(dirname)
- end
- options[:includes] << Pathname.new(dirname)
- when "-n" then options[:namespace] = argv.shift
- when "-o" then options[:output] = argv.shift
- when /^-.+/
- $stderr.puts "Undefined option #{opt}"
- else
- files << opt
- end
- end
- [ files, options ]
- end
-
-include Helper
-include Scanner
-
-...end mof.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- 13, 172, 163, 197, 174, 27, 63, 17, 145, 146,
- 147, 62, 28, 172, 11, 173, 174, 173, 148, 11,
- 144, 149, 150, 151, 152, 18, 163, 173, 33, 153,
- 106, 107, 108, 109, 110, 112, 111, 40, 15, 16,
- 42, 55, 57, 68, 69, 71, 72, 52, 53, 54,
- 56, 163, 7, 199, 35, 42, 174, 7, 10, 10,
- 115, 102, 114, 36, 10, 55, 57, 68, 69, 71,
- 72, 52, 53, 54, 56, 51, 190, 44, -77, 42,
- 33, 189, 10, 10, 33, 102, 51, 164, 60, 10,
- 55, 57, 68, 69, 71, 72, 52, 53, 54, 56,
- 170, 35, 10, 21, 42, 22, 23, 10, 29, 31,
- 102, 35, 95, 96, 55, 57, 25, 65, 24, 78,
- 52, 53, 54, 56, 97, 55, 57, 35, 180, 181,
- 100, 52, 53, 54, 56, 93, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- -25, 93, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 191, 192, 102, 60,
- 55, 57, 68, 69, 71, 72, 52, 53, 54, 56,
- 145, 146, 147, 172, 113, 97, 174, 10, 18, 118,
- 148, 119, 144, 149, 150, 151, 152, 173, 121, 124,
- 35, 153, 55, 57, 68, 69, 71, 72, 52, 53,
- 54, 56, 106, 107, 108, 109, 110, 112, 111, 10,
- 55, 57, 68, 69, 71, 72, 52, 53, 54, 56,
- 21, 126, 22, 23, 127, 129, 21, 10, 22, 23,
- 130, 131, 133, 25, 135, 24, 10, 141, 154, 25,
- 35, 24, 93, 79, 80, 81, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 91, 92, 106, 107, 108,
- 109, 110, 112, 111, 184, 185, 194, 200, 121, 207,
- -59, 121, 209, 211, 135, 135, 218, 220, 221, 226,
- 228, 229, 231, 10, 121, 135 ]
-
-racc_action_check = [
- 1, 140, 135, 186, 140, 12, 37, 8, 131, 131,
- 131, 37, 13, 194, 0, 140, 194, 186, 131, 1,
- 131, 131, 131, 131, 131, 8, 189, 194, 16, 131,
- 65, 65, 65, 65, 65, 65, 65, 20, 7, 7,
- 20, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 211, 0, 187, 17, 135, 187, 1, 135, 0,
- 75, 135, 75, 18, 1, 189, 189, 189, 189, 189,
- 189, 189, 189, 189, 189, 33, 177, 26, 207, 189,
- 29, 177, 189, 207, 30, 189, 96, 137, 34, 137,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 138, 36, 138, 10, 211, 10, 10, 211, 15, 15,
- 211, 169, 47, 47, 33, 33, 10, 38, 10, 43,
- 33, 33, 33, 33, 49, 96, 96, 216, 142, 142,
- 58, 96, 96, 96, 96, 169, 169, 169, 169, 169,
- 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
- 42, 216, 216, 216, 216, 216, 216, 216, 216, 216,
- 216, 216, 216, 216, 216, 216, 178, 178, 60, 61,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 181, 181, 181, 218, 66, 70, 218, 42, 74, 77,
- 181, 78, 181, 181, 181, 181, 181, 218, 94, 98,
- 100, 181, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 141, 141, 141, 141, 141, 141, 141, 40,
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
- 11, 102, 11, 11, 103, 116, 63, 115, 63, 63,
- 118, 119, 121, 11, 122, 11, 127, 130, 132, 63,
- 161, 63, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 192, 192, 192,
- 192, 192, 192, 192, 162, 164, 183, 188, 195, 196,
- 197, 198, 201, 205, 206, 208, 210, 212, 213, 217,
- 221, 222, 223, 229, 230, 233 ]
-
-racc_action_pointer = [
- -5, 0, nil, nil, nil, nil, nil, 32, -2, nil,
- 95, 222, -58, 12, nil, 101, -30, 46, 32, nil,
- -21, nil, nil, nil, nil, nil, 11, nil, nil, 22,
- 26, nil, nil, 67, 60, nil, 93, -54, 51, nil,
- 155, nil, 123, 59, 220, nil, nil, 53, nil, 76,
- nil, nil, nil, nil, nil, nil, nil, nil, 64, nil,
- 101, 141, nil, 228, nil, 18, 125, nil, nil, nil,
- 137, nil, nil, nil, 161, 0, nil, 129, 171, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 134, nil, 78, nil, 138, nil,
- 192, nil, 223, 173, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 173, 172, nil, 214, 183,
- nil, 195, 176, nil, nil, nil, nil, 182, nil, nil,
- 189, -1, 183, nil, nil, -6, nil, 25, 38, nil,
- -7, 200, 69, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 242, 208, nil, 212, nil, nil, nil, nil, 103,
- nil, nil, nil, nil, nil, nil, nil, 13, 107, nil,
- nil, 171, nil, 207, nil, nil, -5, 45, 248, 18,
- nil, nil, 255, nil, 5, 214, 221, 222, 217, nil,
- nil, 219, nil, nil, nil, 215, 216, 19, 217, nil,
- 226, 43, 224, 229, nil, nil, 119, 226, 175, nil,
- nil, 227, 231, 284, nil, nil, nil, nil, nil, 229,
- 230, nil, nil, 227, nil, nil ]
-
-racc_action_default = [
- -1, -25, -2, -4, -5, -6, -7, -161, -161, -26,
- -161, -161, -161, -161, -3, -161, -12, -161, -161, -28,
- -33, -133, -134, -135, -136, -137, -161, -155, 236, -12,
- -12, -11, -10, -161, -44, -48, -161, -161, -31, -34,
- -25, -36, -100, -161, -161, -8, -9, -161, -14, -16,
- -17, -18, -110, -111, -112, -113, -114, -115, -46, -45,
- -161, -44, -27, -161, -30, -161, -161, -103, -104, -105,
- -106, -107, -108, -109, -161, -161, -101, -131, -161, -60,
- -61, -62, -63, -64, -65, -66, -67, -68, -69, -70,
- -71, -72, -73, -74, -86, -13, -161, -116, -161, -47,
- -161, -49, -161, -161, -29, -32, -37, -38, -39, -40,
- -41, -42, -43, -35, -99, -25, -161, -132, -161, -161,
- -87, -91, -93, -15, -20, -51, -50, -25, -102, -130,
- -161, -161, -161, -92, -94, -25, -138, -25, -25, -157,
- -161, -161, -161, -140, -142, -143, -144, -145, -146, -147,
- -148, -149, -150, -151, -90, -95, -96, -97, -98, -117,
- -118, -161, -161, -122, -161, -21, -22, -23, -24, -161,
- -156, -158, -55, -56, -58, -128, -129, -161, -161, -153,
- -139, -161, -119, -161, -121, -19, -161, -161, -75, -25,
- -160, -152, -161, -141, -161, -86, -161, -55, -86, -57,
- -76, -161, -154, -123, -125, -161, -93, -25, -93, -159,
- -124, -25, -161, -161, -78, -80, -161, -161, -161, -127,
- -52, -161, -79, -161, -83, -84, -53, -126, -54, -25,
- -86, -85, -81, -88, -82, -89 ]
-
-racc_goto_table = [
- 8, 8, 34, 94, 122, 105, 136, 155, 48, 66,
- 49, 76, 50, 19, 143, 187, 58, 204, 215, 32,
- 139, 61, 2, 14, 12, 12, 1, 30, 47, 98,
- 137, 171, 45, 46, 165, 166, 167, 168, 37, 26,
- 232, 227, 38, 103, 64, 39, 41, 99, 101, 195,
- 198, 196, 213, 214, 222, 223, 230, 234, 235, 132,
- 75, 201, 225, 182, 193, 203, 104, 210, 177, 43,
- 77, 123, 116, 49, 117, 50, 142, 178, 138, nil,
- nil, 179, nil, 219, 128, 125, nil, nil, nil, nil,
- 212, nil, 217, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 206, nil, nil, 208, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 140, 186, nil,
- nil, nil, 202, nil, nil, nil, nil, 169, 140, nil,
- 233, nil, nil, nil, nil, nil, 183, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 224, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 216, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 216 ]
-
-racc_goto_check = [
- 13, 13, 14, 35, 37, 28, 38, 52, 10, 30,
- 11, 30, 12, 23, 69, 39, 15, 61, 44, 7,
- 72, 14, 2, 2, 55, 55, 1, 8, 9, 16,
- 17, 72, 7, 7, 18, 19, 20, 21, 24, 25,
- 44, 61, 26, 15, 27, 29, 31, 33, 34, 36,
- 40, 41, 42, 43, 45, 46, 47, 48, 50, 51,
- 54, 52, 39, 58, 69, 60, 23, 62, 63, 64,
- 65, 10, 66, 11, 67, 12, 68, 70, 71, nil,
- nil, 28, nil, 52, 30, 14, nil, nil, nil, nil,
- 38, nil, 38, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 37, nil, nil, 37, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 13, 35, nil,
- nil, nil, 28, nil, nil, nil, nil, 13, 13, nil,
- 37, nil, nil, nil, nil, nil, 14, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 35, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 13, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 13 ]
-
-racc_goto_pointer = [
- nil, 26, 22, nil, nil, nil, nil, 3, 12, -5,
- -25, -23, -21, 0, -15, -18, -29, -94, -103, -102,
- -101, -100, nil, 3, 19, 28, 22, 6, -60, 25,
- -31, 26, nil, -11, -12, -41, -137, -90, -116, -154,
- -137, -135, -155, -154, -189, -161, -161, -167, -176, nil,
- -175, -62, -128, nil, 18, 24, nil, nil, -98, nil,
- -129, -177, -137, -72, 43, 27, -5, -3, -55, -117,
- -64, -49, -107 ]
-
-racc_goto_default = [
- nil, nil, nil, 3, 4, 5, 6, nil, nil, nil,
- nil, 70, 67, 74, 188, nil, nil, nil, nil, nil,
- nil, nil, 9, nil, nil, 20, nil, nil, nil, nil,
- 156, 157, 59, nil, 160, nil, 175, nil, nil, nil,
- 176, nil, nil, nil, nil, nil, nil, nil, nil, 120,
- 134, nil, nil, 158, nil, 73, 159, 161, nil, 162,
- nil, nil, nil, 205, nil, nil, nil, nil, nil, nil,
- nil, nil, nil ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 0, 71, :_reduce_1,
- 1, 71, :_reduce_2,
- 2, 71, :_reduce_3,
- 1, 72, :_reduce_none,
- 1, 72, :_reduce_5,
- 1, 72, :_reduce_6,
- 1, 72, :_reduce_7,
- 4, 73, :_reduce_8,
- 4, 73, :_reduce_none,
- 3, 73, :_reduce_10,
- 1, 78, :_reduce_none,
- 0, 77, :_reduce_12,
- 3, 77, :_reduce_13,
- 1, 79, :_reduce_none,
- 3, 79, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_17,
- 1, 80, :_reduce_none,
- 9, 74, :_reduce_19,
- 0, 87, :_reduce_20,
- 2, 87, :_reduce_21,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 0, 83, :_reduce_none,
- 1, 83, :_reduce_26,
- 4, 92, :_reduce_27,
- 0, 94, :_reduce_28,
- 3, 94, :_reduce_29,
- 3, 93, :_reduce_30,
- 0, 97, :_reduce_none,
- 2, 97, :_reduce_32,
- 0, 96, :_reduce_none,
- 1, 96, :_reduce_none,
- 3, 99, :_reduce_35,
- 1, 99, :_reduce_none,
- 1, 98, :_reduce_none,
- 1, 98, :_reduce_none,
- 1, 98, :_reduce_none,
- 1, 98, :_reduce_none,
- 1, 98, :_reduce_none,
- 1, 98, :_reduce_none,
- 1, 98, :_reduce_43,
- 0, 85, :_reduce_none,
- 1, 85, :_reduce_none,
- 0, 86, :_reduce_none,
- 1, 86, :_reduce_none,
- 1, 84, :_reduce_48,
- 2, 102, :_reduce_49,
- 2, 104, :_reduce_50,
- 2, 103, :_reduce_51,
- 6, 89, :_reduce_52,
- 6, 91, :_reduce_53,
- 7, 90, :_reduce_54,
- 1, 106, :_reduce_none,
- 1, 106, :_reduce_56,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_58,
- 1, 111, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_74,
- 1, 109, :_reduce_75,
- 2, 109, :_reduce_76,
- 0, 112, :_reduce_none,
- 1, 112, :_reduce_none,
- 2, 113, :_reduce_79,
- 0, 115, :_reduce_80,
- 3, 115, :_reduce_81,
- 5, 114, :_reduce_82,
- 1, 116, :_reduce_none,
- 1, 116, :_reduce_none,
- 1, 117, :_reduce_none,
- 0, 107, :_reduce_none,
- 1, 107, :_reduce_none,
- 0, 118, :_reduce_none,
- 1, 118, :_reduce_89,
- 3, 119, :_reduce_90,
- 0, 121, :_reduce_91,
- 1, 121, :_reduce_none,
- 0, 108, :_reduce_none,
- 1, 108, :_reduce_none,
- 2, 120, :_reduce_95,
- 1, 122, :_reduce_none,
- 1, 122, :_reduce_none,
- 1, 122, :_reduce_none,
- 3, 101, :_reduce_99,
- 0, 124, :_reduce_none,
- 1, 124, :_reduce_101,
- 3, 124, :_reduce_102,
- 1, 100, :_reduce_none,
- 1, 100, :_reduce_none,
- 1, 100, :_reduce_none,
- 1, 100, :_reduce_none,
- 1, 100, :_reduce_none,
- 1, 100, :_reduce_none,
- 1, 100, :_reduce_109,
- 1, 82, :_reduce_none,
- 1, 82, :_reduce_none,
- 1, 82, :_reduce_none,
- 1, 82, :_reduce_none,
- 1, 82, :_reduce_none,
- 1, 81, :_reduce_none,
- 2, 81, :_reduce_116,
- 1, 123, :_reduce_none,
- 1, 123, :_reduce_none,
- 2, 126, :_reduce_none,
- 0, 127, :_reduce_none,
- 2, 127, :_reduce_none,
- 1, 129, :_reduce_none,
- 3, 128, :_reduce_none,
- 2, 130, :_reduce_none,
- 0, 132, :_reduce_none,
- 3, 132, :_reduce_none,
- 3, 131, :_reduce_none,
- 1, 133, :_reduce_none,
- 1, 133, :_reduce_none,
- 6, 75, :_reduce_130,
- 0, 136, :_reduce_none,
- 1, 136, :_reduce_none,
- 1, 95, :_reduce_none,
- 1, 95, :_reduce_none,
- 1, 95, :_reduce_none,
- 1, 95, :_reduce_none,
- 1, 95, :_reduce_none,
- 4, 134, :_reduce_138,
- 5, 135, :_reduce_139,
- 1, 138, :_reduce_140,
- 3, 138, :_reduce_141,
- 1, 139, :_reduce_none,
- 1, 139, :_reduce_none,
- 1, 139, :_reduce_none,
- 1, 139, :_reduce_none,
- 1, 139, :_reduce_none,
- 1, 139, :_reduce_none,
- 1, 139, :_reduce_none,
- 1, 139, :_reduce_none,
- 1, 139, :_reduce_none,
- 1, 139, :_reduce_none,
- 5, 137, :_reduce_152,
- 1, 140, :_reduce_153,
- 3, 140, :_reduce_154,
- 2, 76, :_reduce_none,
- 8, 125, :_reduce_none,
- 1, 141, :_reduce_none,
- 2, 141, :_reduce_none,
- 5, 142, :_reduce_none,
- 3, 142, :_reduce_160 ]
-
-racc_reduce_n = 161
-
-racc_shift_n = 236
-
-racc_token_table = {
- false => 0,
- :error => 1,
- "*" => 2,
- "/" => 3,
- "+" => 4,
- "-" => 5,
- :PRAGMA => 6,
- :INCLUDE => 7,
- :IDENTIFIER => 8,
- :CLASS => 9,
- :ASSOCIATION => 10,
- :INDICATION => 11,
- :AMENDED => 12,
- :ENABLEOVERRIDE => 13,
- :DISABLEOVERRIDE => 14,
- :RESTRICTED => 15,
- :TOSUBCLASS => 16,
- :TOINSTANCE => 17,
- :TRANSLATABLE => 18,
- :QUALIFIER => 19,
- :SCOPE => 20,
- :SCHEMA => 21,
- :PROPERTY => 22,
- :REFERENCE => 23,
- :METHOD => 24,
- :PARAMETER => 25,
- :FLAVOR => 26,
- :INSTANCE => 27,
- :AS => 28,
- :REF => 29,
- :ANY => 30,
- :OF => 31,
- :DT_VOID => 32,
- :DT_UINT8 => 33,
- :DT_SINT8 => 34,
- :DT_UINT16 => 35,
- :DT_SINT16 => 36,
- :DT_UINT32 => 37,
- :DT_SINT32 => 38,
- :DT_UINT64 => 39,
- :DT_SINT64 => 40,
- :DT_REAL32 => 41,
- :DT_REAL64 => 42,
- :DT_CHAR16 => 43,
- :DT_STR => 44,
- :DT_BOOLEAN => 45,
- :DT_DATETIME => 46,
- :positiveDecimalValue => 47,
- :stringValue => 48,
- :realValue => 49,
- :charValue => 50,
- :booleanValue => 51,
- :nullValue => 52,
- :binaryValue => 53,
- :octalValue => 54,
- :decimalValue => 55,
- :hexValue => 56,
- "#" => 57,
- "(" => 58,
- ")" => 59,
- "," => 60,
- "{" => 61,
- "}" => 62,
- ";" => 63,
- "[" => 64,
- "]" => 65,
- ":" => 66,
- "$" => 67,
- "=" => 68,
- "." => 69 }
-
-racc_nt_base = 70
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "\"*\"",
- "\"/\"",
- "\"+\"",
- "\"-\"",
- "PRAGMA",
- "INCLUDE",
- "IDENTIFIER",
- "CLASS",
- "ASSOCIATION",
- "INDICATION",
- "AMENDED",
- "ENABLEOVERRIDE",
- "DISABLEOVERRIDE",
- "RESTRICTED",
- "TOSUBCLASS",
- "TOINSTANCE",
- "TRANSLATABLE",
- "QUALIFIER",
- "SCOPE",
- "SCHEMA",
- "PROPERTY",
- "REFERENCE",
- "METHOD",
- "PARAMETER",
- "FLAVOR",
- "INSTANCE",
- "AS",
- "REF",
- "ANY",
- "OF",
- "DT_VOID",
- "DT_UINT8",
- "DT_SINT8",
- "DT_UINT16",
- "DT_SINT16",
- "DT_UINT32",
- "DT_SINT32",
- "DT_UINT64",
- "DT_SINT64",
- "DT_REAL32",
- "DT_REAL64",
- "DT_CHAR16",
- "DT_STR",
- "DT_BOOLEAN",
- "DT_DATETIME",
- "positiveDecimalValue",
- "stringValue",
- "realValue",
- "charValue",
- "booleanValue",
- "nullValue",
- "binaryValue",
- "octalValue",
- "decimalValue",
- "hexValue",
- "\"#\"",
- "\"(\"",
- "\")\"",
- "\",\"",
- "\"{\"",
- "\"}\"",
- "\";\"",
- "\"[\"",
- "\"]\"",
- "\":\"",
- "\"$\"",
- "\"=\"",
- "\".\"",
- "$start",
- "mofSpecification",
- "mofProduction",
- "compilerDirective",
- "classDeclaration",
- "qualifierDeclaration",
- "instanceDeclaration",
- "pragmaParameters_opt",
- "pragmaName",
- "pragmaParameterValues",
- "pragmaParameterValue",
- "string",
- "integerValue",
- "qualifierList_opt",
- "className",
- "alias_opt",
- "superClass_opt",
- "classFeatures",
- "classFeature",
- "propertyDeclaration",
- "methodDeclaration",
- "referenceDeclaration",
- "qualifierList",
- "qualifier",
- "qualifiers",
- "qualifierName",
- "qualifierParameter_opt",
- "flavor_opt",
- "flavor",
- "qualifierParameter",
- "constantValue",
- "arrayInitializer",
- "alias",
- "superClass",
- "aliasIdentifier",
- "dataType",
- "propertyName",
- "array_opt",
- "defaultValue_opt",
- "objectRef",
- "referenceName",
- "methodName",
- "parameterList_opt",
- "parameterList",
- "parameter",
- "parameters",
- "typespec",
- "parameterName",
- "parameterValue_opt",
- "array",
- "defaultValue",
- "positiveDecimalValue_opt",
- "initializer",
- "referenceInitializer",
- "constantValues",
- "instance",
- "objectHandle",
- "namespace_opt",
- "modelPath",
- "namespaceHandle",
- "keyValuePairList",
- "keyValuePair",
- "keyValuePairs",
- "keyname",
- "qualifierType",
- "scope",
- "defaultFlavor_opt",
- "defaultFlavor",
- "metaElements",
- "metaElement",
- "flavors",
- "valueInitializers",
- "valueInitializer" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'mof.y', 41)
- def _reduce_1(val, _values, result)
- result = Hash.new
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 43)
- def _reduce_2(val, _values, result)
- result = { @name => @result }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 45)
- def _reduce_3(val, _values, result)
- result = val[0]
- result[@name] = @result
-
- result
- end
-.,.,
-
-# reduce 4 omitted
-
-module_eval(<<'.,.,', 'mof.y', 53)
- def _reduce_5(val, _values, result)
- #puts "Class '#{val[0].name}'"
- @result.classes << val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 57)
- def _reduce_6(val, _values, result)
- @result.qualifiers << val[0]
- @qualifiers[val[0].name.downcase] = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 61)
- def _reduce_7(val, _values, result)
- @result.instances << val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 71)
- def _reduce_8(val, _values, result)
- raise MOF::Helper::Error.new(@name,@lineno,@line,"Missing filename after '#pragma include'") unless val[3]
- open val[3], :pragma
-
- result
- end
-.,.,
-
-# reduce 9 omitted
-
-module_eval(<<'.,.,', 'mof.y', 76)
- def _reduce_10(val, _values, result)
- raise StyleError.new(@name,@lineno,@line,"Use '#pragma include' instead of '#include'") unless @style == :wmi
- raise MOF::Helper::Error.new(@name,@lineno,@line,"Missing filename after '#include'") unless val[2]
- open val[2], :pragma
-
- result
- end
-.,.,
-
-# reduce 11 omitted
-
-module_eval(<<'.,.,', 'mof.y', 88)
- def _reduce_12(val, _values, result)
- raise StyleError.new(@name,@lineno,@line,"#pragma parameter missing") unless @style == :wmi
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 90)
- def _reduce_13(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-# reduce 14 omitted
-
-# reduce 15 omitted
-
-# reduce 16 omitted
-
-module_eval(<<'.,.,', 'mof.y', 101)
- def _reduce_17(val, _values, result)
- raise StyleError.new(@name,@lineno,@line,"#pragma parameter missing") unless @style == :wmi
- result
- end
-.,.,
-
-# reduce 18 omitted
-
-module_eval(<<'.,.,', 'mof.y', 112)
- def _reduce_19(val, _values, result)
- qualifiers = val[0]
- features = val[6]
- # FIXME: features must not include references
- result = CIM::Class.new(val[2],qualifiers,val[3],val[4],features)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 121)
- def _reduce_20(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 123)
- def _reduce_21(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-# reduce 22 omitted
-
-# reduce 23 omitted
-
-# reduce 24 omitted
-
-# reduce 25 omitted
-
-module_eval(<<'.,.,', 'mof.y', 136)
- def _reduce_26(val, _values, result)
- result = CIM::QualifierSet.new val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 141)
- def _reduce_27(val, _values, result)
- result = val[2]
- result.unshift val[1] if val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 147)
- def _reduce_28(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 149)
- def _reduce_29(val, _values, result)
- result = val[0]
- result << val[2] if val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 156)
- def _reduce_30(val, _values, result)
- # Get qualifier decl
- qualifier = case val[0]
- when CIM::Qualifier then val[0].definition
- when CIM::QualifierDeclaration then val[0]
- when String then @qualifiers[val[0].downcase]
- else
- nil
- end
- raise MOF::Helper::Error.new(@name,@lineno,@line,"'#{val[0]}' is not a valid qualifier") unless qualifier
- value = val[1]
- raise MOF::Helper::Error.new(@name,@lineno,@line,"#{value.inspect} does not match qualifier type '#{qualifier.type}'") unless qualifier.type.matches?(value)||@style == :wmi
- # Don't propagate a boolean 'false'
- if qualifier.type == :boolean && value == false
- result = nil
- else
- result = CIM::Qualifier.new(qualifier,value,val[2])
- end
-
- result
- end
-.,.,
-
-# reduce 31 omitted
-
-module_eval(<<'.,.,', 'mof.y', 179)
- def _reduce_32(val, _values, result)
- result = CIM::QualifierFlavors.new val[1]
- result
- end
-.,.,
-
-# reduce 33 omitted
-
-# reduce 34 omitted
-
-module_eval(<<'.,.,', 'mof.y', 189)
- def _reduce_35(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-# reduce 36 omitted
-
-# reduce 37 omitted
-
-# reduce 38 omitted
-
-# reduce 39 omitted
-
-# reduce 40 omitted
-
-# reduce 41 omitted
-
-# reduce 42 omitted
-
-module_eval(<<'.,.,', 'mof.y', 196)
- def _reduce_43(val, _values, result)
- case val[0].to_sym
- when :amended, :toinstance
- raise StyleError.new(@name,@lineno,@line,"'#{val[0]}' is not a valid flavor") unless @style == :wmi
- end
-
- result
- end
-.,.,
-
-# reduce 44 omitted
-
-# reduce 45 omitted
-
-# reduce 46 omitted
-
-# reduce 47 omitted
-
-module_eval(<<'.,.,', 'mof.y', 215)
- def _reduce_48(val, _values, result)
- raise ParseError.new("Class name must be prefixed by '<schema>_'") unless val[0].include?("_") || @style == :wmi
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 220)
- def _reduce_49(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 225)
- def _reduce_50(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 230)
- def _reduce_51(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 236)
- def _reduce_52(val, _values, result)
- if val[3]
- type = CIM::Array.new val[3],val[1]
- else
- type = val[1]
- end
- result = CIM::Property.new(type,val[2],val[0],val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 247)
- def _reduce_53(val, _values, result)
- if val[4]
- raise StyleError.new(@name,@lineno,@line,"Array not allowed in reference declaration") unless @style == :wmi
- end
- result = CIM::Reference.new(val[1],val[2],val[0],val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 255)
- def _reduce_54(val, _values, result)
- result = CIM::Method.new(val[1],val[2],val[0],val[4])
- result
- end
-.,.,
-
-# reduce 55 omitted
-
-module_eval(<<'.,.,', 'mof.y', 261)
- def _reduce_56(val, _values, result)
- # tmplprov.mof has 'string Property;'
- raise StyleError.new(@name,@lineno,@line,"Invalid keyword '#{val[0]}' used for property name") unless @style == :wmi
-
- result
- end
-.,.,
-
-# reduce 57 omitted
-
-module_eval(<<'.,.,', 'mof.y', 269)
- def _reduce_58(val, _values, result)
- result = "Indication"
- result
- end
-.,.,
-
-# reduce 59 omitted
-
-# reduce 60 omitted
-
-# reduce 61 omitted
-
-# reduce 62 omitted
-
-# reduce 63 omitted
-
-# reduce 64 omitted
-
-# reduce 65 omitted
-
-# reduce 66 omitted
-
-# reduce 67 omitted
-
-# reduce 68 omitted
-
-# reduce 69 omitted
-
-# reduce 70 omitted
-
-# reduce 71 omitted
-
-# reduce 72 omitted
-
-# reduce 73 omitted
-
-module_eval(<<'.,.,', 'mof.y', 292)
- def _reduce_74(val, _values, result)
- raise StyleError.new(@name,@lineno,@line,"'void' is not a valid datatype") unless @style == :wmi
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 297)
- def _reduce_75(val, _values, result)
- # WMI uses class names as data types (without REF ?!)
- raise StyleError.new(@name,@lineno,@line,"Expected 'ref' keyword after classname '#{val[0]}'") unless @style == :wmi
- result = CIM::ReferenceType.new val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 303)
- def _reduce_76(val, _values, result)
- result = CIM::ReferenceType.new val[0]
- result
- end
-.,.,
-
-# reduce 77 omitted
-
-# reduce 78 omitted
-
-module_eval(<<'.,.,', 'mof.y', 313)
- def _reduce_79(val, _values, result)
- result = val[1].unshift val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 318)
- def _reduce_80(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 320)
- def _reduce_81(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 325)
- def _reduce_82(val, _values, result)
- if val[3]
- type = CIM::Array.new val[3], val[1]
- else
- type = val[1]
- end
- result = CIM::Property.new(type,val[2],val[0])
-
- result
- end
-.,.,
-
-# reduce 83 omitted
-
-# reduce 84 omitted
-
-# reduce 85 omitted
-
-# reduce 86 omitted
-
-# reduce 87 omitted
-
-# reduce 88 omitted
-
-module_eval(<<'.,.,', 'mof.y', 351)
- def _reduce_89(val, _values, result)
- raise "Default parameter value not allowed in syntax style '{@style}'" unless @style == :wmi
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 356)
- def _reduce_90(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 361)
- def _reduce_91(val, _values, result)
- result = -1
- result
- end
-.,.,
-
-# reduce 92 omitted
-
-# reduce 93 omitted
-
-# reduce 94 omitted
-
-module_eval(<<'.,.,', 'mof.y', 372)
- def _reduce_95(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-# reduce 96 omitted
-
-# reduce 97 omitted
-
-# reduce 98 omitted
-
-module_eval(<<'.,.,', 'mof.y', 383)
- def _reduce_99(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-# reduce 100 omitted
-
-module_eval(<<'.,.,', 'mof.y', 389)
- def _reduce_101(val, _values, result)
- result = [ val[0] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 391)
- def _reduce_102(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-# reduce 103 omitted
-
-# reduce 104 omitted
-
-# reduce 105 omitted
-
-# reduce 106 omitted
-
-# reduce 107 omitted
-
-# reduce 108 omitted
-
-module_eval(<<'.,.,', 'mof.y', 402)
- def _reduce_109(val, _values, result)
- raise "Instance as property value not allowed in syntax style '{@style}'" unless @style == :wmi
- result
- end
-.,.,
-
-# reduce 110 omitted
-
-# reduce 111 omitted
-
-# reduce 112 omitted
-
-# reduce 113 omitted
-
-# reduce 114 omitted
-
-# reduce 115 omitted
-
-module_eval(<<'.,.,', 'mof.y', 416)
- def _reduce_116(val, _values, result)
- result = val[0] + val[1]
- result
- end
-.,.,
-
-# reduce 117 omitted
-
-# reduce 118 omitted
-
-# reduce 119 omitted
-
-# reduce 120 omitted
-
-# reduce 121 omitted
-
-# reduce 122 omitted
-
-# reduce 123 omitted
-
-# reduce 124 omitted
-
-# reduce 125 omitted
-
-# reduce 126 omitted
-
-# reduce 127 omitted
-
-# reduce 128 omitted
-
-# reduce 129 omitted
-
-module_eval(<<'.,.,', 'mof.y', 471)
- def _reduce_130(val, _values, result)
- result = CIM::QualifierDeclaration.new( val[1], val[2][0], val[2][1], val[3], val[4])
- result
- end
-.,.,
-
-# reduce 131 omitted
-
-# reduce 132 omitted
-
-# reduce 133 omitted
-
-# reduce 134 omitted
-
-# reduce 135 omitted
-
-# reduce 136 omitted
-
-# reduce 137 omitted
-
-module_eval(<<'.,.,', 'mof.y', 490)
- def _reduce_138(val, _values, result)
- type = val[2].nil? ? val[1] : CIM::Array.new(val[2],val[1])
- result = [ type, val[3] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 497)
- def _reduce_139(val, _values, result)
- result = CIM::QualifierScopes.new(val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 502)
- def _reduce_140(val, _values, result)
- result = [ val[0] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 504)
- def _reduce_141(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-# reduce 142 omitted
-
-# reduce 143 omitted
-
-# reduce 144 omitted
-
-# reduce 145 omitted
-
-# reduce 146 omitted
-
-# reduce 147 omitted
-
-# reduce 148 omitted
-
-# reduce 149 omitted
-
-# reduce 150 omitted
-
-# reduce 151 omitted
-
-module_eval(<<'.,.,', 'mof.y', 522)
- def _reduce_152(val, _values, result)
- result = CIM::QualifierFlavors.new val[3]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 527)
- def _reduce_153(val, _values, result)
- result = [ val[0] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'mof.y', 529)
- def _reduce_154(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-# reduce 155 omitted
-
-# reduce 156 omitted
-
-# reduce 157 omitted
-
-# reduce 158 omitted
-
-# reduce 159 omitted
-
-module_eval(<<'.,.,', 'mof.y', 553)
- def _reduce_160(val, _values, result)
- raise "Instance property '#{val[1]} must have a value" unless @style == :wmi
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module MOF
-
-
diff --git a/test/racc/regress/namae b/test/racc/regress/namae
deleted file mode 100644
index 5a795e4579..0000000000
--- a/test/racc/regress/namae
+++ /dev/null
@@ -1,634 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-require 'singleton'
-require 'strscan'
-
-module Namae
- class Parser < Racc::Parser
-
-module_eval(<<'...end namae.y/module_eval...', 'namae.y', 135)
-
- include Singleton
-
- attr_reader :options, :input
-
- def initialize
- @input, @options = StringScanner.new(''), {
- :debug => false,
- :prefer_comma_as_separator => false,
- :comma => ',',
- :stops => ',;',
- :separator => /\s*(\band\b|\&|;)\s*/i,
- :title => /\s*\b(sir|lord|count(ess)?|(gen|adm|col|maj|capt|cmdr|lt|sgt|cpl|pvt|prof|dr|md|ph\.?d)\.?)(\s+|$)/i,
- :suffix => /\s*\b(JR|Jr|jr|SR|Sr|sr|[IVX]{2,})(\.|\b)/,
- :appellation => /\s*\b((mrs?|ms|fr|hr)\.?|miss|herr|frau)(\s+|$)/i
- }
- end
-
- def debug?
- options[:debug] || ENV['DEBUG']
- end
-
- def separator
- options[:separator]
- end
-
- def comma
- options[:comma]
- end
-
- def stops
- options[:stops]
- end
-
- def title
- options[:title]
- end
-
- def suffix
- options[:suffix]
- end
-
- def appellation
- options[:appellation]
- end
-
- def prefer_comma_as_separator?
- options[:prefer_comma_as_separator]
- end
-
- def parse(input)
- parse!(input)
- rescue => e
- warn e.message if debug?
- []
- end
-
- def parse!(string)
- input.string = normalize(string)
- reset
- do_parse
- end
-
- def normalize(string)
- string = string.strip
- string
- end
-
- def reset
- @commas, @words, @initials, @suffices, @yydebug = 0, 0, 0, 0, debug?
- self
- end
-
- private
-
- def stack
- @vstack || @racc_vstack || []
- end
-
- def last_token
- stack[-1]
- end
-
- def consume_separator
- return next_token if seen_separator?
- @commas, @words, @initials, @suffices = 0, 0, 0, 0
- [:AND, :AND]
- end
-
- def consume_comma
- @commas += 1
- [:COMMA, :COMMA]
- end
-
- def consume_word(type, word)
- @words += 1
-
- case type
- when :UWORD
- @initials += 1 if word =~ /^[[:upper:]]+\b/
- when :SUFFIX
- @suffices += 1
- end
-
- [type, word]
- end
-
- def seen_separator?
- !stack.empty? && last_token == :AND
- end
-
- def suffix?
- !@suffices.zero? || will_see_suffix?
- end
-
- def will_see_suffix?
- input.peek(8).to_s.strip.split(/\s+/)[0] =~ suffix
- end
-
- def will_see_initial?
- input.peek(6).to_s.strip.split(/\s+/)[0] =~ /^[[:upper:]]+\b/
- end
-
- def seen_full_name?
- prefer_comma_as_separator? && @words > 1 &&
- (@initials > 0 || !will_see_initial?) && !will_see_suffix?
- end
-
- def next_token
- case
- when input.nil?, input.eos?
- nil
- when input.scan(separator)
- consume_separator
- when input.scan(/\s*#{comma}\s*/)
- if @commas.zero? && !seen_full_name? || @commas == 1 && suffix?
- consume_comma
- else
- consume_separator
- end
- when input.scan(/\s+/)
- next_token
- when input.scan(title)
- consume_word(:TITLE, input.matched.strip)
- when input.scan(suffix)
- consume_word(:SUFFIX, input.matched.strip)
- when input.scan(appellation)
- [:APPELLATION, input.matched.strip]
- when input.scan(/((\\\w+)?\{[^\}]*\})*[[:upper:]][^\s#{stops}]*/)
- consume_word(:UWORD, input.matched)
- when input.scan(/((\\\w+)?\{[^\}]*\})*[[:lower:]][^\s#{stops}]*/)
- consume_word(:LWORD, input.matched)
- when input.scan(/(\\\w+)?\{[^\}]*\}[^\s#{stops}]*/)
- consume_word(:PWORD, input.matched)
- when input.scan(/('[^'\n]+')|("[^"\n]+")/)
- consume_word(:NICK, input.matched[1...-1])
- else
- raise ArgumentError,
- "Failed to parse name #{input.string.inspect}: unmatched data at offset #{input.pos}"
- end
- end
-
- def on_error(tid, value, stack)
- raise ArgumentError,
- "Failed to parse name: unexpected '#{value}' at #{stack.inspect}"
- end
-
-# -*- racc -*-
-...end namae.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- -39, 16, 32, 30, -40, 31, 33, -39, 17, -39,
- -39, -40, 67, -40, -40, 66, 53, 52, 54, -38,
- 59, -22, 39, -34, 45, 58, -38, 53, 52, 54,
- 53, 52, 54, 59, 39, 39, 62, 39, 53, 52,
- 54, 14, 12, 15, 68, 39, 7, 8, 14, 12,
- 15, 58, 39, 7, 8, 14, 22, 15, 24, 14,
- 22, 15, 24, 14, 22, 15, 30, 28, 31, 30,
- 28, 31, -19, -19, -19, 30, 42, 31, 30, 28,
- 31, -20, -20, -20, 30, 46, 31, 30, 28, 31,
- 30, 28, 31, -19, -19, -19, 53, 52, 54, 53,
- 52, 54, 39, 58, 59 ]
-
-racc_action_check = [
- 14, 1, 11, 43, 15, 43, 16, 14, 1, 14,
- 14, 15, 50, 15, 15, 49, 49, 49, 49, 12,
- 50, 12, 23, 49, 27, 37, 12, 32, 32, 32,
- 45, 45, 45, 38, 32, 40, 44, 45, 62, 62,
- 62, 0, 0, 0, 57, 62, 0, 0, 17, 17,
- 17, 60, 61, 17, 17, 9, 9, 9, 9, 20,
- 20, 20, 20, 5, 5, 5, 10, 10, 10, 21,
- 21, 21, 22, 22, 22, 24, 24, 24, 25, 25,
- 25, 28, 28, 28, 29, 29, 29, 35, 35, 35,
- 41, 41, 41, 42, 42, 42, 67, 67, 67, 73,
- 73, 73, 64, 70, 72 ]
-
-racc_action_pointer = [
- 38, 1, nil, nil, nil, 60, nil, nil, nil, 52,
- 63, 0, 19, nil, 0, 4, 6, 45, nil, nil,
- 56, 66, 69, 12, 72, 75, nil, 22, 78, 81,
- nil, nil, 24, nil, nil, 84, nil, 16, 23, nil,
- 25, 87, 90, 0, 34, 27, nil, nil, nil, 13,
- 10, nil, nil, nil, nil, nil, nil, 35, nil, nil,
- 42, 42, 35, nil, 92, nil, nil, 93, nil, nil,
- 94, nil, 94, 96, nil ]
-
-racc_action_default = [
- -1, -49, -2, -4, -5, -49, -8, -9, -10, -23,
- -49, -49, -19, -28, -30, -31, -49, -49, -6, -7,
- -49, -49, -38, -41, -49, -49, -29, -15, -22, -23,
- -30, -31, -36, 75, -3, -49, -15, -45, -42, -43,
- -41, -49, -22, -23, -14, -36, -21, -16, -24, -37,
- -26, -32, -38, -39, -40, -14, -11, -46, -47, -44,
- -45, -41, -36, -17, -49, -33, -35, -49, -48, -12,
- -45, -18, -25, -27, -13 ]
-
-racc_goto_table = [
- 3, 37, 26, 50, 56, 18, 2, 9, 47, 23,
- 1, 19, 20, 26, 73, 27, 50, 3, 60, 64,
- 23, 63, 26, 34, 9, nil, 36, 69, 21, 40,
- 44, 43, 25, 50, nil, 72, 26, 74, 71, 70,
- 55, nil, nil, 35, nil, nil, 61, 41, nil, 65,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 65 ]
-
-racc_goto_check = [
- 3, 8, 17, 16, 9, 3, 2, 7, 12, 3,
- 1, 4, 7, 17, 14, 10, 16, 3, 8, 15,
- 3, 12, 17, 2, 7, nil, 10, 9, 11, 10,
- 10, 7, 11, 16, nil, 16, 17, 9, 12, 8,
- 10, nil, nil, 11, nil, nil, 10, 11, nil, 3,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 3 ]
-
-racc_goto_pointer = [
- nil, 10, 6, 0, 6, nil, nil, 7, -22, -33,
- 5, 23, -24, nil, -53, -30, -29, -7, nil ]
-
-racc_goto_default = [
- nil, nil, nil, 51, 4, 5, 6, 29, nil, nil,
- 11, 10, nil, 48, 49, nil, 38, 13, 57 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 0, 12, :_reduce_1,
- 1, 12, :_reduce_2,
- 3, 12, :_reduce_3,
- 1, 13, :_reduce_4,
- 1, 13, :_reduce_none,
- 2, 13, :_reduce_6,
- 2, 13, :_reduce_7,
- 1, 13, :_reduce_none,
- 1, 16, :_reduce_9,
- 1, 16, :_reduce_10,
- 4, 15, :_reduce_11,
- 5, 15, :_reduce_12,
- 6, 15, :_reduce_13,
- 3, 15, :_reduce_14,
- 2, 15, :_reduce_15,
- 3, 17, :_reduce_16,
- 4, 17, :_reduce_17,
- 5, 17, :_reduce_18,
- 1, 22, :_reduce_none,
- 2, 22, :_reduce_20,
- 3, 22, :_reduce_21,
- 1, 21, :_reduce_none,
- 1, 21, :_reduce_none,
- 1, 23, :_reduce_24,
- 3, 23, :_reduce_25,
- 1, 23, :_reduce_26,
- 3, 23, :_reduce_27,
- 1, 18, :_reduce_none,
- 2, 18, :_reduce_29,
- 1, 28, :_reduce_none,
- 1, 28, :_reduce_none,
- 1, 25, :_reduce_none,
- 2, 25, :_reduce_33,
- 0, 26, :_reduce_none,
- 1, 26, :_reduce_none,
- 0, 24, :_reduce_none,
- 1, 24, :_reduce_none,
- 1, 14, :_reduce_none,
- 1, 14, :_reduce_none,
- 1, 14, :_reduce_none,
- 0, 19, :_reduce_none,
- 1, 19, :_reduce_none,
- 1, 27, :_reduce_none,
- 2, 27, :_reduce_44,
- 0, 20, :_reduce_none,
- 1, 20, :_reduce_none,
- 1, 29, :_reduce_none,
- 2, 29, :_reduce_48 ]
-
-racc_reduce_n = 49
-
-racc_shift_n = 75
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :COMMA => 2,
- :UWORD => 3,
- :LWORD => 4,
- :PWORD => 5,
- :NICK => 6,
- :AND => 7,
- :APPELLATION => 8,
- :TITLE => 9,
- :SUFFIX => 10 }
-
-racc_nt_base = 11
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "COMMA",
- "UWORD",
- "LWORD",
- "PWORD",
- "NICK",
- "AND",
- "APPELLATION",
- "TITLE",
- "SUFFIX",
- "$start",
- "names",
- "name",
- "word",
- "display_order",
- "honorific",
- "sort_order",
- "u_words",
- "opt_suffices",
- "opt_titles",
- "last",
- "von",
- "first",
- "opt_words",
- "words",
- "opt_comma",
- "suffices",
- "u_word",
- "titles" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'namae.y', 39)
- def _reduce_1(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 40)
- def _reduce_2(val, _values, result)
- result = [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 41)
- def _reduce_3(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 43)
- def _reduce_4(val, _values, result)
- result = Name.new(:given => val[0])
- result
- end
-.,.,
-
-# reduce 5 omitted
-
-module_eval(<<'.,.,', 'namae.y', 45)
- def _reduce_6(val, _values, result)
- result = val[0].merge(:family => val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 46)
- def _reduce_7(val, _values, result)
- result = val[1].merge(val[0])
- result
- end
-.,.,
-
-# reduce 8 omitted
-
-module_eval(<<'.,.,', 'namae.y', 49)
- def _reduce_9(val, _values, result)
- result = Name.new(:appellation => val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 50)
- def _reduce_10(val, _values, result)
- result = Name.new(:title => val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 54)
- def _reduce_11(val, _values, result)
- result = Name.new(:given => val[0], :family => val[1],
- :suffix => val[2], :title => val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 59)
- def _reduce_12(val, _values, result)
- result = Name.new(:given => val[0], :nick => val[1],
- :family => val[2], :suffix => val[3], :title => val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 64)
- def _reduce_13(val, _values, result)
- result = Name.new(:given => val[0], :nick => val[1],
- :particle => val[2], :family => val[3],
- :suffix => val[4], :title => val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 70)
- def _reduce_14(val, _values, result)
- result = Name.new(:given => val[0], :particle => val[1],
- :family => val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 75)
- def _reduce_15(val, _values, result)
- result = Name.new(:particle => val[0], :family => val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 80)
- def _reduce_16(val, _values, result)
- result = Name.new({ :family => val[0], :suffix => val[2][0],
- :given => val[2][1] }, !!val[2][0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 85)
- def _reduce_17(val, _values, result)
- result = Name.new({ :particle => val[0], :family => val[1],
- :suffix => val[3][0], :given => val[3][1] }, !!val[3][0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 90)
- def _reduce_18(val, _values, result)
- result = Name.new({ :particle => val[0,2].join(' '), :family => val[2],
- :suffix => val[4][0], :given => val[4][1] }, !!val[4][0])
-
- result
- end
-.,.,
-
-# reduce 19 omitted
-
-module_eval(<<'.,.,', 'namae.y', 96)
- def _reduce_20(val, _values, result)
- result = val.join(' ')
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 97)
- def _reduce_21(val, _values, result)
- result = val.join(' ')
- result
- end
-.,.,
-
-# reduce 22 omitted
-
-# reduce 23 omitted
-
-module_eval(<<'.,.,', 'namae.y', 101)
- def _reduce_24(val, _values, result)
- result = [nil,val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 102)
- def _reduce_25(val, _values, result)
- result = [val[2],val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 103)
- def _reduce_26(val, _values, result)
- result = [val[0],nil]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'namae.y', 104)
- def _reduce_27(val, _values, result)
- result = [val[0],val[2]]
- result
- end
-.,.,
-
-# reduce 28 omitted
-
-module_eval(<<'.,.,', 'namae.y', 107)
- def _reduce_29(val, _values, result)
- result = val.join(' ')
- result
- end
-.,.,
-
-# reduce 30 omitted
-
-# reduce 31 omitted
-
-# reduce 32 omitted
-
-module_eval(<<'.,.,', 'namae.y', 112)
- def _reduce_33(val, _values, result)
- result = val.join(' ')
- result
- end
-.,.,
-
-# reduce 34 omitted
-
-# reduce 35 omitted
-
-# reduce 36 omitted
-
-# reduce 37 omitted
-
-# reduce 38 omitted
-
-# reduce 39 omitted
-
-# reduce 40 omitted
-
-# reduce 41 omitted
-
-# reduce 42 omitted
-
-# reduce 43 omitted
-
-module_eval(<<'.,.,', 'namae.y', 122)
- def _reduce_44(val, _values, result)
- result = val.join(' ')
- result
- end
-.,.,
-
-# reduce 45 omitted
-
-# reduce 46 omitted
-
-# reduce 47 omitted
-
-module_eval(<<'.,.,', 'namae.y', 127)
- def _reduce_48(val, _values, result)
- result = val.join(' ')
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module Namae
diff --git a/test/racc/regress/nasl b/test/racc/regress/nasl
deleted file mode 100644
index 9173795a1d..0000000000
--- a/test/racc/regress/nasl
+++ /dev/null
@@ -1,2058 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-
-require 'nasl/parser/tree'
-
-require 'nasl/parser/argument'
-require 'nasl/parser/array'
-require 'nasl/parser/assigment'
-require 'nasl/parser/block'
-require 'nasl/parser/break'
-require 'nasl/parser/call'
-require 'nasl/parser/comment'
-require 'nasl/parser/continue'
-require 'nasl/parser/decrement'
-require 'nasl/parser/empty'
-require 'nasl/parser/export'
-require 'nasl/parser/expression'
-require 'nasl/parser/for'
-require 'nasl/parser/foreach'
-require 'nasl/parser/function'
-require 'nasl/parser/global'
-require 'nasl/parser/identifier'
-require 'nasl/parser/if'
-require 'nasl/parser/import'
-require 'nasl/parser/include'
-require 'nasl/parser/increment'
-require 'nasl/parser/integer'
-require 'nasl/parser/ip'
-require 'nasl/parser/key_value_pair'
-require 'nasl/parser/list'
-require 'nasl/parser/local'
-require 'nasl/parser/lvalue'
-require 'nasl/parser/parameter'
-require 'nasl/parser/reference'
-require 'nasl/parser/repeat'
-require 'nasl/parser/repetition'
-require 'nasl/parser/return'
-require 'nasl/parser/string'
-require 'nasl/parser/undefined'
-require 'nasl/parser/while'
-
-module Nasl
- class Grammar < Racc::Parser
-
-module_eval(<<'...end nasl.y/module_eval...', 'nasl.y', 582)
-
-def n(cls, *args)
- begin
- Nasl.const_get(cls).new(@tree, *args)
- rescue
- puts "An exception occurred during the creation of a #{cls} instance."
- puts
- puts "The arguments passed to the constructor were:"
- puts args
- puts
- puts @tok.last.context
- puts
- raise
- end
-end
-
-def c(*args)
- n(:Comment, *args)
- args[1]
-end
-
-def on_error(type, value, stack)
- raise ParseException, "The language's grammar does not permit #{value.name} to appear here", value.context
-end
-
-def next_token
- @tok = @tkz.get_token
-
- if @first && @tok.first == :COMMENT
- n(:Comment, @tok.last)
- @tok = @tkz.get_token
- end
- @first = false
-
- return @tok
-end
-
-def parse(env, code, path)
- @first = true
- @tree = Tree.new(env)
- @tkz = Tokenizer.new(code, path)
- @tree.concat(do_parse)
-end
-
-...end nasl.y/module_eval...
-##### State transition tables begin ###
-
-clist = [
-'144,143,161,162,163,164,165,166,157,158,159,160,153,152,151,154,155',
-'156,145,146,147,149,150,82,54,111,148,81,218,83,55,51,50,56,54,54,80',
-'11,78,65,55,55,53,63,54,54,66,95,102,103,55,55,53,53,64,54,218,269,67',
-'94,96,55,53,53,97,98,99,100,101,102,103,104,82,53,267,217,81,130,83',
-'131,51,50,130,54,131,80,130,54,131,55,51,50,68,55,54,72,95,147,149,150',
-'55,53,73,148,54,53,102,103,74,96,55,109,53,97,98,99,100,101,102,103',
-'104,82,53,112,114,81,54,83,133,51,50,134,55,136,80,137,54,138,141,51',
-'50,167,55,54,53,95,147,149,150,55,10,11,148,54,53,172,37,37,96,55,185',
-'53,97,98,99,100,101,102,103,104,82,53,192,195,81,225,83,226,51,50,148',
-'54,148,80,179,148,253,55,254,255,54,54,54,256,95,257,55,55,55,53,97',
-'98,99,100,101,102,103,96,53,53,53,97,98,99,100,101,102,103,104,82,54',
-'258,259,81,260,83,55,51,50,262,54,266,80,268,270,43,55,273,53,54,274',
-'54,275,95,148,55,148,55,53,97,98,99,100,101,102,103,96,53,148,53,97',
-'98,99,100,101,102,103,104,82,148,276,43,81,300,83,301,51,50,306,,,80',
-'154,155,156,145,146,147,149,150,54,,95,148,,,55,,145,146,147,149,150',
-',,96,148,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80',
-',145,146,147,149,150,,,54,148,95,,,,55,,,145,146,147,149,150,94,96,184',
-'148,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,97,98',
-'99,100,101,,,,54,,95,,,,55,97,98,99,100,101,,,,96,,,53,97,98,99,100',
-'101,102,103,104,82,,,,81,,83,,51,50,,,,80,97,98,99,100,101,,,,54,,95',
-',,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51',
-'50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,94,96,,,53,97,98,99,100,101,102',
-'103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,',
-'53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54',
-',95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83',
-',51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102',
-'103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,',
-'53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54',
-',95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83',
-',51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102',
-'103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,',
-'53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54',
-',95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83',
-',51,50,,,,80,208,,,,,,,,54,,95,,,,55,,,,,,,,94,96,,,53,97,98,99,100',
-'101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,',
-',,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,',
-',,,,,,54,,95,,,,55,,,,,,,,94,96,,,53,97,98,99,100,101,102,103,104,82',
-',,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99',
-'100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,',
-',,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80',
-',,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82',
-',,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99',
-'100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,',
-',,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80',
-',,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82',
-',,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99',
-'100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,',
-',,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80',
-',,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82',
-',,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99',
-'100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,',
-',,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80',
-',,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82',
-',,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99',
-'100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,',
-',,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80',
-',,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82',
-',,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99',
-'100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,',
-',,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80',
-',,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82',
-',,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99',
-'100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,',
-',,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80',
-',,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82',
-',,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99',
-'100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,',
-',,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80',
-',,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82',
-',,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,,53,97,98,99',
-'100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,',
-',,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80',
-',,,,,,,,54,,95,,,,55,,,,,,,,94,96,,,53,97,98,99,100,101,102,103,104',
-'82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,94,96,,,53,97',
-'98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,',
-',,55,,,,,,,,94,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51',
-'50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,94,96,,,53,97,98,99,100,101,102',
-'103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,,96,,',
-'53,97,98,99,100,101,102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54',
-',95,,,,55,,,,,,,,,96,,,53,97,98,99,100,101,102,103,104,82,,,,81,,83',
-',51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,94,96,,,53,97,98,99,100,101',
-'102,103,104,82,,,,81,,83,,51,50,,,,80,,,,,,,,,54,,95,,,,55,,,,,,,,94',
-'96,,,53,97,98,99,100,101,102,103,104,115,116,117,118,119,120,123,122',
-'121,115,116,117,118,119,120,123,122,121,153,152,151,154,155,156,145',
-'146,147,149,150,,,,148,,,,126,125,,,,124,,,,126,125,,,,124,144,143,161',
-'162,163,164,165,166,157,158,159,160,153,152,151,154,155,156,145,146',
-'147,149,150,,,,148,,,,,,,,142,144,143,161,162,163,164,165,166,157,158',
-'159,160,153,152,151,154,155,156,145,146,147,149,150,,,,148,,,,,,,,221',
-'144,143,161,162,163,164,165,166,157,158,159,160,153,152,151,154,155',
-'156,145,146,147,149,150,,,,148,,,,,,,,289,144,143,161,162,163,164,165',
-'166,157,158,159,160,153,152,151,154,155,156,145,146,147,149,150,,,,148',
-',,,,,,,297,144,143,161,162,163,164,165,166,157,158,159,160,153,152,151',
-'154,155,156,145,146,147,149,150,,,,148,,,,,,,251,144,143,161,162,163',
-'164,165,166,157,158,159,160,153,152,151,154,155,156,145,146,147,149',
-'150,,,,148,,,,,,,263,144,143,161,162,163,164,165,166,157,158,159,160',
-'153,152,151,154,155,156,145,146,147,149,150,,,,148,,,,,,,265,144,143',
-'161,162,163,164,165,166,157,158,159,160,153,152,151,154,155,156,145',
-'146,147,149,150,,,,148,,,,,,,286,144,143,161,162,163,164,165,166,157',
-'158,159,160,153,152,151,154,155,156,145,146,147,149,150,,,,148,51,50',
-'4,10,11,,299,36,32,34,37,39,40,41,54,42,43,,44,45,55,46,,47,,48,51,50',
-'4,10,11,,53,36,32,34,37,39,40,41,54,42,43,,44,45,55,46,,47,,48,51,50',
-'105,,,,53,36,32,34,37,39,40,41,54,42,43,107,44,45,55,46,,47,,48,51,50',
-'105,,,,53,36,32,34,37,39,40,41,54,42,43,,44,45,55,46,,47,,48,51,50,105',
-',,,53,36,32,34,37,39,40,41,54,42,43,,44,45,55,46,,47,,48,51,50,105,',
-',,53,36,32,34,37,39,40,41,54,42,43,,44,45,55,46,,47,,48,51,50,105,,',
-',53,36,32,34,37,39,40,41,54,42,43,,44,45,55,46,,47,,48,51,50,105,,,',
-'53,36,32,34,37,39,40,41,54,42,43,,44,45,55,46,,47,,48,51,50,105,,,,53',
-'36,32,34,37,39,40,41,54,42,43,,44,45,55,46,,47,,48,51,50,105,,,,53,36',
-'32,34,37,39,40,41,54,42,43,,44,45,55,46,,47,,48,51,50,105,,,,53,36,32',
-'34,37,39,40,41,54,42,43,,44,45,55,46,,47,,48,,,,,,,53,144,143,161,162',
-'163,164,165,166,157,158,159,160,153,152,151,154,155,156,145,146,147',
-'149,150,,,,148,144,143,161,162,163,164,165,166,157,158,159,160,153,152',
-'151,154,155,156,145,146,147,149,150,,,,148,144,143,161,162,163,164,165',
-'166,157,158,159,160,153,152,151,154,155,156,145,146,147,149,150,,,,148',
-'144,143,161,162,163,164,165,166,157,158,159,160,153,152,151,154,155',
-'156,145,146,147,149,150,,,,148,144,143,161,162,163,164,165,166,157,158',
-'159,160,153,152,151,154,155,156,145,146,147,149,150,,,,148,144,143,161',
-'162,163,164,165,166,157,158,159,160,153,152,151,154,155,156,145,146',
-'147,149,150,,,,148,144,143,161,162,163,164,165,166,157,158,159,160,153',
-'152,151,154,155,156,145,146,147,149,150,,,,148,144,143,161,162,163,164',
-'165,166,157,158,159,160,153,152,151,154,155,156,145,146,147,149,150',
-',,,148,144,143,161,162,163,164,165,166,157,158,159,160,153,152,151,154',
-'155,156,145,146,147,149,150,,,,148,144,143,161,162,163,164,165,166,157',
-'158,159,160,153,152,151,154,155,156,145,146,147,149,150,,,,148,144,143',
-'161,162,163,164,165,166,157,158,159,160,153,152,151,154,155,156,145',
-'146,147,149,150,,,,148,144,143,161,162,163,164,165,166,157,158,159,160',
-'153,152,151,154,155,156,145,146,147,149,150,,,,148,144,143,161,162,163',
-'164,165,166,157,158,159,160,153,152,151,154,155,156,145,146,147,149',
-'150,,,,148,144,143,161,162,163,164,165,166,157,158,159,160,153,152,151',
-'154,155,156,145,146,147,149,150,,,,148,144,143,161,162,163,164,165,166',
-'157,158,159,160,153,152,151,154,155,156,145,146,147,149,150,,,,148,144',
-'143,161,162,163,164,165,166,157,158,159,160,153,152,151,154,155,156',
-'145,146,147,149,150,,,,148,143,161,162,163,164,165,166,157,158,159,160',
-'153,152,151,154,155,156,145,146,147,149,150,,,,148,161,162,163,164,165',
-'166,157,158,159,160,153,152,151,154,155,156,145,146,147,149,150,,,,148',
-'153,152,151,154,155,156,145,146,147,149,150,,,,148,153,152,151,154,155',
-'156,145,146,147,149,150,,,,148,153,152,151,154,155,156,145,146,147,149',
-'150,,,,148,153,152,151,154,155,156,145,146,147,149,150,,,,148,153,152',
-'151,154,155,156,145,146,147,149,150,,,,148,153,152,151,154,155,156,145',
-'146,147,149,150,,,,148,153,152,151,154,155,156,145,146,147,149,150,',
-',,148,153,152,151,154,155,156,145,146,147,149,150,,,,148,153,152,151',
-'154,155,156,145,146,147,149,150,,,,148,152,151,154,155,156,145,146,147',
-'149,150,,,,148,151,154,155,156,145,146,147,149,150,,,,148' ]
- racc_action_table = arr = ::Array.new(4010, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-clist = [
-'213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213',
-'213,213,213,213,213,213,42,11,45,213,42,273,42,11,42,42,1,45,37,42,10',
-'42,33,45,37,11,31,41,42,33,42,73,73,41,42,45,37,32,273,134,213,34,42',
-'42,273,41,42,42,42,42,42,42,42,42,42,66,273,210,134,66,210,66,210,66',
-'66,52,134,52,66,132,50,132,134,109,109,35,50,66,38,66,229,229,229,66',
-'134,39,229,109,50,74,74,40,66,109,44,66,66,66,66,66,66,66,66,66,80,109',
-'46,48,80,51,80,56,80,80,62,51,69,80,70,94,71,75,297,297,77,94,80,51',
-'80,230,230,230,80,4,4,230,297,94,90,105,4,80,297,106,80,80,80,80,80',
-'80,80,80,80,81,297,110,113,81,139,81,140,81,81,169,95,170,81,95,171',
-'174,95,175,176,111,131,81,177,81,178,111,131,81,95,95,95,95,95,95,95',
-'95,81,111,131,81,81,81,81,81,81,81,81,81,82,138,182,183,82,187,82,138',
-'82,82,193,256,207,82,212,216,217,256,220,138,218,225,82,226,82,231,218',
-'232,82,256,256,256,256,256,256,256,256,82,218,233,82,82,82,82,82,82',
-'82,82,82,83,234,252,270,83,288,83,296,83,83,302,,,83,235,235,235,235',
-'235,235,235,235,83,,83,235,,,83,,238,238,238,238,238,,,83,238,,83,83',
-'83,83,83,83,83,83,83,96,,,,96,,96,,96,96,,,,96,,239,239,239,239,239',
-',,96,239,96,,,,96,,,240,240,240,240,240,96,96,96,240,96,96,96,96,96',
-'96,96,96,96,112,,,,112,,112,,112,112,,,,112,172,172,172,172,172,,,,112',
-',112,,,,112,276,276,276,276,276,,,,112,,,112,112,112,112,112,112,112',
-'112,112,114,,,,114,,114,,114,114,,,,114,301,301,301,301,301,,,,114,',
-'114,,,,114,,,,,,,,,114,,,114,114,114,114,114,114,114,114,114,115,,,',
-'115,,115,,115,115,,,,115,,,,,,,,,115,,115,,,,115,,,,,,,,115,115,,,115',
-'115,115,115,115,115,115,115,115,116,,,,116,,116,,116,116,,,,116,,,,',
-',,,,116,,116,,,,116,,,,,,,,,116,,,116,116,116,116,116,116,116,116,116',
-'117,,,,117,,117,,117,117,,,,117,,,,,,,,,117,,117,,,,117,,,,,,,,,117',
-',,117,117,117,117,117,117,117,117,117,118,,,,118,,118,,118,118,,,,118',
-',,,,,,,,118,,118,,,,118,,,,,,,,,118,,,118,118,118,118,118,118,118,118',
-'118,119,,,,119,,119,,119,119,,,,119,,,,,,,,,119,,119,,,,119,,,,,,,,',
-'119,,,119,119,119,119,119,119,119,119,119,120,,,,120,,120,,120,120,',
-',,120,,,,,,,,,120,,120,,,,120,,,,,,,,,120,,,120,120,120,120,120,120',
-'120,120,120,121,,,,121,,121,,121,121,,,,121,,,,,,,,,121,,121,,,,121',
-',,,,,,,,121,,,121,121,121,121,121,121,121,121,121,122,,,,122,,122,,122',
-'122,,,,122,,,,,,,,,122,,122,,,,122,,,,,,,,,122,,,122,122,122,122,122',
-'122,122,122,122,123,,,,123,,123,,123,123,,,,123,,,,,,,,,123,,123,,,',
-'123,,,,,,,,,123,,,123,123,123,123,123,123,123,123,123,124,,,,124,,124',
-',124,124,,,,124,124,,,,,,,,124,,124,,,,124,,,,,,,,124,124,,,124,124',
-'124,124,124,124,124,124,124,130,,,,130,,130,,130,130,,,,130,,,,,,,,',
-'130,,130,,,,130,,,,,,,,,130,,,130,130,130,130,130,130,130,130,130,137',
-',,,137,,137,,137,137,,,,137,,,,,,,,,137,,137,,,,137,,,,,,,,137,137,',
-',137,137,137,137,137,137,137,137,137,143,,,,143,,143,,143,143,,,,143',
-',,,,,,,,143,,143,,,,143,,,,,,,,,143,,,143,143,143,143,143,143,143,143',
-'143,144,,,,144,,144,,144,144,,,,144,,,,,,,,,144,,144,,,,144,,,,,,,,',
-'144,,,144,144,144,144,144,144,144,144,144,145,,,,145,,145,,145,145,',
-',,145,,,,,,,,,145,,145,,,,145,,,,,,,,,145,,,145,145,145,145,145,145',
-'145,145,145,146,,,,146,,146,,146,146,,,,146,,,,,,,,,146,,146,,,,146',
-',,,,,,,,146,,,146,146,146,146,146,146,146,146,146,147,,,,147,,147,,147',
-'147,,,,147,,,,,,,,,147,,147,,,,147,,,,,,,,,147,,,147,147,147,147,147',
-'147,147,147,147,148,,,,148,,148,,148,148,,,,148,,,,,,,,,148,,148,,,',
-'148,,,,,,,,,148,,,148,148,148,148,148,148,148,148,148,149,,,,149,,149',
-',149,149,,,,149,,,,,,,,,149,,149,,,,149,,,,,,,,,149,,,149,149,149,149',
-'149,149,149,149,149,150,,,,150,,150,,150,150,,,,150,,,,,,,,,150,,150',
-',,,150,,,,,,,,,150,,,150,150,150,150,150,150,150,150,150,151,,,,151',
-',151,,151,151,,,,151,,,,,,,,,151,,151,,,,151,,,,,,,,,151,,,151,151,151',
-'151,151,151,151,151,151,152,,,,152,,152,,152,152,,,,152,,,,,,,,,152',
-',152,,,,152,,,,,,,,,152,,,152,152,152,152,152,152,152,152,152,153,,',
-',153,,153,,153,153,,,,153,,,,,,,,,153,,153,,,,153,,,,,,,,,153,,,153',
-'153,153,153,153,153,153,153,153,154,,,,154,,154,,154,154,,,,154,,,,',
-',,,,154,,154,,,,154,,,,,,,,,154,,,154,154,154,154,154,154,154,154,154',
-'155,,,,155,,155,,155,155,,,,155,,,,,,,,,155,,155,,,,155,,,,,,,,,155',
-',,155,155,155,155,155,155,155,155,155,156,,,,156,,156,,156,156,,,,156',
-',,,,,,,,156,,156,,,,156,,,,,,,,,156,,,156,156,156,156,156,156,156,156',
-'156,157,,,,157,,157,,157,157,,,,157,,,,,,,,,157,,157,,,,157,,,,,,,,',
-'157,,,157,157,157,157,157,157,157,157,157,158,,,,158,,158,,158,158,',
-',,158,,,,,,,,,158,,158,,,,158,,,,,,,,,158,,,158,158,158,158,158,158',
-'158,158,158,159,,,,159,,159,,159,159,,,,159,,,,,,,,,159,,159,,,,159',
-',,,,,,,,159,,,159,159,159,159,159,159,159,159,159,160,,,,160,,160,,160',
-'160,,,,160,,,,,,,,,160,,160,,,,160,,,,,,,,,160,,,160,160,160,160,160',
-'160,160,160,160,161,,,,161,,161,,161,161,,,,161,,,,,,,,,161,,161,,,',
-'161,,,,,,,,,161,,,161,161,161,161,161,161,161,161,161,162,,,,162,,162',
-',162,162,,,,162,,,,,,,,,162,,162,,,,162,,,,,,,,,162,,,162,162,162,162',
-'162,162,162,162,162,163,,,,163,,163,,163,163,,,,163,,,,,,,,,163,,163',
-',,,163,,,,,,,,,163,,,163,163,163,163,163,163,163,163,163,164,,,,164',
-',164,,164,164,,,,164,,,,,,,,,164,,164,,,,164,,,,,,,,,164,,,164,164,164',
-'164,164,164,164,164,164,165,,,,165,,165,,165,165,,,,165,,,,,,,,,165',
-',165,,,,165,,,,,,,,,165,,,165,165,165,165,165,165,165,165,165,166,,',
-',166,,166,,166,166,,,,166,,,,,,,,,166,,166,,,,166,,,,,,,,,166,,,166',
-'166,166,166,166,166,166,166,166,192,,,,192,,192,,192,192,,,,192,,,,',
-',,,,192,,192,,,,192,,,,,,,,,192,,,192,192,192,192,192,192,192,192,192',
-'195,,,,195,,195,,195,195,,,,195,,,,,,,,,195,,195,,,,195,,,,,,,,,195',
-',,195,195,195,195,195,195,195,195,195,253,,,,253,,253,,253,253,,,,253',
-',,,,,,,,253,,253,,,,253,,,,,,,,253,253,,,253,253,253,253,253,253,253',
-'253,253,254,,,,254,,254,,254,254,,,,254,,,,,,,,,254,,254,,,,254,,,,',
-',,,254,254,,,254,254,254,254,254,254,254,254,254,255,,,,255,,255,,255',
-'255,,,,255,,,,,,,,,255,,255,,,,255,,,,,,,,255,255,,,255,255,255,255',
-'255,255,255,255,255,258,,,,258,,258,,258,258,,,,258,,,,,,,,,258,,258',
-',,,258,,,,,,,,258,258,,,258,258,258,258,258,258,258,258,258,260,,,,260',
-',260,,260,260,,,,260,,,,,,,,,260,,260,,,,260,,,,,,,,,260,,,260,260,260',
-'260,260,260,260,260,260,262,,,,262,,262,,262,262,,,,262,,,,,,,,,262',
-',262,,,,262,,,,,,,,,262,,,262,262,262,262,262,262,262,262,262,267,,',
-',267,,267,,267,267,,,,267,,,,,,,,,267,,267,,,,267,,,,,,,,267,267,,,267',
-'267,267,267,267,267,267,267,267,268,,,,268,,268,,268,268,,,,268,,,,',
-',,,,268,,268,,,,268,,,,,,,,268,268,,,268,268,268,268,268,268,268,268',
-'268,49,49,49,49,49,49,49,49,49,79,79,79,79,79,79,79,79,79,241,241,241',
-'241,241,241,241,241,241,241,241,,,,241,,,,49,49,,,,49,,,,79,79,,,,79',
-'76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76',
-',,,76,,,,,,,,76,135,135,135,135,135,135,135,135,135,135,135,135,135',
-'135,135,135,135,135,135,135,135,135,135,,,,135,,,,,,,,135,264,264,264',
-'264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264',
-'264,264,264,,,,264,,,,,,,,264,285,285,285,285,285,285,285,285,285,285',
-'285,285,285,285,285,285,285,285,285,285,285,285,285,,,,285,,,,,,,,285',
-'168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168',
-'168,168,168,168,168,168,,,,168,,,,,,,168,194,194,194,194,194,194,194',
-'194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,,,,194',
-',,,,,,194,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196',
-'196,196,196,196,196,196,196,196,,,,196,,,,,,,196,261,261,261,261,261',
-'261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261',
-'261,,,,261,,,,,,,261,287,287,287,287,287,287,287,287,287,287,287,287',
-'287,287,287,287,287,287,287,287,287,287,287,,,,287,0,0,0,0,0,,287,0',
-'0,0,0,0,0,0,0,0,0,,0,0,0,0,,0,,0,3,3,3,3,3,,0,3,3,3,3,3,3,3,3,3,3,,3',
-'3,3,3,,3,,3,43,43,43,,,,3,43,43,43,43,43,43,43,43,43,43,43,43,43,43',
-'43,,43,,43,47,47,47,,,,43,47,47,47,47,47,47,47,47,47,47,,47,47,47,47',
-',47,,47,108,108,108,,,,47,108,108,108,108,108,108,108,108,108,108,,108',
-'108,108,108,,108,,108,263,263,263,,,,108,263,263,263,263,263,263,263',
-'263,263,263,,263,263,263,263,,263,,263,265,265,265,,,,263,265,265,265',
-'265,265,265,265,265,265,265,,265,265,265,265,,265,,265,286,286,286,',
-',,265,286,286,286,286,286,286,286,286,286,286,,286,286,286,286,,286',
-',286,299,299,299,,,,286,299,299,299,299,299,299,299,299,299,299,,299',
-'299,299,299,,299,,299,300,300,300,,,,299,300,300,300,300,300,300,300',
-'300,300,300,,300,300,300,300,,300,,300,306,306,306,,,,300,306,306,306',
-'306,306,306,306,306,306,306,,306,306,306,306,,306,,306,,,,,,,306,180',
-'180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180',
-'180,180,180,180,180,,,,180,197,197,197,197,197,197,197,197,197,197,197',
-'197,197,197,197,197,197,197,197,197,197,197,197,,,,197,199,199,199,199',
-'199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199',
-'199,199,,,,199,200,200,200,200,200,200,200,200,200,200,200,200,200,200',
-'200,200,200,200,200,200,200,200,200,,,,200,201,201,201,201,201,201,201',
-'201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,,,,201',
-'202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202',
-'202,202,202,202,202,202,,,,202,203,203,203,203,203,203,203,203,203,203',
-'203,203,203,203,203,203,203,203,203,203,203,203,203,,,,203,204,204,204',
-'204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204',
-'204,204,204,,,,204,205,205,205,205,205,205,205,205,205,205,205,205,205',
-'205,205,205,205,205,205,205,205,205,205,,,,205,206,206,206,206,206,206',
-'206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206',
-',,,206,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209',
-'209,209,209,209,209,209,209,,,,209,222,222,222,222,222,222,222,222,222',
-'222,222,222,222,222,222,222,222,222,222,222,222,222,222,,,,222,277,277',
-'277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277',
-'277,277,277,277,,,,277,279,279,279,279,279,279,279,279,279,279,279,279',
-'279,279,279,279,279,279,279,279,279,279,279,,,,279,281,281,281,281,281',
-'281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281',
-'281,,,,281,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291',
-'291,291,291,291,291,291,291,291,,,,291,228,228,228,228,228,228,228,228',
-'228,228,228,228,228,228,228,228,228,228,228,228,228,228,,,,228,227,227',
-'227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227',
-'227,227,,,,227,242,242,242,242,242,242,242,242,242,242,242,,,,242,243',
-'243,243,243,243,243,243,243,243,243,243,,,,243,244,244,244,244,244,244',
-'244,244,244,244,244,,,,244,245,245,245,245,245,245,245,245,245,245,245',
-',,,245,246,246,246,246,246,246,246,246,246,246,246,,,,246,247,247,247',
-'247,247,247,247,247,247,247,247,,,,247,248,248,248,248,248,248,248,248',
-'248,248,248,,,,248,249,249,249,249,249,249,249,249,249,249,249,,,,249',
-'250,250,250,250,250,250,250,250,250,250,250,,,,250,237,237,237,237,237',
-'237,237,237,237,237,,,,237,236,236,236,236,236,236,236,236,236,,,,236' ]
- racc_action_check = arr = ::Array.new(4010, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-racc_action_pointer = [
- 3034, 33, nil, 3060, 109, nil, nil, nil, nil, nil,
- -5, -28, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, -2, 9, -6, 13, 47, nil, -17, 50, 59,
- 65, -8, -7, 3086, 68, -18, 80, 3112, 81, 2716,
- 35, 74, 15, nil, nil, nil, 128, nil, nil, nil,
- nil, nil, 88, nil, nil, nil, 42, nil, nil, 88,
- 133, 72, nil, -28, 30, 93, 2758, 96, nil, 2725,
- 91, 140, 189, 238, nil, nil, nil, nil, nil, nil,
- 86, nil, nil, nil, 84, 129, 287, nil, nil, nil,
- nil, nil, nil, nil, nil, 108, 105, nil, 3138, 52,
- 129, 138, 336, 111, 385, 434, 483, 532, 581, 630,
- 679, 728, 777, 826, 875, nil, nil, nil, nil, nil,
- 924, 139, 19, nil, 31, 2793, nil, 973, 168, 131,
- 133, nil, nil, 1022, 1071, 1120, 1169, 1218, 1267, 1316,
- 1365, 1414, 1463, 1512, 1561, 1610, 1659, 1708, 1757, 1806,
- 1855, 1904, 1953, 2002, 2051, 2100, 2149, nil, 2898, 143,
- 145, 148, 309, nil, 122, 124, 125, 128, 140, nil,
- 3354, nil, 156, 154, nil, nil, nil, 179, nil, nil,
- nil, nil, 2198, 171, 2932, 2247, 2966, 3381, nil, 3408,
- 3435, 3462, 3489, 3516, 3543, 3570, 3597, 187, nil, 3624,
- 10, nil, 168, -11, nil, nil, 190, 181, 187, nil,
- 172, nil, 3651, nil, nil, 195, 197, 3810, 3785, 66,
- 115, 207, 209, 221, 232, 256, 3972, 3959, 269, 303,
- 319, 2713, 3825, 3840, 3855, 3870, 3885, 3900, 3915, 3930,
- 3945, nil, 201, 2296, 2345, 2394, 178, nil, 2443, nil,
- 2492, 3000, 2541, 3164, 2828, 3190, nil, 2590, 2639, nil,
- 217, nil, nil, 3, nil, nil, 324, 3678, nil, 3705,
- nil, 3732, nil, nil, nil, 2863, 3216, 3034, 213, nil,
- nil, 3759, nil, nil, nil, nil, 206, 101, nil, 3242,
- 3268, 358, 234, nil, nil, nil, 3294, nil ]
-
-racc_action_default = [
- -2, -172, -1, -4, -172, -6, -8, -9, -10, -11,
- -172, -172, -15, -16, -17, -18, -19, -20, -22, -23,
- -24, -25, -26, -27, -28, -29, -30, -31, -32, -33,
- -34, -172, -172, -172, -172, -172, -40, -172, -172, -172,
- -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
- -172, -172, -128, -160, -161, -162, -172, -3, -5, -7,
- -21, -12, -172, -35, -36, -37, -172, -38, -39, -172,
- -157, -159, -42, -172, -172, -172, -172, -172, -49, -108,
- -172, -172, -172, -172, -93, -94, -105, -106, -107, -109,
- -110, -111, -112, -113, -172, -172, -172, -163, -164, -165,
- -166, -167, -169, -170, -171, -172, -172, -51, -154, -138,
- -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
- -172, -172, -172, -172, -172, -72, -74, -71, -73, -127,
- -172, -172, -142, 308, -172, -172, -41, -172, -172, -172,
- -172, -45, -47, -172, -172, -172, -172, -172, -172, -172,
- -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
- -172, -172, -172, -172, -172, -172, -172, -48, -172, -77,
- -81, -82, -172, -129, -172, -172, -172, -126, -172, -133,
- -143, -144, -146, -172, -148, -50, -153, -172, -134, -135,
- -136, -137, -172, -172, -172, -172, -172, -59, -60, -61,
- -62, -63, -64, -65, -66, -67, -68, -172, -70, -116,
- -128, -117, -131, -172, -140, -141, -172, -172, -172, -150,
- -152, -46, -155, -156, -158, -172, -172, -76, -78, -79,
- -80, -83, -84, -85, -86, -87, -88, -89, -90, -91,
- -92, -95, -96, -97, -98, -99, -100, -101, -102, -103,
- -104, -75, -172, -172, -172, -172, -125, -132, -172, -147,
- -172, -172, -172, -172, -172, -172, -69, -172, -172, -139,
- -172, -14, -149, -172, -43, -44, -172, -118, -121, -119,
- -122, -120, -123, -124, -145, -172, -172, -172, -55, -57,
- -58, -114, -115, -130, -13, -151, -172, -138, -53, -172,
- -172, -172, -172, -54, -56, -168, -172, -52 ]
-
-racc_goto_table = [
- 31, 187, 62, 31, 175, 33, 77, 183, 33, 178,
- 35, 139, 140, 35, 207, 38, 216, 106, 38, 60,
- 69, 1, 271, 59, 75, 58, 215, 49, 70, 61,
- 49, 108, 70, 174, 2, 113, 110, 57, nil, nil,
- nil, nil, nil, 31, nil, nil, nil, 31, 33, nil,
- nil, nil, 33, 35, nil, nil, nil, 35, 38, nil,
- nil, nil, 38, nil, nil, nil, nil, nil, nil, nil,
- 49, nil, nil, nil, 49, 294, nil, 127, 128, 198,
- nil, 252, 186, nil, nil, 173, 176, nil, 211, nil,
- nil, nil, nil, nil, nil, nil, 108, nil, nil, nil,
- nil, 223, 193, nil, nil, nil, nil, nil, 31, 188,
- nil, nil, nil, 33, 189, 210, nil, nil, 35, 190,
- 60, 224, 214, 38, 191, 219, nil, nil, nil, 70,
- nil, nil, nil, nil, nil, 49, 49, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 295, nil, nil, 293, nil,
- nil, nil, nil, nil, nil, 175, nil, nil, nil, 284,
- 283, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 296, nil, nil, nil, 302,
- nil, nil, nil, nil, 174, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 272,
- 305, nil, nil, nil, nil, nil, nil, 278, 280, 282,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 292, 211, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 176, nil, nil,
- nil, 288, nil, 290, nil, nil, nil, nil, nil, 210,
- nil, nil, nil, 31, 219, 31, nil, nil, 33, nil,
- 33, nil, nil, 35, 298, 35, nil, nil, 38, 76,
- 38, nil, nil, nil, nil, nil, 31, 303, 304, nil,
- 49, 33, 49, nil, 307, nil, 35, 188, nil, 31,
- 31, 38, 189, 135, 33, 33, 31, 190, nil, 35,
- 35, 33, 191, 49, 38, 38, 35, 168, 169, 170,
- 171, 38, nil, nil, 49, nil, 49, 49, nil, nil,
- nil, nil, nil, 49, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 194,
- nil, 196, 197, 199, 200, 201, 202, 203, 204, 205,
- 206, 209, nil, nil, nil, nil, nil, 213, nil, nil,
- nil, nil, nil, nil, 222, nil, nil, nil, nil, nil,
- 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
- 247, 248, 249, 250, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 261,
- nil, nil, 264, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 277, 279, 281, nil, nil, nil, nil, 285, nil, 287,
- nil, nil, nil, nil, 291, 209 ]
-
-racc_goto_check = [
- 30, 39, 9, 30, 43, 31, 37, 53, 31, 49,
- 32, 35, 35, 32, 41, 34, 10, 38, 34, 18,
- 33, 1, 11, 5, 33, 4, 50, 40, 9, 5,
- 40, 6, 9, 35, 2, 6, 9, 2, nil, nil,
- nil, nil, nil, 30, nil, nil, nil, 30, 31, nil,
- nil, nil, 31, 32, nil, nil, nil, 32, 34, nil,
- nil, nil, 34, nil, nil, nil, nil, nil, nil, nil,
- 40, nil, nil, nil, 40, 11, nil, 40, 40, 37,
- nil, 43, 38, nil, nil, 9, 9, nil, 37, nil,
- nil, nil, nil, nil, nil, nil, 6, nil, nil, nil,
- nil, 37, 9, nil, nil, nil, nil, nil, 30, 30,
- nil, nil, nil, 31, 31, 9, nil, nil, 32, 32,
- 18, 33, 9, 34, 34, 9, nil, nil, nil, 9,
- nil, nil, nil, nil, nil, 40, 40, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 10, nil, nil, 41, nil,
- nil, nil, nil, nil, nil, 43, nil, nil, nil, 53,
- 49, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 43, nil, nil, nil, 39,
- nil, nil, nil, nil, 35, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 9,
- 43, nil, nil, nil, nil, nil, nil, 37, 37, 37,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 37, 37, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 9, nil, nil,
- nil, 6, nil, 6, nil, nil, nil, nil, nil, 9,
- nil, nil, nil, 30, 9, 30, nil, nil, 31, nil,
- 31, nil, nil, 32, 6, 32, nil, nil, 34, 36,
- 34, nil, nil, nil, nil, nil, 30, 6, 6, nil,
- 40, 31, 40, nil, 6, nil, 32, 30, nil, 30,
- 30, 34, 31, 36, 31, 31, 30, 32, nil, 32,
- 32, 31, 34, 40, 34, 34, 32, 36, 36, 36,
- 36, 34, nil, nil, 40, nil, 40, 40, nil, nil,
- nil, nil, nil, 40, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 36,
- nil, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, nil, nil, nil, nil, nil, 36, nil, nil,
- nil, nil, nil, nil, 36, nil, nil, nil, nil, nil,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 36,
- nil, nil, 36, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 36, 36, 36, nil, nil, nil, nil, 36, nil, 36,
- nil, nil, nil, nil, 36, 36 ]
-
-racc_goto_pointer = [
- nil, 21, 34, nil, 21, 19, -12, nil, nil, -9,
- -118, -195, nil, nil, nil, nil, nil, nil, 15, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 0, 5, 10, -17, 15, -62, 237, -36, -26, -108,
- 27, -110, nil, -91, nil, nil, nil, nil, nil, -86,
- -106, nil, nil, -89, nil, nil ]
-
-racc_goto_default = [
- nil, nil, nil, 3, 5, 6, 7, 8, 9, 52,
- nil, 25, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 26, 27, 28, 29, 30,
- 86, 88, 85, nil, 84, 87, 180, 181, nil, nil,
- 79, nil, 89, 90, 91, 92, 93, 212, 177, nil,
- 129, 132, 182, nil, 220, 71 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 80, :_reduce_1,
- 0, 80, :_reduce_2,
- 2, 81, :_reduce_3,
- 1, 81, :_reduce_4,
- 2, 82, :_reduce_5,
- 1, 82, :_reduce_6,
- 2, 82, :_reduce_7,
- 1, 82, :_reduce_8,
- 1, 82, :_reduce_9,
- 1, 85, :_reduce_10,
- 1, 85, :_reduce_11,
- 2, 83, :_reduce_12,
- 6, 84, :_reduce_13,
- 5, 84, :_reduce_14,
- 1, 86, :_reduce_15,
- 1, 86, :_reduce_16,
- 1, 86, :_reduce_17,
- 1, 86, :_reduce_18,
- 1, 86, :_reduce_19,
- 1, 86, :_reduce_20,
- 2, 86, :_reduce_21,
- 1, 86, :_reduce_22,
- 1, 86, :_reduce_23,
- 1, 86, :_reduce_24,
- 1, 86, :_reduce_25,
- 1, 86, :_reduce_26,
- 1, 86, :_reduce_27,
- 1, 86, :_reduce_28,
- 1, 87, :_reduce_29,
- 1, 87, :_reduce_30,
- 1, 87, :_reduce_31,
- 1, 87, :_reduce_32,
- 1, 87, :_reduce_33,
- 1, 87, :_reduce_34,
- 2, 91, :_reduce_35,
- 2, 92, :_reduce_36,
- 2, 93, :_reduce_37,
- 2, 94, :_reduce_38,
- 2, 95, :_reduce_39,
- 1, 96, :_reduce_40,
- 3, 97, :_reduce_41,
- 2, 100, :_reduce_42,
- 5, 98, :_reduce_43,
- 5, 99, :_reduce_44,
- 3, 101, :_reduce_45,
- 4, 102, :_reduce_46,
- 3, 103, :_reduce_47,
- 3, 103, :_reduce_48,
- 2, 103, :_reduce_49,
- 3, 90, :_reduce_50,
- 2, 90, :_reduce_51,
- 9, 104, :_reduce_52,
- 6, 105, :_reduce_53,
- 7, 105, :_reduce_54,
- 5, 106, :_reduce_55,
- 7, 106, :_reduce_56,
- 5, 107, :_reduce_57,
- 5, 108, :_reduce_58,
- 3, 109, :_reduce_59,
- 3, 109, :_reduce_60,
- 3, 109, :_reduce_61,
- 3, 109, :_reduce_62,
- 3, 109, :_reduce_63,
- 3, 109, :_reduce_64,
- 3, 109, :_reduce_65,
- 3, 109, :_reduce_66,
- 3, 109, :_reduce_67,
- 3, 109, :_reduce_68,
- 4, 110, :_reduce_69,
- 3, 110, :_reduce_70,
- 2, 111, :_reduce_71,
- 2, 111, :_reduce_72,
- 2, 113, :_reduce_73,
- 2, 113, :_reduce_74,
- 3, 115, :_reduce_75,
- 3, 115, :_reduce_76,
- 2, 115, :_reduce_77,
- 3, 115, :_reduce_78,
- 3, 115, :_reduce_79,
- 3, 115, :_reduce_80,
- 2, 115, :_reduce_81,
- 2, 115, :_reduce_82,
- 3, 115, :_reduce_83,
- 3, 115, :_reduce_84,
- 3, 115, :_reduce_85,
- 3, 115, :_reduce_86,
- 3, 115, :_reduce_87,
- 3, 115, :_reduce_88,
- 3, 115, :_reduce_89,
- 3, 115, :_reduce_90,
- 3, 115, :_reduce_91,
- 3, 115, :_reduce_92,
- 1, 115, :_reduce_93,
- 1, 115, :_reduce_94,
- 3, 115, :_reduce_95,
- 3, 115, :_reduce_96,
- 3, 115, :_reduce_97,
- 3, 115, :_reduce_98,
- 3, 115, :_reduce_99,
- 3, 115, :_reduce_100,
- 3, 115, :_reduce_101,
- 3, 115, :_reduce_102,
- 3, 115, :_reduce_103,
- 3, 115, :_reduce_104,
- 1, 115, :_reduce_105,
- 1, 115, :_reduce_106,
- 1, 115, :_reduce_107,
- 1, 115, :_reduce_108,
- 1, 115, :_reduce_109,
- 1, 115, :_reduce_110,
- 1, 115, :_reduce_111,
- 1, 115, :_reduce_112,
- 1, 115, :_reduce_113,
- 3, 126, :_reduce_114,
- 3, 126, :_reduce_115,
- 1, 126, :_reduce_116,
- 1, 126, :_reduce_117,
- 3, 127, :_reduce_118,
- 3, 127, :_reduce_119,
- 3, 127, :_reduce_120,
- 3, 127, :_reduce_121,
- 3, 127, :_reduce_122,
- 3, 127, :_reduce_123,
- 3, 128, :_reduce_124,
- 2, 128, :_reduce_125,
- 1, 128, :_reduce_126,
- 2, 119, :_reduce_127,
- 1, 119, :_reduce_128,
- 2, 116, :_reduce_129,
- 3, 120, :_reduce_130,
- 1, 120, :_reduce_131,
- 3, 125, :_reduce_132,
- 2, 125, :_reduce_133,
- 1, 118, :_reduce_134,
- 1, 118, :_reduce_135,
- 1, 118, :_reduce_136,
- 1, 118, :_reduce_137,
- 0, 118, :_reduce_138,
- 3, 130, :_reduce_139,
- 2, 130, :_reduce_140,
- 2, 129, :_reduce_141,
- 1, 129, :_reduce_142,
- 1, 131, :_reduce_143,
- 1, 131, :_reduce_144,
- 3, 132, :_reduce_145,
- 1, 132, :_reduce_146,
- 3, 124, :_reduce_147,
- 2, 124, :_reduce_148,
- 2, 133, :_reduce_149,
- 1, 133, :_reduce_150,
- 3, 89, :_reduce_151,
- 1, 89, :_reduce_152,
- 2, 117, :_reduce_153,
- 1, 117, :_reduce_154,
- 3, 134, :_reduce_155,
- 3, 134, :_reduce_156,
- 1, 134, :_reduce_157,
- 3, 112, :_reduce_158,
- 1, 112, :_reduce_159,
- 1, 88, :_reduce_160,
- 1, 88, :_reduce_161,
- 1, 88, :_reduce_162,
- 1, 122, :_reduce_163,
- 1, 122, :_reduce_164,
- 1, 122, :_reduce_165,
- 1, 122, :_reduce_166,
- 1, 122, :_reduce_167,
- 7, 121, :_reduce_168,
- 1, 114, :_reduce_169,
- 1, 114, :_reduce_170,
- 1, 123, :_reduce_171 ]
-
-racc_reduce_n = 172
-
-racc_shift_n = 308
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :ASS_EQ => 2,
- :ADD_EQ => 3,
- :SUB_EQ => 4,
- :MUL_EQ => 5,
- :DIV_EQ => 6,
- :MOD_EQ => 7,
- :SLL_EQ => 8,
- :SRA_EQ => 9,
- :SRL_EQ => 10,
- :OR => 11,
- :AND => 12,
- :CMP_LT => 13,
- :CMP_GT => 14,
- :CMP_EQ => 15,
- :CMP_NE => 16,
- :CMP_GE => 17,
- :CMP_LE => 18,
- :SUBSTR_EQ => 19,
- :SUBSTR_NE => 20,
- :REGEX_EQ => 21,
- :REGEX_NE => 22,
- :BIT_OR => 23,
- :BIT_XOR => 24,
- :AMPERSAND => 25,
- :BIT_SRA => 26,
- :BIT_SRL => 27,
- :BIT_SLL => 28,
- :ADD => 29,
- :SUB => 30,
- :MUL => 31,
- :DIV => 32,
- :MOD => 33,
- :NOT => 34,
- :UMINUS => 35,
- :BIT_NOT => 36,
- :EXP => 37,
- :INCR => 38,
- :DECR => 39,
- :COMMENT => 40,
- :EXPORT => 41,
- :FUNCTION => 42,
- :LPAREN => 43,
- :RPAREN => 44,
- :SEMICOLON => 45,
- :BREAK => 46,
- :CONTINUE => 47,
- :GLOBAL => 48,
- :IMPORT => 49,
- :INCLUDE => 50,
- :LOCAL => 51,
- :REP => 52,
- :RETURN => 53,
- :LBRACE => 54,
- :RBRACE => 55,
- :FOR => 56,
- :FOREACH => 57,
- :IN => 58,
- :IF => 59,
- :ELSE => 60,
- :REPEAT => 61,
- :UNTIL => 62,
- :WHILE => 63,
- :COLON => 64,
- :COMMA => 65,
- :AT_SIGN => 66,
- :LBRACK => 67,
- :RBRACK => 68,
- :PERIOD => 69,
- :IDENT => 70,
- :INT_DEC => 71,
- :INT_HEX => 72,
- :INT_OCT => 73,
- :FALSE => 74,
- :TRUE => 75,
- :DATA => 76,
- :STRING => 77,
- :UNDEF => 78 }
-
-racc_nt_base = 79
-
-racc_use_result_var = false
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "ASS_EQ",
- "ADD_EQ",
- "SUB_EQ",
- "MUL_EQ",
- "DIV_EQ",
- "MOD_EQ",
- "SLL_EQ",
- "SRA_EQ",
- "SRL_EQ",
- "OR",
- "AND",
- "CMP_LT",
- "CMP_GT",
- "CMP_EQ",
- "CMP_NE",
- "CMP_GE",
- "CMP_LE",
- "SUBSTR_EQ",
- "SUBSTR_NE",
- "REGEX_EQ",
- "REGEX_NE",
- "BIT_OR",
- "BIT_XOR",
- "AMPERSAND",
- "BIT_SRA",
- "BIT_SRL",
- "BIT_SLL",
- "ADD",
- "SUB",
- "MUL",
- "DIV",
- "MOD",
- "NOT",
- "UMINUS",
- "BIT_NOT",
- "EXP",
- "INCR",
- "DECR",
- "COMMENT",
- "EXPORT",
- "FUNCTION",
- "LPAREN",
- "RPAREN",
- "SEMICOLON",
- "BREAK",
- "CONTINUE",
- "GLOBAL",
- "IMPORT",
- "INCLUDE",
- "LOCAL",
- "REP",
- "RETURN",
- "LBRACE",
- "RBRACE",
- "FOR",
- "FOREACH",
- "IN",
- "IF",
- "ELSE",
- "REPEAT",
- "UNTIL",
- "WHILE",
- "COLON",
- "COMMA",
- "AT_SIGN",
- "LBRACK",
- "RBRACK",
- "PERIOD",
- "IDENT",
- "INT_DEC",
- "INT_HEX",
- "INT_OCT",
- "FALSE",
- "TRUE",
- "DATA",
- "STRING",
- "UNDEF",
- "$start",
- "start",
- "roots",
- "root",
- "export",
- "function",
- "statement",
- "simple",
- "compound",
- "ident",
- "params",
- "block",
- "assign",
- "break",
- "call",
- "continue",
- "decr",
- "empty",
- "global",
- "import",
- "include",
- "incr",
- "local",
- "rep",
- "return",
- "for",
- "foreach",
- "if",
- "repeat",
- "while",
- "assign_exp",
- "call_exp",
- "decr_exp",
- "var_decls",
- "incr_exp",
- "string",
- "expr",
- "ref",
- "statements",
- "field",
- "lval",
- "args",
- "ip",
- "int",
- "undef",
- "list_expr",
- "array_expr",
- "arg",
- "kv_pair",
- "kv_pairs",
- "indexes",
- "index",
- "list_elem",
- "list_elems",
- "param",
- "var_decl" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'nasl.y', 61)
- def _reduce_1(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 63)
- def _reduce_2(val, _values)
- []
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 67)
- def _reduce_3(val, _values)
- [val[0]] + val[1]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 69)
- def _reduce_4(val, _values)
- [val[0]]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 73)
- def _reduce_5(val, _values)
- c(*val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 75)
- def _reduce_6(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 77)
- def _reduce_7(val, _values)
- c(*val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 79)
- def _reduce_8(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 81)
- def _reduce_9(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 85)
- def _reduce_10(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 87)
- def _reduce_11(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 95)
- def _reduce_12(val, _values)
- n(:Export, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 99)
- def _reduce_13(val, _values)
- n(:Function, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 101)
- def _reduce_14(val, _values)
- n(:Function, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 105)
- def _reduce_15(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 107)
- def _reduce_16(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 109)
- def _reduce_17(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 111)
- def _reduce_18(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 113)
- def _reduce_19(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 115)
- def _reduce_20(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 117)
- def _reduce_21(val, _values)
- c(*val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 119)
- def _reduce_22(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 121)
- def _reduce_23(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 123)
- def _reduce_24(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 125)
- def _reduce_25(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 127)
- def _reduce_26(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 129)
- def _reduce_27(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 131)
- def _reduce_28(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 135)
- def _reduce_29(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 137)
- def _reduce_30(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 139)
- def _reduce_31(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 141)
- def _reduce_32(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 143)
- def _reduce_33(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 145)
- def _reduce_34(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 153)
- def _reduce_35(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 157)
- def _reduce_36(val, _values)
- n(:Break, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 161)
- def _reduce_37(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 165)
- def _reduce_38(val, _values)
- n(:Continue, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 169)
- def _reduce_39(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 173)
- def _reduce_40(val, _values)
- n(:Empty, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 177)
- def _reduce_41(val, _values)
- n(:Global, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 181)
- def _reduce_42(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 185)
- def _reduce_43(val, _values)
- n(:Import, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 189)
- def _reduce_44(val, _values)
- n(:Include, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 193)
- def _reduce_45(val, _values)
- n(:Local, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 197)
- def _reduce_46(val, _values)
- n(:Repetition, *val[0..-1])
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 201)
- def _reduce_47(val, _values)
- n(:Return, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 203)
- def _reduce_48(val, _values)
- n(:Return, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 205)
- def _reduce_49(val, _values)
- n(:Return, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 213)
- def _reduce_50(val, _values)
- n(:Block, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 215)
- def _reduce_51(val, _values)
- n(:Block, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 219)
- def _reduce_52(val, _values)
- n(:For, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 223)
- def _reduce_53(val, _values)
- n(:Foreach, val[0], val[1], val[3], val[5])
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 225)
- def _reduce_54(val, _values)
- n(:Foreach, val[0], val[2], val[4], val[6])
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 229)
- def _reduce_55(val, _values)
- n(:If, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 231)
- def _reduce_56(val, _values)
- n(:If, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 235)
- def _reduce_57(val, _values)
- n(:Repeat, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 239)
- def _reduce_58(val, _values)
- n(:While, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 247)
- def _reduce_59(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 249)
- def _reduce_60(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 251)
- def _reduce_61(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 253)
- def _reduce_62(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 255)
- def _reduce_63(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 257)
- def _reduce_64(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 259)
- def _reduce_65(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 261)
- def _reduce_66(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 263)
- def _reduce_67(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 265)
- def _reduce_68(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 269)
- def _reduce_69(val, _values)
- n(:Call, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 271)
- def _reduce_70(val, _values)
- n(:Call, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 275)
- def _reduce_71(val, _values)
- n(:Decrement, val[0])
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 277)
- def _reduce_72(val, _values)
- n(:Decrement, val[0])
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 281)
- def _reduce_73(val, _values)
- n(:Increment, val[0])
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 283)
- def _reduce_74(val, _values)
- n(:Increment, val[0])
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 287)
- def _reduce_75(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 289)
- def _reduce_76(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 291)
- def _reduce_77(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 293)
- def _reduce_78(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 295)
- def _reduce_79(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 297)
- def _reduce_80(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 299)
- def _reduce_81(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 301)
- def _reduce_82(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 303)
- def _reduce_83(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 305)
- def _reduce_84(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 307)
- def _reduce_85(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 309)
- def _reduce_86(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 311)
- def _reduce_87(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 313)
- def _reduce_88(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 315)
- def _reduce_89(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 317)
- def _reduce_90(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 319)
- def _reduce_91(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 321)
- def _reduce_92(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 323)
- def _reduce_93(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 325)
- def _reduce_94(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 327)
- def _reduce_95(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 329)
- def _reduce_96(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 331)
- def _reduce_97(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 333)
- def _reduce_98(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 335)
- def _reduce_99(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 337)
- def _reduce_100(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 339)
- def _reduce_101(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 341)
- def _reduce_102(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 343)
- def _reduce_103(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 345)
- def _reduce_104(val, _values)
- n(:Expression, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 347)
- def _reduce_105(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 349)
- def _reduce_106(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 351)
- def _reduce_107(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 353)
- def _reduce_108(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 355)
- def _reduce_109(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 357)
- def _reduce_110(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 359)
- def _reduce_111(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 361)
- def _reduce_112(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 363)
- def _reduce_113(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 371)
- def _reduce_114(val, _values)
- n(:Argument, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 373)
- def _reduce_115(val, _values)
- n(:Argument, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 375)
- def _reduce_116(val, _values)
- n(:Argument, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 377)
- def _reduce_117(val, _values)
- n(:Argument, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 381)
- def _reduce_118(val, _values)
- n(:KeyValuePair, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 383)
- def _reduce_119(val, _values)
- n(:KeyValuePair, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 385)
- def _reduce_120(val, _values)
- n(:KeyValuePair, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 387)
- def _reduce_121(val, _values)
- n(:KeyValuePair, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 389)
- def _reduce_122(val, _values)
- n(:KeyValuePair, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 391)
- def _reduce_123(val, _values)
- n(:KeyValuePair, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 395)
- def _reduce_124(val, _values)
- [val[0]] + val[2]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 397)
- def _reduce_125(val, _values)
- [val[0]]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 399)
- def _reduce_126(val, _values)
- [val[0]]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 403)
- def _reduce_127(val, _values)
- n(:Lvalue, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 405)
- def _reduce_128(val, _values)
- n(:Lvalue, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 409)
- def _reduce_129(val, _values)
- n(:Reference, val[1])
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 417)
- def _reduce_130(val, _values)
- [val[0]] + val[2]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 419)
- def _reduce_131(val, _values)
- [val[0]]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 423)
- def _reduce_132(val, _values)
- n(:Array, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 425)
- def _reduce_133(val, _values)
- n(:Array, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 429)
- def _reduce_134(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 431)
- def _reduce_135(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 433)
- def _reduce_136(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 435)
- def _reduce_137(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 437)
- def _reduce_138(val, _values)
- nil
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 441)
- def _reduce_139(val, _values)
- val[1]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 443)
- def _reduce_140(val, _values)
- val[1]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 447)
- def _reduce_141(val, _values)
- [val[0]] + val[1]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 449)
- def _reduce_142(val, _values)
- [val[0]]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 453)
- def _reduce_143(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 455)
- def _reduce_144(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 459)
- def _reduce_145(val, _values)
- [val[0]] + val[2]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 461)
- def _reduce_146(val, _values)
- [val[0]]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 465)
- def _reduce_147(val, _values)
- n(:List, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 467)
- def _reduce_148(val, _values)
- n(:List, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 471)
- def _reduce_149(val, _values)
- n(:Parameter, val[1], 'reference')
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 473)
- def _reduce_150(val, _values)
- n(:Parameter, val[0], 'value')
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 477)
- def _reduce_151(val, _values)
- [val[0]] + val[2]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 479)
- def _reduce_152(val, _values)
- [val[0]]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 483)
- def _reduce_153(val, _values)
- [val[0]] + val[1]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 485)
- def _reduce_154(val, _values)
- [val[0]]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 489)
- def _reduce_155(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 491)
- def _reduce_156(val, _values)
- n(:Assignment, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 493)
- def _reduce_157(val, _values)
- val[0]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 497)
- def _reduce_158(val, _values)
- [val[0]] + val[2]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 499)
- def _reduce_159(val, _values)
- [val[0]]
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 507)
- def _reduce_160(val, _values)
- n(:Identifier, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 509)
- def _reduce_161(val, _values)
- n(:Identifier, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 511)
- def _reduce_162(val, _values)
- n(:Identifier, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 515)
- def _reduce_163(val, _values)
- n(:Integer, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 517)
- def _reduce_164(val, _values)
- n(:Integer, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 519)
- def _reduce_165(val, _values)
- n(:Integer, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 521)
- def _reduce_166(val, _values)
- n(:Integer, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 523)
- def _reduce_167(val, _values)
- n(:Integer, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 527)
- def _reduce_168(val, _values)
- n(:Ip, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 530)
- def _reduce_169(val, _values)
- n(:String, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 532)
- def _reduce_170(val, _values)
- n(:String, *val)
- end
-.,.,
-
-module_eval(<<'.,.,', 'nasl.y', 536)
- def _reduce_171(val, _values)
- n(:Undefined, *val)
- end
-.,.,
-
-def _reduce_none(val, _values)
- val[0]
-end
-
- end # class Grammar
-end # module Nasl
-
-
diff --git a/test/racc/regress/nokogiri-css b/test/racc/regress/nokogiri-css
deleted file mode 100644
index bc2faf8702..0000000000
--- a/test/racc/regress/nokogiri-css
+++ /dev/null
@@ -1,836 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-
-require 'nokogiri/css/parser_extras'
-module Nokogiri
- module CSS
- class Parser < Racc::Parser
-##### State transition tables begin ###
-
-racc_action_table = [
- 24, 93, 56, 57, 33, 55, 94, 23, 24, 22,
- 12, 93, 33, 27, 35, 52, 44, 22, -23, 25,
- 45, 98, 23, 33, 26, 18, 20, 25, 27, -23,
- 23, 24, 26, 18, 20, 33, 27, 11, 39, 24,
- 22, 23, 74, 33, 18, 91, 90, 27, 22, 12,
- 25, 24, -23, 23, 85, 26, 18, 20, 25, 27,
- 66, 23, 24, 26, 18, 20, 33, 27, 101, 100,
- 51, 22, 86, 88, 24, 26, 56, 87, 89, 60,
- 92, 25, 95, 46, 23, 49, 26, 18, 20, 90,
- 27, 33, 33, 51, 96, 99, 56, 58, 26, 60,
- 102, 103, 33, 33, 33, 93, 39, 39, 105, 23,
- 23, 108, 18, 18, 20, 27, 27, 39, 39, 39,
- 23, 23, 23, 18, 18, 18, 27, 27, 27, 33,
- 33, 56, 87, 109, 60, 22, 56, 87, nil, 60,
- 33, nil, nil, nil, 39, 39, nil, 23, 23, nil,
- 18, 18, 20, 27, 27, 39, 82, 83, 23, 56,
- 87, 18, 60, nil, 27, 82, 83, 78, 79, 80,
- nil, 81, nil, nil, nil, 77, 78, 79, 80, nil,
- 81, 4, 5, 10, 77, 4, 5, 43, nil, nil,
- nil, 6, nil, 8, 7, 6, nil, 8, 7, 4,
- 5, 10, nil, nil, nil, nil, nil, nil, nil, 6,
- nil, 8, 7 ]
-
-racc_action_check = [
- 3, 58, 24, 24, 3, 24, 57, 15, 9, 3,
- 64, 57, 9, 15, 11, 24, 18, 9, 58, 3,
- 21, 64, 3, 14, 3, 3, 3, 9, 3, 22,
- 9, 12, 9, 9, 9, 12, 9, 1, 14, 42,
- 12, 14, 45, 42, 14, 55, 55, 14, 42, 1,
- 12, 27, 46, 12, 49, 12, 12, 12, 42, 12,
- 27, 42, 43, 42, 42, 42, 43, 42, 76, 76,
- 27, 43, 50, 53, 23, 27, 51, 51, 54, 51,
- 56, 43, 59, 23, 43, 23, 43, 43, 43, 60,
- 43, 28, 25, 23, 61, 75, 25, 25, 23, 25,
- 84, 86, 29, 30, 31, 87, 28, 25, 91, 28,
- 25, 94, 28, 25, 25, 28, 25, 29, 30, 31,
- 29, 30, 31, 29, 30, 31, 29, 30, 31, 32,
- 39, 90, 90, 105, 90, 39, 92, 92, nil, 92,
- 62, nil, nil, nil, 32, 39, nil, 32, 39, nil,
- 32, 39, 39, 32, 39, 62, 47, 47, 62, 93,
- 93, 62, 93, nil, 62, 48, 48, 47, 47, 47,
- nil, 47, nil, nil, nil, 47, 48, 48, 48, nil,
- 48, 0, 0, 0, 48, 17, 17, 17, nil, nil,
- nil, 0, nil, 0, 0, 17, nil, 17, 17, 26,
- 26, 26, nil, nil, nil, nil, nil, nil, nil, 26,
- nil, 26, 26 ]
-
-racc_action_pointer = [
- 174, 37, nil, -2, nil, nil, nil, nil, nil, 6,
- nil, 14, 29, nil, 17, -17, nil, 178, 5, nil,
- nil, -9, 0, 72, -8, 86, 192, 49, 85, 96,
- 97, 98, 123, nil, nil, nil, nil, nil, nil, 124,
- nil, nil, 37, 60, nil, 31, 23, 153, 162, 29,
- 43, 66, nil, 50, 55, 34, 68, -1, -11, 59,
- 77, 71, 134, nil, -2, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 70, 58, nil, nil, nil,
- nil, nil, nil, nil, 75, nil, 90, 93, nil, nil,
- 121, 101, 126, 149, 98, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 120, nil, nil, nil, nil ]
-
-racc_action_default = [
- -74, -75, -2, -24, -4, -5, -6, -7, -8, -24,
- -73, -75, -24, -3, -47, -10, -13, -17, -75, -19,
- -20, -75, -22, -24, -75, -24, -74, -75, -53, -54,
- -55, -56, -57, -58, -14, 110, -1, -9, -46, -24,
- -11, -12, -24, -24, -18, -75, -29, -61, -61, -75,
- -75, -75, -30, -75, -75, -38, -39, -40, -22, -75,
- -38, -75, -70, -72, -75, -44, -45, -48, -49, -50,
- -51, -52, -15, -16, -21, -75, -75, -62, -63, -64,
- -65, -66, -67, -68, -75, -27, -75, -40, -31, -32,
- -75, -43, -75, -75, -75, -33, -69, -71, -34, -25,
- -59, -60, -26, -28, -35, -75, -36, -37, -42, -41 ]
-
-racc_goto_table = [
- 53, 38, 13, 1, 42, 48, 62, 37, 34, 65,
- 40, 36, 63, 75, 84, 67, 68, 69, 70, 71,
- 62, 41, 50, 47, 54, nil, 63, nil, nil, 64,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 72, 73, nil, nil, nil, nil, nil, nil, 97,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 104, nil, 106, 107 ]
-
-racc_goto_check = [
- 18, 12, 2, 1, 5, 9, 7, 8, 2, 9,
- 10, 2, 12, 17, 17, 12, 12, 12, 12, 12,
- 7, 11, 15, 16, 19, nil, 12, nil, nil, 1,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 2, 2, nil, nil, nil, nil, nil, nil, 12,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 18, nil, 18, 18 ]
-
-racc_goto_pointer = [
- nil, 3, -1, nil, nil, -13, nil, -19, -7, -18,
- -5, 6, -13, nil, nil, -1, 0, -34, -24, 0,
- nil, nil, nil, nil ]
-
-racc_goto_default = [
- nil, nil, nil, 2, 3, 9, 17, 14, nil, 15,
- 31, 30, 16, 29, 19, 21, nil, nil, 59, nil,
- 28, 32, 76, 61 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 3, 32, :_reduce_1,
- 1, 32, :_reduce_2,
- 2, 32, :_reduce_3,
- 1, 36, :_reduce_4,
- 1, 36, :_reduce_5,
- 1, 36, :_reduce_6,
- 1, 36, :_reduce_7,
- 1, 36, :_reduce_8,
- 2, 37, :_reduce_9,
- 1, 37, :_reduce_none,
- 2, 37, :_reduce_11,
- 2, 37, :_reduce_12,
- 1, 37, :_reduce_13,
- 2, 34, :_reduce_14,
- 3, 33, :_reduce_15,
- 3, 33, :_reduce_16,
- 1, 33, :_reduce_none,
- 2, 44, :_reduce_18,
- 1, 38, :_reduce_none,
- 1, 38, :_reduce_20,
- 3, 45, :_reduce_21,
- 1, 45, :_reduce_22,
- 1, 46, :_reduce_23,
- 0, 46, :_reduce_none,
- 4, 42, :_reduce_25,
- 4, 42, :_reduce_26,
- 3, 42, :_reduce_27,
- 3, 47, :_reduce_28,
- 1, 47, :_reduce_29,
- 2, 40, :_reduce_30,
- 3, 40, :_reduce_31,
- 3, 40, :_reduce_32,
- 3, 40, :_reduce_33,
- 3, 40, :_reduce_34,
- 3, 49, :_reduce_35,
- 3, 49, :_reduce_36,
- 3, 49, :_reduce_37,
- 1, 49, :_reduce_none,
- 1, 49, :_reduce_none,
- 1, 49, :_reduce_40,
- 4, 50, :_reduce_41,
- 3, 50, :_reduce_42,
- 2, 50, :_reduce_43,
- 2, 41, :_reduce_44,
- 2, 41, :_reduce_45,
- 1, 39, :_reduce_none,
- 0, 39, :_reduce_none,
- 2, 43, :_reduce_48,
- 2, 43, :_reduce_49,
- 2, 43, :_reduce_50,
- 2, 43, :_reduce_51,
- 2, 43, :_reduce_52,
- 1, 43, :_reduce_none,
- 1, 43, :_reduce_none,
- 1, 43, :_reduce_none,
- 1, 43, :_reduce_none,
- 1, 43, :_reduce_none,
- 1, 51, :_reduce_58,
- 2, 48, :_reduce_59,
- 2, 48, :_reduce_60,
- 0, 48, :_reduce_none,
- 1, 53, :_reduce_62,
- 1, 53, :_reduce_63,
- 1, 53, :_reduce_64,
- 1, 53, :_reduce_65,
- 1, 53, :_reduce_66,
- 1, 53, :_reduce_67,
- 1, 53, :_reduce_68,
- 3, 52, :_reduce_69,
- 1, 54, :_reduce_none,
- 2, 54, :_reduce_none,
- 1, 54, :_reduce_none,
- 1, 35, :_reduce_none,
- 0, 35, :_reduce_none ]
-
-racc_reduce_n = 75
-
-racc_shift_n = 110
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :FUNCTION => 2,
- :INCLUDES => 3,
- :DASHMATCH => 4,
- :LBRACE => 5,
- :HASH => 6,
- :PLUS => 7,
- :GREATER => 8,
- :S => 9,
- :STRING => 10,
- :IDENT => 11,
- :COMMA => 12,
- :NUMBER => 13,
- :PREFIXMATCH => 14,
- :SUFFIXMATCH => 15,
- :SUBSTRINGMATCH => 16,
- :TILDE => 17,
- :NOT_EQUAL => 18,
- :SLASH => 19,
- :DOUBLESLASH => 20,
- :NOT => 21,
- :EQUAL => 22,
- :RPAREN => 23,
- :LSQUARE => 24,
- :RSQUARE => 25,
- :HAS => 26,
- "." => 27,
- "*" => 28,
- "|" => 29,
- ":" => 30 }
-
-racc_nt_base = 31
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "FUNCTION",
- "INCLUDES",
- "DASHMATCH",
- "LBRACE",
- "HASH",
- "PLUS",
- "GREATER",
- "S",
- "STRING",
- "IDENT",
- "COMMA",
- "NUMBER",
- "PREFIXMATCH",
- "SUFFIXMATCH",
- "SUBSTRINGMATCH",
- "TILDE",
- "NOT_EQUAL",
- "SLASH",
- "DOUBLESLASH",
- "NOT",
- "EQUAL",
- "RPAREN",
- "LSQUARE",
- "RSQUARE",
- "HAS",
- "\".\"",
- "\"*\"",
- "\"|\"",
- "\":\"",
- "$start",
- "selector",
- "simple_selector_1toN",
- "prefixless_combinator_selector",
- "optional_S",
- "combinator",
- "simple_selector",
- "element_name",
- "hcap_0toN",
- "function",
- "pseudo",
- "attrib",
- "hcap_1toN",
- "class",
- "namespaced_ident",
- "namespace",
- "attrib_name",
- "attrib_val_0or1",
- "expr",
- "nth",
- "attribute_id",
- "negation",
- "eql_incl_dash",
- "negation_arg" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 9)
- def _reduce_1(val, _values, result)
- result = [val.first, val.last].flatten
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 11)
- def _reduce_2(val, _values, result)
- result = val.flatten
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 12)
- def _reduce_3(val, _values, result)
- result = [val.last].flatten
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 15)
- def _reduce_4(val, _values, result)
- result = :DIRECT_ADJACENT_SELECTOR
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 16)
- def _reduce_5(val, _values, result)
- result = :CHILD_SELECTOR
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 17)
- def _reduce_6(val, _values, result)
- result = :FOLLOWING_SELECTOR
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 18)
- def _reduce_7(val, _values, result)
- result = :DESCENDANT_SELECTOR
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 19)
- def _reduce_8(val, _values, result)
- result = :CHILD_SELECTOR
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 23)
- def _reduce_9(val, _values, result)
- result = if val[1].nil?
- val.first
- else
- Node.new(:CONDITIONAL_SELECTOR, [val.first, val[1]])
- end
-
- result
- end
-.,.,
-
-# reduce 10 omitted
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 31)
- def _reduce_11(val, _values, result)
- result = Node.new(:CONDITIONAL_SELECTOR, val)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 34)
- def _reduce_12(val, _values, result)
- result = Node.new(:CONDITIONAL_SELECTOR, val)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 37)
- def _reduce_13(val, _values, result)
- result = Node.new(:CONDITIONAL_SELECTOR,
- [Node.new(:ELEMENT_NAME, ['*']), val.first]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 44)
- def _reduce_14(val, _values, result)
- result = Node.new(val.first, [nil, val.last])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 49)
- def _reduce_15(val, _values, result)
- result = Node.new(val[1], [val.first, val.last])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 52)
- def _reduce_16(val, _values, result)
- result = Node.new(:DESCENDANT_SELECTOR, [val.first, val.last])
-
- result
- end
-.,.,
-
-# reduce 17 omitted
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 57)
- def _reduce_18(val, _values, result)
- result = Node.new(:CLASS_CONDITION, [val[1]])
- result
- end
-.,.,
-
-# reduce 19 omitted
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 61)
- def _reduce_20(val, _values, result)
- result = Node.new(:ELEMENT_NAME, val)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 65)
- def _reduce_21(val, _values, result)
- result = Node.new(:ELEMENT_NAME,
- [[val.first, val.last].compact.join(':')]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 70)
- def _reduce_22(val, _values, result)
- name = @namespaces.key?('xmlns') ? "xmlns:#{val.first}" : val.first
- result = Node.new(:ELEMENT_NAME, [name])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 75)
- def _reduce_23(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-# reduce 24 omitted
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 80)
- def _reduce_25(val, _values, result)
- result = Node.new(:ATTRIBUTE_CONDITION,
- [val[1]] + (val[2] || [])
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 85)
- def _reduce_26(val, _values, result)
- result = Node.new(:ATTRIBUTE_CONDITION,
- [val[1]] + (val[2] || [])
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 90)
- def _reduce_27(val, _values, result)
- # Non standard, but hpricot supports it.
- result = Node.new(:PSEUDO_CLASS,
- [Node.new(:FUNCTION, ['nth-child(', val[1]])]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 98)
- def _reduce_28(val, _values, result)
- result = Node.new(:ELEMENT_NAME,
- [[val.first, val.last].compact.join(':')]
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 103)
- def _reduce_29(val, _values, result)
- # Default namespace is not applied to attributes.
- # So we don't add prefix "xmlns:" as in namespaced_ident.
- result = Node.new(:ELEMENT_NAME, [val.first])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 110)
- def _reduce_30(val, _values, result)
- result = Node.new(:FUNCTION, [val.first.strip])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 113)
- def _reduce_31(val, _values, result)
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 116)
- def _reduce_32(val, _values, result)
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 119)
- def _reduce_33(val, _values, result)
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 122)
- def _reduce_34(val, _values, result)
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 126)
- def _reduce_35(val, _values, result)
- result = [val.first, val.last]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 127)
- def _reduce_36(val, _values, result)
- result = [val.first, val.last]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 128)
- def _reduce_37(val, _values, result)
- result = [val.first, val.last]
- result
- end
-.,.,
-
-# reduce 38 omitted
-
-# reduce 39 omitted
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 133)
- def _reduce_40(val, _values, result)
- case val[0]
- when 'even'
- result = Node.new(:NTH, ['2','n','+','0'])
- when 'odd'
- result = Node.new(:NTH, ['2','n','+','1'])
- when 'n'
- result = Node.new(:NTH, ['1','n','+','0'])
- else
- # This is not CSS standard. It allows us to support this:
- # assert_xpath("//a[foo(., @href)]", @parser.parse('a:foo(@href)'))
- # assert_xpath("//a[foo(., @a, b)]", @parser.parse('a:foo(@a, b)'))
- # assert_xpath("//a[foo(., a, 10)]", @parser.parse('a:foo(a, 10)'))
- result = val
- end
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 152)
- def _reduce_41(val, _values, result)
- if val[1] == 'n'
- result = Node.new(:NTH, val)
- else
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
- end
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 158)
- def _reduce_42(val, _values, result)
- # n+3, -n+3
- if val[0] == 'n'
- val.unshift("1")
- result = Node.new(:NTH, val)
- elsif val[0] == '-n'
- val[0] = 'n'
- val.unshift("-1")
- result = Node.new(:NTH, val)
- else
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
- end
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 170)
- def _reduce_43(val, _values, result)
- # 5n, -5n, 10n-1
- n = val[1]
- if n[0, 2] == 'n-'
- val[1] = 'n'
- val << "-"
- # b is contained in n as n is the string "n-b"
- val << n[2, n.size]
- result = Node.new(:NTH, val)
- elsif n == 'n'
- val << "+"
- val << "0"
- result = Node.new(:NTH, val)
- else
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
- end
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 189)
- def _reduce_44(val, _values, result)
- result = Node.new(:PSEUDO_CLASS, [val[1]])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 191)
- def _reduce_45(val, _values, result)
- result = Node.new(:PSEUDO_CLASS, [val[1]])
- result
- end
-.,.,
-
-# reduce 46 omitted
-
-# reduce 47 omitted
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 199)
- def _reduce_48(val, _values, result)
- result = Node.new(:COMBINATOR, val)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 202)
- def _reduce_49(val, _values, result)
- result = Node.new(:COMBINATOR, val)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 205)
- def _reduce_50(val, _values, result)
- result = Node.new(:COMBINATOR, val)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 208)
- def _reduce_51(val, _values, result)
- result = Node.new(:COMBINATOR, val)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 211)
- def _reduce_52(val, _values, result)
- result = Node.new(:COMBINATOR, val)
-
- result
- end
-.,.,
-
-# reduce 53 omitted
-
-# reduce 54 omitted
-
-# reduce 55 omitted
-
-# reduce 56 omitted
-
-# reduce 57 omitted
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 220)
- def _reduce_58(val, _values, result)
- result = Node.new(:ID, val)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 223)
- def _reduce_59(val, _values, result)
- result = [val.first, val[1]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 224)
- def _reduce_60(val, _values, result)
- result = [val.first, val[1]]
- result
- end
-.,.,
-
-# reduce 61 omitted
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 228)
- def _reduce_62(val, _values, result)
- result = :equal
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 229)
- def _reduce_63(val, _values, result)
- result = :prefix_match
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 230)
- def _reduce_64(val, _values, result)
- result = :suffix_match
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 231)
- def _reduce_65(val, _values, result)
- result = :substring_match
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 232)
- def _reduce_66(val, _values, result)
- result = :not_equal
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 233)
- def _reduce_67(val, _values, result)
- result = :includes
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 234)
- def _reduce_68(val, _values, result)
- result = :dash_match
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'nokogiri-css.y', 238)
- def _reduce_69(val, _values, result)
- result = Node.new(:NOT, [val[1]])
-
- result
- end
-.,.,
-
-# reduce 70 omitted
-
-# reduce 71 omitted
-
-# reduce 72 omitted
-
-# reduce 73 omitted
-
-# reduce 74 omitted
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
- end # module CSS
-end # module Nokogiri
diff --git a/test/racc/regress/opal b/test/racc/regress/opal
deleted file mode 100644
index 710ccdfe88..0000000000
--- a/test/racc/regress/opal
+++ /dev/null
@@ -1,6431 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-module Opal
- class Parser < Racc::Parser
-
-module_eval(<<'...end opal.y/module_eval...', 'opal.y', 1808)
-
-...end opal.y/module_eval...
-##### State transition tables begin ###
-
-clist = [
-'63,64,65,8,51,575,552,-92,57,58,619,205,206,61,73,59,60,62,23,24,66',
-'67,74,544,754,607,543,22,28,27,90,89,91,92,97,751,17,607,273,-458,612',
-'653,7,41,6,9,94,93,575,84,50,86,85,87,273,88,95,96,653,81,82,-100,38',
-'39,-99,-68,597,-446,344,343,-95,205,206,618,-446,652,-97,581,575,582',
-'-94,205,206,-96,575,36,609,608,30,-92,575,52,652,108,54,770,32,-84,609',
-'608,40,101,-79,-92,268,752,100,195,18,-100,-99,551,-84,79,73,75,76,77',
-'78,101,-95,574,74,80,100,272,-98,63,64,65,56,51,-97,53,653,57,58,196',
-'37,83,61,272,59,60,62,23,24,66,67,454,-534,205,206,197,22,28,27,90,89',
-'91,92,308,101,17,574,-84,-91,100,652,-90,41,308,596,94,93,-86,84,50',
-'86,85,87,-88,88,95,96,-85,81,82,-87,38,39,101,101,-535,574,900,100,100',
-'101,-100,574,-449,-84,100,101,198,574,649,-449,100,-96,-84,210,246,-98',
-'214,215,-92,52,-92,-91,54,-92,-100,-99,-100,-99,40,-100,-99,-94,-89',
-'273,607,-95,18,-95,299,726,-95,79,73,75,76,77,78,-97,-90,-97,74,80,-97',
-'-86,726,63,64,65,56,51,-88,53,544,57,58,546,37,83,61,531,59,60,62,23',
-'24,66,67,205,206,653,205,206,22,28,27,90,89,91,92,-91,-534,219,777,300',
-'-535,609,608,605,41,268,227,94,93,308,84,50,86,85,87,388,88,95,96,652',
-'81,82,-90,38,39,-99,272,-86,726,301,302,-96,-91,-96,-88,-98,-96,-98',
-'224,810,-98,-91,226,225,-87,101,210,725,-93,214,100,-94,52,-94,-85,54',
-'-94,391,-89,-90,101,40,725,788,-86,100,402,101,-90,218,415,-88,100,-86',
-'79,73,75,76,77,78,-88,453,101,74,80,455,204,100,63,64,65,56,51,607,53',
-'544,57,58,546,37,83,61,789,59,60,62,258,259,66,67,876,-534,-87,-95,877',
-'257,28,27,90,89,91,92,-85,456,219,-535,-89,-91,101,607,725,41,607,100',
-'94,93,-100,84,50,86,85,87,261,88,95,96,-456,81,82,-87,38,39,-97,-456',
-'609,608,610,101,-87,-85,-93,215,100,-89,-94,487,264,265,-85,754,-455',
-'-454,-89,210,266,489,214,-455,-454,52,751,813,54,582,256,491,254,497',
-'40,-67,609,608,614,609,608,620,218,400,401,203,201,79,73,75,76,77,78',
-'202,514,544,74,80,546,344,343,63,64,65,56,51,101,53,-451,57,58,100,37',
-'83,61,-451,59,60,62,258,259,66,67,515,-532,527,528,516,257,28,27,90',
-'89,91,92,101,752,219,-331,-331,100,199,625,200,41,525,-331,94,93,277',
-'84,50,86,85,87,261,88,95,96,308,81,82,268,38,39,532,227,231,236,237',
-'238,233,235,243,244,239,240,-449,-449,220,221,-452,101,241,242,-449',
-'210,100,-452,214,-532,533,52,227,-331,54,-331,256,224,254,230,40,226',
-'225,222,223,234,232,228,218,229,-532,203,449,79,73,75,76,77,78,450,308',
-'-458,74,80,547,245,548,63,64,65,56,51,-449,53,-449,57,58,491,37,83,61',
-'555,59,60,62,258,259,66,67,103,104,105,106,107,257,28,27,90,89,91,92',
-'-453,-84,219,524,521,531,452,-453,451,41,-92,522,94,93,558,84,50,86',
-'85,87,261,88,95,96,559,81,82,561,38,39,570,227,231,236,237,238,233,235',
-'243,244,239,240,524,534,220,221,-90,412,241,242,535,210,414,413,214',
-'-99,571,52,404,520,54,523,256,224,254,230,40,226,225,222,223,234,232',
-'228,218,229,587,524,584,79,73,75,76,77,78,585,588,630,74,80,589,245',
-'650,-255,-255,-255,56,-255,452,53,451,-255,-255,613,37,83,-255,617,-255',
-'-255,-255,-255,-255,-255,-255,103,104,105,106,107,-255,-255,-255,-255',
-'-255,-255,-255,621,-86,-255,524,593,624,583,625,586,-255,-95,591,-255',
-'-255,627,-255,-255,-255,-255,-255,-255,-255,-255,-255,-263,-255,-255',
-'628,-255,-255,629,227,231,236,237,238,233,235,243,244,239,240,-284,-284',
-'220,221,205,206,241,242,-284,-255,268,631,-255,268,227,-255,227,592',
-'-255,523,-255,224,-255,230,-255,226,225,222,223,234,232,228,-255,229',
-'344,343,602,-255,-255,-255,-255,-255,-255,603,832,813,-255,-255,776',
-'245,227,-233,-88,227,-255,915,-284,-255,-284,308,754,-97,-255,-255,63',
-'64,65,8,51,344,343,751,57,58,832,813,670,61,671,59,60,62,23,24,66,67',
-'679,681,-79,-85,682,22,28,27,90,89,91,92,-94,684,17,537,341,340,344',
-'343,7,41,227,9,94,93,694,84,50,86,85,87,700,88,95,96,701,81,82,702,38',
-'39,706,227,231,236,237,238,233,235,243,244,239,240,224,752,220,221,226',
-'225,241,242,716,36,718,721,281,582,729,52,772,-264,54,497,32,224,497',
-'230,40,226,225,222,223,234,232,228,18,229,497,524,593,79,73,75,76,77',
-'78,822,791,792,74,80,489,245,491,63,64,65,56,51,800,53,802,57,58,803',
-'37,83,61,694,59,60,62,258,259,66,67,708,807,268,268,808,257,291,295',
-'90,89,91,92,268,227,219,-286,-286,227,592,813,523,292,819,-286,94,93',
-'820,84,50,86,85,87,558,88,95,96,561,81,82,823,327,824,336,334,333,561',
-'335,341,340,344,343,827,866,867,-283,-283,868,95,96,813,836,837,-283',
-'289,839,840,286,-535,-534,52,842,-286,54,-286,285,850,852,855,856,338',
-'858,915,860,862,864,-265,754,341,340,344,343,79,73,75,76,77,78,751,794',
-'878,74,80,879,880,881,63,64,65,56,51,-283,53,-283,57,58,883,296,83,61',
-'884,59,60,62,258,259,66,67,708,341,340,344,343,257,291,295,90,89,91',
-'92,524,946,219,103,104,105,106,107,947,292,227,694,94,93,886,84,50,86',
-'85,87,-263,88,95,96,890,81,82,764,752,336,334,333,754,335,895,341,340',
-'344,343,897,903,905,224,751,906,308,226,225,222,223,919,289,-266,921',
-'214,-535,945,52,586,563,54,336,334,333,561,335,338,749,931,932,937,855',
-'939,860,341,340,344,343,860,79,73,75,76,77,78,862,948,954,74,80,700',
-'964,860,298,966,967,56,,,53,,,,,296,83,63,64,65,227,51,,,752,57,58,',
-',,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,224,219,',
-',226,225,222,223,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39',
-',227,231,236,237,238,233,235,243,244,239,240,,,220,221,,,241,242,,210',
-',,214,,,52,,,54,,,224,,230,40,226,225,222,223,234,232,228,218,229,,',
-',79,73,75,76,77,78,,,,74,80,,245,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,563,219,336,334',
-'333,,335,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,227,231',
-'236,237,238,233,235,243,244,239,240,,,220,221,,,241,242,,210,,,214,',
-',52,,,54,,,224,,230,40,226,225,222,223,234,232,228,218,229,,,,79,73',
-'75,76,77,78,,,,74,80,,245,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93',
-',84,50,86,85,87,,88,95,96,,81,82,,38,39,,227,231,236,237,238,233,235',
-'243,244,239,240,,,220,221,,,241,242,,210,,,214,,,52,,,54,,,224,,230',
-'40,226,225,222,223,234,232,228,218,229,,,,79,73,75,76,77,78,,,,74,80',
-',245,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,23,24,66,67,,,,',
-',22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96',
-',81,82,,38,39,,227,231,236,237,238,233,235,243,244,239,240,,,220,221',
-',,241,242,,210,,,214,,,52,,,54,,,224,,230,40,226,225,222,223,234,232',
-'228,18,229,,,,79,73,75,76,77,78,,,,74,80,,245,,63,64,65,56,51,,53,,57',
-'58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,28,27,90,89,91,92,,,219',
-',,,,,,41,,,94,93,,84,50,86,85,87,261,88,95,96,,81,82,,38,39,,227,231',
-'236,237,238,233,235,243,244,239,240,,,220,221,,,241,242,,210,,,214,',
-',52,,,54,,256,224,,230,40,226,225,222,223,234,232,228,218,229,,,,79',
-'73,75,76,77,78,,,,74,80,,245,,63,64,65,56,51,,53,,57,58,,37,83,61,,59',
-'60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94',
-'93,,84,50,86,85,87,261,88,95,96,,81,82,,38,39,,227,231,236,237,238,233',
-'235,243,244,239,240,,,220,221,,,241,242,,210,,,214,,,52,,,54,,,224,',
-'230,40,226,225,222,223,234,232,228,218,229,,,,79,73,75,76,77,78,,,,74',
-'80,,245,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,23,24,66,67,',
-',,,,22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95',
-'96,,81,82,,38,39,,227,231,236,237,238,233,235,243,244,239,240,,,220',
-'221,,,241,242,,210,,,214,,,52,,,54,,,224,,230,40,226,225,222,223,234',
-'232,228,18,229,,,,79,73,75,76,77,78,,,,74,80,,245,,63,64,65,56,51,,53',
-',57,58,,37,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17',
-',,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,227,231,236',
-'237,238,233,235,243,244,239,240,,,220,221,,,241,242,,210,,,214,,,52',
-',,54,,,224,,230,40,226,225,222,223,234,232,228,18,229,,,,79,73,75,76',
-'77,78,,,,74,80,,245,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,23',
-'24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93,,84,50,86,85',
-'87,,88,95,96,,81,82,,38,39,,227,231,236,237,238,233,235,243,244,239',
-'240,,,220,221,,,241,242,,210,,,214,,,52,,,54,,,224,,230,40,226,225,222',
-'223,234,232,228,18,229,,,,79,73,75,76,77,78,,,,74,80,101,245,,-233,',
-'100,56,,,53,,,,,37,83,63,64,65,,51,,,,57,58,,,,61,,59,60,62,258,259',
-'66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,292,,,94,93,,84,50,86',
-'85,87,,88,95,96,,81,82,227,231,236,237,238,233,235,243,244,239,240,227',
-',220,221,,,241,242,,,,,,356,,,30,241,242,52,,224,54,230,32,226,225,222',
-'223,234,232,228,224,229,230,,226,225,222,223,,79,73,75,76,77,78,,,245',
-'74,80,,,,63,64,65,56,51,,53,,57,58,,296,83,61,,59,60,62,258,259,66,67',
-',,,,,257,291,295,90,89,91,92,,,219,,,,,,,292,,,94,93,,84,50,86,85,361',
-',88,95,96,,81,82,227,231,236,237,238,233,235,243,244,239,240,227,,220',
-'221,,,241,242,,,367,,,362,,,214,241,242,52,,224,54,230,,226,225,222',
-'223,234,232,228,224,229,230,,226,225,222,223,,79,73,75,76,77,78,,,245',
-'74,80,,,,-531,-531,-531,56,-531,,53,,-531,-531,,296,83,-531,,-531,-531',
-'-531,-531,-531,-531,-531,,-531,,,,-531,-531,-531,-531,-531,-531,-531',
-',,-531,,,,,,,-531,,,-531,-531,,-531,-531,-531,-531,-531,-531,-531,-531',
-'-531,,-531,-531,,-531,-531,,227,231,236,237,238,233,235,243,244,239',
-'240,,,220,221,,,241,242,,-531,,,-531,-531,,-531,,,-531,,-531,224,-531',
-'230,-531,226,225,222,223,234,232,228,-531,229,-531,,,-531,-531,-531',
-'-531,-531,-531,,,,-531,-531,,245,,-532,-532,-532,-531,-532,,-531,,-532',
-'-532,,-531,-531,-532,,-532,-532,-532,-532,-532,-532,-532,,-532,,,,-532',
-'-532,-532,-532,-532,-532,-532,,,-532,,,,,,,-532,,,-532,-532,,-532,-532',
-'-532,-532,-532,-532,-532,-532,-532,,-532,-532,,-532,-532,,227,231,236',
-'237,238,233,235,243,244,239,240,,,220,221,,,241,242,,-532,,,-532,-532',
-',-532,,,-532,,-532,224,-532,230,-532,226,225,222,223,234,232,228,-532',
-'229,-532,,,-532,-532,-532,-532,-532,-532,,,,-532,-532,,245,,,,,-532',
-',,-532,,,,,-532,-532,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66',
-'67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,6,9,94,93,,84,50,86,85,87',
-',88,95,96,,81,82,,38,39,,227,231,236,237,238,233,235,243,244,239,240',
-',,220,221,,,241,242,,36,,,30,,,52,,,54,,32,224,,230,40,226,225,222,223',
-'234,232,228,18,229,,,,79,73,75,76,77,78,,,,74,80,,245,,,,404,56,,,53',
-',,,,37,83,63,64,65,,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22',
-'28,27,90,89,91,92,,563,17,336,334,333,,335,,41,,,94,93,,84,50,86,85',
-'87,,88,95,96,,81,82,,38,39,563,,336,334,333,,335,,,563,566,336,334,333',
-',335,,,569,,,210,,,214,,,52,,,54,,,,,,40,,,566,,,,,18,,,569,566,79,73',
-'75,76,77,78,,829,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,227,231,236,237,238,233,235,243,244',
-'239,240,,,-555,-555,,,241,242,,210,,,214,,,52,,,54,,,224,,230,40,226',
-'225,222,223,234,232,228,18,229,,,,79,73,75,76,77,78,,,,74,80,,,,63,64',
-'65,56,51,,53,,57,58,,37,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90',
-'89,91,92,,,17,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38',
-'39,,227,231,236,237,238,233,235,243,244,239,240,,,-555,-555,,,241,242',
-',210,,,214,,,52,,,54,,,224,,230,40,226,225,222,223,234,232,228,18,229',
-',,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93',
-',84,50,86,85,87,,88,95,96,,81,82,,38,39,,227,-555,-555,-555,-555,233',
-'235,,,-555,-555,,,,,,,241,242,,210,,,214,,,52,,,54,,,224,,230,40,226',
-'225,222,223,234,232,228,18,229,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56',
-',,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,',
-',,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88',
-'95,96,,81,82,,38,39,,227,,,,,,,,,,,,,,,,,241,242,,36,,,30,,,52,,,54',
-',32,224,,230,40,226,225,222,223,,,228,18,229,,,,79,73,75,76,77,78,,',
-',74,80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62',
-'23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,6,9,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,227,,,,,,,,,,,,,,,,,241,242,,36,,',
-'30,,,52,,,54,,32,224,,230,40,226,225,222,223,,,228,18,229,,,,79,73,75',
-'76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,',
-'61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9',
-'94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,227,,,,,,,,,,,,,,,,,241',
-'242,,36,,,30,,,52,,,54,,32,224,,230,40,226,225,222,223,,,228,18,229',
-',,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,219,,,,,,,41,,,94',
-'93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,227,,,,,,,,,,,,,,,,,241',
-'242,,210,,,214,,,52,,,54,,421,224,,230,40,226,225,222,223,,,228,218',
-'229,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83',
-'61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,219,,,,,,,41,,',
-'94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,227,-555,-555,-555,-555',
-'233,235,,,-555,-555,,,,,,,241,242,,210,,,214,,,52,,,54,,421,224,,230',
-'40,226,225,222,223,234,232,228,218,229,,,,79,73,75,76,77,78,,,,74,80',
-',,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,23,24,66,67,,,,,,22',
-'28,27,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,',
-'81,82,,38,39,,227,-555,-555,-555,-555,233,235,,,-555,-555,,,,,,,241',
-'242,,210,,,214,,,52,,,54,,,224,,230,40,226,225,222,223,234,232,228,218',
-'229,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83',
-'61,,59,60,62,258,259,66,67,,,,,,257,28,27,90,89,91,92,,,219,,,,,,,41',
-',,94,93,,84,50,86,85,87,261,88,95,96,,81,82,,38,39,,227,-555,-555,-555',
-'-555,233,235,,,-555,-555,,,,,,,241,242,,210,,,214,,,52,,,54,,256,224',
-',230,40,226,225,222,223,234,232,228,218,229,,,,79,73,75,76,77,78,,,',
-'74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67',
-',,,,,257,28,27,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,261',
-'88,95,96,,81,82,,38,39,,227,-555,-555,-555,-555,233,235,,,-555,-555',
-',,,,,,241,242,,210,,,214,,,52,,,54,,256,224,,230,40,226,225,222,223',
-'234,232,228,218,229,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51',
-',53,,57,58,,37,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92',
-',,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,227',
-'-555,-555,-555,-555,233,235,,,-555,-555,,,,,,,241,242,,210,,,214,,,52',
-',,54,,,224,,230,40,226,225,222,223,234,232,228,218,229,,,,79,73,75,76',
-'77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,23,24',
-'66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93,,84,50,86,85,87',
-',88,95,96,,81,82,,38,39,,227,231,236,237,238,233,235,,,239,240,,,,,',
-',241,242,,210,,,214,,,52,,,54,,,224,,230,40,226,225,222,223,234,232',
-'228,18,229,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58',
-',37,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,',
-',41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,227,231,236,237',
-'238,233,235,243,,239,240,,,,,,,241,242,,210,,,214,,,52,,,54,,,224,,230',
-'40,226,225,222,223,234,232,228,18,229,,,,79,73,75,76,77,78,,,,74,80',
-',,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24',
-'66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85',
-'87,,88,95,96,,81,82,,38,39,,227,,,,,,,,,,,,,,,,,241,242,,36,,,30,,,52',
-',,54,,32,224,,,40,226,225,222,223,,,,18,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,23,24,66,67,,,,',
-',22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96',
-',81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,458,52,,,54,,,,,,40,,',
-',,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58',
-',37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219',
-',,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,',
-',,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77',
-'78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259',
-'66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86',
-'85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,',
-'54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90',
-'89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38',
-'39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79',
-'73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93',
-',84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214',
-',,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64',
-'65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295',
-'90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82',
-',38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,',
-',,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41',
-',,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,',
-',210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,',
-',,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88',
-'95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40',
-',,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57',
-'58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,',
-'219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,',
-',,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76',
-'77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258',
-'259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90',
-'89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38',
-'39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79',
-'73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93',
-',84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214',
-',,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64',
-'65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295',
-'90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82',
-',38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,',
-',,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41',
-',,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,',
-',210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,',
-',,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88',
-'95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40',
-',,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57',
-'58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,',
-'219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,',
-',,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76',
-'77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258',
-'259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90',
-'89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38',
-'39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79',
-'73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93',
-',84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214',
-',,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64',
-'65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295',
-'90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82',
-',38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,',
-',,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41',
-',,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,',
-',210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,',
-',,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88',
-'95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40',
-',,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57',
-'58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,',
-'219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,',
-',,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76',
-'77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258',
-'259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90',
-'89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38',
-'39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79',
-'73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93',
-',84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214',
-',,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64',
-'65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295',
-'90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82',
-',38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,',
-',,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41',
-',,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,',
-',210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,',
-',,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88',
-'95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40',
-',,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57',
-'58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,',
-'219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,',
-',,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76',
-'77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258',
-'259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,28,27,90,89',
-'91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,261,88,95,96,,81,82,,38',
-'39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,256,,254,,40,,,,,,,,218',
-',,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,258,259,66,67,,,,,,257,28,27,90,89,91,92,,,219,,,,,,,41,,',
-'94,93,,84,50,86,85,87,261,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,',
-',,210,,,214,,,506,,,54,,256,,254,,40,,,,,,,,218,,,,,79,73,75,76,77,78',
-',,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66',
-'67,,,,,,257,28,27,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87',
-'261,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,510,52,,',
-'54,,256,,254,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56',
-',,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,',
-',,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88',
-'95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,281,,,52,,,54,,32,,,,40',
-',,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58',
-',37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219',
-',,,,,,292,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,764,,336,334,333',
-'754,335,,,,,,,,,,751,,,,,,,,289,,,214,,,52,,,54,,,,,,338,,,,,,,,341',
-'340,344,343,,79,73,75,76,77,78,,,,74,80,,,,518,,,56,,,53,,,,,296,83',
-'63,64,65,8,51,,,752,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22,28,27',
-'90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96,,81,82',
-',38,39,,,,,,,,,,,,,,,,,,,,,,36,,,281,,,52,,,54,,32,,,,40,,,,,,,,18,',
-',,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,292',
-',,94,93,,84,50,86,85,87,,88,95,96,,81,82,327,,336,334,333,,335,,,,,',
-',,,,,,,,,,,,289,,,286,,,52,,,54,,,,,,338,322,,,,,,,341,340,344,343,',
-'79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,296,83,61,',
-'59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,',
-',94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,',
-'210,,,214,537,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23',
-'24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86',
-'85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54',
-',32,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51',
-',53,,57,58,,37,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92',
-',,17,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,',
-',,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,18,,,,,79,73,75,76',
-'77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,23,24',
-'66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93,,84,50,86,85,87',
-',88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,',
-',,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53',
-',57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92',
-',,219,,,,,,,292,,,94,93,,84,50,86,85,361,,88,95,96,,81,82,327,,336,334',
-'333,,335,,,,,,,,,,,,,,,,,,362,,,214,,,52,,,54,,,,,,338,,554,,,,,,341',
-'340,344,343,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58',
-',296,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,',
-',,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,',
-',,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,',
-',74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67',
-',,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87',
-',88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,',
-',,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,-255,-255,-255,56',
-'-255,,53,,-255,-255,,37,83,-255,,-255,-255,-255,-255,-255,-255,-255',
-',,,,,-255,-255,-255,-255,-255,-255,-255,,,-255,,,,,,,-255,,,-255,-255',
-',-255,-255,-255,-255,-255,-255,-255,-255,-255,,-255,-255,,-255,-255',
-',,,,,,,,,,,,,,,,,,,,,-255,,,-255,268,,-255,,,-255,,-255,,-255,,-255',
-',,,,,,,-255,,,,,-255,-255,-255,-255,-255,-255,,,,-255,-255,,,,-536,-536',
-'-536,-255,-536,,-255,,-536,-536,,-255,-255,-536,,-536,-536,-536,-536',
-'-536,-536,-536,,,,,,-536,-536,-536,-536,-536,-536,-536,,,-536,,,,,,',
-'-536,,,-536,-536,,-536,-536,-536,-536,-536,-536,-536,-536,-536,,-536',
-'-536,,-536,-536,,,,,,,,,,,,,,,,,,,,,,-536,,,-536,-536,,-536,,,-536,',
-'-536,,-536,,-536,,,,,,,,-536,,,,,-536,-536,-536,-536,-536,-536,,,,-536',
-'-536,,,,-537,-537,-537,-536,-537,,-536,,-537,-537,,-536,-536,-537,,-537',
-'-537,-537,-537,-537,-537,-537,,,,,,-537,-537,-537,-537,-537,-537,-537',
-',,-537,,,,,,,-537,,,-537,-537,,-537,-537,-537,-537,-537,-537,-537,-537',
-'-537,,-537,-537,,-537,-537,,,,,,,,,,,,,,,,,,,,,,-537,,,-537,-537,,-537',
-',,-537,,-537,,-537,,-537,,,,,,,,-537,,,,,-537,-537,-537,-537,-537,-537',
-',,,-537,-537,,,,-255,-255,-255,-537,-255,,-537,,-255,-255,,-537,-537',
-'-255,,-255,-255,-255,-255,-255,-255,-255,,,,,,-255,-255,-255,-255,-255',
-'-255,-255,,,-255,,,,,,,-255,,,-255,-255,,-255,-255,-255,-255,-255,-255',
-'-255,-255,-255,,-255,-255,,-255,-255,,,,,,,,,,,,,,,,,,,,,,-255,,,-255',
-'268,,-255,,,-255,,-255,,-255,,-255,,,,,,,,-255,,,,,-255,-255,-255,-255',
-'-255,-255,,,,-255,-255,,,,63,64,65,-255,51,,-255,,57,58,,-255,-255,61',
-',59,60,62,258,259,66,67,,,,,,257,28,27,90,89,91,92,,,219,,,,,,,41,,',
-'94,93,,84,50,86,85,87,261,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,',
-',,210,,,214,,,52,,,54,,256,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,',
-',74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67',
-',,,,,257,28,27,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,261',
-'88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,256',
-',,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53',
-',57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92',
-',,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,',
-',,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75',
-'76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258',
-'259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90',
-'89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38',
-'39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79',
-'73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93',
-',84,50,86,85,87,261,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210',
-',,214,,,52,,,54,,658,,254,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,',
-',,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,261',
-'88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,254',
-',40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53',
-',57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92',
-',,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,',
-',,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75',
-'76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,23',
-'24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93,,84,50,86,85',
-'87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,675,52,,',
-'54,,,,254,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53',
-',,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22',
-'28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96',
-',81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,',
-',,18,,,,,79,73,75,76,77,78,,,,74,80,,,,,,404,56,,,53,,,,,37,83,63,64',
-'65,,51,,,,57,58,,,,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89',
-'91,92,,,219,,,,,,,292,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,327,',
-'336,334,333,,335,,,,,,,,,,,,,,,,,,289,,,286,,,52,,,54,,,,,,338,,,,,',
-',,341,340,344,343,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53',
-',57,58,,296,83,61,,59,60,62,258,259,66,67,,,,,,257,28,27,90,89,91,92',
-',,219,,,,,,,41,,,94,93,,84,50,86,85,87,261,88,95,96,,81,82,,38,39,,',
-',,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,256,,,,40,,,,,,,,218,,,,,79',
-'73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,258,259,66,67,,,,,,257,28,27,90,89,91,92,,,219,,,,,,,41,,,94,93,',
-'84,50,86,85,87,261,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,',
-',214,,,52,,,54,,256,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80',
-',,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,',
-'257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95',
-'96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,',
-',,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58',
-',37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219',
-',,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,',
-',,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77',
-'78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259',
-'66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86',
-'85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,',
-'54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91',
-'92,,,17,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,',
-',,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,18,,,,,79,73,75',
-'76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258',
-'259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,261,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,',
-',52,,,54,,658,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63',
-'64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291',
-'295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,261,88,95,96',
-',81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,',
-',,218,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65',
-'8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92',
-',,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,',
-',,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75',
-'76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,',
-'61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9',
-'94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36',
-',,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,',
-',63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257',
-'291,295,90,89,91,92,,,219,,,,,,,292,,,94,93,,84,50,86,85,87,,88,95,96',
-',81,82,764,,336,334,333,754,335,,,,,,,,,,751,,,,,,,,712,,,214,,,52,',
-',54,,,,,,338,,,,,,,,341,340,344,343,,79,73,75,76,77,78,,,,74,80,,,,',
-',,56,,,53,,,,,296,83,63,64,65,8,51,,,752,57,58,,,,61,,59,60,62,23,24',
-'66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85',
-'87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32',
-',,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37',
-'83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22,28,27',
-'90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96,,81,82',
-',38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18,,',
-',,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,',
-',,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,',
-',,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,',
-',,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75,76,77',
-'78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259',
-'66,67,,,,,,257,28,27,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85',
-'87,261,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,',
-'54,,256,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65',
-'56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,28,27,90',
-'89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,261,88,95,96,,81,82',
-',38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,256,,,,40,,,,,,,,218',
-',,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,258,259,66,67,,,,,,257,28,27,90,89,91,92,,,219,,,,,,,41,,',
-'94,93,,84,50,86,85,87,261,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,',
-',,210,,,214,,,52,,,54,,256,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,',
-',74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,23,24,66,67',
-',,,,,22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93,,84,50,86,85,87,,88',
-'95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40',
-',,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58',
-',37,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,',
-',41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,',
-',,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,',
-'74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67',
-',,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87',
-',88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,',
-',,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53',
-',57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92',
-',,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,',
-',,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,775,,,,40,,,,,,,,218,,,,,79,73',
-'75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62',
-'23,24,66,67,,,,,,22,28,27,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91',
-'92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,',
-',,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73',
-'75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62',
-'23,24,66,67,,,,,,22,28,27,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90',
-'89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38',
-'39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79',
-'73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93',
-',84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214',
-',,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56',
-',,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,',
-',,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88',
-'95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40',
-',,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58',
-',37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219',
-',,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,',
-',,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77',
-'78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59',
-'60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93',
-',84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30',
-',,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64',
-'65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295',
-'90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,261,88,95,96,,81',
-'82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,658,,254,,40,,,',
-',,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58',
-',37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219',
-',,,,,,41,,,94,93,,84,50,86,85,87,261,88,95,96,,81,82,,38,39,,,,,,,,',
-',,,,,,,,,,,,,210,,,214,,,52,,,54,,,,254,,40,,,,,,,,218,,,,,79,73,75',
-'76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,',
-'61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9',
-'94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36',
-',,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,',
-',,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66',
-'67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87',
-',88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,',
-',,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53',
-',57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92',
-',,219,,,,,,,292,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,,,,,,,,,,',
-',,,,,,,,,,,,,289,,,286,,,52,,,54,,,,,,,,,,,,,,,,,,,79,73,75,76,77,78',
-',,,74,80,,,,63,64,65,56,51,,53,,57,58,,296,83,61,,59,60,62,258,259,66',
-'67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,292,,,94,93,,84,50,86,85',
-'87,,88,95,96,,81,82,,,,,,,,,,,,,,,,,,,,,,,,,289,,,286,,,52,,,54,,,,',
-',,,,,,,,,,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58',
-',296,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219',
-',,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,',
-',,,,,,,,,,210,,,214,,,52,,,54,,421,,,,40,,,,,,,,218,,,,,79,73,75,76',
-'77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258',
-'259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,256,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65',
-'56,51,,53,,57,58,,37,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89',
-'91,92,,,17,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39',
-',,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,18,,,,,79,73',
-'75,76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58',
-',,,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41',
-',9,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,',
-',,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23',
-'24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86',
-'85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54',
-',32,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53,,,',
-',37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22,28',
-'27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96,,81',
-'82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18',
-',,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41',
-',,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,',
-',210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23',
-'24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86',
-'85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54',
-',32,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51',
-',53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89',
-'91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39',
-',,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73',
-'75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62',
-'23,24,66,67,,,,,,22,28,27,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91',
-'92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,',
-',,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73',
-'75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62',
-'258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84',
-'50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,',
-',52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64',
-'65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295',
-'90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82',
-',38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,',
-',,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61',
-',59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41',
-',,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,',
-',210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,',
-',,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88',
-'95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,256,,',
-',40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83',
-'63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90',
-'89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38',
-'39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79',
-'73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53',
-',,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22',
-'28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96',
-',81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,',
-',,18,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65',
-'8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92',
-',,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,',
-',,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75',
-'76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258',
-'259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52',
-',,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56',
-'51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90',
-'89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38',
-'39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,,,40,,,,,,,,218,,,,,79',
-'73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60',
-'62,258,259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,41,,,94,93',
-',84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214',
-',,52,,,54,,,,,,40,,,,,,,,218,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64',
-'65,56,51,,53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295',
-'90,89,91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,261,88,95,96,,81',
-'82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,,,254,,40,,,,,,',
-',218,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65',
-'8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92',
-',,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,',
-',,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75',
-'76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62,258',
-'259,66,67,,,,,,257,291,295,90,89,91,92,,,219,,,,,,,292,,,94,93,,84,50',
-'86,85,87,,88,95,96,,81,82,,,,,,,,,,,,,,,,,,,,,,,,,926,,,214,,,52,,,54',
-',,,,,,,,,,,,,,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,',
-'57,58,,296,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89,91,92',
-',,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,',
-',,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,658,,,,40,,,,,,,,218,,,,,79,73',
-'75,76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58',
-',,,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41',
-',9,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,',
-',,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74',
-'80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23',
-'24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86',
-'85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54',
-',32,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,63,64,65,56,51',
-',53,,57,58,,37,83,61,,59,60,62,258,259,66,67,,,,,,257,291,295,90,89',
-'91,92,,,219,,,,,,,41,,,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39',
-',,,,,,,,,,,,,,,,,,,,,210,,,214,,,52,,,54,,658,,254,,40,,,,,,,,218,,',
-',,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,',
-',,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,',
-',,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,',
-',,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75,76,77',
-'78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59',
-'60,62,23,24,66,67,,,,,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93',
-',84,50,86,85,87,,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30',
-',,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56',
-',,53,,,,,37,83,63,64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,',
-',,,22,28,27,90,89,91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88',
-'95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40',
-',,,,,,,18,,,,,79,73,75,76,77,78,,,,74,80,,,,,,,56,,,53,,,,,37,83,63',
-'64,65,8,51,,,,57,58,,,,61,,59,60,62,23,24,66,67,,,,,,22,28,27,90,89',
-'91,92,,,17,,,,,,7,41,,9,94,93,,84,50,86,85,87,,88,95,96,,81,82,,38,39',
-',,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,,,54,,32,,,,40,,,,,,,,18,,,,,79,73',
-'75,76,77,78,,,,74,80,,,,63,64,65,56,51,,53,,57,58,,37,83,61,,59,60,62',
-'258,259,66,67,,,,,,257,28,27,90,89,91,92,,,219,,,,,,,41,,,94,93,,84',
-'50,86,85,87,261,88,95,96,,81,82,,38,39,,,,,,,,,,,,,,,,,,,,,,210,,,214',
-',,52,,,54,,256,,,,40,,,,,,,,218,,,,-538,79,73,75,76,77,78,-538,-538',
-'-538,74,80,,-538,-538,,-538,,56,,,53,,,,-538,37,83,,,,,,,,,-538,-538',
-',-538,-538,-538,-538,-538,,,,,,,,,,,,,,,,,,,,,,,,-538,-538,-538,-538',
-'-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-283,,-538,-538',
-'-538,,636,-283,-283,-283,-538,,,-283,-283,,-283,-538,,-538,,-538,-538',
-'-538,-538,-538,-538,-538,,-538,-538,-538,,,,,-283,-283,,-283,-283,-283',
-'-283,-283,-538,-538,,-87,,-538,,,-538,,-538,,-96,,,,,,,,,,,-283,-283',
-'-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,,,-283',
-'-283,-283,,639,,,,-283,,,,,,,-283,,-283,,-283,-283,-283,-283,-283,-283',
-'-283,,-283,,-283,,,,,,,,,,,,,-283,-283,,-89,,-283,-538,,-283,,-283,',
-'-98,-538,-538,-538,,,-538,-538,-538,,-538,,,,,,,,,-538,-538,-538,,,',
-',,,,,-538,-538,,-538,-538,-538,-538,-538,,,,,,,,,,,,,,,,,,,,,,,,-538',
-'-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538',
-',,-538,-538,-538,,790,-538,,,-538,,,-538,,-538,,-538,,-538,,-538,-538',
-'-538,-538,-538,-538,-538,,-538,-538,-538,,,,,,,,,,,,,-538,-538,-538',
-'-538,,-538,-283,,-538,,-538,,-96,-283,-283,-283,,,-283,-283,-283,,-283',
-',,,,,,,,,-283,-283,,,,,,,,,-283,-283,,-283,-283,-283,-283,-283,,,,,',
-',,,,,,,,,,,,,,,,,,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283',
-'-283,-283,-283,-283,-283,,,-283,-283,-283,,639,-283,,,-283,,,-283,,-283',
-',-283,,-283,,-283,-283,-283,-283,-283,-283,-283,,-283,,-283,,,,,,,,',
-',,,,-283,-283,-283,-283,,-283,-292,,-283,,-283,,-98,-292,-292,-292,',
-',-292,-292,-292,,-292,,,,,,,,,,-292,-292,,,,,,,,,-292,-292,,-292,-292',
-'-292,-292,-292,,,,,,,,,,,,,,,,,,,,,,,,-292,-292,-292,-292,-292,-292',
-'-292,-292,-292,-292,-292,-292,-292,-292,-292,,,-292,-292,-292,,,-292',
-',277,-292,,,-292,,-292,,-292,,-292,,-292,-292,-292,-292,-292,-292,-292',
-',-292,,-292,,,,,,,,,,,,,-292,-292,-292,-292,-278,-292,,,-292,,-292,-278',
-'-278,-278,,,-278,-278,-278,,-278,,,,,,,,,,-278,-278,-278,,,,,,,,-278',
-'-278,,-278,-278,-278,-278,-278,,,,,,,,,,,,,,,,,,,,,,,,-278,-278,-278',
-'-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,,,-278,-278',
-'-278,,,-278,,,-278,,,-278,,-278,,-278,,-278,,-278,-278,-278,-278,-278',
-'-278,-278,,-278,,-278,,,,,,,,,,,,,-278,-278,-278,-278,-554,-278,,-278',
-'-278,,-278,-554,-554,-554,,,-554,-554,-554,,-554,,,,,,,,,,-554,,,,,',
-',,,,-554,-554,,-554,-554,-554,-554,-554,,,,,,,,,,,,,,-554,,,,,,,-554',
-'-554,-554,,,-554,-554,-554,,-554,,,,,-554,-554,,,,-554,,,-554,,,,,268',
-'-554,-554,-554,,-554,-554,-554,-554,-554,,,,,764,,336,334,333,754,335',
-',-554,,,,,,,,751,,,,-554,-554,,-554,,,-554,-554,-554,-554,-554,-554',
-'-554,-554,-554,,-554,,-554,338,749,,,268,-554,,-554,341,340,344,343',
-',,,,,-554,-554,,-554,-554,-554,-554,-554,,-554,,,,,,436,440,,,438,,',
-'-554,,-554,,,-554,142,143,752,139,121,122,123,130,127,129,,,124,125',
-'-554,-554,,,144,145,131,132,-554,,,,,268,-554,,,,,,136,135,,120,141',
-'138,137,133,134,128,126,118,140,119,,-554,146,,,,,,,,,,,,-554,,-554',
-',,-554,156,167,157,180,153,173,163,162,188,191,178,161,160,155,181,189',
-'190,165,154,168,172,174,166,159,,,,175,182,177,176,169,179,164,152,171',
-'170,183,184,185,186,187,151,158,149,150,147,148,,111,113,110,,112,,',
-',,,,,,142,143,,139,121,122,123,130,127,129,,,124,125,,,,,144,145,131',
-'132,,,,,,,,,,,,,136,135,,120,141,138,137,133,134,128,126,118,140,119',
-',,146,192,,,,,,,,,,80,156,167,157,180,153,173,163,162,188,191,178,161',
-'160,155,181,189,190,165,154,168,172,174,166,159,,,,175,182,177,176,169',
-'179,164,152,171,170,183,184,185,186,187,151,158,149,150,147,148,,111',
-'113,,,112,,,,,,,,,142,143,,139,121,122,123,130,127,129,,,124,125,,,',
-',144,145,131,132,,,,,,,,,,,,,136,135,,120,141,138,137,133,134,128,126',
-'118,140,119,,,146,192,,,,,,,,,,80,156,167,157,180,153,173,163,162,188',
-'191,178,161,160,155,181,189,190,165,154,168,172,174,166,159,,,,175,182',
-'177,176,169,179,164,152,171,170,183,184,185,186,187,151,158,149,150',
-'147,148,,111,113,,,112,,,,,,,,,142,143,,139,121,122,123,130,127,129',
-',,124,125,,,,,144,145,131,132,,,,,,,,,,,,,136,135,,120,141,138,137,133',
-'134,128,126,118,140,119,,,146,192,,,,,,,,,,80,156,167,157,180,153,173',
-'163,162,188,191,178,161,160,155,181,189,190,165,154,168,172,174,166',
-'159,,,,175,182,177,176,169,179,164,152,171,170,183,184,185,186,187,151',
-'158,149,150,147,148,,111,113,,,112,,,,,,,,,142,143,,139,121,122,123',
-'130,127,129,,,124,125,,,,,144,145,131,132,,,,,,,,,,,,,136,135,,120,141',
-'138,137,133,134,128,126,118,140,119,,,146,192,,,,,,,,,,80,156,167,157',
-'180,153,173,163,162,188,191,178,161,160,155,181,189,190,165,154,168',
-'172,174,166,159,,,,175,182,177,376,375,377,374,152,171,170,183,184,185',
-'186,187,151,158,149,150,372,373,,370,113,86,85,371,,88,,,,,,,142,143',
-',139,121,122,123,130,127,129,,,124,125,,,,,144,145,131,132,,,,,,381',
-',,,,,,136,135,,120,141,138,137,133,134,128,126,118,140,119,,,146,156',
-'167,157,180,153,173,163,162,188,191,178,161,160,155,181,189,190,165',
-'154,168,172,174,166,159,,,,175,182,177,176,169,179,164,152,171,170,183',
-'184,185,186,187,151,158,149,150,147,148,,111,113,398,397,112,,399,,',
-',,,,142,143,,139,121,122,123,130,127,129,,,124,125,,,,,144,145,131,132',
-',,,,,,,,,,,,136,135,,120,141,138,137,133,134,128,126,118,140,119,,,146',
-'156,167,157,180,153,173,163,162,188,191,178,161,160,155,181,189,190',
-'165,154,168,172,174,166,159,,,,175,182,177,176,169,179,164,152,171,170',
-'183,184,185,186,187,151,158,149,150,147,148,,111,113,398,397,112,,399',
-',,,,,,142,143,,139,121,122,123,130,127,129,,,124,125,,,,,144,145,131',
-'132,,,,,,,,,,,,,136,135,,120,141,138,137,133,134,128,126,118,140,119',
-',,146,156,167,157,180,153,173,163,162,188,191,178,161,160,155,181,189',
-'190,165,154,168,172,174,166,159,,,,175,182,177,176,169,179,164,152,171',
-'170,183,184,185,186,187,151,158,149,150,147,148,,111,113,,,112,,,,,',
-',,,142,143,,139,121,122,123,130,127,129,,,124,125,,,,,144,145,131,132',
-',,,,,,,,,,,,136,135,,120,141,138,137,133,134,128,126,118,140,119,430',
-'434,146,,431,,,,,,,,,142,143,,139,121,122,123,130,127,129,,,124,125',
-',,,,144,145,131,132,,,,,,268,,,,,,,136,135,,120,141,138,137,133,134',
-'128,126,118,140,119,443,434,146,,444,,,,,,,,,142,143,,139,121,122,123',
-'130,127,129,,,124,125,,,,,144,145,131,132,,,,,,,,,,,,,136,135,,120,141',
-'138,137,133,134,128,126,118,140,119,443,434,146,,444,,,,,,,,,142,143',
-',139,121,122,123,130,127,129,,,124,125,,,,,144,145,131,132,,,,,,,,,',
-',,,136,135,,120,141,138,137,133,134,128,126,118,140,119,443,434,146',
-',444,,,,,,,,,142,143,,139,121,122,123,130,127,129,,,124,125,,,,,144',
-'145,131,132,,,,,,,,,,,,,136,135,,120,141,138,137,133,134,128,126,118',
-'140,119,443,434,146,,444,,,,,,,,,142,143,,139,121,122,123,130,127,129',
-',,124,125,,,,,144,145,131,132,,,,,,,,,,,,,136,135,,120,141,138,137,133',
-'134,128,126,118,140,119,642,434,146,,643,,,,,,,,,142,143,,139,121,122',
-'123,130,127,129,,,124,125,,,,,144,145,131,132,,,,,,268,,,,,,,136,135',
-',120,141,138,137,133,134,128,126,118,140,119,644,440,146,,645,,,,,,',
-',,142,143,,139,121,122,123,130,127,129,,,124,125,,,,,144,145,131,132',
-',,,,,,,,,,,,136,135,,120,141,138,137,133,134,128,126,118,140,119,686',
-'434,146,,687,,,,,,,,,142,143,,139,121,122,123,130,127,129,,,124,125',
-',,,,144,145,131,132,,,,,,268,,,,,,,136,135,,120,141,138,137,133,134',
-'128,126,118,140,119,689,440,146,,690,,,,,,,,,142,143,,139,121,122,123',
-'130,127,129,,,124,125,,,,,144,145,131,132,,,,,,,,,,,,,136,135,,120,141',
-'138,137,133,134,128,126,118,140,119,443,434,146,,444,,,,,,,,,142,143',
-',139,121,122,123,130,127,129,,,124,125,,,,,144,145,131,132,,,,,,,,,',
-',,,136,135,,120,141,138,137,133,134,128,126,118,140,119,642,434,146',
-',643,,,,,,,,,142,143,,139,121,122,123,130,127,129,,,124,125,,,,,144',
-'145,131,132,,,,,,268,,,,,,,136,135,,120,141,138,137,133,134,128,126',
-'118,140,119,644,440,146,,645,,,,,,,,,142,143,,139,121,122,123,130,127',
-'129,,,124,125,,,,,144,145,131,132,,,,,,,,,,,,,136,135,,120,141,138,137',
-'133,134,128,126,118,140,119,733,434,146,,734,,,,,,,,,142,143,,139,121',
-'122,123,130,127,129,,,124,125,,,,,144,145,131,132,,,,,,268,,,,,,,136',
-'135,,120,141,138,137,133,134,128,126,118,140,119,735,440,146,,736,,',
-',,,,,,142,143,,139,121,122,123,130,127,129,,,124,125,,,,,144,145,131',
-'132,,,,,,,,,,,,,136,135,,120,141,138,137,133,134,128,126,118,140,119',
-'741,440,146,,739,,,,,,,,,142,143,,139,121,122,123,130,127,129,,,124',
-'125,,,,,144,145,131,132,,,,,,,,,,,,,136,135,,120,141,138,137,133,134',
-'128,126,118,140,119,443,434,146,,444,,,,,,,,,142,143,,139,121,122,123',
-'130,127,129,,,124,125,,,,,144,145,131,132,,,,,,268,,,,,,,136,135,,120',
-'141,138,137,133,134,128,126,118,140,119,741,440,146,,892,,,,,,,,,142',
-'143,,139,121,122,123,130,127,129,,,124,125,,,,,144,145,131,132,,,,,',
-',,,,,,,136,135,,120,141,138,137,133,134,128,126,118,140,119,959,434',
-'146,,960,,,,,,,,,142,143,,139,121,122,123,130,127,129,,,124,125,,,,',
-'144,145,131,132,,,,,,268,,,,,,,136,135,,120,141,138,137,133,134,128',
-'126,118,140,119,961,440,146,,962,,,,,,,,,142,143,,139,121,122,123,130',
-'127,129,,,124,125,,,,,144,145,131,132,,,,,,,,,,,,,136,135,,120,141,138',
-'137,133,134,128,126,118,140,119,,,146' ]
- racc_action_table = arr = ::Array.new(25031, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-clist = [
-'0,0,0,0,0,347,321,354,0,0,392,746,746,0,71,0,0,0,0,0,0,0,71,313,852',
-'615,313,0,0,0,0,0,0,0,1,852,0,387,26,209,387,485,0,0,0,0,0,0,348,0,0',
-'0,0,0,55,0,0,0,497,0,0,357,0,0,587,681,366,370,852,852,733,310,310,392',
-'370,485,734,352,838,352,839,604,604,735,889,0,615,615,0,209,896,0,497',
-'6,0,615,0,287,387,387,0,746,681,924,26,852,746,9,0,927,948,321,354,0',
-'0,0,0,0,0,347,959,347,0,0,347,26,736,17,17,17,0,17,960,0,507,17,17,10',
-'0,0,17,55,17,17,17,17,17,17,17,211,735,457,457,11,17,17,17,17,17,17',
-'17,310,348,17,348,287,357,348,507,587,17,604,366,17,17,733,17,17,17',
-'17,17,734,17,17,17,839,17,17,735,17,17,366,838,736,838,838,366,838,889',
-'211,889,371,287,889,896,12,896,457,371,896,961,287,17,20,962,17,17,924',
-'17,924,290,17,924,927,948,927,948,17,927,948,967,736,293,383,959,17',
-'959,34,577,959,17,17,17,17,17,17,960,525,960,17,17,960,686,578,18,18',
-'18,17,18,687,17,314,18,18,314,17,17,18,453,18,18,18,18,18,18,18,698',
-'698,508,15,15,18,18,18,18,18,18,18,290,961,18,629,36,962,383,383,383',
-'18,293,461,18,18,41,18,18,18,18,18,77,18,18,18,508,18,18,525,18,18,453',
-'293,686,841,37,37,961,290,961,687,962,961,962,461,698,962,290,461,461',
-'689,577,18,577,629,18,577,967,18,967,807,18,967,78,690,525,578,18,578',
-'642,686,578,97,3,525,18,193,687,3,686,18,18,18,18,18,18,687,210,278',
-'18,18,212,14,278,22,22,22,18,22,385,18,317,22,22,317,18,18,22,643,22',
-'22,22,22,22,22,22,791,689,689,642,792,22,22,22,22,22,22,22,807,213,22',
-'690,690,14,841,389,841,22,394,841,22,22,14,22,22,22,22,22,22,22,22,22',
-'372,22,22,689,22,22,643,372,385,385,385,351,689,807,791,219,351,690',
-'792,251,25,25,807,860,373,374,690,22,25,252,22,373,374,22,860,934,22',
-'934,22,255,22,267,22,280,389,389,389,394,394,394,22,83,83,13,13,22,22',
-'22,22,22,22,13,282,703,22,22,703,860,860,23,23,23,22,23,597,22,375,23',
-'23,597,22,22,23,375,23,23,23,23,23,23,23,283,361,296,296,284,23,23,23',
-'23,23,23,23,744,860,23,42,42,744,13,648,13,23,289,42,23,23,291,23,23',
-'23,23,23,23,23,23,23,292,23,23,295,23,23,301,648,648,648,648,648,648',
-'648,648,648,648,648,361,361,648,648,376,750,648,648,361,23,750,376,23',
-'361,302,23,305,42,23,42,23,648,23,648,23,648,648,648,648,648,648,648',
-'23,648,361,208,208,23,23,23,23,23,23,208,312,35,23,23,315,648,316,24',
-'24,24,23,24,361,23,361,24,24,318,23,23,24,326,24,24,24,24,24,24,24,5',
-'5,5,5,5,24,24,24,24,24,24,24,377,35,24,288,288,300,208,377,208,24,35',
-'288,24,24,327,24,24,24,24,24,24,24,24,24,329,24,24,330,24,24,342,484',
-'484,484,484,484,484,484,484,484,484,484,303,303,484,484,300,110,484',
-'484,303,24,110,110,24,300,345,24,353,288,24,288,24,484,24,484,24,484',
-'484,484,484,484,484,484,24,484,356,355,355,24,24,24,24,24,24,355,358',
-'430,24,24,362,484,484,27,27,27,24,27,303,24,303,27,27,388,24,24,27,391',
-'27,27,27,27,27,27,27,279,279,279,279,279,27,27,27,27,27,27,27,410,430',
-'27,364,364,416,355,419,355,27,430,364,27,27,422,27,27,27,27,27,27,27',
-'27,27,424,27,27,428,27,27,429,419,419,419,419,419,419,419,419,419,419',
-'419,589,589,419,419,346,346,419,419,589,27,437,431,27,27,463,27,464',
-'364,27,364,27,419,27,419,27,419,419,419,419,419,419,419,27,419,561,561',
-'379,27,27,27,27,27,27,379,720,720,27,27,628,419,465,419,431,466,27,858',
-'589,27,589,499,858,431,27,27,30,30,30,30,30,855,855,858,30,30,949,949',
-'502,30,503,30,30,30,30,30,30,30,509,513,514,628,517,30,30,30,30,30,30',
-'30,628,519,30,526,858,858,858,858,30,30,462,30,30,30,529,30,30,30,30',
-'30,538,30,30,30,539,30,30,540,30,30,553,19,19,19,19,19,19,19,19,19,19',
-'19,462,858,19,19,462,462,19,19,564,30,568,573,30,579,580,30,619,626',
-'30,632,30,19,637,19,30,19,19,19,19,19,19,19,30,19,640,711,711,30,30',
-'30,30,30,30,711,646,647,30,30,655,19,657,31,31,31,30,31,669,30,673,31',
-'31,676,30,30,31,683,31,31,31,31,31,31,31,555,685,688,691,692,31,31,31',
-'31,31,31,31,693,696,31,840,840,697,711,699,711,31,704,840,31,31,705',
-'31,31,31,31,31,708,31,31,31,710,31,31,712,652,713,652,652,652,714,652',
-'555,555,555,555,717,768,768,739,739,768,768,768,722,728,730,739,31,732',
-'737,31,739,741,31,742,840,31,840,31,753,757,758,760,652,761,939,762',
-'764,767,774,939,652,652,652,652,31,31,31,31,31,31,939,652,795,31,31',
-'796,799,801,32,32,32,31,32,739,31,739,32,32,804,31,31,32,805,32,32,32',
-'32,32,32,32,824,939,939,939,939,32,32,32,32,32,32,32,925,925,32,680',
-'680,680,680,680,925,32,480,806,32,32,811,32,32,32,32,32,814,32,32,32',
-'815,32,32,600,939,600,600,600,600,600,830,824,824,824,824,833,843,846',
-'480,600,847,848,480,480,480,480,870,32,871,882,32,892,925,32,925,569',
-'32,569,569,569,893,569,600,600,898,899,907,909,912,913,600,600,600,600',
-'914,32,32,32,32,32,32,915,926,936,32,32,944,953,955,32,956,958,32,,',
-'32,,,,,32,32,38,38,38,481,38,,,600,38,38,,,,38,,38,38,38,38,38,38,38',
-',,,,,38,38,38,38,38,38,38,,481,38,,,481,481,481,481,38,,,38,38,,38,38',
-'38,38,38,,38,38,38,,38,38,,38,38,,249,249,249,249,249,249,249,249,249',
-'249,249,,,249,249,,,249,249,,38,,,38,,,38,,,38,,,249,,249,38,249,249',
-'249,249,249,249,249,38,249,,,,38,38,38,38,38,38,,,,38,38,,249,,39,39',
-'39,38,39,,38,,39,39,,38,38,39,,39,39,39,39,39,39,39,,,,,,39,39,39,39',
-'39,39,39,,829,39,829,829,829,,829,,39,,,39,39,,39,39,39,39,39,,39,39',
-'39,,39,39,,39,39,,427,427,427,427,427,427,427,427,427,427,427,,,427',
-'427,,,427,427,,39,,,39,,,39,,,39,,,427,,427,39,427,427,427,427,427,427',
-'427,39,427,,,,39,39,39,39,39,39,,,,39,39,,427,,40,40,40,39,40,,39,,40',
-'40,,39,39,40,,40,40,40,40,40,40,40,,,,,,40,40,40,40,40,40,40,,,40,,',
-',,,,40,,,40,40,,40,40,40,40,40,,40,40,40,,40,40,,40,40,,446,446,446',
-'446,446,446,446,446,446,446,446,,,446,446,,,446,446,,40,,,40,,,40,,',
-'40,,,446,,446,40,446,446,446,446,446,446,446,40,446,,,,40,40,40,40,40',
-'40,,,,40,40,,446,,52,52,52,40,52,,40,,52,52,,40,40,52,,52,52,52,52,52',
-'52,52,,,,,,52,52,52,52,52,52,52,,,52,,,,,,,52,,,52,52,,52,52,52,52,52',
-',52,52,52,,52,52,,52,52,,536,536,536,536,536,536,536,536,536,536,536',
-',,536,536,,,536,536,,52,,,52,,,52,,,52,,,536,,536,52,536,536,536,536',
-'536,536,536,52,536,,,,52,52,52,52,52,52,,,,52,52,,536,,53,53,53,52,53',
-',52,,53,53,,52,52,53,,53,53,53,53,53,53,53,,,,,,53,53,53,53,53,53,53',
-',,53,,,,,,,53,,,53,53,,53,53,53,53,53,53,53,53,53,,53,53,,53,53,,695',
-'695,695,695,695,695,695,695,695,695,695,,,695,695,,,695,695,,53,,,53',
-',,53,,,53,,53,695,,695,53,695,695,695,695,695,695,695,53,695,,,,53,53',
-'53,53,53,53,,,,53,53,,695,,54,54,54,53,54,,53,,54,54,,53,53,54,,54,54',
-'54,54,54,54,54,,,,,,54,54,54,54,54,54,54,,,54,,,,,,,54,,,54,54,,54,54',
-'54,54,54,54,54,54,54,,54,54,,54,54,,773,773,773,773,773,773,773,773',
-'773,773,773,,,773,773,,,773,773,,54,,,54,,,54,,,54,,,773,,773,54,773',
-'773,773,773,773,773,773,54,773,,,,54,54,54,54,54,54,,,,54,54,,773,,57',
-'57,57,54,57,,54,,57,57,,54,54,57,,57,57,57,57,57,57,57,,,,,,57,57,57',
-'57,57,57,57,,,57,,,,,,,57,,,57,57,,57,57,57,57,57,,57,57,57,,57,57,',
-'57,57,,779,779,779,779,779,779,779,779,779,779,779,,,779,779,,,779,779',
-',57,,,57,,,57,,,57,,,779,,779,57,779,779,779,779,779,779,779,57,779',
-',,,57,57,57,57,57,57,,,,57,57,,779,,58,58,58,57,58,,57,,58,58,,57,57',
-'58,,58,58,58,58,58,58,58,,,,,,58,58,58,58,58,58,58,,,58,,,,,,,58,,,58',
-'58,,58,58,58,58,58,,58,58,58,,58,58,,58,58,,781,781,781,781,781,781',
-'781,781,781,781,781,,,781,781,,,781,781,,58,,,58,,,58,,,58,,,781,,781',
-'58,781,781,781,781,781,781,781,58,781,,,,58,58,58,58,58,58,,,,58,58',
-',781,,61,61,61,58,61,,58,,61,61,,58,58,61,,61,61,61,61,61,61,61,,,,',
-',61,61,61,61,61,61,61,,,61,,,,,,,61,,,61,61,,61,61,61,61,61,,61,61,61',
-',61,61,,61,61,,672,672,672,672,672,672,672,672,672,672,672,,,672,672',
-',,672,672,,61,,,61,,,61,,,61,,,672,,672,61,672,672,672,672,672,672,672',
-'61,672,,,,61,61,61,61,61,61,,,,61,61,61,672,,672,,61,61,,,61,,,,,61',
-'61,62,62,62,,62,,,,62,62,,,,62,,62,62,62,62,62,62,62,,,,,,62,62,62,62',
-'62,62,62,,,62,,,,,,,62,,,62,62,,62,62,62,62,62,,62,62,62,,62,62,784',
-'784,784,784,784,784,784,784,784,784,784,467,,784,784,,,784,784,,,,,',
-'62,,,62,467,467,62,,784,62,784,62,784,784,784,784,784,784,784,467,784',
-'467,,467,467,467,467,,62,62,62,62,62,62,,,784,62,62,,,,63,63,63,62,63',
-',62,,63,63,,62,62,63,,63,63,63,63,63,63,63,,,,,,63,63,63,63,63,63,63',
-',,63,,,,,,,63,,,63,63,,63,63,63,63,63,,63,63,63,,63,63,786,786,786,786',
-'786,786,786,786,786,786,786,468,,786,786,,,786,786,,,63,,,63,,,63,468',
-'468,63,,786,63,786,,786,786,786,786,786,786,786,468,786,468,,468,468',
-'468,468,,63,63,63,63,63,63,,,786,63,63,,,,84,84,84,63,84,,63,,84,84',
-',63,63,84,,84,84,84,84,84,84,84,,84,,,,84,84,84,84,84,84,84,,,84,,,',
-',,,84,,,84,84,,84,84,84,84,84,84,84,84,84,,84,84,,84,84,,793,793,793',
-'793,793,793,793,793,793,793,793,,,793,793,,,793,793,,84,,,84,84,,84',
-',,84,,84,793,84,793,84,793,793,793,793,793,793,793,84,793,84,,,84,84',
-'84,84,84,84,,,,84,84,,793,,87,87,87,84,87,,84,,87,87,,84,84,87,,87,87',
-'87,87,87,87,87,,87,,,,87,87,87,87,87,87,87,,,87,,,,,,,87,,,87,87,,87',
-'87,87,87,87,87,87,87,87,,87,87,,87,87,,873,873,873,873,873,873,873,873',
-'873,873,873,,,873,873,,,873,873,,87,,,87,87,,87,,,87,,87,873,87,873',
-'87,873,873,873,873,873,873,873,87,873,87,,,87,87,87,87,87,87,,,,87,87',
-',873,,,,,87,,,87,,,,,87,87,99,99,99,99,99,,,,99,99,,,,99,,99,99,99,99',
-'99,99,99,,,,,,99,99,99,99,99,99,99,,,99,,,,,,99,99,99,99,99,99,,99,99',
-'99,99,99,,99,99,99,,99,99,,99,99,,875,875,875,875,875,875,875,875,875',
-'875,875,,,875,875,,,875,875,,99,,,99,,,99,,,99,,99,875,,875,99,875,875',
-'875,875,875,875,875,99,875,,,,99,99,99,99,99,99,,,,99,99,,875,,,,99',
-'99,,,99,,,,,99,99,103,103,103,,103,,,,103,103,,,,103,,103,103,103,103',
-'103,103,103,,,,,,103,103,103,103,103,103,103,,338,103,338,338,338,,338',
-',103,,,103,103,,103,103,103,103,103,,103,103,103,,103,103,,103,103,566',
-',566,566,566,,566,,,718,338,718,718,718,,718,,,338,,,103,,,103,,,103',
-',,103,,,,,,103,,,566,,,,,103,,,566,718,103,103,103,103,103,103,,718',
-',103,103,,,,104,104,104,103,104,,103,,104,104,,103,103,104,,104,104',
-'104,104,104,104,104,,,,,,104,104,104,104,104,104,104,,,104,,,,,,,104',
-',,104,104,,104,104,104,104,104,,104,104,104,,104,104,,104,104,,459,459',
-'459,459,459,459,459,459,459,459,459,,,459,459,,,459,459,,104,,,104,',
-',104,,,104,,,459,,459,104,459,459,459,459,459,459,459,104,459,,,,104',
-'104,104,104,104,104,,,,104,104,,,,105,105,105,104,105,,104,,105,105',
-',104,104,105,,105,105,105,105,105,105,105,,,,,,105,105,105,105,105,105',
-'105,,,105,,,,,,,105,,,105,105,,105,105,105,105,105,,105,105,105,,105',
-'105,,105,105,,460,460,460,460,460,460,460,460,460,460,460,,,460,460',
-',,460,460,,105,,,105,,,105,,,105,,,460,,460,105,460,460,460,460,460',
-'460,460,105,460,,,,105,105,105,105,105,105,,,,105,105,,,,106,106,106',
-'105,106,,105,,106,106,,105,105,106,,106,106,106,106,106,106,106,,,,',
-',106,106,106,106,106,106,106,,,106,,,,,,,106,,,106,106,,106,106,106',
-'106,106,,106,106,106,,106,106,,106,106,,470,470,470,470,470,470,470',
-',,470,470,,,,,,,470,470,,106,,,106,,,106,,,106,,,470,,470,106,470,470',
-'470,470,470,470,470,106,470,,,,106,106,106,106,106,106,,,,106,106,,',
-',,,,106,,,106,,,,,106,106,107,107,107,107,107,,,,107,107,,,,107,,107',
-'107,107,107,107,107,107,,,,,,107,107,107,107,107,107,107,,,107,,,,,',
-'107,107,,107,107,107,,107,107,107,107,107,,107,107,107,,107,107,,107',
-'107,,471,,,,,,,,,,,,,,,,,471,471,,107,,,107,,,107,,,107,,107,471,,471',
-'107,471,471,471,471,,,471,107,471,,,,107,107,107,107,107,107,,,,107',
-'107,,,,,,,107,,,107,,,,,107,107,108,108,108,108,108,,,,108,108,,,,108',
-',108,108,108,108,108,108,108,,,,,,108,108,108,108,108,108,108,,,108',
-',,,,,108,108,108,108,108,108,,108,108,108,108,108,,108,108,108,,108',
-'108,,108,108,,472,,,,,,,,,,,,,,,,,472,472,,108,,,108,,,108,,,108,,108',
-'472,,472,108,472,472,472,472,,,472,108,472,,,,108,108,108,108,108,108',
-',,,108,108,,,,,,,108,,,108,,,,,108,108,195,195,195,195,195,,,,195,195',
-',,,195,,195,195,195,195,195,195,195,,,,,,195,195,195,195,195,195,195',
-',,195,,,,,,195,195,,195,195,195,,195,195,195,195,195,,195,195,195,,195',
-'195,,195,195,,473,,,,,,,,,,,,,,,,,473,473,,195,,,195,,,195,,,195,,195',
-'473,,473,195,473,473,473,473,,,473,195,473,,,,195,195,195,195,195,195',
-',,,195,195,,,,196,196,196,195,196,,195,,196,196,,195,195,196,,196,196',
-'196,196,196,196,196,,,,,,196,196,196,196,196,196,196,,,196,,,,,,,196',
-',,196,196,,196,196,196,196,196,,196,196,196,,196,196,,196,196,,474,',
-',,,,,,,,,,,,,,,474,474,,196,,,196,,,196,,,196,,196,474,,474,196,474',
-'474,474,474,,,474,196,474,,,,196,196,196,196,196,196,,,,196,196,,,,197',
-'197,197,196,197,,196,,197,197,,196,196,197,,197,197,197,197,197,197',
-'197,,,,,,197,197,197,197,197,197,197,,,197,,,,,,,197,,,197,197,,197',
-'197,197,197,197,,197,197,197,,197,197,,197,197,,475,475,475,475,475',
-'475,475,,,475,475,,,,,,,475,475,,197,,,197,,,197,,,197,,197,475,,475',
-'197,475,475,475,475,475,475,475,197,475,,,,197,197,197,197,197,197,',
-',,197,197,,,,198,198,198,197,198,,197,,198,198,,197,197,198,,198,198',
-'198,198,198,198,198,,,,,,198,198,198,198,198,198,198,,,198,,,,,,,198',
-',,198,198,,198,198,198,198,198,,198,198,198,,198,198,,198,198,,476,476',
-'476,476,476,476,476,,,476,476,,,,,,,476,476,,198,,,198,,,198,,,198,',
-',476,,476,198,476,476,476,476,476,476,476,198,476,,,,198,198,198,198',
-'198,198,,,,198,198,,,,199,199,199,198,199,,198,,199,199,,198,198,199',
-',199,199,199,199,199,199,199,,,,,,199,199,199,199,199,199,199,,,199',
-',,,,,,199,,,199,199,,199,199,199,199,199,199,199,199,199,,199,199,,199',
-'199,,477,477,477,477,477,477,477,,,477,477,,,,,,,477,477,,199,,,199',
-',,199,,,199,,199,477,,477,199,477,477,477,477,477,477,477,199,477,,',
-',199,199,199,199,199,199,,,,199,199,,,,200,200,200,199,200,,199,,200',
-'200,,199,199,200,,200,200,200,200,200,200,200,,,,,,200,200,200,200,200',
-'200,200,,,200,,,,,,,200,,,200,200,,200,200,200,200,200,200,200,200,200',
-',200,200,,200,200,,478,478,478,478,478,478,478,,,478,478,,,,,,,478,478',
-',200,,,200,,,200,,,200,,200,478,,478,200,478,478,478,478,478,478,478',
-'200,478,,,,200,200,200,200,200,200,,,,200,200,,,,204,204,204,200,204',
-',200,,204,204,,200,200,204,,204,204,204,204,204,204,204,,,,,,204,204',
-'204,204,204,204,204,,,204,,,,,,,204,,,204,204,,204,204,204,204,204,',
-'204,204,204,,204,204,,204,204,,479,479,479,479,479,479,479,,,479,479',
-',,,,,,479,479,,204,,,204,,,204,,,204,,,479,,479,204,479,479,479,479',
-'479,479,479,204,479,,,,204,204,204,204,204,204,,,,204,204,,,,205,205',
-'205,204,205,,204,,205,205,,204,204,205,,205,205,205,205,205,205,205',
-',,,,,205,205,205,205,205,205,205,,,205,,,,,,,205,,,205,205,,205,205',
-'205,205,205,,205,205,205,,205,205,,205,205,,482,482,482,482,482,482',
-'482,,,482,482,,,,,,,482,482,,205,,,205,,,205,,,205,,,482,,482,205,482',
-'482,482,482,482,482,482,205,482,,,,205,205,205,205,205,205,,,,205,205',
-',,,206,206,206,205,206,,205,,206,206,,205,205,206,,206,206,206,206,206',
-'206,206,,,,,,206,206,206,206,206,206,206,,,206,,,,,,,206,,,206,206,',
-'206,206,206,206,206,,206,206,206,,206,206,,206,206,,483,483,483,483',
-'483,483,483,483,,483,483,,,,,,,483,483,,206,,,206,,,206,,,206,,,483',
-',483,206,483,483,483,483,483,483,483,206,483,,,,206,206,206,206,206',
-'206,,,,206,206,,,,,,,206,,,206,,,,,206,206,214,214,214,214,214,,,,214',
-'214,,,,214,,214,214,214,214,214,214,214,,,,,,214,214,214,214,214,214',
-'214,,,214,,,,,,214,214,,214,214,214,,214,214,214,214,214,,214,214,214',
-',214,214,,214,214,,469,,,,,,,,,,,,,,,,,469,469,,214,,,214,,,214,,,214',
-',214,469,,,214,469,469,469,469,,,,214,,,,,214,214,214,214,214,214,,',
-',214,214,,,,215,215,215,214,215,,214,,215,215,,214,214,215,,215,215',
-'215,215,215,215,215,,,,,,215,215,215,215,215,215,215,,,215,,,,,,,215',
-',,215,215,,215,215,215,215,215,,215,215,215,,215,215,,215,215,,,,,,',
-',,,,,,,,,,,,,,,215,,,215,,215,215,,,215,,,,,,215,,,,,,,,215,,,,,215',
-'215,215,215,215,215,,,,215,215,,,,218,218,218,215,218,,215,,218,218',
-',215,215,218,,218,218,218,218,218,218,218,,,,,,218,218,218,218,218,218',
-'218,,,218,,,,,,,218,,,218,218,,218,218,218,218,218,,218,218,218,,218',
-'218,,218,218,,,,,,,,,,,,,,,,,,,,,,218,,,218,,,218,,,218,,,,,,218,,,',
-',,,,218,,,,,218,218,218,218,218,218,,,,218,218,,,,220,220,220,218,220',
-',218,,220,220,,218,218,220,,220,220,220,220,220,220,220,,,,,,220,220',
-'220,220,220,220,220,,,220,,,,,,,220,,,220,220,,220,220,220,220,220,',
-'220,220,220,,220,220,,220,220,,,,,,,,,,,,,,,,,,,,,,220,,,220,,,220,',
-',220,,,,,,220,,,,,,,,220,,,,,220,220,220,220,220,220,,,,220,220,,,,221',
-'221,221,220,221,,220,,221,221,,220,220,221,,221,221,221,221,221,221',
-'221,,,,,,221,221,221,221,221,221,221,,,221,,,,,,,221,,,221,221,,221',
-'221,221,221,221,,221,221,221,,221,221,,221,221,,,,,,,,,,,,,,,,,,,,,',
-'221,,,221,,,221,,,221,,,,,,221,,,,,,,,221,,,,,221,221,221,221,221,221',
-',,,221,221,,,,222,222,222,221,222,,221,,222,222,,221,221,222,,222,222',
-'222,222,222,222,222,,,,,,222,222,222,222,222,222,222,,,222,,,,,,,222',
-',,222,222,,222,222,222,222,222,,222,222,222,,222,222,,222,222,,,,,,',
-',,,,,,,,,,,,,,,222,,,222,,,222,,,222,,,,,,222,,,,,,,,222,,,,,222,222',
-'222,222,222,222,,,,222,222,,,,223,223,223,222,223,,222,,223,223,,222',
-'222,223,,223,223,223,223,223,223,223,,,,,,223,223,223,223,223,223,223',
-',,223,,,,,,,223,,,223,223,,223,223,223,223,223,,223,223,223,,223,223',
-',223,223,,,,,,,,,,,,,,,,,,,,,,223,,,223,,,223,,,223,,,,,,223,,,,,,,',
-'223,,,,,223,223,223,223,223,223,,,,223,223,,,,224,224,224,223,224,,223',
-',224,224,,223,223,224,,224,224,224,224,224,224,224,,,,,,224,224,224',
-'224,224,224,224,,,224,,,,,,,224,,,224,224,,224,224,224,224,224,,224',
-'224,224,,224,224,,224,224,,,,,,,,,,,,,,,,,,,,,,224,,,224,,,224,,,224',
-',,,,,224,,,,,,,,224,,,,,224,224,224,224,224,224,,,,224,224,,,,225,225',
-'225,224,225,,224,,225,225,,224,224,225,,225,225,225,225,225,225,225',
-',,,,,225,225,225,225,225,225,225,,,225,,,,,,,225,,,225,225,,225,225',
-'225,225,225,,225,225,225,,225,225,,225,225,,,,,,,,,,,,,,,,,,,,,,225',
-',,225,,,225,,,225,,,,,,225,,,,,,,,225,,,,,225,225,225,225,225,225,,',
-',225,225,,,,226,226,226,225,226,,225,,226,226,,225,225,226,,226,226',
-'226,226,226,226,226,,,,,,226,226,226,226,226,226,226,,,226,,,,,,,226',
-',,226,226,,226,226,226,226,226,,226,226,226,,226,226,,226,226,,,,,,',
-',,,,,,,,,,,,,,,226,,,226,,,226,,,226,,,,,,226,,,,,,,,226,,,,,226,226',
-'226,226,226,226,,,,226,226,,,,227,227,227,226,227,,226,,227,227,,226',
-'226,227,,227,227,227,227,227,227,227,,,,,,227,227,227,227,227,227,227',
-',,227,,,,,,,227,,,227,227,,227,227,227,227,227,,227,227,227,,227,227',
-',227,227,,,,,,,,,,,,,,,,,,,,,,227,,,227,,,227,,,227,,,,,,227,,,,,,,',
-'227,,,,,227,227,227,227,227,227,,,,227,227,,,,228,228,228,227,228,,227',
-',228,228,,227,227,228,,228,228,228,228,228,228,228,,,,,,228,228,228',
-'228,228,228,228,,,228,,,,,,,228,,,228,228,,228,228,228,228,228,,228',
-'228,228,,228,228,,228,228,,,,,,,,,,,,,,,,,,,,,,228,,,228,,,228,,,228',
-',,,,,228,,,,,,,,228,,,,,228,228,228,228,228,228,,,,228,228,,,,229,229',
-'229,228,229,,228,,229,229,,228,228,229,,229,229,229,229,229,229,229',
-',,,,,229,229,229,229,229,229,229,,,229,,,,,,,229,,,229,229,,229,229',
-'229,229,229,,229,229,229,,229,229,,229,229,,,,,,,,,,,,,,,,,,,,,,229',
-',,229,,,229,,,229,,,,,,229,,,,,,,,229,,,,,229,229,229,229,229,229,,',
-',229,229,,,,230,230,230,229,230,,229,,230,230,,229,229,230,,230,230',
-'230,230,230,230,230,,,,,,230,230,230,230,230,230,230,,,230,,,,,,,230',
-',,230,230,,230,230,230,230,230,,230,230,230,,230,230,,230,230,,,,,,',
-',,,,,,,,,,,,,,,230,,,230,,,230,,,230,,,,,,230,,,,,,,,230,,,,,230,230',
-'230,230,230,230,,,,230,230,,,,231,231,231,230,231,,230,,231,231,,230',
-'230,231,,231,231,231,231,231,231,231,,,,,,231,231,231,231,231,231,231',
-',,231,,,,,,,231,,,231,231,,231,231,231,231,231,,231,231,231,,231,231',
-',231,231,,,,,,,,,,,,,,,,,,,,,,231,,,231,,,231,,,231,,,,,,231,,,,,,,',
-'231,,,,,231,231,231,231,231,231,,,,231,231,,,,232,232,232,231,232,,231',
-',232,232,,231,231,232,,232,232,232,232,232,232,232,,,,,,232,232,232',
-'232,232,232,232,,,232,,,,,,,232,,,232,232,,232,232,232,232,232,,232',
-'232,232,,232,232,,232,232,,,,,,,,,,,,,,,,,,,,,,232,,,232,,,232,,,232',
-',,,,,232,,,,,,,,232,,,,,232,232,232,232,232,232,,,,232,232,,,,233,233',
-'233,232,233,,232,,233,233,,232,232,233,,233,233,233,233,233,233,233',
-',,,,,233,233,233,233,233,233,233,,,233,,,,,,,233,,,233,233,,233,233',
-'233,233,233,,233,233,233,,233,233,,233,233,,,,,,,,,,,,,,,,,,,,,,233',
-',,233,,,233,,,233,,,,,,233,,,,,,,,233,,,,,233,233,233,233,233,233,,',
-',233,233,,,,234,234,234,233,234,,233,,234,234,,233,233,234,,234,234',
-'234,234,234,234,234,,,,,,234,234,234,234,234,234,234,,,234,,,,,,,234',
-',,234,234,,234,234,234,234,234,,234,234,234,,234,234,,234,234,,,,,,',
-',,,,,,,,,,,,,,,234,,,234,,,234,,,234,,,,,,234,,,,,,,,234,,,,,234,234',
-'234,234,234,234,,,,234,234,,,,235,235,235,234,235,,234,,235,235,,234',
-'234,235,,235,235,235,235,235,235,235,,,,,,235,235,235,235,235,235,235',
-',,235,,,,,,,235,,,235,235,,235,235,235,235,235,,235,235,235,,235,235',
-',235,235,,,,,,,,,,,,,,,,,,,,,,235,,,235,,,235,,,235,,,,,,235,,,,,,,',
-'235,,,,,235,235,235,235,235,235,,,,235,235,,,,236,236,236,235,236,,235',
-',236,236,,235,235,236,,236,236,236,236,236,236,236,,,,,,236,236,236',
-'236,236,236,236,,,236,,,,,,,236,,,236,236,,236,236,236,236,236,,236',
-'236,236,,236,236,,236,236,,,,,,,,,,,,,,,,,,,,,,236,,,236,,,236,,,236',
-',,,,,236,,,,,,,,236,,,,,236,236,236,236,236,236,,,,236,236,,,,237,237',
-'237,236,237,,236,,237,237,,236,236,237,,237,237,237,237,237,237,237',
-',,,,,237,237,237,237,237,237,237,,,237,,,,,,,237,,,237,237,,237,237',
-'237,237,237,,237,237,237,,237,237,,237,237,,,,,,,,,,,,,,,,,,,,,,237',
-',,237,,,237,,,237,,,,,,237,,,,,,,,237,,,,,237,237,237,237,237,237,,',
-',237,237,,,,238,238,238,237,238,,237,,238,238,,237,237,238,,238,238',
-'238,238,238,238,238,,,,,,238,238,238,238,238,238,238,,,238,,,,,,,238',
-',,238,238,,238,238,238,238,238,,238,238,238,,238,238,,238,238,,,,,,',
-',,,,,,,,,,,,,,,238,,,238,,,238,,,238,,,,,,238,,,,,,,,238,,,,,238,238',
-'238,238,238,238,,,,238,238,,,,239,239,239,238,239,,238,,239,239,,238',
-'238,239,,239,239,239,239,239,239,239,,,,,,239,239,239,239,239,239,239',
-',,239,,,,,,,239,,,239,239,,239,239,239,239,239,,239,239,239,,239,239',
-',239,239,,,,,,,,,,,,,,,,,,,,,,239,,,239,,,239,,,239,,,,,,239,,,,,,,',
-'239,,,,,239,239,239,239,239,239,,,,239,239,,,,240,240,240,239,240,,239',
-',240,240,,239,239,240,,240,240,240,240,240,240,240,,,,,,240,240,240',
-'240,240,240,240,,,240,,,,,,,240,,,240,240,,240,240,240,240,240,,240',
-'240,240,,240,240,,240,240,,,,,,,,,,,,,,,,,,,,,,240,,,240,,,240,,,240',
-',,,,,240,,,,,,,,240,,,,,240,240,240,240,240,240,,,,240,240,,,,241,241',
-'241,240,241,,240,,241,241,,240,240,241,,241,241,241,241,241,241,241',
-',,,,,241,241,241,241,241,241,241,,,241,,,,,,,241,,,241,241,,241,241',
-'241,241,241,,241,241,241,,241,241,,241,241,,,,,,,,,,,,,,,,,,,,,,241',
-',,241,,,241,,,241,,,,,,241,,,,,,,,241,,,,,241,241,241,241,241,241,,',
-',241,241,,,,242,242,242,241,242,,241,,242,242,,241,241,242,,242,242',
-'242,242,242,242,242,,,,,,242,242,242,242,242,242,242,,,242,,,,,,,242',
-',,242,242,,242,242,242,242,242,,242,242,242,,242,242,,242,242,,,,,,',
-',,,,,,,,,,,,,,,242,,,242,,,242,,,242,,,,,,242,,,,,,,,242,,,,,242,242',
-'242,242,242,242,,,,242,242,,,,243,243,243,242,243,,242,,243,243,,242',
-'242,243,,243,243,243,243,243,243,243,,,,,,243,243,243,243,243,243,243',
-',,243,,,,,,,243,,,243,243,,243,243,243,243,243,,243,243,243,,243,243',
-',243,243,,,,,,,,,,,,,,,,,,,,,,243,,,243,,,243,,,243,,,,,,243,,,,,,,',
-'243,,,,,243,243,243,243,243,243,,,,243,243,,,,244,244,244,243,244,,243',
-',244,244,,243,243,244,,244,244,244,244,244,244,244,,,,,,244,244,244',
-'244,244,244,244,,,244,,,,,,,244,,,244,244,,244,244,244,244,244,,244',
-'244,244,,244,244,,244,244,,,,,,,,,,,,,,,,,,,,,,244,,,244,,,244,,,244',
-',,,,,244,,,,,,,,244,,,,,244,244,244,244,244,244,,,,244,244,,,,245,245',
-'245,244,245,,244,,245,245,,244,244,245,,245,245,245,245,245,245,245',
-',,,,,245,245,245,245,245,245,245,,,245,,,,,,,245,,,245,245,,245,245',
-'245,245,245,,245,245,245,,245,245,,245,245,,,,,,,,,,,,,,,,,,,,,,245',
-',,245,,,245,,,245,,,,,,245,,,,,,,,245,,,,,245,245,245,245,245,245,,',
-',245,245,,,,254,254,254,245,254,,245,,254,254,,245,245,254,,254,254',
-'254,254,254,254,254,,,,,,254,254,254,254,254,254,254,,,254,,,,,,,254',
-',,254,254,,254,254,254,254,254,,254,254,254,,254,254,,254,254,,,,,,',
-',,,,,,,,,,,,,,,254,,,254,,,254,,,254,,,,,,254,,,,,,,,254,,,,,254,254',
-'254,254,254,254,,,,254,254,,,,256,256,256,254,256,,254,,256,256,,254',
-'254,256,,256,256,256,256,256,256,256,,,,,,256,256,256,256,256,256,256',
-',,256,,,,,,,256,,,256,256,,256,256,256,256,256,,256,256,256,,256,256',
-',256,256,,,,,,,,,,,,,,,,,,,,,,256,,,256,,,256,,,256,,,,,,256,,,,,,,',
-'256,,,,,256,256,256,256,256,256,,,,256,256,,,,261,261,261,256,261,,256',
-',261,261,,256,256,261,,261,261,261,261,261,261,261,,,,,,261,261,261',
-'261,261,261,261,,,261,,,,,,,261,,,261,261,,261,261,261,261,261,,261',
-'261,261,,261,261,,261,261,,,,,,,,,,,,,,,,,,,,,,261,,,261,,,261,,,261',
-',,,,,261,,,,,,,,261,,,,,261,261,261,261,261,261,,,,261,261,,,,268,268',
-'268,261,268,,261,,268,268,,261,261,268,,268,268,268,268,268,268,268',
-',,,,,268,268,268,268,268,268,268,,,268,,,,,,,268,,,268,268,,268,268',
-'268,268,268,268,268,268,268,,268,268,,268,268,,,,,,,,,,,,,,,,,,,,,,268',
-',,268,,,268,,,268,,268,,268,,268,,,,,,,,268,,,,,268,268,268,268,268',
-'268,,,,268,268,,,,269,269,269,268,269,,268,,269,269,,268,268,269,,269',
-'269,269,269,269,269,269,,,,,,269,269,269,269,269,269,269,,,269,,,,,',
-',269,,,269,269,,269,269,269,269,269,269,269,269,269,,269,269,,269,269',
-',,,,,,,,,,,,,,,,,,,,,269,,,269,,,269,,,269,,269,,269,,269,,,,,,,,269',
-',,,,269,269,269,269,269,269,,,,269,269,,,,277,277,277,269,277,,269,',
-'277,277,,269,269,277,,277,277,277,277,277,277,277,,,,,,277,277,277,277',
-'277,277,277,,,277,,,,,,,277,,,277,277,,277,277,277,277,277,277,277,277',
-'277,,277,277,,277,277,,,,,,,,,,,,,,,,,,,,,,277,,,277,,277,277,,,277',
-',277,,277,,277,,,,,,,,277,,,,,277,277,277,277,277,277,,,,277,277,,,',
-',,,277,,,277,,,,,277,277,281,281,281,281,281,,,,281,281,,,,281,,281',
-'281,281,281,281,281,281,,,,,,281,281,281,281,281,281,281,,,281,,,,,',
-'281,281,,281,281,281,,281,281,281,281,281,,281,281,281,,281,281,,281',
-'281,,,,,,,,,,,,,,,,,,,,,,281,,,281,,,281,,,281,,281,,,,281,,,,,,,,281',
-',,,,281,281,281,281,281,281,,,,281,281,,,,285,285,285,281,285,,281,',
-'285,285,,281,281,285,,285,285,285,285,285,285,285,,,,,,285,285,285,285',
-'285,285,285,,,285,,,,,,,285,,,285,285,,285,285,285,285,285,,285,285',
-'285,,285,285,749,,749,749,749,749,749,,,,,,,,,,749,,,,,,,,285,,,285',
-',,285,,,285,,,,,,749,,,,,,,,749,749,749,749,,285,285,285,285,285,285',
-',,,285,285,,,,285,,,285,,,285,,,,,285,285,286,286,286,286,286,,,749',
-'286,286,,,,286,,286,286,286,286,286,286,286,,,,,,286,286,286,286,286',
-'286,286,,,286,,,,,,286,286,,286,286,286,,286,286,286,286,286,,286,286',
-'286,,286,286,,286,286,,,,,,,,,,,,,,,,,,,,,,286,,,286,,,286,,,286,,286',
-',,,286,,,,,,,,286,,,,,286,286,286,286,286,286,,,,286,286,,,,298,298',
-'298,286,298,,286,,298,298,,286,286,298,,298,298,298,298,298,298,298',
-',,,,,298,298,298,298,298,298,298,,,298,,,,,,,298,,,298,298,,298,298',
-'298,298,298,,298,298,298,,298,298,56,,56,56,56,,56,,,,,,,,,,,,,,,,,',
-'298,,,298,,,298,,,298,,,,,,56,56,,,,,,,56,56,56,56,,298,298,298,298',
-'298,298,,,,298,298,,,,307,307,307,298,307,,298,,307,307,,298,298,307',
-',307,307,307,307,307,307,307,,,,,,307,307,307,307,307,307,307,,,307',
-',,,,,,307,,,307,307,,307,307,307,307,307,,307,307,307,,307,307,,307',
-'307,,,,,,,,,,,,,,,,,,,,,,307,,,307,307,,307,,,307,,,,,,307,,,,,,,,307',
-',,,,307,307,307,307,307,307,,,,307,307,,,,,,,307,,,307,,,,,307,307,309',
-'309,309,309,309,,,,309,309,,,,309,,309,309,309,309,309,309,309,,,,,',
-'309,309,309,309,309,309,309,,,309,,,,,,309,309,,309,309,309,,309,309',
-'309,309,309,,309,309,309,,309,309,,309,309,,,,,,,,,,,,,,,,,,,,,,309',
-',,309,,,309,,,309,,309,,,,309,,,,,,,,309,,,,,309,309,309,309,309,309',
-',,,309,309,,,,349,349,349,309,349,,309,,349,349,,309,309,349,,349,349',
-'349,349,349,349,349,,,,,,349,349,349,349,349,349,349,,,349,,,,,,,349',
-',,349,349,,349,349,349,349,349,,349,349,349,,349,349,,349,349,,,,,,',
-',,,,,,,,,,,,,,,349,,,349,,,349,,,349,,,,,,349,,,,,,,,349,,,,,349,349',
-'349,349,349,349,,,,349,349,,,,350,350,350,349,350,,349,,350,350,,349',
-'349,350,,350,350,350,350,350,350,350,,,,,,350,350,350,350,350,350,350',
-',,350,,,,,,,350,,,350,350,,350,350,350,350,350,,350,350,350,,350,350',
-',350,350,,,,,,,,,,,,,,,,,,,,,,350,,,350,,,350,,,350,,,,,,350,,,,,,,',
-'350,,,,,350,350,350,350,350,350,,,,350,350,,,,369,369,369,350,369,,350',
-',369,369,,350,350,369,,369,369,369,369,369,369,369,,,,,,369,369,369',
-'369,369,369,369,,,369,,,,,,,369,,,369,369,,369,369,369,369,369,,369',
-'369,369,,369,369,322,,322,322,322,,322,,,,,,,,,,,,,,,,,,369,,,369,,',
-'369,,,369,,,,,,322,,322,,,,,,322,322,322,322,,369,369,369,369,369,369',
-',,,369,369,,,,381,381,381,369,381,,369,,381,381,,369,369,381,,381,381',
-'381,381,381,381,381,,,,,,381,381,381,381,381,381,381,,,381,,,,,,,381',
-',,381,381,,381,381,381,381,381,,381,381,381,,381,381,,381,381,,,,,,',
-',,,,,,,,,,,,,,,381,,,381,,,381,,,381,,,,,,381,,,,,,,,381,,,,,381,381',
-'381,381,381,381,,,,381,381,,,,421,421,421,381,421,,381,,421,421,,381',
-'381,421,,421,421,421,421,421,421,421,,,,,,421,421,421,421,421,421,421',
-',,421,,,,,,,421,,,421,421,,421,421,421,421,421,,421,421,421,,421,421',
-',421,421,,,,,,,,,,,,,,,,,,,,,,421,,,421,,,421,,,421,,,,,,421,,,,,,,',
-'421,,,,,421,421,421,421,421,421,,,,421,421,,,,432,432,432,421,432,,421',
-',432,432,,421,421,432,,432,432,432,432,432,432,432,,,,,,432,432,432',
-'432,432,432,432,,,432,,,,,,,432,,,432,432,,432,432,432,432,432,432,432',
-'432,432,,432,432,,432,432,,,,,,,,,,,,,,,,,,,,,,432,,,432,432,,432,,',
-'432,,432,,432,,432,,,,,,,,432,,,,,432,432,432,432,432,432,,,,432,432',
-',,,440,440,440,432,440,,432,,440,440,,432,432,440,,440,440,440,440,440',
-'440,440,,,,,,440,440,440,440,440,440,440,,,440,,,,,,,440,,,440,440,',
-'440,440,440,440,440,440,440,440,440,,440,440,,440,440,,,,,,,,,,,,,,',
-',,,,,,,440,,,440,440,,440,,,440,,440,,440,,440,,,,,,,,440,,,,,440,440',
-'440,440,440,440,,,,440,440,,,,441,441,441,440,441,,440,,441,441,,440',
-'440,441,,441,441,441,441,441,441,441,,,,,,441,441,441,441,441,441,441',
-',,441,,,,,,,441,,,441,441,,441,441,441,441,441,441,441,441,441,,441',
-'441,,441,441,,,,,,,,,,,,,,,,,,,,,,441,,,441,441,,441,,,441,,441,,441',
-',441,,,,,,,,441,,,,,441,441,441,441,441,441,,,,441,441,,,,442,442,442',
-'441,442,,441,,442,442,,441,441,442,,442,442,442,442,442,442,442,,,,',
-',442,442,442,442,442,442,442,,,442,,,,,,,442,,,442,442,,442,442,442',
-'442,442,442,442,442,442,,442,442,,442,442,,,,,,,,,,,,,,,,,,,,,,442,',
-',442,442,,442,,,442,,442,,442,,442,,,,,,,,442,,,,,442,442,442,442,442',
-'442,,,,442,442,,,,451,451,451,442,451,,442,,451,451,,442,442,451,,451',
-'451,451,451,451,451,451,,,,,,451,451,451,451,451,451,451,,,451,,,,,',
-',451,,,451,451,,451,451,451,451,451,451,451,451,451,,451,451,,451,451',
-',,,,,,,,,,,,,,,,,,,,,451,,,451,,,451,,,451,,451,,,,451,,,,,,,,451,,',
-',,451,451,451,451,451,451,,,,451,451,,,,452,452,452,451,452,,451,,452',
-'452,,451,451,452,,452,452,452,452,452,452,452,,,,,,452,452,452,452,452',
-'452,452,,,452,,,,,,,452,,,452,452,,452,452,452,452,452,452,452,452,452',
-',452,452,,452,452,,,,,,,,,,,,,,,,,,,,,,452,,,452,,,452,,,452,,452,,',
-',452,,,,,,,,452,,,,,452,452,452,452,452,452,,,,452,452,,,,454,454,454',
-'452,454,,452,,454,454,,452,452,454,,454,454,454,454,454,454,454,,,,',
-',454,454,454,454,454,454,454,,,454,,,,,,,454,,,454,454,,454,454,454',
-'454,454,,454,454,454,,454,454,,454,454,,,,,,,,,,,,,,,,,,,,,,454,,,454',
-',,454,,,454,,,,,,454,,,,,,,,454,,,,,454,454,454,454,454,454,,,,454,454',
-',,,455,455,455,454,455,,454,,455,455,,454,454,455,,455,455,455,455,455',
-'455,455,,,,,,455,455,455,455,455,455,455,,,455,,,,,,,455,,,455,455,',
-'455,455,455,455,455,,455,455,455,,455,455,,455,455,,,,,,,,,,,,,,,,,',
-',,,,455,,,455,,,455,,,455,,,,,,455,,,,,,,,455,,,,,455,455,455,455,455',
-'455,,,,455,455,,,,456,456,456,455,456,,455,,456,456,,455,455,456,,456',
-'456,456,456,456,456,456,,,,,,456,456,456,456,456,456,456,,,456,,,,,',
-',456,,,456,456,,456,456,456,456,456,,456,456,456,,456,456,,456,456,',
-',,,,,,,,,,,,,,,,,,,,456,,,456,,,456,,,456,,,,,,456,,,,,,,,456,,,,,456',
-'456,456,456,456,456,,,,456,456,,,,487,487,487,456,487,,456,,487,487',
-',456,456,487,,487,487,487,487,487,487,487,,,,,,487,487,487,487,487,487',
-'487,,,487,,,,,,,487,,,487,487,,487,487,487,487,487,487,487,487,487,',
-'487,487,,487,487,,,,,,,,,,,,,,,,,,,,,,487,,,487,,,487,,,487,,487,,487',
-',487,,,,,,,,487,,,,,487,487,487,487,487,487,,,,487,487,,,,489,489,489',
-'487,489,,487,,489,489,,487,487,489,,489,489,489,489,489,489,489,,,,',
-',489,489,489,489,489,489,489,,,489,,,,,,,489,,,489,489,,489,489,489',
-'489,489,489,489,489,489,,489,489,,489,489,,,,,,,,,,,,,,,,,,,,,,489,',
-',489,,,489,,,489,,,,489,,489,,,,,,,,489,,,,,489,489,489,489,489,489',
-',,,489,489,,,,491,491,491,489,491,,489,,491,491,,489,489,491,,491,491',
-'491,491,491,491,491,,,,,,491,491,491,491,491,491,491,,,491,,,,,,,491',
-',,491,491,,491,491,491,491,491,,491,491,491,,491,491,,491,491,,,,,,',
-',,,,,,,,,,,,,,,491,,,491,,,491,,,491,,,,,,491,,,,,,,,491,,,,,491,491',
-'491,491,491,491,,,,491,491,,,,506,506,506,491,506,,491,,506,506,,491',
-'491,506,,506,506,506,506,506,506,506,,,,,,506,506,506,506,506,506,506',
-',,506,,,,,,,506,,,506,506,,506,506,506,506,506,,506,506,506,,506,506',
-',506,506,,,,,,,,,,,,,,,,,,,,,,506,,,506,,506,506,,,506,,,,506,,506,',
-',,,,,,506,,,,,506,506,506,506,506,506,,,,506,506,,,,,,,506,,,506,,,',
-',506,506,512,512,512,512,512,,,,512,512,,,,512,,512,512,512,512,512',
-'512,512,,,,,,512,512,512,512,512,512,512,,,512,,,,,,512,512,,512,512',
-'512,,512,512,512,512,512,,512,512,512,,512,512,,512,512,,,,,,,,,,,,',
-',,,,,,,,,512,,,512,,,512,,,512,,512,,,,512,,,,,,,,512,,,,,512,512,512',
-'512,512,512,,,,512,512,,,,,,512,512,,,512,,,,,512,512,518,518,518,,518',
-',,,518,518,,,,518,,518,518,518,518,518,518,518,,,,,,518,518,518,518',
-'518,518,518,,,518,,,,,,,518,,,518,518,,518,518,518,518,518,,518,518',
-'518,,518,518,559,,559,559,559,,559,,,,,,,,,,,,,,,,,,518,,,518,,,518',
-',,518,,,,,,559,,,,,,,,559,559,559,559,,518,518,518,518,518,518,,,,518',
-'518,,,,520,520,520,518,520,,518,,520,520,,518,518,520,,520,520,520,520',
-'520,520,520,,,,,,520,520,520,520,520,520,520,,,520,,,,,,,520,,,520,520',
-',520,520,520,520,520,520,520,520,520,,520,520,,520,520,,,,,,,,,,,,,',
-',,,,,,,,520,,,520,,,520,,,520,,520,,,,520,,,,,,,,520,,,,,520,520,520',
-'520,520,520,,,,520,520,,,,523,523,523,520,523,,520,,523,523,,520,520',
-'523,,523,523,523,523,523,523,523,,,,,,523,523,523,523,523,523,523,,',
-'523,,,,,,,523,,,523,523,,523,523,523,523,523,523,523,523,523,,523,523',
-',523,523,,,,,,,,,,,,,,,,,,,,,,523,,,523,,,523,,,523,,523,,,,523,,,,',
-',,,523,,,,,523,523,523,523,523,523,,,,523,523,,,,531,531,531,523,531',
-',523,,531,531,,523,523,531,,531,531,531,531,531,531,531,,,,,,531,531',
-'531,531,531,531,531,,,531,,,,,,,531,,,531,531,,531,531,531,531,531,',
-'531,531,531,,531,531,,531,531,,,,,,,,,,,,,,,,,,,,,,531,,,531,,,531,',
-',531,,,,,,531,,,,,,,,531,,,,,531,531,531,531,531,531,,,,531,531,,,,532',
-'532,532,531,532,,531,,532,532,,531,531,532,,532,532,532,532,532,532',
-'532,,,,,,532,532,532,532,532,532,532,,,532,,,,,,,532,,,532,532,,532',
-'532,532,532,532,,532,532,532,,532,532,,532,532,,,,,,,,,,,,,,,,,,,,,',
-'532,,,532,,,532,,,532,,,,,,532,,,,,,,,532,,,,,532,532,532,532,532,532',
-',,,532,532,,,,533,533,533,532,533,,532,,533,533,,532,532,533,,533,533',
-'533,533,533,533,533,,,,,,533,533,533,533,533,533,533,,,533,,,,,,,533',
-',,533,533,,533,533,533,533,533,,533,533,533,,533,533,,533,533,,,,,,',
-',,,,,,,,,,,,,,,533,,,533,,,533,,,533,,,,,,533,,,,,,,,533,,,,,533,533',
-'533,533,533,533,,,,533,533,,,,537,537,537,533,537,,533,,537,537,,533',
-'533,537,,537,537,537,537,537,537,537,,,,,,537,537,537,537,537,537,537',
-',,537,,,,,,,537,,,537,537,,537,537,537,537,537,,537,537,537,,537,537',
-',537,537,,,,,,,,,,,,,,,,,,,,,,537,,,537,,,537,,,537,,,,,,537,,,,,,,',
-'537,,,,,537,537,537,537,537,537,,,,537,537,,,,543,543,543,537,543,,537',
-',543,543,,537,537,543,,543,543,543,543,543,543,543,,,,,,543,543,543',
-'543,543,543,543,,,543,,,,,,,543,,,543,543,,543,543,543,543,543,543,543',
-'543,543,,543,543,,543,543,,,,,,,,,,,,,,,,,,,,,,543,,,543,,,543,,,543',
-',543,,,,543,,,,,,,,543,,,,,543,543,543,543,543,543,,,,543,543,,,,546',
-'546,546,543,546,,543,,546,546,,543,543,546,,546,546,546,546,546,546',
-'546,,,,,,546,546,546,546,546,546,546,,,546,,,,,,,546,,,546,546,,546',
-'546,546,546,546,546,546,546,546,,546,546,,546,546,,,,,,,,,,,,,,,,,,',
-',,,546,,,546,,,546,,,546,,,,,,546,,,,,,,,546,,,,,546,546,546,546,546',
-'546,,,,546,546,,,,,,,546,,,546,,,,,546,546,551,551,551,551,551,,,,551',
-'551,,,,551,,551,551,551,551,551,551,551,,,,,,551,551,551,551,551,551',
-'551,,,551,,,,,,551,551,,551,551,551,,551,551,551,551,551,,551,551,551',
-',551,551,,551,551,,,,,,,,,,,,,,,,,,,,,,551,,,551,,,551,,,551,,551,,',
-',551,,,,,,,,551,,,,,551,551,551,551,551,551,,,,551,551,,,,,,,551,,,551',
-',,,,551,551,552,552,552,552,552,,,,552,552,,,,552,,552,552,552,552,552',
-'552,552,,,,,,552,552,552,552,552,552,552,,,552,,,,,,552,552,,552,552',
-'552,,552,552,552,552,552,,552,552,552,,552,552,,552,552,,,,,,,,,,,,',
-',,,,,,,,,552,,,552,,,552,,,552,,552,,,,552,,,,,,,,552,,,,,552,552,552',
-'552,552,552,,,,552,552,,,,558,558,558,552,558,,552,,558,558,,552,552',
-'558,,558,558,558,558,558,558,558,,,,,,558,558,558,558,558,558,558,,',
-'558,,,,,,,558,,,558,558,,558,558,558,558,558,,558,558,558,,558,558,856',
-',856,856,856,856,856,,,,,,,,,,856,,,,,,,,558,,,558,,,558,,,558,,,,,',
-'856,,,,,,,,856,856,856,856,,558,558,558,558,558,558,,,,558,558,,,,,',
-',558,,,558,,,,,558,558,572,572,572,572,572,,,856,572,572,,,,572,,572',
-'572,572,572,572,572,572,,,,,,572,572,572,572,572,572,572,,,572,,,,,',
-'572,572,,572,572,572,,572,572,572,572,572,,572,572,572,,572,572,,572',
-'572,,,,,,,,,,,,,,,,,,,,,,572,,,572,,,572,,,572,,572,,,,572,,,,,,,,572',
-',,,,572,572,572,572,572,572,,,,572,572,,,,,,,572,,,572,,,,,572,572,576',
-'576,576,576,576,,,,576,576,,,,576,,576,576,576,576,576,576,576,,,,,',
-'576,576,576,576,576,576,576,,,576,,,,,,576,576,,576,576,576,,576,576',
-'576,576,576,,576,576,576,,576,576,,576,576,,,,,,,,,,,,,,,,,,,,,,576',
-',,576,,,576,,,576,,576,,,,576,,,,,,,,576,,,,,576,576,576,576,576,576',
-',,,576,576,,,,,,,576,,,576,,,,,576,576,581,581,581,581,581,,,,581,581',
-',,,581,,581,581,581,581,581,581,581,,,,,,581,581,581,581,581,581,581',
-',,581,,,,,,581,581,,581,581,581,,581,581,581,581,581,,581,581,581,,581',
-'581,,581,581,,,,,,,,,,,,,,,,,,,,,,581,,,581,,,581,,,581,,581,,,,581',
-',,,,,,,581,,,,,581,581,581,581,581,581,,,,581,581,,,,583,583,583,581',
-'583,,581,,583,583,,581,581,583,,583,583,583,583,583,583,583,,,,,,583',
-'583,583,583,583,583,583,,,583,,,,,,,583,,,583,583,,583,583,583,583,583',
-'583,583,583,583,,583,583,,583,583,,,,,,,,,,,,,,,,,,,,,,583,,,583,,,583',
-',,583,,583,,,,583,,,,,,,,583,,,,,583,583,583,583,583,583,,,,583,583',
-',,,586,586,586,583,586,,583,,586,586,,583,583,586,,586,586,586,586,586',
-'586,586,,,,,,586,586,586,586,586,586,586,,,586,,,,,,,586,,,586,586,',
-'586,586,586,586,586,586,586,586,586,,586,586,,586,586,,,,,,,,,,,,,,',
-',,,,,,,586,,,586,,,586,,,586,,586,,,,586,,,,,,,,586,,,,,586,586,586',
-'586,586,586,,,,586,586,,,,592,592,592,586,592,,586,,592,592,,586,586',
-'592,,592,592,592,592,592,592,592,,,,,,592,592,592,592,592,592,592,,',
-'592,,,,,,,592,,,592,592,,592,592,592,592,592,592,592,592,592,,592,592',
-',592,592,,,,,,,,,,,,,,,,,,,,,,592,,,592,,,592,,,592,,592,,,,592,,,,',
-',,,592,,,,,592,592,592,592,592,592,,,,592,592,,,,596,596,596,592,596',
-',592,,596,596,,592,592,596,,596,596,596,596,596,596,596,,,,,,596,596',
-'596,596,596,596,596,,,596,,,,,,,596,,,596,596,,596,596,596,596,596,',
-'596,596,596,,596,596,,596,596,,,,,,,,,,,,,,,,,,,,,,596,,,596,,,596,',
-',596,,,,,,596,,,,,,,,596,,,,,596,596,596,596,596,596,,,,596,596,,,,598',
-'598,598,596,598,,596,,598,598,,596,596,598,,598,598,598,598,598,598',
-'598,,,,,,598,598,598,598,598,598,598,,,598,,,,,,,598,,,598,598,,598',
-'598,598,598,598,,598,598,598,,598,598,,598,598,,,,,,,,,,,,,,,,,,,,,',
-'598,,,598,,,598,,,598,,,,,,598,,,,,,,,598,,,,,598,598,598,598,598,598',
-',,,598,598,,,,625,625,625,598,625,,598,,625,625,,598,598,625,,625,625',
-'625,625,625,625,625,,,,,,625,625,625,625,625,625,625,,,625,,,,,,,625',
-',,625,625,,625,625,625,625,625,,625,625,625,,625,625,,625,625,,,,,,',
-',,,,,,,,,,,,,,,625,,,625,,,625,,,625,,,,,,625,,,,,,,,625,,,,,625,625',
-'625,625,625,625,,,,625,625,,,,627,627,627,625,627,,625,,627,627,,625',
-'625,627,,627,627,627,627,627,627,627,,,,,,627,627,627,627,627,627,627',
-',,627,,,,,,,627,,,627,627,,627,627,627,627,627,,627,627,627,,627,627',
-',627,627,,,,,,,,,,,,,,,,,,,,,,627,,,627,,,627,,,627,,627,,,,627,,,,',
-',,,627,,,,,627,627,627,627,627,627,,,,627,627,,,,630,630,630,627,630',
-',627,,630,630,,627,627,630,,630,630,630,630,630,630,630,,,,,,630,630',
-'630,630,630,630,630,,,630,,,,,,,630,,,630,630,,630,630,630,630,630,',
-'630,630,630,,630,630,,630,630,,,,,,,,,,,,,,,,,,,,,,630,,,630,,,630,',
-',630,,,,,,630,,,,,,,,630,,,,,630,630,630,630,630,630,,,,630,630,,,,631',
-'631,631,630,631,,630,,631,631,,630,630,631,,631,631,631,631,631,631',
-'631,,,,,,631,631,631,631,631,631,631,,,631,,,,,,,631,,,631,631,,631',
-'631,631,631,631,,631,631,631,,631,631,,631,631,,,,,,,,,,,,,,,,,,,,,',
-'631,,,631,,,631,,,631,,,,,,631,,,,,,,,631,,,,,631,631,631,631,631,631',
-',,,631,631,,,,636,636,636,631,636,,631,,636,636,,631,631,636,,636,636',
-'636,636,636,636,636,,,,,,636,636,636,636,636,636,636,,,636,,,,,,,636',
-',,636,636,,636,636,636,636,636,,636,636,636,,636,636,,636,636,,,,,,',
-',,,,,,,,,,,,,,,636,,,636,,,636,,,636,,,,,,636,,,,,,,,636,,,,,636,636',
-'636,636,636,636,,,,636,636,,,,639,639,639,636,639,,636,,639,639,,636',
-'636,639,,639,639,639,639,639,639,639,,,,,,639,639,639,639,639,639,639',
-',,639,,,,,,,639,,,639,639,,639,639,639,639,639,,639,639,639,,639,639',
-',639,639,,,,,,,,,,,,,,,,,,,,,,639,,,639,,,639,,,639,,,,,,639,,,,,,,',
-'639,,,,,639,639,639,639,639,639,,,,639,639,,,,650,650,650,639,650,,639',
-',650,650,,639,639,650,,650,650,650,650,650,650,650,,,,,,650,650,650',
-'650,650,650,650,,,650,,,,,,,650,,,650,650,,650,650,650,650,650,,650',
-'650,650,,650,650,,650,650,,,,,,,,,,,,,,,,,,,,,,650,,,650,,,650,,,650',
-',,,,,650,,,,,,,,650,,,,,650,650,650,650,650,650,,,,650,650,,,,,,,650',
-',,650,,,,,650,650,654,654,654,654,654,,,,654,654,,,,654,,654,654,654',
-'654,654,654,654,,,,,,654,654,654,654,654,654,654,,,654,,,,,,654,654',
-',654,654,654,,654,654,654,654,654,,654,654,654,,654,654,,654,654,,,',
-',,,,,,,,,,,,,,,,,,654,,,654,,,654,,,654,,654,,,,654,,,,,,,,654,,,,,654',
-'654,654,654,654,654,,,,654,654,,,,658,658,658,654,658,,654,,658,658',
-',654,654,658,,658,658,658,658,658,658,658,,,,,,658,658,658,658,658,658',
-'658,,,658,,,,,,,658,,,658,658,,658,658,658,658,658,,658,658,658,,658',
-'658,,658,658,,,,,,,,,,,,,,,,,,,,,,658,,,658,,,658,,,658,,,,,,658,,,',
-',,,,658,,,,,658,658,658,658,658,658,,,,658,658,,,,,,,658,,,658,,,,,658',
-'658,667,667,667,667,667,,,,667,667,,,,667,,667,667,667,667,667,667,667',
-',,,,,667,667,667,667,667,667,667,,,667,,,,,,667,667,,667,667,667,,667',
-'667,667,667,667,,667,667,667,,667,667,,667,667,,,,,,,,,,,,,,,,,,,,,',
-'667,,,667,,,667,,,667,,667,,,,667,,,,,,,,667,,,,,667,667,667,667,667',
-'667,,,,667,667,,,,670,670,670,667,670,,667,,670,670,,667,667,670,,670',
-'670,670,670,670,670,670,,,,,,670,670,670,670,670,670,670,,,670,,,,,',
-',670,,,670,670,,670,670,670,670,670,670,670,670,670,,670,670,,670,670',
-',,,,,,,,,,,,,,,,,,,,,670,,,670,,,670,,,670,,670,,670,,670,,,,,,,,670',
-',,,,670,670,670,670,670,670,,,,670,670,,,,671,671,671,670,671,,670,',
-'671,671,,670,670,671,,671,671,671,671,671,671,671,,,,,,671,671,671,671',
-'671,671,671,,,671,,,,,,,671,,,671,671,,671,671,671,671,671,671,671,671',
-'671,,671,671,,671,671,,,,,,,,,,,,,,,,,,,,,,671,,,671,,,671,,,671,,,',
-'671,,671,,,,,,,,671,,,,,671,671,671,671,671,671,,,,671,671,,,,,,,671',
-',,671,,,,,671,671,677,677,677,677,677,,,,677,677,,,,677,,677,677,677',
-'677,677,677,677,,,,,,677,677,677,677,677,677,677,,,677,,,,,,677,677',
-',677,677,677,,677,677,677,677,677,,677,677,677,,677,677,,677,677,,,',
-',,,,,,,,,,,,,,,,,,677,,,677,,,677,,,677,,677,,,,677,,,,,,,,677,,,,,677',
-'677,677,677,677,677,,,,677,677,,,,,,,677,,,677,,,,,677,677,678,678,678',
-'678,678,,,,678,678,,,,678,,678,678,678,678,678,678,678,,,,,,678,678',
-'678,678,678,678,678,,,678,,,,,,678,678,,678,678,678,,678,678,678,678',
-'678,,678,678,678,,678,678,,678,678,,,,,,,,,,,,,,,,,,,,,,678,,,678,,',
-'678,,,678,,678,,,,678,,,,,,,,678,,,,,678,678,678,678,678,678,,,,678',
-'678,,,,682,682,682,678,682,,678,,682,682,,678,678,682,,682,682,682,682',
-'682,682,682,,,,,,682,682,682,682,682,682,682,,,682,,,,,,,682,,,682,682',
-',682,682,682,682,682,,682,682,682,,682,682,,,,,,,,,,,,,,,,,,,,,,,,,682',
-',,682,,,682,,,682,,,,,,,,,,,,,,,,,,,682,682,682,682,682,682,,,,682,682',
-',,,694,694,694,682,694,,682,,694,694,,682,682,694,,694,694,694,694,694',
-'694,694,,,,,,694,694,694,694,694,694,694,,,694,,,,,,,694,,,694,694,',
-'694,694,694,694,694,,694,694,694,,694,694,,,,,,,,,,,,,,,,,,,,,,,,,694',
-',,694,,,694,,,694,,,,,,,,,,,,,,,,,,,694,694,694,694,694,694,,,,694,694',
-',,,700,700,700,694,700,,694,,700,700,,694,694,700,,700,700,700,700,700',
-'700,700,,,,,,700,700,700,700,700,700,700,,,700,,,,,,,700,,,700,700,',
-'700,700,700,700,700,,700,700,700,,700,700,,700,700,,,,,,,,,,,,,,,,,',
-',,,,700,,,700,,,700,,,700,,700,,,,700,,,,,,,,700,,,,,700,700,700,700',
-'700,700,,,,700,700,,,,731,731,731,700,731,,700,,731,731,,700,700,731',
-',731,731,731,731,731,731,731,,,,,,731,731,731,731,731,731,731,,,731',
-',,,,,,731,,,731,731,,731,731,731,731,731,,731,731,731,,731,731,,731',
-'731,,,,,,,,,,,,,,,,,,,,,,731,,,731,,,731,,,731,,731,,,,731,,,,,,,,731',
-',,,,731,731,731,731,731,731,,,,731,731,,,,738,738,738,731,738,,731,',
-'738,738,,731,731,738,,738,738,738,738,738,738,738,,,,,,738,738,738,738',
-'738,738,738,,,738,,,,,,,738,,,738,738,,738,738,738,738,738,,738,738',
-'738,,738,738,,738,738,,,,,,,,,,,,,,,,,,,,,,738,,,738,,,738,,,738,,,',
-',,738,,,,,,,,738,,,,,738,738,738,738,738,738,,,,738,738,,,,,,,738,,',
-'738,,,,,738,738,743,743,743,743,743,,,,743,743,,,,743,,743,743,743,743',
-'743,743,743,,,,,,743,743,743,743,743,743,743,,,743,,,,,,743,743,,743',
-'743,743,,743,743,743,743,743,,743,743,743,,743,743,,743,743,,,,,,,,',
-',,,,,,,,,,,,,743,,,743,,,743,,,743,,743,,,,743,,,,,,,,743,,,,,743,743',
-'743,743,743,743,,,,743,743,,,,,,,743,,,743,,,,,743,743,747,747,747,747',
-'747,,,,747,747,,,,747,,747,747,747,747,747,747,747,,,,,,747,747,747',
-'747,747,747,747,,,747,,,,,,747,747,,747,747,747,,747,747,747,747,747',
-',747,747,747,,747,747,,747,747,,,,,,,,,,,,,,,,,,,,,,747,,,747,,,747',
-',,747,,747,,,,747,,,,,,,,747,,,,,747,747,747,747,747,747,,,,747,747',
-',,,,,,747,,,747,,,,,747,747,748,748,748,748,748,,,,748,748,,,,748,,748',
-'748,748,748,748,748,748,,,,,,748,748,748,748,748,748,748,,,748,,,,,',
-'748,748,,748,748,748,,748,748,748,748,748,,748,748,748,,748,748,,748',
-'748,,,,,,,,,,,,,,,,,,,,,,748,,,748,,,748,,,748,,748,,,,748,,,,,,,,748',
-',,,,748,748,748,748,748,748,,,,748,748,,,,755,755,755,748,755,,748,',
-'755,755,,748,748,755,,755,755,755,755,755,755,755,,,,,,755,755,755,755',
-'755,755,755,,,755,,,,,,,755,,,755,755,,755,755,755,755,755,,755,755',
-'755,,755,755,,755,755,,,,,,,,,,,,,,,,,,,,,,755,,,755,,,755,,,755,,,',
-',,755,,,,,,,,755,,,,,755,755,755,755,755,755,,,,755,755,,,,,,,755,,',
-'755,,,,,755,755,769,769,769,769,769,,,,769,769,,,,769,,769,769,769,769',
-'769,769,769,,,,,,769,769,769,769,769,769,769,,,769,,,,,,769,769,,769',
-'769,769,,769,769,769,769,769,,769,769,769,,769,769,,769,769,,,,,,,,',
-',,,,,,,,,,,,,769,,,769,,,769,,,769,,769,,,,769,,,,,,,,769,,,,,769,769',
-'769,769,769,769,,,,769,769,,,,775,775,775,769,775,,769,,775,775,,769',
-'769,775,,775,775,775,775,775,775,775,,,,,,775,775,775,775,775,775,775',
-',,775,,,,,,,775,,,775,775,,775,775,775,775,775,,775,775,775,,775,775',
-',775,775,,,,,,,,,,,,,,,,,,,,,,775,,,775,,,775,,,775,,,,,,775,,,,,,,',
-'775,,,,,775,775,775,775,775,775,,,,775,775,,,,776,776,776,775,776,,775',
-',776,776,,775,775,776,,776,776,776,776,776,776,776,,,,,,776,776,776',
-'776,776,776,776,,,776,,,,,,,776,,,776,776,,776,776,776,776,776,,776',
-'776,776,,776,776,,776,776,,,,,,,,,,,,,,,,,,,,,,776,,,776,,,776,,,776',
-',,,,,776,,,,,,,,776,,,,,776,776,776,776,776,776,,,,776,776,,,,777,777',
-'777,776,777,,776,,777,777,,776,776,777,,777,777,777,777,777,777,777',
-',,,,,777,777,777,777,777,777,777,,,777,,,,,,,777,,,777,777,,777,777',
-'777,777,777,,777,777,777,,777,777,,777,777,,,,,,,,,,,,,,,,,,,,,,777',
-',,777,,,777,,,777,,,,,,777,,,,,,,,777,,,,,777,777,777,777,777,777,,',
-',777,777,,,,788,788,788,777,788,,777,,788,788,,777,777,788,,788,788',
-'788,788,788,788,788,,,,,,788,788,788,788,788,788,788,,,788,,,,,,,788',
-',,788,788,,788,788,788,788,788,,788,788,788,,788,788,,788,788,,,,,,',
-',,,,,,,,,,,,,,,788,,,788,,,788,,,788,,,,,,788,,,,,,,,788,,,,,788,788',
-'788,788,788,788,,,,788,788,,,,789,789,789,788,789,,788,,789,789,,788',
-'788,789,,789,789,789,789,789,789,789,,,,,,789,789,789,789,789,789,789',
-',,789,,,,,,,789,,,789,789,,789,789,789,789,789,,789,789,789,,789,789',
-',789,789,,,,,,,,,,,,,,,,,,,,,,789,,,789,,,789,,,789,,,,,,789,,,,,,,',
-'789,,,,,789,789,789,789,789,789,,,,789,789,,,,790,790,790,789,790,,789',
-',790,790,,789,789,790,,790,790,790,790,790,790,790,,,,,,790,790,790',
-'790,790,790,790,,,790,,,,,,,790,,,790,790,,790,790,790,790,790,,790',
-'790,790,,790,790,,790,790,,,,,,,,,,,,,,,,,,,,,,790,,,790,,,790,,,790',
-',,,,,790,,,,,,,,790,,,,,790,790,790,790,790,790,,,,790,790,,,,802,802',
-'802,790,802,,790,,802,802,,790,790,802,,802,802,802,802,802,802,802',
-',,,,,802,802,802,802,802,802,802,,,802,,,,,,,802,,,802,802,,802,802',
-'802,802,802,,802,802,802,,802,802,,802,802,,,,,,,,,,,,,,,,,,,,,,802',
-',,802,,,802,,,802,,802,,,,802,,,,,,,,802,,,,,802,802,802,802,802,802',
-',,,802,802,,,,,,,802,,,802,,,,,802,802,813,813,813,813,813,,,,813,813',
-',,,813,,813,813,813,813,813,813,813,,,,,,813,813,813,813,813,813,813',
-',,813,,,,,,813,813,,813,813,813,,813,813,813,813,813,,813,813,813,,813',
-'813,,813,813,,,,,,,,,,,,,,,,,,,,,,813,,,813,,,813,,,813,,813,,,,813',
-',,,,,,,813,,,,,813,813,813,813,813,813,,,,813,813,,,,832,832,832,813',
-'832,,813,,832,832,,813,813,832,,832,832,832,832,832,832,832,,,,,,832',
-'832,832,832,832,832,832,,,832,,,,,,,832,,,832,832,,832,832,832,832,832',
-',832,832,832,,832,832,,832,832,,,,,,,,,,,,,,,,,,,,,,832,,,832,,,832',
-',,832,,,,,,832,,,,,,,,832,,,,,832,832,832,832,832,832,,,,832,832,,,',
-',,,832,,,832,,,,,832,832,834,834,834,834,834,,,,834,834,,,,834,,834',
-'834,834,834,834,834,834,,,,,,834,834,834,834,834,834,834,,,834,,,,,',
-'834,834,,834,834,834,,834,834,834,834,834,,834,834,834,,834,834,,834',
-'834,,,,,,,,,,,,,,,,,,,,,,834,,,834,,,834,,,834,,834,,,,834,,,,,,,,834',
-',,,,834,834,834,834,834,834,,,,834,834,,,,,,,834,,,834,,,,,834,834,835',
-'835,835,835,835,,,,835,835,,,,835,,835,835,835,835,835,835,835,,,,,',
-'835,835,835,835,835,835,835,,,835,,,,,,835,835,,835,835,835,,835,835',
-'835,835,835,,835,835,835,,835,835,,835,835,,,,,,,,,,,,,,,,,,,,,,835',
-',,835,,,835,,,835,,835,,,,835,,,,,,,,835,,,,,835,835,835,835,835,835',
-',,,835,835,,,,862,862,862,835,862,,835,,862,862,,835,835,862,,862,862',
-'862,862,862,862,862,,,,,,862,862,862,862,862,862,862,,,862,,,,,,,862',
-',,862,862,,862,862,862,862,862,,862,862,862,,862,862,,862,862,,,,,,',
-',,,,,,,,,,,,,,,862,,,862,,,862,,,862,,,,,,862,,,,,,,,862,,,,,862,862',
-'862,862,862,862,,,,862,862,,,,876,876,876,862,876,,862,,876,876,,862',
-'862,876,,876,876,876,876,876,876,876,,,,,,876,876,876,876,876,876,876',
-',,876,,,,,,,876,,,876,876,,876,876,876,876,876,,876,876,876,,876,876',
-',876,876,,,,,,,,,,,,,,,,,,,,,,876,,,876,,,876,,,876,,,,,,876,,,,,,,',
-'876,,,,,876,876,876,876,876,876,,,,876,876,,,,877,877,877,876,877,,876',
-',877,877,,876,876,877,,877,877,877,877,877,877,877,,,,,,877,877,877',
-'877,877,877,877,,,877,,,,,,,877,,,877,877,,877,877,877,877,877,,877',
-'877,877,,877,877,,877,877,,,,,,,,,,,,,,,,,,,,,,877,,,877,,,877,,,877',
-',,,,,877,,,,,,,,877,,,,,877,877,877,877,877,877,,,,877,877,,,,881,881',
-'881,877,881,,877,,881,881,,877,877,881,,881,881,881,881,881,881,881',
-',,,,,881,881,881,881,881,881,881,,,881,,,,,,,881,,,881,881,,881,881',
-'881,881,881,881,881,881,881,,881,881,,881,881,,,,,,,,,,,,,,,,,,,,,,881',
-',,881,,,881,,,881,,,,881,,881,,,,,,,,881,,,,,881,881,881,881,881,881',
-',,,881,881,,,,,,,881,,,881,,,,,881,881,886,886,886,886,886,,,,886,886',
-',,,886,,886,886,886,886,886,886,886,,,,,,886,886,886,886,886,886,886',
-',,886,,,,,,886,886,,886,886,886,,886,886,886,886,886,,886,886,886,,886',
-'886,,886,886,,,,,,,,,,,,,,,,,,,,,,886,,,886,,,886,,,886,,886,,,,886',
-',,,,,,,886,,,,,886,886,886,886,886,886,,,,886,886,,,,890,890,890,886',
-'890,,886,,890,890,,886,886,890,,890,890,890,890,890,890,890,,,,,,890',
-'890,890,890,890,890,890,,,890,,,,,,,890,,,890,890,,890,890,890,890,890',
-',890,890,890,,890,890,,,,,,,,,,,,,,,,,,,,,,,,,890,,,890,,,890,,,890',
-',,,,,,,,,,,,,,,,,,890,890,890,890,890,890,,,,890,890,,,,900,900,900',
-'890,900,,890,,900,900,,890,890,900,,900,900,900,900,900,900,900,,,,',
-',900,900,900,900,900,900,900,,,900,,,,,,,900,,,900,900,,900,900,900',
-'900,900,,900,900,900,,900,900,,900,900,,,,,,,,,,,,,,,,,,,,,,900,,,900',
-',,900,,,900,,900,,,,900,,,,,,,,900,,,,,900,900,900,900,900,900,,,,900',
-'900,,,,,,,900,,,900,,,,,900,900,901,901,901,901,901,,,,901,901,,,,901',
-',901,901,901,901,901,901,901,,,,,,901,901,901,901,901,901,901,,,901',
-',,,,,901,901,,901,901,901,,901,901,901,901,901,,901,901,901,,901,901',
-',901,901,,,,,,,,,,,,,,,,,,,,,,901,,,901,,,901,,,901,,901,,,,901,,,,',
-',,,901,,,,,901,901,901,901,901,901,,,,901,901,,,,,,,901,,,901,,,,,901',
-'901,904,904,904,904,904,,,,904,904,,,,904,,904,904,904,904,904,904,904',
-',,,,,904,904,904,904,904,904,904,,,904,,,,,,904,904,,904,904,904,,904',
-'904,904,904,904,,904,904,904,,904,904,,904,904,,,,,,,,,,,,,,,,,,,,,',
-'904,,,904,,,904,,,904,,904,,,,904,,,,,,,,904,,,,,904,904,904,904,904',
-'904,,,,904,904,,,,921,921,921,904,921,,904,,921,921,,904,904,921,,921',
-'921,921,921,921,921,921,,,,,,921,921,921,921,921,921,921,,,921,,,,,',
-',921,,,921,921,,921,921,921,921,921,,921,921,921,,921,921,,921,921,',
-',,,,,,,,,,,,,,,,,,,,921,,,921,,,921,,,921,,921,,921,,921,,,,,,,,921',
-',,,,921,921,921,921,921,921,,,,921,921,,,,,,,921,,,921,,,,,921,921,923',
-'923,923,923,923,,,,923,923,,,,923,,923,923,923,923,923,923,923,,,,,',
-'923,923,923,923,923,923,923,,,923,,,,,,923,923,,923,923,923,,923,923',
-'923,923,923,,923,923,923,,923,923,,923,923,,,,,,,,,,,,,,,,,,,,,,923',
-',,923,,,923,,,923,,923,,,,923,,,,,,,,923,,,,,923,923,923,923,923,923',
-',,,923,923,,,,,,,923,,,923,,,,,923,923,930,930,930,930,930,,,,930,930',
-',,,930,,930,930,930,930,930,930,930,,,,,,930,930,930,930,930,930,930',
-',,930,,,,,,930,930,,930,930,930,,930,930,930,930,930,,930,930,930,,930',
-'930,,930,930,,,,,,,,,,,,,,,,,,,,,,930,,,930,,,930,,,930,,930,,,,930',
-',,,,,,,930,,,,,930,930,930,930,930,930,,,,930,930,,,,,,,930,,,930,,',
-',,930,930,935,935,935,935,935,,,,935,935,,,,935,,935,935,935,935,935',
-'935,935,,,,,,935,935,935,935,935,935,935,,,935,,,,,,935,935,,935,935',
-'935,,935,935,935,935,935,,935,935,935,,935,935,,935,935,,,,,,,,,,,,',
-',,,,,,,,,935,,,935,,,935,,,935,,935,,,,935,,,,,,,,935,,,,,935,935,935',
-'935,935,935,,,,935,935,,,,,,,935,,,935,,,,,935,935,943,943,943,943,943',
-',,,943,943,,,,943,,943,943,943,943,943,943,943,,,,,,943,943,943,943',
-'943,943,943,,,943,,,,,,943,943,,943,943,943,,943,943,943,943,943,,943',
-'943,943,,943,943,,943,943,,,,,,,,,,,,,,,,,,,,,,943,,,943,,,943,,,943',
-',943,,,,943,,,,,,,,943,,,,,943,943,943,943,943,943,,,,943,943,,,,945',
-'945,945,943,945,,943,,945,945,,943,943,945,,945,945,945,945,945,945',
-'945,,,,,,945,945,945,945,945,945,945,,,945,,,,,,,945,,,945,945,,945',
-'945,945,945,945,945,945,945,945,,945,945,,945,945,,,,,,,,,,,,,,,,,,',
-',,,945,,,945,,,945,,,945,,945,,,,945,,,,,,,,945,,,,436,945,945,945,945',
-'945,945,436,436,436,945,945,,436,436,,436,,945,,,945,,,,436,945,945',
-',,,,,,,,436,436,,436,436,436,436,436,,,,,,,,,,,,,,,,,,,,,,,,436,436',
-'436,436,436,436,436,436,436,436,436,436,436,436,436,438,,436,436,436',
-',436,438,438,438,436,,,438,438,,438,436,,436,,436,436,436,436,436,436',
-'436,,436,436,436,,,,,438,438,,438,438,438,438,438,436,436,,436,,436',
-',,436,,436,,436,,,,,,,,,,,438,438,438,438,438,438,438,438,438,438,438',
-'438,438,438,438,,,438,438,438,,438,,,,438,,,,,,,438,,438,,438,438,438',
-'438,438,438,438,,438,,438,,,,,,,,,,,,,438,438,,438,,438,644,,438,,438',
-',438,644,644,644,,,644,644,644,,644,,,,,,,,,644,644,644,,,,,,,,,644',
-'644,,644,644,644,644,644,,,,,,,,,,,,,,,,,,,,,,,,644,644,644,644,644',
-'644,644,644,644,644,644,644,644,644,644,,,644,644,644,,644,644,,,644',
-',,644,,644,,644,,644,,644,644,644,644,644,644,644,,644,644,644,,,,,',
-',,,,,,,644,644,644,644,,644,645,,644,,644,,644,645,645,645,,,645,645',
-'645,,645,,,,,,,,,,645,645,,,,,,,,,645,645,,645,645,645,645,645,,,,,',
-',,,,,,,,,,,,,,,,,,645,645,645,645,645,645,645,645,645,645,645,645,645',
-'645,645,,,645,645,645,,645,645,,,645,,,645,,645,,645,,645,,645,645,645',
-'645,645,645,645,,645,,645,,,,,,,,,,,,,645,645,645,645,,645,28,,645,',
-'645,,645,28,28,28,,,28,28,28,,28,,,,,,,,,,28,28,,,,,,,,,28,28,,28,28',
-'28,28,28,,,,,,,,,,,,,,,,,,,,,,,,28,28,28,28,28,28,28,28,28,28,28,28',
-'28,28,28,,,28,28,28,,,28,,28,28,,,28,,28,,28,,28,,28,28,28,28,28,28',
-'28,,28,,28,,,,,,,,,,,,,28,28,28,28,50,28,,,28,,28,50,50,50,,,50,50,50',
-',50,,,,,,,,,,50,50,50,,,,,,,,50,50,,50,50,50,50,50,,,,,,,,,,,,,,,,,',
-',,,,,,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,,,50,50,50,,,50,',
-',50,,,50,,50,,50,,50,,50,50,50,50,50,50,50,,50,,50,,,,,,,,,,,,,50,50',
-'50,50,494,50,,50,50,,50,494,494,494,,,494,494,494,,494,,,,,,,,,,494',
-',,,,,,,,,494,494,,494,494,494,494,494,,,,,,,,,,,,,,495,,,,,,,495,495',
-'495,,,495,495,495,,495,,,,,494,494,,,,495,,,494,,,,,494,494,495,495',
-',495,495,495,495,495,,,,,918,,918,918,918,918,918,,494,,,,,,,,918,,',
-',496,494,,494,,,494,496,496,496,495,495,496,496,496,,496,,495,918,918',
-',,495,495,,496,918,918,918,918,,,,,,496,496,,496,496,496,496,496,,495',
-',,,,,202,202,,,202,,,495,,495,,,495,202,202,918,202,202,202,202,202',
-'202,202,,,202,202,496,496,,,202,202,202,202,496,,,,,496,496,,,,,,202',
-'202,,202,202,202,202,202,202,202,202,202,202,202,,496,202,,,,,,,,,,',
-',496,,496,,,496,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,,,,7',
-'7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,,7,7,7,,7,,,,,,,,,7,7,,7,7,7',
-'7,7,7,7,,,7,7,,,,,7,7,7,7,,,,,,,,,,,,,7,7,,7,7,7,7,7,7,7,7,7,7,7,,,7',
-'7,,,,,,,,,,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,,,,8,8',
-'8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,,8,8,,,8,,,,,,,,,8,8,,8,8,8,8',
-'8,8,8,,,8,8,,,,,8,8,8,8,,,,,,,,,,,,,8,8,,8,8,8,8,8,8,8,8,8,8,8,,,8,8',
-',,,,,,,,,8,411,411,411,411,411,411,411,411,411,411,411,411,411,411,411',
-'411,411,411,411,411,411,411,411,411,,,,411,411,411,411,411,411,411,411',
-'411,411,411,411,411,411,411,411,411,411,411,411,411,,411,411,,,411,',
-',,,,,,,411,411,,411,411,411,411,411,411,411,,,411,411,,,,,411,411,411',
-'411,,,,,,,,,,,,,411,411,,411,411,411,411,411,411,411,411,411,411,411',
-',,411,411,,,,,,,,,,411,415,415,415,415,415,415,415,415,415,415,415,415',
-'415,415,415,415,415,415,415,415,415,415,415,415,,,,415,415,415,415,415',
-'415,415,415,415,415,415,415,415,415,415,415,415,415,415,415,415,,415',
-'415,,,415,,,,,,,,,415,415,,415,415,415,415,415,415,415,,,415,415,,,',
-',415,415,415,415,,,,,,,,,,,,,415,415,,415,415,415,415,415,415,415,415',
-'415,415,415,,,415,415,,,,,,,,,,415,65,65,65,65,65,65,65,65,65,65,65',
-'65,65,65,65,65,65,65,65,65,65,65,65,65,,,,65,65,65,65,65,65,65,65,65',
-'65,65,65,65,65,65,65,65,65,65,65,65,,65,65,65,65,65,,65,,,,,,,65,65',
-',65,65,65,65,65,65,65,,,65,65,,,,,65,65,65,65,,,,,,65,,,,,,,65,65,,65',
-'65,65,65,65,65,65,65,65,65,65,,,65,79,79,79,79,79,79,79,79,79,79,79',
-'79,79,79,79,79,79,79,79,79,79,79,79,79,,,,79,79,79,79,79,79,79,79,79',
-'79,79,79,79,79,79,79,79,79,79,79,79,,79,79,79,79,79,,79,,,,,,,79,79',
-',79,79,79,79,79,79,79,,,79,79,,,,,79,79,79,79,,,,,,,,,,,,,79,79,,79',
-'79,79,79,79,79,79,79,79,79,79,,,79,192,192,192,192,192,192,192,192,192',
-'192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,,,,192,192',
-'192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192',
-'192,192,,192,192,192,192,192,,192,,,,,,,192,192,,192,192,192,192,192',
-'192,192,,,192,192,,,,,192,192,192,192,,,,,,,,,,,,,192,192,,192,192,192',
-'192,192,192,192,192,192,192,192,,,192,766,766,766,766,766,766,766,766',
-'766,766,766,766,766,766,766,766,766,766,766,766,766,766,766,766,,,,766',
-'766,766,766,766,766,766,766,766,766,766,766,766,766,766,766,766,766',
-'766,766,766,,766,766,,,766,,,,,,,,,766,766,,766,766,766,766,766,766',
-'766,,,766,766,,,,,766,766,766,766,,,,,,,,,,,,,766,766,,766,766,766,766',
-'766,766,766,766,766,766,766,201,201,766,,201,,,,,,,,,201,201,,201,201',
-'201,201,201,201,201,,,201,201,,,,,201,201,201,201,,,,,,201,,,,,,,201',
-'201,,201,201,201,201,201,201,201,201,201,201,201,203,203,201,,203,,',
-',,,,,,203,203,,203,203,203,203,203,203,203,,,203,203,,,,,203,203,203',
-'203,,,,,,,,,,,,,203,203,,203,203,203,203,203,203,203,203,203,203,203',
-'264,264,203,,264,,,,,,,,,264,264,,264,264,264,264,264,264,264,,,264',
-'264,,,,,264,264,264,264,,,,,,,,,,,,,264,264,,264,264,264,264,264,264',
-'264,264,264,264,264,265,265,264,,265,,,,,,,,,265,265,,265,265,265,265',
-'265,265,265,,,265,265,,,,,265,265,265,265,,,,,,,,,,,,,265,265,,265,265',
-'265,265,265,265,265,265,265,265,265,266,266,265,,266,,,,,,,,,266,266',
-',266,266,266,266,266,266,266,,,266,266,,,,,266,266,266,266,,,,,,,,,',
-',,,266,266,,266,266,266,266,266,266,266,266,266,266,266,449,449,266',
-',449,,,,,,,,,449,449,,449,449,449,449,449,449,449,,,449,449,,,,,449',
-'449,449,449,,,,,,449,,,,,,,449,449,,449,449,449,449,449,449,449,449',
-'449,449,449,450,450,449,,450,,,,,,,,,450,450,,450,450,450,450,450,450',
-'450,,,450,450,,,,,450,450,450,450,,,,,,,,,,,,,450,450,,450,450,450,450',
-'450,450,450,450,450,450,450,521,521,450,,521,,,,,,,,,521,521,,521,521',
-'521,521,521,521,521,,,521,521,,,,,521,521,521,521,,,,,,521,,,,,,,521',
-'521,,521,521,521,521,521,521,521,521,521,521,521,522,522,521,,522,,',
-',,,,,,522,522,,522,522,522,522,522,522,522,,,522,522,,,,,522,522,522',
-'522,,,,,,,,,,,,,522,522,,522,522,522,522,522,522,522,522,522,522,522',
-'524,524,522,,524,,,,,,,,,524,524,,524,524,524,524,524,524,524,,,524',
-'524,,,,,524,524,524,524,,,,,,,,,,,,,524,524,,524,524,524,524,524,524',
-'524,524,524,524,524,534,534,524,,534,,,,,,,,,534,534,,534,534,534,534',
-'534,534,534,,,534,534,,,,,534,534,534,534,,,,,,534,,,,,,,534,534,,534',
-'534,534,534,534,534,534,534,534,534,534,535,535,534,,535,,,,,,,,,535',
-'535,,535,535,535,535,535,535,535,,,535,535,,,,,535,535,535,535,,,,,',
-',,,,,,,535,535,,535,535,535,535,535,535,535,535,535,535,535,584,584',
-'535,,584,,,,,,,,,584,584,,584,584,584,584,584,584,584,,,584,584,,,,',
-'584,584,584,584,,,,,,584,,,,,,,584,584,,584,584,584,584,584,584,584',
-'584,584,584,584,585,585,584,,585,,,,,,,,,585,585,,585,585,585,585,585',
-'585,585,,,585,585,,,,,585,585,585,585,,,,,,,,,,,,,585,585,,585,585,585',
-'585,585,585,585,585,585,585,585,591,591,585,,591,,,,,,,,,591,591,,591',
-'591,591,591,591,591,591,,,591,591,,,,,591,591,591,591,,,,,,,,,,,,,591',
-'591,,591,591,591,591,591,591,591,591,591,591,591,593,593,591,,593,,',
-',,,,,,593,593,,593,593,593,593,593,593,593,,,593,593,,,,,593,593,593',
-'593,,,,,,593,,,,,,,593,593,,593,593,593,593,593,593,593,593,593,593',
-'593,822,822,593,,822,,,,,,,,,822,822,,822,822,822,822,822,822,822,,',
-'822,822,,,,,822,822,822,822,,,,,,,,,,,,,822,822,,822,822,822,822,822',
-'822,822,822,822,822,822,946,946,822,,946,,,,,,,,,946,946,,946,946,946',
-'946,946,946,946,,,946,946,,,,,946,946,946,946,,,,,,946,,,,,,,946,946',
-',946,946,946,946,946,946,946,946,946,946,946,947,947,946,,947,,,,,,',
-',,947,947,,947,947,947,947,947,947,947,,,947,947,,,,,947,947,947,947',
-',,,,,,,,,,,,947,947,,947,947,947,947,947,947,947,947,947,947,947,,,947' ]
- racc_action_check = arr = ::Array.new(25031, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-racc_action_pointer = [
- -2, 34, nil, 234, nil, 618, -19, 22922, 23046, -5,
- -1, 15, 117, 414, 291, 243, nil, 125, 252, 900,
- 186, nil, 379, 506, 633, 381, 13, 760, 22407, nil,
- 900, 1027, 1154, nil, 108, 541, 237, 261, 1294, 1421,
- 1548, 176, 467, nil, nil, nil, nil, nil, nil, nil,
- 22537, nil, 1675, 1802, 1929, 29, 9932, 2056, 2183, nil,
- nil, 2310, 2450, 2577, nil, 23418, nil, nil, nil, nil,
- nil, -102, nil, nil, nil, nil, nil, 178, 220, 23531,
- nil, nil, nil, 429, 2704, nil, nil, 2831, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 359, nil, 2971,
- nil, nil, nil, 3111, 3238, 3365, 3492, 3632, 3772, nil,
- 663, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 23644, 234, nil, 3912, 4039, 4166, 4293, 4420,
- 4547, 23818, 22792, 23879, 4674, 4801, 4928, nil, 541, -49,
- 319, 61, 240, 328, 5068, 5195, nil, nil, 5322, 363,
- 5449, 5576, 5703, 5830, 5957, 6084, 6211, 6338, 6465, 6592,
- 6719, 6846, 6973, 7100, 7227, 7354, 7481, 7608, 7735, 7862,
- 7989, 8116, 8243, 8370, 8497, 8624, nil, nil, nil, 1294,
- nil, 329, 339, nil, 8751, 389, 8878, nil, nil, nil,
- nil, 9005, nil, nil, 23940, 24001, 24062, 383, 9132, 9259,
- nil, nil, nil, nil, nil, nil, nil, 9386, 249, 745,
- 390, 9526, 409, 438, 405, 9653, 9793, 73, 594, 497,
- 196, 465, 440, 207, nil, 478, 471, nil, 9920, nil,
- 586, 505, 531, 633, nil, 533, nil, 10047, nil, 10187,
- 35, nil, 502, -103, 135, 537, 521, 262, 556, nil,
- nil, -22, 10580, nil, nil, nil, 520, 545, nil, 564,
- 567, nil, nil, nil, nil, nil, nil, nil, 3097, nil,
- nil, nil, 648, nil, nil, 674, 806, -7, 36, 10314,
- 10441, 324, 63, 596, -17, 668, 690, 37, 731, nil,
- nil, 506, 704, nil, 721, nil, 65, nil, nil, 10568,
- -12, 122, 360, 384, 385, 436, 509, 590, nil, 795,
- nil, 10695, nil, 173, nil, 326, nil, -23, 649, 362,
- nil, 653, -50, nil, 365, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 683, 23170, nil, nil, nil, 23294, 688, nil, nil, 760,
- nil, 10822, 681, nil, 691, nil, nil, 1421, 728, 731,
- 668, 761, 10949, nil, nil, nil, 21929, 757, 22011, nil,
- 11076, 11203, 11330, nil, nil, nil, 1548, nil, nil, 24123,
- 24184, 11457, 11584, 180, 11711, 11838, 11965, 115, nil, 3238,
- 3365, 232, 879, 785, 787, 821, 824, 2457, 2584, 5068,
- 3492, 3632, 3772, 3912, 4039, 4166, 4293, 4420, 4547, 4674,
- 1133, 1232, 4801, 4928, 633, -34, nil, 12092, nil, 12219,
- nil, 12346, nil, nil, 22667, 22724, 22792, -17, nil, 771,
- nil, nil, 785, 787, nil, nil, 12473, 59, 203, 832,
- nil, nil, 12613, 833, 797, nil, nil, 799, 12753, 845,
- 12880, 24245, 24306, 13007, 24367, 223, 848, nil, nil, 821,
- nil, 13134, 13261, 13388, 24428, 24489, 1675, 13515, 949, 951,
- 871, nil, nil, 13642, nil, nil, 13769, nil, nil, nil,
- nil, 13909, 14049, 874, nil, 1000, nil, nil, 14176, 12765,
- nil, 772, nil, nil, 894, nil, 3126, nil, 859, 1198,
- nil, nil, 14316, 977, nil, nil, 14456, 212, 227, 975,
- 983, 14596, nil, 14723, 24550, 24611, 14850, 40, nil, 760,
- nil, 24672, 14977, 24733, nil, nil, 15104, 387, 15231, nil,
- 1166, nil, nil, nil, 45, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, -35, nil, nil, nil, 864,
- nil, nil, nil, nil, nil, 15358, 866, 15485, 798, 203,
- 15612, 15739, 900, nil, nil, nil, 15866, 903, nil, 15993,
- 915, nil, 268, 307, 22143, 22275, 927, 928, 506, nil,
- 16120, nil, 1040, nil, 16260, 897, nil, 939, 16387, nil,
- nil, nil, nil, nil, nil, nil, nil, 16527, nil, 942,
- 16654, 16781, 2310, 907, nil, nil, 947, 16921, 17061, nil,
- 1154, -27, 17188, 914, nil, 957, 228, 235, 962, 313,
- 327, 963, 960, 972, 17315, 1802, 997, 1001, 240, 1056,
- 17442, nil, nil, 376, 960, 1068, nil, nil, 945, nil,
- 958, 935, 1035, 963, 967, nil, nil, 1010, 3135, nil,
- 869, nil, 1096, nil, nil, nil, nil, nil, 1102, nil,
- 1103, 17569, 1020, 46, 52, 59, 102, 1021, 17696, 1027,
- nil, 1028, 1026, 17836, 416, nil, -25, 17976, 18116, 9665,
- 463, nil, nil, 1075, nil, 18243, nil, 998, 999, nil,
- 1000, 1002, 1004, nil, 996, nil, 23757, 1043, 1050, 18383,
- nil, nil, nil, 1929, 1007, 18510, 18637, 18764, nil, 2056,
- nil, 2183, nil, nil, 2446, nil, 2573, nil, 18891, 19018,
- 19145, 315, 319, 2704, nil, 1041, 1144, nil, nil, 1041,
- nil, 1026, 19272, nil, 1053, 1161, 1072, 323, nil, nil,
- nil, 1196, nil, 19412, 1081, 1125, nil, nil, nil, nil,
- nil, nil, 24794, nil, 1127, nil, nil, nil, nil, 1407,
- 1215, nil, 19539, 1220, 19679, 19819, nil, nil, 66, 56,
- 988, 295, nil, 1221, nil, nil, 1222, 1225, 1109, nil,
- nil, nil, -32, nil, nil, 807, 14188, nil, 842, nil,
- 406, nil, 19946, nil, nil, nil, nil, nil, nil, nil,
- 1127, 1113, nil, 2831, nil, 2971, 20073, 20200, nil, nil,
- nil, 20327, 1114, nil, nil, nil, 20467, nil, nil, 72,
- 20594, nil, 1154, 1125, nil, nil, 78, nil, 1249, 1250,
- 20721, 20861, nil, nil, 21001, nil, nil, 1168, nil, 1132,
- nil, nil, 1133, 1134, 1139, 1137, nil, nil, 22721, nil,
- nil, 21128, nil, 21268, 91, 1112, 1221, 97, nil, nil,
- 21408, nil, nil, nil, 460, 21548, 1268, nil, nil, 1081,
- nil, nil, nil, 21688, 1273, 21815, 24855, 24916, 98, 899,
- nil, nil, nil, 1272, nil, 1153, 1275, nil, 1190, 108,
- 120, 198, 202, nil, nil, nil, nil, 218 ]
-
-racc_action_default = [
- -3, -555, -1, -543, -4, -6, -555, -555, -555, -555,
- -555, -555, -555, -555, -277, -37, -38, -555, -555, -43,
- -45, -46, -289, -327, -328, -50, -255, -382, -255, -65,
- -10, -69, -76, -78, -555, -457, -555, -555, -555, -555,
- -555, -545, -232, -270, -271, -272, -273, -274, -275, -276,
- -533, -279, -555, -554, -525, -297, -554, -555, -555, -302,
- -305, -543, -555, -555, -319, -555, -329, -330, -400, -401,
- -402, -403, -404, -554, -407, -554, -554, -554, -554, -554,
- -434, -440, -441, -555, -446, -447, -448, -449, -450, -451,
- -452, -453, -454, -455, -456, -459, -460, -555, -2, -544,
- -550, -551, -552, -555, -555, -555, -555, -555, -3, -13,
- -555, -105, -106, -107, -108, -109, -110, -111, -114, -115,
- -116, -117, -118, -119, -120, -121, -122, -123, -124, -125,
- -126, -127, -128, -129, -130, -131, -132, -133, -134, -135,
- -136, -137, -138, -139, -140, -141, -142, -143, -144, -145,
- -146, -147, -148, -149, -150, -151, -152, -153, -154, -155,
- -156, -157, -158, -159, -160, -161, -162, -163, -164, -165,
- -166, -167, -168, -169, -170, -171, -172, -173, -174, -175,
- -176, -177, -178, -179, -180, -181, -182, -183, -184, -185,
- -186, -187, -555, -18, -112, -10, -555, -555, -555, -554,
- -554, -555, -555, -555, -555, -555, -555, -41, -555, -457,
- -555, -277, -555, -555, -10, -555, -42, -224, -555, -555,
- -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
- -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
- -555, -555, -555, -555, -555, -555, -369, -371, -47, -233,
- -248, -262, -262, -252, -555, -263, -555, -289, -327, -328,
- -527, -555, -48, -49, -555, -555, -555, -55, -554, -555,
- -296, -375, -383, -385, -63, -381, -64, -555, -543, -11,
- -65, -10, -555, -555, -70, -73, -10, -457, -555, -555,
- -277, -292, -545, -555, -331, -382, -555, -75, -555, -80,
- -284, -442, -443, -555, -209, -210, -225, -555, -546, -10,
- -545, -234, -545, -547, -547, -555, -555, -547, -555, -298,
- -299, -555, -555, -342, -343, -350, -554, -491, -357, -554,
- -554, -368, -490, -492, -493, -494, -495, -496, -555, -509,
- -514, -515, -517, -518, -519, -555, -44, -555, -555, -555,
- -555, -543, -555, -544, -457, -555, -555, -277, -555, -498,
- -499, -101, -555, -103, -555, -277, -555, -316, -457, -555,
- -105, -106, -143, -144, -160, -165, -172, -175, -322, -555,
- -523, -555, -405, -555, -420, -555, -422, -555, -555, -555,
- -412, -555, -555, -418, -555, -433, -435, -436, -437, -438,
- -444, -445, 968, -5, -553, -19, -20, -21, -22, -23,
- -555, -555, -15, -16, -17, -555, -555, -25, -34, -188,
- -263, -555, -555, -26, -35, -36, -27, -190, -555, -555,
- -534, -535, -554, -378, -536, -537, -534, -255, -535, -380,
- -539, -540, -554, -534, -535, -33, -198, -39, -40, -555,
- -555, -554, -554, -284, -555, -555, -555, -555, -295, -199,
- -200, -201, -202, -203, -204, -205, -206, -211, -212, -213,
- -214, -215, -216, -217, -218, -219, -220, -221, -222, -223,
- -226, -227, -228, -229, -555, -554, -249, -555, -250, -555,
- -260, -555, -264, -530, -255, -255, -255, -554, -56, -545,
- -243, -244, -262, -262, -256, -257, -555, -554, -554, -555,
- -291, -9, -544, -555, -66, -282, -81, -71, -555, -555,
- -554, -555, -555, -554, -555, -284, -555, -442, -443, -77,
- -82, -555, -555, -555, -555, -555, -230, -555, -392, -555,
- -555, -235, -236, -549, -548, -238, -549, -287, -288, -526,
- -339, -10, -10, -555, -341, -555, -359, -366, -555, -363,
- -364, -555, -367, -491, -555, -500, -555, -502, -504, -508,
- -516, -520, -10, -332, -333, -334, -10, -555, -555, -555,
- -555, -10, -387, -554, -555, -555, -554, -284, -311, -101,
- -102, -555, -554, -555, -314, -461, -555, -555, -555, -320,
- -489, -324, -541, -542, -545, -406, -421, -424, -425, -427,
- -408, -423, -409, -410, -411, -555, -414, -416, -417, -555,
- -439, -7, -14, -113, -24, -555, -269, -555, -285, -286,
- -555, -555, -59, -241, -242, -376, -555, -61, -379, -555,
- -57, -377, -534, -535, -534, -535, -555, -555, -188, -294,
- -555, -353, -555, -355, -10, -262, -261, -265, -555, -528,
- -529, -51, -372, -52, -373, -53, -374, -10, -239, -555,
- -245, -247, -43, -555, -254, -258, -555, -10, -10, -290,
- -12, -66, -555, -74, -79, -555, -534, -535, -554, -538,
- -283, -555, -555, -554, -555, -197, -207, -208, -555, -554,
- -554, -280, -281, -547, -555, -555, -340, -351, -555, -358,
- -554, -352, -555, -554, -554, -510, -497, -555, -555, -507,
- -554, -335, -554, -303, -336, -337, -338, -306, -555, -309,
- -555, -555, -555, -534, -535, -538, -283, -555, -555, -101,
- -104, -538, -555, -10, -555, -463, -555, -10, -10, -489,
- -555, -466, -467, -469, -470, -472, -473, -522, -522, -478,
- -480, -480, -480, -488, -491, -512, -555, -555, -555, -10,
- -413, -415, -419, -189, -267, -555, -555, -555, -30, -193,
- -31, -194, -60, -32, -195, -62, -196, -58, -555, -555,
- -555, -286, -285, -231, -354, -555, -555, -251, -266, -555,
- -240, -262, -555, -259, -555, -555, -72, -285, -286, -83,
- -293, -554, -348, -10, -393, -554, -394, -395, -237, -344,
- -345, -365, -555, -284, -555, -361, -362, -501, -503, -506,
- -555, -346, -555, -555, -10, -10, -308, -310, -555, -285,
- -93, -555, -285, -555, -462, -317, -555, -555, -545, -465,
- -468, -471, -555, -476, -477, -555, -555, -484, -555, -486,
- -555, -487, -555, -325, -524, -426, -429, -430, -431, -432,
- -555, -268, -28, -191, -29, -192, -555, -555, -356, -370,
- -54, -246, -262, -384, -386, -8, -10, -399, -349, -555,
- -555, -397, -283, -554, -505, -300, -555, -301, -555, -555,
- -555, -10, -312, -315, -10, -321, -323, -555, -474, -522,
- -521, -479, -480, -480, -480, -555, -513, -511, -489, -428,
- -253, -555, -398, -10, -457, -555, -555, -277, -396, -360,
- -10, -304, -307, -265, -554, -10, -555, -464, -475, -555,
- -482, -483, -485, -10, -392, -554, -555, -555, -284, -554,
- -388, -389, -390, -555, -318, -480, -555, -391, -555, -534,
- -535, -538, -283, -347, -313, -481, -326, -285 ]
-
-clist = [
-'13,315,307,699,323,378,498,114,114,539,250,250,250,432,437,442,5,208',
-'208,396,284,488,208,208,208,659,331,102,294,294,13,288,288,572,576,529',
-'10,98,12,557,748,312,560,562,251,251,251,366,565,109,194,580,208,208',
-'117,117,216,208,208,294,294,208,355,364,99,114,10,715,12,418,425,760',
-'707,267,274,276,494,495,496,114,542,545,659,2,549,102,280,297,252,252',
-'252,606,763,723,727,352,759,616,359,13,1,916,590,208,208,208,208,13',
-'13,347,348,403,282,351,641,5,564,710,385,387,317,714,394,409,5,885,830',
-'248,262,263,193,360,396,411,499,10,668,12,676,504,207,654,811,10,10',
-'12,12,428,429,853,854,380,316,667,319,405,406,407,408,320,358,594,762',
-'677,678,833,662,664,666,379,601,309,349,834,350,310,835,738,935,743',
-'346,346,916,598,346,904,369,312,312,747,600,410,114,766,918,13,208,208',
-'208,208,208,321,441,550,208,208,208,659,713,247,485,656,507,656,13,208',
-'508,950,422,422,760,731,815,889,382,383,346,346,346,346,674,10,389,12',
-'417,423,426,615,392,865,768,763,445,769,848,759,909,908,912,828,10,',
-'12,526,,683,250,250,,,,432,437,,,250,,,208,208,553,540,488,541,,,565',
-'208,728,719,,13,294,,,288,13,530,,,502,251,331,,,294,,,288,251,,938',
-'102,,,,,,,13,,762,511,,,,,10,,12,,,10,771,12,,271,275,447,448,14,740',
-',688,503,252,693,280,457,512,517,707,280,252,717,10,688,12,910,208,208',
-'910,759,599,759,963,759,902,943,,14,290,290,513,715,641,294,,519,364',
-',782,,501,505,102,785,951,,787,,208,509,,,579,893,,,760,595,,357,365',
-'656,656,688,,,646,647,577,578,,,688,,,,957,763,114,,,759,114,,659,913',
-'806,914,,,821,797,,825,826,565,14,,,,,,759,,14,14,312,312,,,843,,,,846',
-'847,,441,208,208,622,,,,623,117,,669,,117,,,,,,685,,818,692,346,346',
-',,,,,632,762,,,,637,,,,,640,,,,,,,,,,,,955,,,604,,208,530,312,,,312',
-'13,,,294,,,288,,208,,441,208,901,14,,,680,,,732,,,737,441,,208,,894',
-'742,661,663,665,14,,,,10,,12,13,13,655,,294,,,711,,,,,,,767,,,,,797',
-'312,13,816,312,923,13,857,859,861,312,13,930,208,,441,208,10,10,12,12',
-'441,208,271,35,275,208,,208,,795,724,724,,936,656,929,,10,703,12,14',
-'10,,12,290,14,10,,12,,745,331,,35,287,287,,290,310,208,208,,952,,,208',
-',,14,,,,956,,656,,,744,,,920,,,13,,354,368,,368,698,,283,,,,,13,778',
-'780,,530,,,783,,,13,13,294,,,288,809,,,,,,,10,294,12,35,288,,,,,365',
-',35,35,10,,12,863,,,,,,,10,10,12,12,,,346,,746,422,,,,,,,940,941,942',
-'634,,,,801,638,208,,,,634,13,,,,13,13,,,,,838,,,,,688,,,,,,,,114,,844',
-'13,845,,965,,849,,208,208,,10,,12,,10,10,12,12,,,35,841,,,,634,634,634',
-',,,,,,,,10,,12,35,907,,,,13,872,874,,,,,,,441,,882,,,416,,,,,208,318',
-'13,13,,,,,,,14,,,,283,,290,10,,12,,,,,,,,,,346,,,,724,,,,,10,10,12,12',
-',35,,,,287,35,14,14,,896,,13,294,365,,925,,287,958,,,,,,,,13,14,35,13',
-',14,,,,,14,,283,,,,,283,,,,10,13,12,,928,,,,13,,,312,,13,,10,,12,10',
-',12,13,,208,,441,,,,,,,,346,,,,10,,12,,368,,,10,,12,,,10,,12,,420,424',
-',,10,,12,,,14,,,,634,,,638,,634,,,,14,,,,,,,,,,14,14,,,,290,,,,,,,,',
-',,,290,,,,,,,,,490,,492,,,,,493,,,,,,,,,,,,,,,,,,,,,,324,,,,,,,,,,,14',
-',,,14,14,384,,386,386,390,393,386,,,,,,,,,,,,,869,14,,,,,,,35,,,,,,287',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14,,35,35,,,,,,368,,,,,,,,,,,,14,14,35',
-'217,,,35,249,249,249,,35,,,,,,,,704,705,,,304,305,306,,,,,,,,,,,626',
-',249,249,720,,,,722,,,,,730,,,14,,,,927,,,,,,,,,,,14,,,14,,,,,,,,,,',
-',,,35,,,,,14,,,,,,,14,35,,,,14,657,,318,,660,35,35,14,500,,287,,,,,',
-',,,673,796,,287,,,,,,,,,,,799,,,,,,,,,,804,805,,,,,,,,,,,,657,,,318',
-',,,,,,556,,,556,556,35,,,,35,35,,,419,249,427,249,249,,,,446,,,,,,,',
-',,35,,,,217,,459,460,461,462,463,464,465,466,467,468,469,470,471,472',
-'473,474,475,476,477,478,479,480,481,482,483,484,,,,,,,870,,249,,249',
-'774,35,,,249,,,,,,,249,249,,,,,,,,249,,35,35,,,,,,,,798,633,,,,,,,888',
-',,633,657,318,,,,,,536,,,,,,,,,,898,899,,,,,,,,,,,,814,35,,,,924,,,',
-',,,651,,,,35,,,35,,633,633,633,651,,,,,,,420,,,651,651,,,35,922,,,,',
-',35,,,,,35,,,,934,851,,,35,,,,,,,,,,,,,,,,,871,944,,,,,,,949,,,,,953',
-',,249,,,,,,,,,,,420,,,,,,,,,,,,,,,,,,,249,249,,446,648,427,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,249,,249,,249,917,,,,,,,,,,,,,,672,,,,,318,,,,',
-',,,,249,,,249,,,,,,,933,695,696,697,,,,,,,,,,249,,633,249,,,,633,933',
-',,,,812,817,,,,,,,,,,556,,,556,556,,,,,,812,,812,,,,249,,,249,,,,,,249',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,773,,249,,,779,781,,,293,293,784,,,786',
-',293,293,293,,,,,,,793,,,,,,,293,249,,,,,,,293,293,,887,,249,249,891',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,249,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,249,,,',
-',,,,,,,,,,,,,,,556,,,,,249,,,,,,,,,,,,,,,,,,,,249,873,875,,,,,,,,,,',
-'779,781,784,812,,,,,,,,,,,249,,,,812,,,,,,,,,,,,,,,293,,293,293,293',
-'293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293',
-'293,293,293,293,293,293,,,,,,,,,293,,293,,,249,,293,,,,,,,,,,,,875,873',
-',,,249,,,,,,,293,,,,,,,,,,,,249,293,,,,,,,,,293,,,,,,,,,,,249,,,,,,',
-',,,,,,,,,,,,,,,,,249,,,,,,,,,,,,,,,,,,,,,,,,,,,293,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,293,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,293,293,293,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,293,,293,,293,,,,,,,,,,',
-',,,,,,,,,,,,,,,,293,,,,,,,,,,,,,293,293,293,,,,,,,,,,293,,,293,,,,,',
-',,,,,,293,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,293,,293,,,,,,,,,,,,293,,,,,,,,,,,293,,,,,,,,293,,,,,,,,,,,',
-'293,293,,,,,,,,,,,293,,,,,,,,,,,,293,,,,,,293,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,293,,,,,,,,,,,,,,,,,,,,,,,,293,,,,,,,,,,,,,,,,,,,,293,,,,,,',
-',,,,,,293,293,293,,,,,,,,,,,,293,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,293,,,,,,,,,,,,,,293,293,,,,293,,,,,,,,,293',
-',,,,,,,,,293,,,,,,,,,,,,,,,,,,,,,293' ]
- racc_goto_table = arr = ::Array.new(2674, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-clist = [
-'21,22,51,10,104,47,35,48,48,8,29,29,29,33,33,33,7,21,21,47,41,61,21',
-'21,21,154,107,83,52,52,21,21,21,77,77,43,17,4,20,109,84,29,109,109,54',
-'54,54,46,145,14,14,80,21,21,50,50,18,21,21,52,52,21,21,21,6,48,17,147',
-'20,24,24,110,106,34,34,34,33,33,33,48,55,55,154,2,55,83,38,42,56,56',
-'56,129,141,79,79,4,108,129,17,21,1,151,45,21,21,21,21,21,21,16,16,5',
-'39,16,60,7,148,111,126,126,56,111,126,7,7,12,78,31,31,31,15,19,47,27',
-'58,17,59,20,63,64,26,36,11,17,17,20,20,22,22,142,142,72,73,36,74,16',
-'16,16,16,76,81,82,111,36,36,11,60,60,60,85,86,87,88,89,90,26,91,92,93',
-'94,26,26,151,95,26,96,97,29,29,98,99,2,48,100,101,21,21,21,21,21,21',
-'102,48,103,21,21,21,154,105,112,113,62,115,62,21,21,116,117,54,54,110',
-'118,119,120,124,125,26,26,26,26,62,17,127,20,18,18,18,128,130,131,132',
-'141,18,133,135,108,137,139,144,149,17,,20,51,,43,29,29,,,,33,33,,,29',
-',,21,21,104,51,61,51,,,145,21,80,145,,21,52,,,21,21,41,,,54,54,107,',
-',52,,,21,54,,142,83,,,,,,,21,,111,4,,,,,17,,20,,,17,129,20,,57,57,26',
-'26,23,45,,33,56,56,33,38,26,6,42,106,38,56,148,17,33,20,108,21,21,108',
-'108,46,108,78,108,79,84,,23,23,23,39,147,60,52,,39,21,,35,,31,31,83',
-'35,11,,35,,21,31,,,4,111,,,110,83,,23,23,62,62,33,,,22,22,16,16,,,33',
-',,,10,141,48,,,108,48,,154,111,43,111,,,109,61,,109,109,145,23,,,,,',
-'108,,23,23,29,29,,,8,,,,8,8,,48,21,21,14,,,,14,50,,51,,50,,,,,,22,,55',
-'22,26,26,,,,,,34,111,,,,34,,,,,34,,,,,,,,,,,,111,,,26,,21,41,29,,,29',
-'21,,,52,,,21,,21,,48,21,77,23,,,7,,,22,,,22,48,,21,,145,22,34,34,34',
-'23,,,,17,,20,21,21,56,,52,,,21,,,,,,,51,,,,,61,29,21,24,29,77,21,143',
-'143,143,29,21,77,21,,48,21,17,17,20,20,48,21,57,44,57,21,,21,,104,83',
-'83,,8,62,109,,17,56,20,23,17,,20,23,23,17,,20,,83,107,,44,44,44,,23',
-'26,21,21,,80,,,21,,,23,,,,8,,62,,,16,,,61,,,21,,44,44,,44,26,,9,,,,',
-'21,18,18,,41,,,18,,,21,21,52,,,21,41,,,,,,,17,52,20,44,21,,,,,23,,44',
-'44,17,,20,47,,,,,,,17,17,20,20,,,26,,26,54,,,,,,,143,143,143,57,,,,56',
-'57,21,,,,57,21,,,,21,21,,,,,54,,,,,33,,,,,,,,48,,83,21,83,,143,,83,',
-'21,21,,17,,20,,17,17,20,20,,,44,16,,,,57,57,57,,,,,,,,,17,,20,44,51',
-',,,21,18,18,,,,,,,48,,54,,,9,,,,,21,25,21,21,,,,,,,23,,,,9,,23,17,,20',
-',,,,,,,,,26,,,,83,,,,,17,17,20,20,,44,,,,44,44,23,23,,16,,21,52,23,',
-'21,,44,22,,,,,,,,21,23,44,21,,23,,,,,23,,9,,,,,9,,,,17,21,20,,17,,,',
-'21,,,29,,21,,17,,20,17,,20,21,,21,,48,,,,,,,,26,,,,17,,20,,44,,,17,',
-'20,,,17,,20,,25,25,,,17,,20,,,23,,,,57,,,57,,57,,,,23,,,,,,,,,,23,23',
-',,,23,,,,,,,,,,,,23,,,,,,,,,25,,25,,,,,25,,,,,,,,,,,,,,,,,,,,,,53,,',
-',,,,,,,,23,,,,23,23,53,,53,53,53,53,53,,,,,,,,,,,,,23,23,,,,,,,44,,',
-',,,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,23,,44,44,,,,,,44,,,,,,,,,,,,23',
-'23,44,28,,,44,28,28,28,,44,,,,,,,,9,9,,,28,28,28,,,,,,,,,,,25,,28,28',
-'9,,,,9,,,,,9,,,23,,,,23,,,,,,,,,,,23,,,23,,,,,,,,,,,,,,44,,,,,23,,,',
-',,,23,44,,,,23,25,,25,,25,44,44,23,53,,44,,,,,,,,,25,9,,44,,,,,,,,,',
-',9,,,,,,,,,,9,9,,,,,,,,,,,,25,,,25,,,,,,,53,,,53,53,44,,,,44,44,,,28',
-'28,28,28,28,,,,28,,,,,,,,,,44,,,,28,,28,28,28,28,28,28,28,28,28,28,28',
-'28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,,,,,,,9,,28,,28,25,44,',
-',28,,,,,,,28,28,,,,,,,,28,,44,44,,,,,,,,25,53,,,,,,,9,,,53,25,25,,,',
-',,28,,,,,,,,,,9,9,,,,,,,,,,,,25,44,,,,44,,,,,,,53,,,,44,,,44,,53,53',
-'53,53,,,,,,,25,,,53,53,,,44,9,,,,,,44,,,,,44,,,,9,25,,,44,,,,,,,,,,',
-',,,,,,25,9,,,,,,,9,,,,,9,,,28,,,,,,,,,,,25,,,,,,,,,,,,,,,,,,,28,28,',
-'28,28,28,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,28,,28,,28,25,,,,,,,,,,,,,,28',
-',,,,25,,,,,,,,,28,,,28,,,,,,,25,28,28,28,,,,,,,,,,28,,53,28,,,,53,25',
-',,,,53,53,,,,,,,,,,53,,,53,53,,,,,,53,,53,,,,28,,,28,,,,,,28,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,28,,28,,,28,28,,,37,37,28,,,28,,37,37,37,,',
-',,,,28,,,,,,,37,28,,,,,,,37,37,,53,,28,28,53,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,28,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,28,,,,,,,,,,,,,,,,,,,53,,,,,28',
-',,,,,,,,,,,,,,,,,,,28,28,28,,,,,,,,,,,28,28,28,53,,,,,,,,,,,28,,,,53',
-',,,,,,,,,,,,,,37,,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37',
-'37,37,37,37,37,37,37,37,37,,,,,,,,,37,,37,,,28,,37,,,,,,,,,,,,28,28',
-',,,28,,,,,,,37,,,,,,,,,,,,28,37,,,,,,,,,37,,,,,,,,,,,28,,,,,,,,,,,,',
-',,,,,,,,,,,28,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,37,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,37',
-',,,,,,,,,,,,37,37,37,,,,,,,,,,37,,,37,,,,,,,,,,,,37,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,37,,,,,,,,,,,',
-'37,,,,,,,,,,,37,,,,,,,,37,,,,,,,,,,,,37,37,,,,,,,,,,,37,,,,,,,,,,,,37',
-',,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,37,',
-',,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,37,37,37,,,,,,,,,,,,37,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,37,37',
-',,,37,,,,,,,,,37,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,37' ]
- racc_goto_check = arr = ::Array.new(2674, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-racc_goto_pointer = [
- nil, 100, 83, nil, 34, 12, 61, 16, -300, 632,
- -535, -557, -686, nil, 42, 122, 52, 36, 38, 69,
- 38, 0, -52, 330, -127, 779, 123, 24, 1149, -12,
- nil, 105, nil, -188, 47, -261, -344, 1752, 56, 82,
- nil, -11, 55, -263, 594, -260, -16, -60, 0, nil,
- 47, -39, -3, 1006, 22, -233, 66, 300, -134, -363,
- -328, -231, -276, -368, -130, nil, nil, nil, nil, nil,
- nil, nil, 86, 98, 99, nil, 103, -314, -594, -484,
- -301, 98, -205, 24, -560, 104, -209, 120, 113, -550,
- 114, -551, -411, -724, -415, -184, -660, 122, -410, -188,
- -408, -669, 145, -118, -52, -351, -483, -30, -504, -287,
- -529, -438, 189, -36, nil, -60, -57, -717, -361, -478,
- -592, nil, nil, nil, 153, 152, 43, 155, -152, -292,
- 160, -529, -368, -366, nil, -505, nil, -606, nil, -605,
- nil, -508, -608, -183, -608, -290, nil, -492, -222, -469,
- nil, -757, nil, nil, -464 ]
-
-racc_goto_default = [
- nil, nil, nil, 3, nil, 4, 353, 279, nil, 538,
- nil, 831, nil, 278, nil, nil, nil, 212, 16, 11,
- 213, 303, nil, 211, nil, 255, 15, nil, 19, 20,
- 21, nil, 25, 691, nil, nil, nil, 26, 29, nil,
- 31, 34, 33, nil, 209, 363, nil, 116, 435, 115,
- 69, nil, 42, 311, 313, nil, 314, 433, nil, nil,
- 635, 486, 253, nil, nil, 269, 43, 44, 45, 46,
- 47, 48, 49, nil, 270, 55, nil, nil, nil, nil,
- nil, nil, nil, 573, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 326, 325, 709, 328, nil,
- 329, 330, nil, nil, 439, nil, nil, nil, nil, nil,
- nil, 68, 70, 71, 72, nil, nil, nil, nil, 611,
- nil, nil, nil, nil, 395, 750, 753, 758, 755, 756,
- 757, 911, nil, nil, 761, 337, 332, 339, nil, 567,
- 568, 765, 342, 345, 260 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 143, :_reduce_none,
- 2, 144, :_reduce_2,
- 0, 145, :_reduce_3,
- 1, 145, :_reduce_4,
- 3, 145, :_reduce_5,
- 1, 147, :_reduce_none,
- 4, 147, :_reduce_7,
- 4, 150, :_reduce_8,
- 2, 151, :_reduce_9,
- 0, 155, :_reduce_10,
- 1, 155, :_reduce_11,
- 3, 155, :_reduce_12,
- 0, 169, :_reduce_13,
- 4, 149, :_reduce_14,
- 3, 149, :_reduce_15,
- 3, 149, :_reduce_none,
- 3, 149, :_reduce_17,
- 2, 149, :_reduce_18,
- 3, 149, :_reduce_19,
- 3, 149, :_reduce_20,
- 3, 149, :_reduce_21,
- 3, 149, :_reduce_22,
- 3, 149, :_reduce_23,
- 4, 149, :_reduce_none,
- 3, 149, :_reduce_25,
- 3, 149, :_reduce_26,
- 3, 149, :_reduce_27,
- 6, 149, :_reduce_none,
- 6, 149, :_reduce_none,
- 5, 149, :_reduce_30,
- 5, 149, :_reduce_none,
- 5, 149, :_reduce_none,
- 3, 149, :_reduce_none,
- 3, 149, :_reduce_34,
- 3, 149, :_reduce_35,
- 3, 149, :_reduce_36,
- 1, 149, :_reduce_none,
- 1, 168, :_reduce_none,
- 3, 168, :_reduce_39,
- 3, 168, :_reduce_40,
- 2, 168, :_reduce_41,
- 2, 168, :_reduce_42,
- 1, 168, :_reduce_none,
- 1, 158, :_reduce_none,
- 1, 160, :_reduce_none,
- 1, 160, :_reduce_none,
- 2, 160, :_reduce_47,
- 2, 160, :_reduce_48,
- 2, 160, :_reduce_49,
- 1, 172, :_reduce_none,
- 4, 172, :_reduce_none,
- 4, 172, :_reduce_none,
- 4, 172, :_reduce_none,
- 4, 177, :_reduce_none,
- 2, 171, :_reduce_55,
- 3, 171, :_reduce_none,
- 4, 171, :_reduce_57,
- 5, 171, :_reduce_none,
- 4, 171, :_reduce_59,
- 5, 171, :_reduce_none,
- 4, 171, :_reduce_61,
- 5, 171, :_reduce_none,
- 2, 171, :_reduce_63,
- 2, 171, :_reduce_64,
- 1, 161, :_reduce_65,
- 3, 161, :_reduce_66,
- 1, 181, :_reduce_67,
- 3, 181, :_reduce_68,
- 1, 180, :_reduce_69,
- 2, 180, :_reduce_70,
- 3, 180, :_reduce_71,
- 5, 180, :_reduce_none,
- 2, 180, :_reduce_73,
- 4, 180, :_reduce_none,
- 2, 180, :_reduce_75,
- 1, 180, :_reduce_76,
- 3, 180, :_reduce_none,
- 1, 183, :_reduce_78,
- 3, 183, :_reduce_79,
- 2, 182, :_reduce_80,
- 3, 182, :_reduce_81,
- 1, 185, :_reduce_none,
- 3, 185, :_reduce_none,
- 1, 184, :_reduce_84,
- 4, 184, :_reduce_85,
- 3, 184, :_reduce_86,
- 3, 184, :_reduce_none,
- 3, 184, :_reduce_none,
- 3, 184, :_reduce_none,
- 2, 184, :_reduce_none,
- 1, 184, :_reduce_none,
- 1, 159, :_reduce_92,
- 4, 159, :_reduce_93,
- 4, 159, :_reduce_94,
- 3, 159, :_reduce_95,
- 3, 159, :_reduce_96,
- 3, 159, :_reduce_97,
- 3, 159, :_reduce_98,
- 2, 159, :_reduce_99,
- 1, 159, :_reduce_none,
- 1, 187, :_reduce_none,
- 2, 188, :_reduce_102,
- 1, 188, :_reduce_103,
- 3, 188, :_reduce_104,
- 1, 189, :_reduce_none,
- 1, 189, :_reduce_none,
- 1, 189, :_reduce_none,
- 1, 189, :_reduce_108,
- 1, 189, :_reduce_109,
- 1, 156, :_reduce_110,
- 1, 156, :_reduce_none,
- 1, 157, :_reduce_112,
- 3, 157, :_reduce_113,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 190, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 1, 191, :_reduce_none,
- 3, 170, :_reduce_188,
- 5, 170, :_reduce_189,
- 3, 170, :_reduce_190,
- 6, 170, :_reduce_191,
- 6, 170, :_reduce_192,
- 5, 170, :_reduce_193,
- 5, 170, :_reduce_none,
- 5, 170, :_reduce_none,
- 5, 170, :_reduce_none,
- 4, 170, :_reduce_none,
- 3, 170, :_reduce_none,
- 3, 170, :_reduce_199,
- 3, 170, :_reduce_200,
- 3, 170, :_reduce_201,
- 3, 170, :_reduce_202,
- 3, 170, :_reduce_203,
- 3, 170, :_reduce_204,
- 3, 170, :_reduce_205,
- 3, 170, :_reduce_206,
- 4, 170, :_reduce_207,
- 4, 170, :_reduce_208,
- 2, 170, :_reduce_209,
- 2, 170, :_reduce_210,
- 3, 170, :_reduce_211,
- 3, 170, :_reduce_212,
- 3, 170, :_reduce_213,
- 3, 170, :_reduce_214,
- 3, 170, :_reduce_215,
- 3, 170, :_reduce_216,
- 3, 170, :_reduce_217,
- 3, 170, :_reduce_218,
- 3, 170, :_reduce_219,
- 3, 170, :_reduce_220,
- 3, 170, :_reduce_221,
- 3, 170, :_reduce_222,
- 3, 170, :_reduce_223,
- 2, 170, :_reduce_224,
- 2, 170, :_reduce_225,
- 3, 170, :_reduce_226,
- 3, 170, :_reduce_227,
- 3, 170, :_reduce_228,
- 3, 170, :_reduce_229,
- 3, 170, :_reduce_230,
- 5, 170, :_reduce_231,
- 1, 170, :_reduce_none,
- 1, 167, :_reduce_none,
- 1, 164, :_reduce_234,
- 2, 164, :_reduce_235,
- 2, 164, :_reduce_236,
- 4, 164, :_reduce_237,
- 2, 164, :_reduce_238,
- 3, 199, :_reduce_239,
- 2, 201, :_reduce_none,
- 1, 202, :_reduce_241,
- 1, 202, :_reduce_none,
- 1, 200, :_reduce_243,
- 1, 200, :_reduce_none,
- 2, 200, :_reduce_245,
- 4, 200, :_reduce_246,
- 2, 200, :_reduce_247,
- 1, 173, :_reduce_248,
- 2, 173, :_reduce_249,
- 2, 173, :_reduce_250,
- 4, 173, :_reduce_251,
- 1, 173, :_reduce_252,
- 4, 205, :_reduce_none,
- 1, 205, :_reduce_none,
- 0, 207, :_reduce_255,
- 2, 176, :_reduce_256,
- 1, 206, :_reduce_none,
- 2, 206, :_reduce_258,
- 3, 206, :_reduce_259,
- 2, 204, :_reduce_260,
- 2, 203, :_reduce_261,
- 0, 203, :_reduce_262,
- 1, 196, :_reduce_263,
- 2, 196, :_reduce_264,
- 3, 196, :_reduce_265,
- 4, 196, :_reduce_266,
- 3, 166, :_reduce_267,
- 4, 166, :_reduce_268,
- 2, 166, :_reduce_269,
- 1, 194, :_reduce_none,
- 1, 194, :_reduce_none,
- 1, 194, :_reduce_none,
- 1, 194, :_reduce_none,
- 1, 194, :_reduce_none,
- 1, 194, :_reduce_none,
- 1, 194, :_reduce_none,
- 1, 194, :_reduce_none,
- 1, 194, :_reduce_none,
- 0, 229, :_reduce_279,
- 4, 194, :_reduce_280,
- 4, 194, :_reduce_281,
- 3, 194, :_reduce_282,
- 3, 194, :_reduce_283,
- 2, 194, :_reduce_284,
- 4, 194, :_reduce_285,
- 4, 194, :_reduce_286,
- 3, 194, :_reduce_287,
- 3, 194, :_reduce_288,
- 1, 194, :_reduce_289,
- 4, 194, :_reduce_290,
- 3, 194, :_reduce_291,
- 1, 194, :_reduce_292,
- 5, 194, :_reduce_293,
- 4, 194, :_reduce_294,
- 3, 194, :_reduce_295,
- 2, 194, :_reduce_296,
- 1, 194, :_reduce_none,
- 2, 194, :_reduce_298,
- 2, 194, :_reduce_299,
- 6, 194, :_reduce_300,
- 6, 194, :_reduce_301,
- 0, 230, :_reduce_302,
- 0, 231, :_reduce_303,
- 7, 194, :_reduce_304,
- 0, 232, :_reduce_305,
- 0, 233, :_reduce_306,
- 7, 194, :_reduce_307,
- 5, 194, :_reduce_308,
- 4, 194, :_reduce_309,
- 5, 194, :_reduce_310,
- 0, 234, :_reduce_311,
- 0, 235, :_reduce_312,
- 9, 194, :_reduce_313,
- 0, 236, :_reduce_314,
- 6, 194, :_reduce_315,
- 0, 237, :_reduce_316,
- 0, 238, :_reduce_317,
- 8, 194, :_reduce_318,
- 0, 239, :_reduce_319,
- 0, 240, :_reduce_320,
- 6, 194, :_reduce_321,
- 0, 241, :_reduce_322,
- 6, 194, :_reduce_323,
- 0, 242, :_reduce_324,
- 0, 243, :_reduce_325,
- 9, 194, :_reduce_326,
- 1, 194, :_reduce_327,
- 1, 194, :_reduce_328,
- 1, 194, :_reduce_329,
- 1, 194, :_reduce_none,
- 1, 163, :_reduce_none,
- 1, 219, :_reduce_none,
- 1, 219, :_reduce_none,
- 1, 219, :_reduce_none,
- 2, 219, :_reduce_none,
- 1, 221, :_reduce_none,
- 1, 221, :_reduce_none,
- 1, 221, :_reduce_none,
- 2, 218, :_reduce_339,
- 3, 244, :_reduce_340,
- 2, 244, :_reduce_341,
- 1, 244, :_reduce_none,
- 1, 244, :_reduce_none,
- 3, 245, :_reduce_344,
- 3, 245, :_reduce_345,
- 1, 220, :_reduce_346,
- 5, 220, :_reduce_347,
- 1, 153, :_reduce_none,
- 2, 153, :_reduce_349,
- 1, 247, :_reduce_350,
- 3, 247, :_reduce_351,
- 3, 248, :_reduce_352,
- 1, 178, :_reduce_none,
- 2, 178, :_reduce_354,
- 1, 178, :_reduce_355,
- 3, 178, :_reduce_356,
- 1, 249, :_reduce_357,
- 2, 251, :_reduce_358,
- 1, 251, :_reduce_359,
- 6, 246, :_reduce_360,
- 4, 246, :_reduce_361,
- 4, 246, :_reduce_362,
- 2, 246, :_reduce_363,
- 2, 246, :_reduce_364,
- 4, 246, :_reduce_365,
- 2, 246, :_reduce_366,
- 2, 246, :_reduce_367,
- 1, 246, :_reduce_368,
- 0, 255, :_reduce_369,
- 5, 254, :_reduce_370,
- 2, 174, :_reduce_371,
- 4, 174, :_reduce_none,
- 4, 174, :_reduce_none,
- 4, 174, :_reduce_none,
- 2, 217, :_reduce_375,
- 4, 217, :_reduce_376,
- 4, 217, :_reduce_377,
- 3, 217, :_reduce_378,
- 4, 217, :_reduce_379,
- 3, 217, :_reduce_380,
- 2, 217, :_reduce_381,
- 1, 217, :_reduce_382,
- 0, 257, :_reduce_383,
- 5, 216, :_reduce_384,
- 0, 258, :_reduce_385,
- 5, 216, :_reduce_386,
- 0, 260, :_reduce_387,
- 6, 222, :_reduce_388,
- 1, 259, :_reduce_389,
- 1, 259, :_reduce_none,
- 6, 152, :_reduce_391,
- 0, 152, :_reduce_392,
- 1, 261, :_reduce_393,
- 1, 261, :_reduce_none,
- 1, 261, :_reduce_none,
- 2, 262, :_reduce_396,
- 1, 262, :_reduce_397,
- 2, 154, :_reduce_398,
- 1, 154, :_reduce_none,
- 1, 208, :_reduce_none,
- 1, 208, :_reduce_none,
- 1, 208, :_reduce_none,
- 1, 209, :_reduce_403,
- 1, 265, :_reduce_none,
- 2, 265, :_reduce_405,
- 3, 266, :_reduce_406,
- 1, 266, :_reduce_407,
- 3, 210, :_reduce_408,
- 3, 211, :_reduce_409,
- 3, 212, :_reduce_410,
- 3, 212, :_reduce_411,
- 1, 269, :_reduce_412,
- 3, 269, :_reduce_413,
- 1, 270, :_reduce_414,
- 2, 270, :_reduce_415,
- 3, 213, :_reduce_416,
- 3, 213, :_reduce_417,
- 1, 272, :_reduce_418,
- 3, 272, :_reduce_419,
- 1, 267, :_reduce_420,
- 2, 267, :_reduce_421,
- 1, 268, :_reduce_422,
- 2, 268, :_reduce_423,
- 1, 271, :_reduce_424,
- 0, 274, :_reduce_425,
- 3, 271, :_reduce_426,
- 0, 275, :_reduce_427,
- 4, 271, :_reduce_428,
- 1, 273, :_reduce_429,
- 1, 273, :_reduce_430,
- 1, 273, :_reduce_431,
- 1, 273, :_reduce_none,
- 2, 192, :_reduce_433,
- 1, 192, :_reduce_434,
- 1, 276, :_reduce_none,
- 1, 276, :_reduce_none,
- 1, 276, :_reduce_none,
- 1, 276, :_reduce_none,
- 3, 264, :_reduce_439,
- 1, 263, :_reduce_440,
- 1, 263, :_reduce_441,
- 2, 263, :_reduce_442,
- 2, 263, :_reduce_443,
- 2, 263, :_reduce_444,
- 2, 263, :_reduce_445,
- 1, 186, :_reduce_446,
- 1, 186, :_reduce_447,
- 1, 186, :_reduce_448,
- 1, 186, :_reduce_449,
- 1, 186, :_reduce_450,
- 1, 186, :_reduce_451,
- 1, 186, :_reduce_452,
- 1, 186, :_reduce_453,
- 1, 186, :_reduce_454,
- 1, 186, :_reduce_455,
- 1, 186, :_reduce_456,
- 1, 214, :_reduce_457,
- 1, 162, :_reduce_458,
- 1, 165, :_reduce_459,
- 1, 165, :_reduce_none,
- 1, 224, :_reduce_461,
- 3, 224, :_reduce_462,
- 2, 224, :_reduce_463,
- 4, 226, :_reduce_464,
- 2, 226, :_reduce_465,
- 1, 278, :_reduce_none,
- 1, 278, :_reduce_none,
- 2, 279, :_reduce_468,
- 1, 279, :_reduce_469,
- 1, 280, :_reduce_470,
- 2, 281, :_reduce_471,
- 1, 281, :_reduce_472,
- 1, 282, :_reduce_473,
- 3, 282, :_reduce_474,
- 4, 283, :_reduce_475,
- 2, 283, :_reduce_476,
- 2, 283, :_reduce_477,
- 1, 283, :_reduce_478,
- 2, 285, :_reduce_479,
- 0, 285, :_reduce_480,
- 6, 277, :_reduce_481,
- 4, 277, :_reduce_482,
- 4, 277, :_reduce_483,
- 2, 277, :_reduce_484,
- 4, 277, :_reduce_485,
- 2, 277, :_reduce_486,
- 2, 277, :_reduce_487,
- 1, 277, :_reduce_488,
- 0, 277, :_reduce_489,
- 1, 287, :_reduce_none,
- 1, 287, :_reduce_491,
- 1, 288, :_reduce_492,
- 1, 288, :_reduce_493,
- 1, 288, :_reduce_494,
- 1, 288, :_reduce_495,
- 1, 289, :_reduce_496,
- 3, 289, :_reduce_497,
- 1, 223, :_reduce_none,
- 1, 223, :_reduce_none,
- 1, 291, :_reduce_500,
- 3, 291, :_reduce_none,
- 1, 292, :_reduce_502,
- 3, 292, :_reduce_503,
- 1, 290, :_reduce_none,
- 4, 290, :_reduce_none,
- 3, 290, :_reduce_none,
- 2, 290, :_reduce_none,
- 1, 290, :_reduce_none,
- 1, 252, :_reduce_509,
- 3, 252, :_reduce_510,
- 3, 293, :_reduce_511,
- 1, 286, :_reduce_512,
- 3, 286, :_reduce_513,
- 1, 294, :_reduce_none,
- 1, 294, :_reduce_none,
- 2, 253, :_reduce_516,
- 1, 253, :_reduce_517,
- 1, 295, :_reduce_none,
- 1, 295, :_reduce_none,
- 2, 250, :_reduce_520,
- 2, 284, :_reduce_521,
- 0, 284, :_reduce_522,
- 1, 227, :_reduce_523,
- 4, 227, :_reduce_524,
- 0, 215, :_reduce_525,
- 2, 215, :_reduce_526,
- 1, 198, :_reduce_527,
- 3, 198, :_reduce_528,
- 3, 296, :_reduce_529,
- 2, 296, :_reduce_530,
- 1, 179, :_reduce_none,
- 1, 179, :_reduce_none,
- 1, 179, :_reduce_none,
- 1, 175, :_reduce_none,
- 1, 175, :_reduce_none,
- 1, 175, :_reduce_none,
- 1, 175, :_reduce_none,
- 1, 256, :_reduce_none,
- 1, 256, :_reduce_none,
- 1, 256, :_reduce_none,
- 1, 228, :_reduce_none,
- 1, 228, :_reduce_none,
- 0, 146, :_reduce_none,
- 1, 146, :_reduce_none,
- 0, 193, :_reduce_none,
- 1, 193, :_reduce_none,
- 0, 197, :_reduce_none,
- 1, 197, :_reduce_none,
- 1, 197, :_reduce_none,
- 1, 225, :_reduce_none,
- 1, 225, :_reduce_none,
- 1, 148, :_reduce_none,
- 2, 148, :_reduce_none,
- 0, 195, :_reduce_554 ]
-
-racc_reduce_n = 555
-
-racc_shift_n = 968
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :kCLASS => 2,
- :kMODULE => 3,
- :kDEF => 4,
- :kUNDEF => 5,
- :kBEGIN => 6,
- :kRESCUE => 7,
- :kENSURE => 8,
- :kEND => 9,
- :kIF => 10,
- :kUNLESS => 11,
- :kTHEN => 12,
- :kELSIF => 13,
- :kELSE => 14,
- :kCASE => 15,
- :kWHEN => 16,
- :kWHILE => 17,
- :kUNTIL => 18,
- :kFOR => 19,
- :kBREAK => 20,
- :kNEXT => 21,
- :kREDO => 22,
- :kRETRY => 23,
- :kIN => 24,
- :kDO => 25,
- :kDO_COND => 26,
- :kDO_BLOCK => 27,
- :kDO_LAMBDA => 28,
- :kRETURN => 29,
- :kYIELD => 30,
- :kSUPER => 31,
- :kSELF => 32,
- :kNIL => 33,
- :kTRUE => 34,
- :kFALSE => 35,
- :kAND => 36,
- :kOR => 37,
- :kNOT => 38,
- :kIF_MOD => 39,
- :kUNLESS_MOD => 40,
- :kWHILE_MOD => 41,
- :kUNTIL_MOD => 42,
- :kRESCUE_MOD => 43,
- :kALIAS => 44,
- :kDEFINED => 45,
- :klBEGIN => 46,
- :klEND => 47,
- :k__LINE__ => 48,
- :k__FILE__ => 49,
- :k__ENCODING__ => 50,
- :tIDENTIFIER => 51,
- :tFID => 52,
- :tGVAR => 53,
- :tIVAR => 54,
- :tCONSTANT => 55,
- :tLABEL => 56,
- :tCVAR => 57,
- :tNTH_REF => 58,
- :tBACK_REF => 59,
- :tSTRING_CONTENT => 60,
- :tINTEGER => 61,
- :tFLOAT => 62,
- :tREGEXP_END => 63,
- :tUPLUS => 64,
- :tUMINUS => 65,
- :tUMINUS_NUM => 66,
- :tPOW => 67,
- :tCMP => 68,
- :tEQ => 69,
- :tEQQ => 70,
- :tNEQ => 71,
- :tGEQ => 72,
- :tLEQ => 73,
- :tANDOP => 74,
- :tOROP => 75,
- :tMATCH => 76,
- :tNMATCH => 77,
- :tJSDOT => 78,
- :tDOT => 79,
- :tDOT2 => 80,
- :tDOT3 => 81,
- :tAREF => 82,
- :tASET => 83,
- :tLSHFT => 84,
- :tRSHFT => 85,
- :tCOLON2 => 86,
- :tCOLON3 => 87,
- :tOP_ASGN => 88,
- :tASSOC => 89,
- :tLPAREN => 90,
- :tLPAREN2 => 91,
- :tRPAREN => 92,
- :tLPAREN_ARG => 93,
- :ARRAY_BEG => 94,
- :tRBRACK => 95,
- :tLBRACE => 96,
- :tLBRACE_ARG => 97,
- :tSTAR => 98,
- :tSTAR2 => 99,
- :tAMPER => 100,
- :tAMPER2 => 101,
- :tTILDE => 102,
- :tPERCENT => 103,
- :tDIVIDE => 104,
- :tPLUS => 105,
- :tMINUS => 106,
- :tLT => 107,
- :tGT => 108,
- :tPIPE => 109,
- :tBANG => 110,
- :tCARET => 111,
- :tLCURLY => 112,
- :tRCURLY => 113,
- :tBACK_REF2 => 114,
- :tSYMBEG => 115,
- :tSTRING_BEG => 116,
- :tXSTRING_BEG => 117,
- :tREGEXP_BEG => 118,
- :tWORDS_BEG => 119,
- :tAWORDS_BEG => 120,
- :tSTRING_DBEG => 121,
- :tSTRING_DVAR => 122,
- :tSTRING_END => 123,
- :tSTRING => 124,
- :tSYMBOL => 125,
- :tNL => 126,
- :tEH => 127,
- :tCOLON => 128,
- :tCOMMA => 129,
- :tSPACE => 130,
- :tSEMI => 131,
- :tLAMBDA => 132,
- :tLAMBEG => 133,
- :tLBRACK2 => 134,
- :tLBRACK => 135,
- :tJSLBRACK => 136,
- :tDSTAR => 137,
- :tEQL => 138,
- :tLOWEST => 139,
- "-@NUM" => 140,
- "+@NUM" => 141 }
-
-racc_nt_base = 142
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "kCLASS",
- "kMODULE",
- "kDEF",
- "kUNDEF",
- "kBEGIN",
- "kRESCUE",
- "kENSURE",
- "kEND",
- "kIF",
- "kUNLESS",
- "kTHEN",
- "kELSIF",
- "kELSE",
- "kCASE",
- "kWHEN",
- "kWHILE",
- "kUNTIL",
- "kFOR",
- "kBREAK",
- "kNEXT",
- "kREDO",
- "kRETRY",
- "kIN",
- "kDO",
- "kDO_COND",
- "kDO_BLOCK",
- "kDO_LAMBDA",
- "kRETURN",
- "kYIELD",
- "kSUPER",
- "kSELF",
- "kNIL",
- "kTRUE",
- "kFALSE",
- "kAND",
- "kOR",
- "kNOT",
- "kIF_MOD",
- "kUNLESS_MOD",
- "kWHILE_MOD",
- "kUNTIL_MOD",
- "kRESCUE_MOD",
- "kALIAS",
- "kDEFINED",
- "klBEGIN",
- "klEND",
- "k__LINE__",
- "k__FILE__",
- "k__ENCODING__",
- "tIDENTIFIER",
- "tFID",
- "tGVAR",
- "tIVAR",
- "tCONSTANT",
- "tLABEL",
- "tCVAR",
- "tNTH_REF",
- "tBACK_REF",
- "tSTRING_CONTENT",
- "tINTEGER",
- "tFLOAT",
- "tREGEXP_END",
- "tUPLUS",
- "tUMINUS",
- "tUMINUS_NUM",
- "tPOW",
- "tCMP",
- "tEQ",
- "tEQQ",
- "tNEQ",
- "tGEQ",
- "tLEQ",
- "tANDOP",
- "tOROP",
- "tMATCH",
- "tNMATCH",
- "tJSDOT",
- "tDOT",
- "tDOT2",
- "tDOT3",
- "tAREF",
- "tASET",
- "tLSHFT",
- "tRSHFT",
- "tCOLON2",
- "tCOLON3",
- "tOP_ASGN",
- "tASSOC",
- "tLPAREN",
- "tLPAREN2",
- "tRPAREN",
- "tLPAREN_ARG",
- "ARRAY_BEG",
- "tRBRACK",
- "tLBRACE",
- "tLBRACE_ARG",
- "tSTAR",
- "tSTAR2",
- "tAMPER",
- "tAMPER2",
- "tTILDE",
- "tPERCENT",
- "tDIVIDE",
- "tPLUS",
- "tMINUS",
- "tLT",
- "tGT",
- "tPIPE",
- "tBANG",
- "tCARET",
- "tLCURLY",
- "tRCURLY",
- "tBACK_REF2",
- "tSYMBEG",
- "tSTRING_BEG",
- "tXSTRING_BEG",
- "tREGEXP_BEG",
- "tWORDS_BEG",
- "tAWORDS_BEG",
- "tSTRING_DBEG",
- "tSTRING_DVAR",
- "tSTRING_END",
- "tSTRING",
- "tSYMBOL",
- "tNL",
- "tEH",
- "tCOLON",
- "tCOMMA",
- "tSPACE",
- "tSEMI",
- "tLAMBDA",
- "tLAMBEG",
- "tLBRACK2",
- "tLBRACK",
- "tJSLBRACK",
- "tDSTAR",
- "tEQL",
- "tLOWEST",
- "\"-@NUM\"",
- "\"+@NUM\"",
- "$start",
- "program",
- "top_compstmt",
- "top_stmts",
- "opt_terms",
- "top_stmt",
- "terms",
- "stmt",
- "bodystmt",
- "compstmt",
- "opt_rescue",
- "opt_else",
- "opt_ensure",
- "stmts",
- "fitem",
- "undef_list",
- "expr_value",
- "lhs",
- "command_call",
- "mlhs",
- "var_lhs",
- "primary_value",
- "aref_args",
- "backref",
- "mrhs",
- "arg_value",
- "expr",
- "@1",
- "arg",
- "command",
- "block_command",
- "call_args",
- "block_call",
- "operation2",
- "command_args",
- "cmd_brace_block",
- "opt_block_var",
- "operation",
- "mlhs_basic",
- "mlhs_entry",
- "mlhs_head",
- "mlhs_item",
- "mlhs_node",
- "mlhs_post",
- "variable",
- "cname",
- "cpath",
- "fname",
- "op",
- "reswords",
- "symbol",
- "opt_nl",
- "primary",
- "none",
- "args",
- "trailer",
- "assocs",
- "paren_args",
- "opt_call_args",
- "rparen",
- "opt_paren_args",
- "opt_block_arg",
- "block_arg",
- "call_args2",
- "open_args",
- "@2",
- "literal",
- "strings",
- "xstring",
- "regexp",
- "words",
- "awords",
- "var_ref",
- "assoc_list",
- "brace_block",
- "method_call",
- "lambda",
- "then",
- "if_tail",
- "do",
- "case_body",
- "for_var",
- "superclass",
- "term",
- "f_arglist",
- "singleton",
- "dot_or_colon",
- "@3",
- "@4",
- "@5",
- "@6",
- "@7",
- "@8",
- "@9",
- "@10",
- "@11",
- "@12",
- "@13",
- "@14",
- "@15",
- "@16",
- "@17",
- "f_larglist",
- "lambda_body",
- "block_param",
- "f_block_optarg",
- "f_block_opt",
- "block_args_tail",
- "f_block_arg",
- "opt_block_args_tail",
- "f_arg",
- "f_rest_arg",
- "do_block",
- "@18",
- "operation3",
- "@19",
- "@20",
- "cases",
- "@21",
- "exc_list",
- "exc_var",
- "numeric",
- "dsym",
- "string",
- "string1",
- "string_contents",
- "xstring_contents",
- "word_list",
- "word",
- "string_content",
- "qword_list",
- "string_dvar",
- "@22",
- "@23",
- "sym",
- "f_args",
- "kwrest_mark",
- "f_kwrest",
- "f_label",
- "f_kw",
- "f_kwarg",
- "args_tail",
- "opt_f_block_arg",
- "opt_args_tail",
- "f_optarg",
- "f_norm_arg",
- "f_bad_arg",
- "f_arg_item",
- "f_margs",
- "f_marg",
- "f_marg_list",
- "f_opt",
- "restarg_mark",
- "blkarg_mark",
- "assoc" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-# reduce 1 omitted
-
-module_eval(<<'.,.,', 'opal.y', 70)
- def _reduce_2(val, _values, result)
- result = new_compstmt val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 75)
- def _reduce_3(val, _values, result)
- result = new_block
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 79)
- def _reduce_4(val, _values, result)
- result = new_block val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 83)
- def _reduce_5(val, _values, result)
- val[0] << val[2]
- result = val[0]
-
- result
- end
-.,.,
-
-# reduce 6 omitted
-
-module_eval(<<'.,.,', 'opal.y', 90)
- def _reduce_7(val, _values, result)
- result = val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 95)
- def _reduce_8(val, _values, result)
- result = new_body(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 100)
- def _reduce_9(val, _values, result)
- result = new_compstmt val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 105)
- def _reduce_10(val, _values, result)
- result = new_block
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 109)
- def _reduce_11(val, _values, result)
- result = new_block val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 113)
- def _reduce_12(val, _values, result)
- val[0] << val[2]
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 119)
- def _reduce_13(val, _values, result)
- lexer.lex_state = :expr_fname
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 123)
- def _reduce_14(val, _values, result)
- result = new_alias(val[0], val[1], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 127)
- def _reduce_15(val, _values, result)
- result = s(:valias, value(val[1]).to_sym, value(val[2]).to_sym)
-
- result
- end
-.,.,
-
-# reduce 16 omitted
-
-module_eval(<<'.,.,', 'opal.y', 132)
- def _reduce_17(val, _values, result)
- result = s(:valias, value(val[1]).to_sym, value(val[2]).to_sym)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 136)
- def _reduce_18(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 140)
- def _reduce_19(val, _values, result)
- result = new_if(val[1], val[2], val[0], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 144)
- def _reduce_20(val, _values, result)
- result = new_if(val[1], val[2], nil, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 148)
- def _reduce_21(val, _values, result)
- result = new_while(val[1], val[2], val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 152)
- def _reduce_22(val, _values, result)
- result = new_until(val[1], val[2], val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 156)
- def _reduce_23(val, _values, result)
- result = new_rescue_mod(val[1], val[0], val[2])
-
- result
- end
-.,.,
-
-# reduce 24 omitted
-
-module_eval(<<'.,.,', 'opal.y', 161)
- def _reduce_25(val, _values, result)
- result = new_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 165)
- def _reduce_26(val, _values, result)
- result = s(:masgn, val[0], s(:to_ary, val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 169)
- def _reduce_27(val, _values, result)
- result = new_op_asgn val[1], val[0], val[2]
-
- result
- end
-.,.,
-
-# reduce 28 omitted
-
-# reduce 29 omitted
-
-module_eval(<<'.,.,', 'opal.y', 175)
- def _reduce_30(val, _values, result)
- result = s(:op_asgn2, val[0], op_to_setter(val[2]), value(val[3]).to_sym, val[4])
-
- result
- end
-.,.,
-
-# reduce 31 omitted
-
-# reduce 32 omitted
-
-# reduce 33 omitted
-
-module_eval(<<'.,.,', 'opal.y', 182)
- def _reduce_34(val, _values, result)
- result = new_assign val[0], val[1], s(:svalue, val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 186)
- def _reduce_35(val, _values, result)
- result = s(:masgn, val[0], s(:to_ary, val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 190)
- def _reduce_36(val, _values, result)
- result = s(:masgn, val[0], val[2])
-
- result
- end
-.,.,
-
-# reduce 37 omitted
-
-# reduce 38 omitted
-
-module_eval(<<'.,.,', 'opal.y', 197)
- def _reduce_39(val, _values, result)
- result = s(:and, val[0], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 201)
- def _reduce_40(val, _values, result)
- result = s(:or, val[0], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 205)
- def _reduce_41(val, _values, result)
- result = new_unary_call(['!', []], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 209)
- def _reduce_42(val, _values, result)
- result = new_unary_call(val[0], val[1])
-
- result
- end
-.,.,
-
-# reduce 43 omitted
-
-# reduce 44 omitted
-
-# reduce 45 omitted
-
-# reduce 46 omitted
-
-module_eval(<<'.,.,', 'opal.y', 219)
- def _reduce_47(val, _values, result)
- result = new_return(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 223)
- def _reduce_48(val, _values, result)
- result = new_break(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 227)
- def _reduce_49(val, _values, result)
- result = new_next(val[0], val[1])
-
- result
- end
-.,.,
-
-# reduce 50 omitted
-
-# reduce 51 omitted
-
-# reduce 52 omitted
-
-# reduce 53 omitted
-
-# reduce 54 omitted
-
-module_eval(<<'.,.,', 'opal.y', 239)
- def _reduce_55(val, _values, result)
- result = new_call(nil, val[0], val[1])
-
- result
- end
-.,.,
-
-# reduce 56 omitted
-
-module_eval(<<'.,.,', 'opal.y', 244)
- def _reduce_57(val, _values, result)
- result = new_js_call(val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-# reduce 58 omitted
-
-module_eval(<<'.,.,', 'opal.y', 249)
- def _reduce_59(val, _values, result)
- result = new_call(val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-# reduce 60 omitted
-
-module_eval(<<'.,.,', 'opal.y', 254)
- def _reduce_61(val, _values, result)
- result = new_call(val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-# reduce 62 omitted
-
-module_eval(<<'.,.,', 'opal.y', 259)
- def _reduce_63(val, _values, result)
- result = new_super(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 263)
- def _reduce_64(val, _values, result)
- result = new_yield val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 268)
- def _reduce_65(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 272)
- def _reduce_66(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 277)
- def _reduce_67(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 281)
- def _reduce_68(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 286)
- def _reduce_69(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 290)
- def _reduce_70(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 294)
- def _reduce_71(val, _values, result)
- result = val[0] << s(:splat, val[2])
-
- result
- end
-.,.,
-
-# reduce 72 omitted
-
-module_eval(<<'.,.,', 'opal.y', 299)
- def _reduce_73(val, _values, result)
- result = val[0] << s(:splat)
-
- result
- end
-.,.,
-
-# reduce 74 omitted
-
-module_eval(<<'.,.,', 'opal.y', 304)
- def _reduce_75(val, _values, result)
- result = s(:array, s(:splat, val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 308)
- def _reduce_76(val, _values, result)
- result = s(:array, s(:splat))
-
- result
- end
-.,.,
-
-# reduce 77 omitted
-
-module_eval(<<'.,.,', 'opal.y', 314)
- def _reduce_78(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 318)
- def _reduce_79(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 323)
- def _reduce_80(val, _values, result)
- result = s(:array, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 327)
- def _reduce_81(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-# reduce 82 omitted
-
-# reduce 83 omitted
-
-module_eval(<<'.,.,', 'opal.y', 335)
- def _reduce_84(val, _values, result)
- result = new_assignable val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 339)
- def _reduce_85(val, _values, result)
- args = val[2] ? val[2] : []
- result = s(:attrasgn, val[0], :[]=, s(:arglist, *args))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 344)
- def _reduce_86(val, _values, result)
- result = new_call val[0], val[2], []
-
- result
- end
-.,.,
-
-# reduce 87 omitted
-
-# reduce 88 omitted
-
-# reduce 89 omitted
-
-# reduce 90 omitted
-
-# reduce 91 omitted
-
-module_eval(<<'.,.,', 'opal.y', 354)
- def _reduce_92(val, _values, result)
- result = new_assignable val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 358)
- def _reduce_93(val, _values, result)
- result = new_js_attrasgn(val[0], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 362)
- def _reduce_94(val, _values, result)
- result = new_attrasgn(val[0], :[]=, val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 366)
- def _reduce_95(val, _values, result)
- result = new_attrasgn(val[0], op_to_setter(val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 370)
- def _reduce_96(val, _values, result)
- result = new_attrasgn(val[0], op_to_setter(val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 374)
- def _reduce_97(val, _values, result)
- result = new_attrasgn(val[0], op_to_setter(val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 378)
- def _reduce_98(val, _values, result)
- result = new_colon2(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 382)
- def _reduce_99(val, _values, result)
- result = new_colon3(val[0], val[1])
-
- result
- end
-.,.,
-
-# reduce 100 omitted
-
-# reduce 101 omitted
-
-module_eval(<<'.,.,', 'opal.y', 390)
- def _reduce_102(val, _values, result)
- result = new_colon3(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 394)
- def _reduce_103(val, _values, result)
- result = new_const(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 398)
- def _reduce_104(val, _values, result)
- result = new_colon2(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-# reduce 105 omitted
-
-# reduce 106 omitted
-
-# reduce 107 omitted
-
-module_eval(<<'.,.,', 'opal.y', 406)
- def _reduce_108(val, _values, result)
- lexer.lex_state = :expr_end
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 411)
- def _reduce_109(val, _values, result)
- lexer.lex_state = :expr_end
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 417)
- def _reduce_110(val, _values, result)
- result = new_sym(val[0])
-
- result
- end
-.,.,
-
-# reduce 111 omitted
-
-module_eval(<<'.,.,', 'opal.y', 423)
- def _reduce_112(val, _values, result)
- result = s(:undef, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 427)
- def _reduce_113(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-# reduce 114 omitted
-
-# reduce 115 omitted
-
-# reduce 116 omitted
-
-# reduce 117 omitted
-
-# reduce 118 omitted
-
-# reduce 119 omitted
-
-# reduce 120 omitted
-
-# reduce 121 omitted
-
-# reduce 122 omitted
-
-# reduce 123 omitted
-
-# reduce 124 omitted
-
-# reduce 125 omitted
-
-# reduce 126 omitted
-
-# reduce 127 omitted
-
-# reduce 128 omitted
-
-# reduce 129 omitted
-
-# reduce 130 omitted
-
-# reduce 131 omitted
-
-# reduce 132 omitted
-
-# reduce 133 omitted
-
-# reduce 134 omitted
-
-# reduce 135 omitted
-
-# reduce 136 omitted
-
-# reduce 137 omitted
-
-# reduce 138 omitted
-
-# reduce 139 omitted
-
-# reduce 140 omitted
-
-# reduce 141 omitted
-
-# reduce 142 omitted
-
-# reduce 143 omitted
-
-# reduce 144 omitted
-
-# reduce 145 omitted
-
-# reduce 146 omitted
-
-# reduce 147 omitted
-
-# reduce 148 omitted
-
-# reduce 149 omitted
-
-# reduce 150 omitted
-
-# reduce 151 omitted
-
-# reduce 152 omitted
-
-# reduce 153 omitted
-
-# reduce 154 omitted
-
-# reduce 155 omitted
-
-# reduce 156 omitted
-
-# reduce 157 omitted
-
-# reduce 158 omitted
-
-# reduce 159 omitted
-
-# reduce 160 omitted
-
-# reduce 161 omitted
-
-# reduce 162 omitted
-
-# reduce 163 omitted
-
-# reduce 164 omitted
-
-# reduce 165 omitted
-
-# reduce 166 omitted
-
-# reduce 167 omitted
-
-# reduce 168 omitted
-
-# reduce 169 omitted
-
-# reduce 170 omitted
-
-# reduce 171 omitted
-
-# reduce 172 omitted
-
-# reduce 173 omitted
-
-# reduce 174 omitted
-
-# reduce 175 omitted
-
-# reduce 176 omitted
-
-# reduce 177 omitted
-
-# reduce 178 omitted
-
-# reduce 179 omitted
-
-# reduce 180 omitted
-
-# reduce 181 omitted
-
-# reduce 182 omitted
-
-# reduce 183 omitted
-
-# reduce 184 omitted
-
-# reduce 185 omitted
-
-# reduce 186 omitted
-
-# reduce 187 omitted
-
-module_eval(<<'.,.,', 'opal.y', 447)
- def _reduce_188(val, _values, result)
- result = new_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 451)
- def _reduce_189(val, _values, result)
- result = new_assign val[0], val[1], s(:rescue_mod, val[2], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 455)
- def _reduce_190(val, _values, result)
- result = new_op_asgn val[1], val[0], val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 459)
- def _reduce_191(val, _values, result)
- result = new_op_asgn1(val[0], val[2], val[4], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 463)
- def _reduce_192(val, _values, result)
- raise ".JS[...] #{val[4]} is not supported"
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 467)
- def _reduce_193(val, _values, result)
- result = s(:op_asgn2, val[0], op_to_setter(val[2]), value(val[3]).to_sym, val[4])
-
- result
- end
-.,.,
-
-# reduce 194 omitted
-
-# reduce 195 omitted
-
-# reduce 196 omitted
-
-# reduce 197 omitted
-
-# reduce 198 omitted
-
-module_eval(<<'.,.,', 'opal.y', 476)
- def _reduce_199(val, _values, result)
- result = new_irange(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 480)
- def _reduce_200(val, _values, result)
- result = new_erange(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 484)
- def _reduce_201(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 488)
- def _reduce_202(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 492)
- def _reduce_203(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 496)
- def _reduce_204(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 500)
- def _reduce_205(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 504)
- def _reduce_206(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 508)
- def _reduce_207(val, _values, result)
- result = new_call new_binary_call(new_int(val[1]), val[2], val[3]), [:"-@", []], []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 512)
- def _reduce_208(val, _values, result)
- result = new_call new_binary_call(new_float(val[1]), val[2], val[3]), [:"-@", []], []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 516)
- def _reduce_209(val, _values, result)
- result = new_call val[1], [:"+@", []], []
- if [:int, :float].include? val[1].type
- result = val[1]
- end
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 523)
- def _reduce_210(val, _values, result)
- result = new_call val[1], [:"-@", []], []
- if val[1].type == :int
- val[1][1] = -val[1][1]
- result = val[1]
- elsif val[1].type == :float
- val[1][1] = -val[1][1].to_f
- result = val[1]
- end
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 534)
- def _reduce_211(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 538)
- def _reduce_212(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 542)
- def _reduce_213(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 546)
- def _reduce_214(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 550)
- def _reduce_215(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 554)
- def _reduce_216(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 558)
- def _reduce_217(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 562)
- def _reduce_218(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 566)
- def _reduce_219(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 570)
- def _reduce_220(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 574)
- def _reduce_221(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 578)
- def _reduce_222(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 582)
- def _reduce_223(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 586)
- def _reduce_224(val, _values, result)
- result = new_unary_call(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 590)
- def _reduce_225(val, _values, result)
- result = new_unary_call(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 594)
- def _reduce_226(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 598)
- def _reduce_227(val, _values, result)
- result = new_binary_call(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 602)
- def _reduce_228(val, _values, result)
- result = new_and(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 606)
- def _reduce_229(val, _values, result)
- result = new_or(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 610)
- def _reduce_230(val, _values, result)
- result = s(:defined, val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 614)
- def _reduce_231(val, _values, result)
- result = new_if(val[1], val[0], val[2], val[4])
-
- result
- end
-.,.,
-
-# reduce 232 omitted
-
-# reduce 233 omitted
-
-module_eval(<<'.,.,', 'opal.y', 622)
- def _reduce_234(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 626)
- def _reduce_235(val, _values, result)
- result = [val[0]]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 630)
- def _reduce_236(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 634)
- def _reduce_237(val, _values, result)
- val[0] << s(:hash, *val[2])
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 639)
- def _reduce_238(val, _values, result)
- result = [s(:hash, *val[0])]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 644)
- def _reduce_239(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-# reduce 240 omitted
-
-module_eval(<<'.,.,', 'opal.y', 651)
- def _reduce_241(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-# reduce 242 omitted
-
-module_eval(<<'.,.,', 'opal.y', 657)
- def _reduce_243(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-# reduce 244 omitted
-
-module_eval(<<'.,.,', 'opal.y', 662)
- def _reduce_245(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 666)
- def _reduce_246(val, _values, result)
- result = val[0]
- result << new_hash(nil, val[2], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 671)
- def _reduce_247(val, _values, result)
- result = [new_hash(nil, val[0], nil)]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 676)
- def _reduce_248(val, _values, result)
- result = [val[0]]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 680)
- def _reduce_249(val, _values, result)
- result = val[0]
- add_block_pass val[0], val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 685)
- def _reduce_250(val, _values, result)
- result = [new_hash(nil, val[0], nil)]
- add_block_pass result, val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 690)
- def _reduce_251(val, _values, result)
- result = val[0]
- result << new_hash(nil, val[2], nil)
- result << val[3] if val[3]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 696)
- def _reduce_252(val, _values, result)
- result = []
- add_block_pass result, val[0]
-
- result
- end
-.,.,
-
-# reduce 253 omitted
-
-# reduce 254 omitted
-
-module_eval(<<'.,.,', 'opal.y', 704)
- def _reduce_255(val, _values, result)
- lexer.cmdarg_push 1
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 708)
- def _reduce_256(val, _values, result)
- lexer.cmdarg_pop
- result = val[1]
-
- result
- end
-.,.,
-
-# reduce 257 omitted
-
-module_eval(<<'.,.,', 'opal.y', 715)
- def _reduce_258(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 719)
- def _reduce_259(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 724)
- def _reduce_260(val, _values, result)
- result = new_block_pass(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 729)
- def _reduce_261(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 733)
- def _reduce_262(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 738)
- def _reduce_263(val, _values, result)
- result = [val[0]]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 742)
- def _reduce_264(val, _values, result)
- result = [new_splat(val[0], val[1])]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 746)
- def _reduce_265(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 750)
- def _reduce_266(val, _values, result)
- result = val[0] << new_splat(val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 755)
- def _reduce_267(val, _values, result)
- val[0] << val[2]
- result = s(:array, *val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 760)
- def _reduce_268(val, _values, result)
- val[0] << s(:splat, val[3])
- result = s(:array, *val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 765)
- def _reduce_269(val, _values, result)
- result = s(:splat, val[1])
-
- result
- end
-.,.,
-
-# reduce 270 omitted
-
-# reduce 271 omitted
-
-# reduce 272 omitted
-
-# reduce 273 omitted
-
-# reduce 274 omitted
-
-# reduce 275 omitted
-
-# reduce 276 omitted
-
-# reduce 277 omitted
-
-# reduce 278 omitted
-
-module_eval(<<'.,.,', 'opal.y', 779)
- def _reduce_279(val, _values, result)
- result = lexer.line
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 783)
- def _reduce_280(val, _values, result)
- result = s(:begin, val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 787)
- def _reduce_281(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 791)
- def _reduce_282(val, _values, result)
- result = new_paren(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 795)
- def _reduce_283(val, _values, result)
- result = new_colon2(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 799)
- def _reduce_284(val, _values, result)
- result = new_colon3(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 803)
- def _reduce_285(val, _values, result)
- result = new_call val[0], [:[], []], val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 807)
- def _reduce_286(val, _values, result)
- result = new_js_call val[0], [:[], []], val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 811)
- def _reduce_287(val, _values, result)
- result = new_array(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 815)
- def _reduce_288(val, _values, result)
- result = new_hash(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 819)
- def _reduce_289(val, _values, result)
- result = new_return(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 823)
- def _reduce_290(val, _values, result)
- result = new_yield val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 827)
- def _reduce_291(val, _values, result)
- result = s(:yield)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 831)
- def _reduce_292(val, _values, result)
- result = s(:yield)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 835)
- def _reduce_293(val, _values, result)
- result = s(:defined, val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 839)
- def _reduce_294(val, _values, result)
- result = new_unary_call(['!', []], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 843)
- def _reduce_295(val, _values, result)
- result = new_unary_call(['!', []], new_nil(val[0]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 847)
- def _reduce_296(val, _values, result)
- result = new_call(nil, val[0], [])
- result << val[1]
-
- result
- end
-.,.,
-
-# reduce 297 omitted
-
-module_eval(<<'.,.,', 'opal.y', 853)
- def _reduce_298(val, _values, result)
- val[0] << val[1]
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 858)
- def _reduce_299(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 862)
- def _reduce_300(val, _values, result)
- result = new_if(val[0], val[1], val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 866)
- def _reduce_301(val, _values, result)
- result = new_if(val[0], val[1], val[4], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 870)
- def _reduce_302(val, _values, result)
- lexer.cond_push 1
- result = lexer.line
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 875)
- def _reduce_303(val, _values, result)
- lexer.cond_pop
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 879)
- def _reduce_304(val, _values, result)
- result = s(:while, val[2], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 883)
- def _reduce_305(val, _values, result)
- lexer.cond_push 1
- result = lexer.line
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 888)
- def _reduce_306(val, _values, result)
- lexer.cond_pop
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 892)
- def _reduce_307(val, _values, result)
- result = s(:until, val[2], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 896)
- def _reduce_308(val, _values, result)
- result = s(:case, val[1], *val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 900)
- def _reduce_309(val, _values, result)
- result = s(:case, nil, *val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 904)
- def _reduce_310(val, _values, result)
- result = s(:case, nil, val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 908)
- def _reduce_311(val, _values, result)
- lexer.cond_push 1
- result = lexer.line
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 913)
- def _reduce_312(val, _values, result)
- lexer.cond_pop
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 917)
- def _reduce_313(val, _values, result)
- result = s(:for, val[4], val[1], val[7])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 921)
- def _reduce_314(val, _values, result)
- # ...
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 925)
- def _reduce_315(val, _values, result)
- result = new_class val[0], val[1], val[2], val[4], val[5]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 929)
- def _reduce_316(val, _values, result)
- result = lexer.line
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 933)
- def _reduce_317(val, _values, result)
- # ...
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 937)
- def _reduce_318(val, _values, result)
- result = new_sclass(val[0], val[3], val[6], val[7])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 941)
- def _reduce_319(val, _values, result)
- result = lexer.line
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 945)
- def _reduce_320(val, _values, result)
- # ...
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 949)
- def _reduce_321(val, _values, result)
- result = new_module(val[0], val[2], val[4], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 953)
- def _reduce_322(val, _values, result)
- push_scope
- lexer.lex_state = :expr_endfn
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 958)
- def _reduce_323(val, _values, result)
- result = new_def(val[0], nil, val[1], val[3], val[4], val[5])
- pop_scope
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 963)
- def _reduce_324(val, _values, result)
- lexer.lex_state = :expr_fname
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 967)
- def _reduce_325(val, _values, result)
- push_scope
- lexer.lex_state = :expr_endfn
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 972)
- def _reduce_326(val, _values, result)
- result = new_def(val[0], val[1], val[4], val[6], val[7], val[8])
- pop_scope
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 977)
- def _reduce_327(val, _values, result)
- result = new_break(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 981)
- def _reduce_328(val, _values, result)
- result = s(:next)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 985)
- def _reduce_329(val, _values, result)
- result = s(:redo)
-
- result
- end
-.,.,
-
-# reduce 330 omitted
-
-# reduce 331 omitted
-
-# reduce 332 omitted
-
-# reduce 333 omitted
-
-# reduce 334 omitted
-
-# reduce 335 omitted
-
-# reduce 336 omitted
-
-# reduce 337 omitted
-
-# reduce 338 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1002)
- def _reduce_339(val, _values, result)
- result = new_call nil, [:lambda, []], []
- result << new_iter(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1008)
- def _reduce_340(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1012)
- def _reduce_341(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-# reduce 342 omitted
-
-# reduce 343 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1019)
- def _reduce_344(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1023)
- def _reduce_345(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1028)
- def _reduce_346(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1032)
- def _reduce_347(val, _values, result)
- result = new_if(val[0], val[1], val[3], val[4])
-
- result
- end
-.,.,
-
-# reduce 348 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1038)
- def _reduce_349(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1043)
- def _reduce_350(val, _values, result)
- result = s(:block, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1047)
- def _reduce_351(val, _values, result)
- val[0] << val[2]
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1053)
- def _reduce_352(val, _values, result)
- result = new_assign(new_assignable(new_ident(
- val[0])), val[1], val[2])
-
- result
- end
-.,.,
-
-# reduce 353 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1060)
- def _reduce_354(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1064)
- def _reduce_355(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1068)
- def _reduce_356(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1073)
- def _reduce_357(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1078)
- def _reduce_358(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1082)
- def _reduce_359(val, _values, result)
- nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1087)
- def _reduce_360(val, _values, result)
- result = new_block_args(val[0], val[2], val[4], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1091)
- def _reduce_361(val, _values, result)
- result = new_block_args(val[0], val[2], nil, val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1095)
- def _reduce_362(val, _values, result)
- result = new_block_args(val[0], nil, val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1099)
- def _reduce_363(val, _values, result)
- result = new_block_args(val[0], nil, nil, nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1103)
- def _reduce_364(val, _values, result)
- result = new_block_args(val[0], nil, nil, val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1107)
- def _reduce_365(val, _values, result)
- result = new_block_args(nil, val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1111)
- def _reduce_366(val, _values, result)
- result = new_block_args(nil, val[0], nil, val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1115)
- def _reduce_367(val, _values, result)
- result = new_block_args(nil, nil, val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1119)
- def _reduce_368(val, _values, result)
- result = new_block_args(nil, nil, nil, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1124)
- def _reduce_369(val, _values, result)
- push_scope :block
- result = lexer.line
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1129)
- def _reduce_370(val, _values, result)
- result = new_iter val[2], val[3]
- pop_scope
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1135)
- def _reduce_371(val, _values, result)
- val[0] << val[1]
- result = val[0]
-
- result
- end
-.,.,
-
-# reduce 372 omitted
-
-# reduce 373 omitted
-
-# reduce 374 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1144)
- def _reduce_375(val, _values, result)
- result = new_call(nil, val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1148)
- def _reduce_376(val, _values, result)
- result = new_call(val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1152)
- def _reduce_377(val, _values, result)
- result = new_js_call(val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1156)
- def _reduce_378(val, _values, result)
- result = new_call(val[0], [:call, []], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1160)
- def _reduce_379(val, _values, result)
- result = new_call(val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1164)
- def _reduce_380(val, _values, result)
- result = new_call(val[0], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1168)
- def _reduce_381(val, _values, result)
- result = new_super(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1172)
- def _reduce_382(val, _values, result)
- result = new_super(val[0], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1177)
- def _reduce_383(val, _values, result)
- push_scope :block
- result = lexer.line
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1182)
- def _reduce_384(val, _values, result)
- result = new_iter val[2], val[3]
- pop_scope
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1187)
- def _reduce_385(val, _values, result)
- push_scope :block
- result = lexer.line
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1192)
- def _reduce_386(val, _values, result)
- result = new_iter val[2], val[3]
- pop_scope
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1198)
- def _reduce_387(val, _values, result)
- result = lexer.line
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1202)
- def _reduce_388(val, _values, result)
- part = s(:when, s(:array, *val[2]), val[4])
- result = [part]
- result.push(*val[5]) if val[5]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1209)
- def _reduce_389(val, _values, result)
- result = [val[0]]
-
- result
- end
-.,.,
-
-# reduce 390 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1215)
- def _reduce_391(val, _values, result)
- exc = val[1] || s(:array)
- exc << new_assign(val[2], val[2], s(:gvar, '$!'.intern)) if val[2]
- result = [s(:resbody, exc, val[4])]
- result.push val[5].first if val[5]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1222)
- def _reduce_392(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1227)
- def _reduce_393(val, _values, result)
- result = s(:array, val[0])
-
- result
- end
-.,.,
-
-# reduce 394 omitted
-
-# reduce 395 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1234)
- def _reduce_396(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1238)
- def _reduce_397(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1243)
- def _reduce_398(val, _values, result)
- result = val[1].nil? ? s(:nil) : val[1]
-
- result
- end
-.,.,
-
-# reduce 399 omitted
-
-# reduce 400 omitted
-
-# reduce 401 omitted
-
-# reduce 402 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1253)
- def _reduce_403(val, _values, result)
- result = new_str val[0]
-
- result
- end
-.,.,
-
-# reduce 404 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1259)
- def _reduce_405(val, _values, result)
- result = str_append val[0], val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1264)
- def _reduce_406(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1268)
- def _reduce_407(val, _values, result)
- result = s(:str, value(val[0]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1273)
- def _reduce_408(val, _values, result)
- result = new_xstr(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1278)
- def _reduce_409(val, _values, result)
- result = new_regexp val[1], val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1283)
- def _reduce_410(val, _values, result)
- result = s(:array)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1287)
- def _reduce_411(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1292)
- def _reduce_412(val, _values, result)
- result = s(:array)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1296)
- def _reduce_413(val, _values, result)
- part = val[1]
- part = s(:dstr, "", val[1]) if part.type == :evstr
- result = val[0] << part
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1303)
- def _reduce_414(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1307)
- def _reduce_415(val, _values, result)
- result = val[0].concat([val[1]])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1312)
- def _reduce_416(val, _values, result)
- result = s(:array)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1316)
- def _reduce_417(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1321)
- def _reduce_418(val, _values, result)
- result = s(:array)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1325)
- def _reduce_419(val, _values, result)
- result = val[0] << s(:str, value(val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1330)
- def _reduce_420(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1334)
- def _reduce_421(val, _values, result)
- result = str_append val[0], val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1339)
- def _reduce_422(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1343)
- def _reduce_423(val, _values, result)
- result = str_append val[0], val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1348)
- def _reduce_424(val, _values, result)
- result = new_str_content(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1352)
- def _reduce_425(val, _values, result)
- result = lexer.strterm
- lexer.strterm = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1357)
- def _reduce_426(val, _values, result)
- lexer.strterm = val[1]
- result = new_evstr(val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1362)
- def _reduce_427(val, _values, result)
- lexer.cond_push 0
- lexer.cmdarg_push 0
- result = lexer.strterm
- lexer.strterm = nil
- lexer.lex_state = :expr_beg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1370)
- def _reduce_428(val, _values, result)
- lexer.strterm = val[1]
- lexer.cond_lexpop
- lexer.cmdarg_lexpop
- result = new_evstr(val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1378)
- def _reduce_429(val, _values, result)
- result = new_gvar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1382)
- def _reduce_430(val, _values, result)
- result = new_ivar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1386)
- def _reduce_431(val, _values, result)
- result = new_cvar(val[0])
-
- result
- end
-.,.,
-
-# reduce 432 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1393)
- def _reduce_433(val, _values, result)
- result = new_sym(val[1])
- lexer.lex_state = :expr_end
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1398)
- def _reduce_434(val, _values, result)
- result = new_sym(val[0])
-
- result
- end
-.,.,
-
-# reduce 435 omitted
-
-# reduce 436 omitted
-
-# reduce 437 omitted
-
-# reduce 438 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1408)
- def _reduce_439(val, _values, result)
- result = new_dsym val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1413)
- def _reduce_440(val, _values, result)
- result = new_int(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1417)
- def _reduce_441(val, _values, result)
- result = new_float(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1421)
- def _reduce_442(val, _values, result)
- result = negate_num(new_int(val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1425)
- def _reduce_443(val, _values, result)
- result = negate_num(new_float(val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1429)
- def _reduce_444(val, _values, result)
- result = new_int(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1433)
- def _reduce_445(val, _values, result)
- result = new_float(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1438)
- def _reduce_446(val, _values, result)
- result = new_ident(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1442)
- def _reduce_447(val, _values, result)
- result = new_ivar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1446)
- def _reduce_448(val, _values, result)
- result = new_gvar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1450)
- def _reduce_449(val, _values, result)
- result = new_const(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1454)
- def _reduce_450(val, _values, result)
- result = new_cvar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1458)
- def _reduce_451(val, _values, result)
- result = new_nil(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1462)
- def _reduce_452(val, _values, result)
- result = new_self(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1466)
- def _reduce_453(val, _values, result)
- result = new_true(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1470)
- def _reduce_454(val, _values, result)
- result = new_false(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1474)
- def _reduce_455(val, _values, result)
- result = new___FILE__(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1478)
- def _reduce_456(val, _values, result)
- result = new___LINE__(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1483)
- def _reduce_457(val, _values, result)
- result = new_var_ref(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1488)
- def _reduce_458(val, _values, result)
- result = new_assignable val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1493)
- def _reduce_459(val, _values, result)
- result = s(:nth_ref, value(val[0]))
-
- result
- end
-.,.,
-
-# reduce 460 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1499)
- def _reduce_461(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1503)
- def _reduce_462(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1507)
- def _reduce_463(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1512)
- def _reduce_464(val, _values, result)
- result = val[1]
- lexer.lex_state = :expr_beg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1517)
- def _reduce_465(val, _values, result)
- result = val[0]
- lexer.lex_state = :expr_beg
-
- result
- end
-.,.,
-
-# reduce 466 omitted
-
-# reduce 467 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1526)
- def _reduce_468(val, _values, result)
- result = new_kwrestarg(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1530)
- def _reduce_469(val, _values, result)
- result = new_kwrestarg()
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1535)
- def _reduce_470(val, _values, result)
- result = new_sym(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1540)
- def _reduce_471(val, _values, result)
- result = new_kwoptarg(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1544)
- def _reduce_472(val, _values, result)
- result = new_kwarg(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1549)
- def _reduce_473(val, _values, result)
- result = [val[0]]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1553)
- def _reduce_474(val, _values, result)
- result = val[0]
- result << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1559)
- def _reduce_475(val, _values, result)
- result = new_args_tail(val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1563)
- def _reduce_476(val, _values, result)
- result = new_args_tail(val[0], nil, val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1567)
- def _reduce_477(val, _values, result)
- result = new_args_tail(nil, val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1571)
- def _reduce_478(val, _values, result)
- result = new_args_tail(nil, nil, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1576)
- def _reduce_479(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1580)
- def _reduce_480(val, _values, result)
- result = new_args_tail(nil, nil, nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1585)
- def _reduce_481(val, _values, result)
- result = new_args(val[0], val[2], val[4], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1589)
- def _reduce_482(val, _values, result)
- result = new_args(val[0], val[2], nil, val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1593)
- def _reduce_483(val, _values, result)
- result = new_args(val[0], nil, val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1597)
- def _reduce_484(val, _values, result)
- result = new_args(val[0], nil, nil, val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1601)
- def _reduce_485(val, _values, result)
- result = new_args(nil, val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1605)
- def _reduce_486(val, _values, result)
- result = new_args(nil, val[0], nil, val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1609)
- def _reduce_487(val, _values, result)
- result = new_args(nil, nil, val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1613)
- def _reduce_488(val, _values, result)
- result = new_args(nil, nil, nil, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1617)
- def _reduce_489(val, _values, result)
- result = new_args(nil, nil, nil, nil)
-
- result
- end
-.,.,
-
-# reduce 490 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1623)
- def _reduce_491(val, _values, result)
- result = value(val[0]).to_sym
- scope.add_local result
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1629)
- def _reduce_492(val, _values, result)
- raise 'formal argument cannot be a constant'
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1633)
- def _reduce_493(val, _values, result)
- raise 'formal argument cannot be an instance variable'
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1637)
- def _reduce_494(val, _values, result)
- raise 'formal argument cannot be a class variable'
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1641)
- def _reduce_495(val, _values, result)
- raise 'formal argument cannot be a global variable'
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1646)
- def _reduce_496(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1650)
- def _reduce_497(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-# reduce 498 omitted
-
-# reduce 499 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1658)
- def _reduce_500(val, _values, result)
- result = s(:lasgn, val[0])
-
- result
- end
-.,.,
-
-# reduce 501 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1664)
- def _reduce_502(val, _values, result)
- result = s(:array, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1668)
- def _reduce_503(val, _values, result)
- val[0] << val[2]
- result = val[0]
-
- result
- end
-.,.,
-
-# reduce 504 omitted
-
-# reduce 505 omitted
-
-# reduce 506 omitted
-
-# reduce 507 omitted
-
-# reduce 508 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1680)
- def _reduce_509(val, _values, result)
- result = [val[0]]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1684)
- def _reduce_510(val, _values, result)
- val[0] << val[2]
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1690)
- def _reduce_511(val, _values, result)
- result = new_assign(new_assignable(new_ident(val[0])), val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1695)
- def _reduce_512(val, _values, result)
- result = s(:block, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1699)
- def _reduce_513(val, _values, result)
- result = val[0]
- val[0] << val[2]
-
- result
- end
-.,.,
-
-# reduce 514 omitted
-
-# reduce 515 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1708)
- def _reduce_516(val, _values, result)
- result = "*#{value(val[1])}".to_sym
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1712)
- def _reduce_517(val, _values, result)
- result = :"*"
-
- result
- end
-.,.,
-
-# reduce 518 omitted
-
-# reduce 519 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1720)
- def _reduce_520(val, _values, result)
- result = "&#{value(val[1])}".to_sym
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1725)
- def _reduce_521(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1729)
- def _reduce_522(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1734)
- def _reduce_523(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1738)
- def _reduce_524(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1743)
- def _reduce_525(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1747)
- def _reduce_526(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1752)
- def _reduce_527(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1756)
- def _reduce_528(val, _values, result)
- result = val[0].push(*val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1761)
- def _reduce_529(val, _values, result)
- result = [val[0], val[2]]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'opal.y', 1765)
- def _reduce_530(val, _values, result)
- result = [new_sym(val[0]), val[1]]
-
- result
- end
-.,.,
-
-# reduce 531 omitted
-
-# reduce 532 omitted
-
-# reduce 533 omitted
-
-# reduce 534 omitted
-
-# reduce 535 omitted
-
-# reduce 536 omitted
-
-# reduce 537 omitted
-
-# reduce 538 omitted
-
-# reduce 539 omitted
-
-# reduce 540 omitted
-
-# reduce 541 omitted
-
-# reduce 542 omitted
-
-# reduce 543 omitted
-
-# reduce 544 omitted
-
-# reduce 545 omitted
-
-# reduce 546 omitted
-
-# reduce 547 omitted
-
-# reduce 548 omitted
-
-# reduce 549 omitted
-
-# reduce 550 omitted
-
-# reduce 551 omitted
-
-# reduce 552 omitted
-
-# reduce 553 omitted
-
-module_eval(<<'.,.,', 'opal.y', 1802)
- def _reduce_554(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module Opal
diff --git a/test/racc/regress/php_serialization b/test/racc/regress/php_serialization
deleted file mode 100644
index e412db1cc8..0000000000
--- a/test/racc/regress/php_serialization
+++ /dev/null
@@ -1,336 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-require 'php_serialization/tokenizer'
-
-module PhpSerialization
- class Unserializer < Racc::Parser
-
-module_eval(<<'...end php_serialization.y/module_eval...', 'php_serialization.y', 84)
- def initialize(tokenizer_klass = Tokenizer)
- @tokenizer_klass = tokenizer_klass
- end
-
- def run(string)
- @tokenizer = @tokenizer_klass.new(string)
- yyparse(@tokenizer, :each)
- return @object
- ensure
- @tokenizer = nil
- end
-
- def next_token
- @tokenizer.next_token
- end
-...end php_serialization.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- 9, 10, 16, 17, 11, 12, 13, 18, 14, 9,
- 10, 15, 19, 11, 12, 13, 20, 14, 21, 46,
- 15, 9, 10, 22, 23, 11, 12, 13, 24, 14,
- 9, 10, 15, 25, 11, 12, 13, 26, 14, 27,
- 51, 15, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 43, 47, 49 ]
-
-racc_action_check = [
- 0, 0, 1, 2, 0, 0, 0, 3, 0, 42,
- 42, 0, 4, 42, 42, 42, 5, 42, 6, 42,
- 42, 45, 45, 10, 11, 45, 45, 45, 12, 45,
- 50, 50, 45, 13, 50, 50, 50, 14, 50, 15,
- 50, 50, 16, 22, 23, 24, 25, 26, 27, 32,
- 33, 34, 35, 36, 37, 39, 41, 43, 47 ]
-
-racc_action_pointer = [
- -3, 2, 1, 5, 10, 14, 16, nil, nil, nil,
- 18, 19, 23, 28, 32, 34, 42, nil, nil, nil,
- nil, nil, 37, 38, 39, 40, 41, 42, nil, nil,
- nil, nil, 44, 45, 46, 42, 43, 42, nil, 50,
- nil, 50, 6, 52, nil, 18, nil, 46, nil, nil,
- 27, nil ]
-
-racc_action_default = [
- -18, -18, -18, -18, -18, -18, -18, -6, -7, -8,
- -18, -18, -18, -18, -18, -18, -18, -1, -2, -3,
- -4, -5, -18, -18, -18, -18, -18, -18, 52, -9,
- -10, -11, -18, -18, -18, -18, -18, -18, -12, -18,
- -15, -18, -18, -18, -14, -18, -17, -18, -16, -15,
- -18, -13 ]
-
-racc_goto_table = [
- 1, 42, nil, nil, nil, nil, nil, nil, nil, nil,
- 50, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 48 ]
-
-racc_goto_check = [
- 1, 9, nil, nil, nil, nil, nil, nil, nil, nil,
- 9, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 1 ]
-
-racc_goto_pointer = [
- nil, 0, nil, nil, nil, nil, nil, nil, nil, -39,
- nil ]
-
-racc_goto_default = [
- nil, 45, 2, 3, 4, 5, 6, 7, 8, nil,
- 44 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 2, 16, :_reduce_1,
- 2, 16, :_reduce_2,
- 2, 16, :_reduce_3,
- 2, 16, :_reduce_4,
- 2, 16, :_reduce_5,
- 1, 16, :_reduce_6,
- 1, 16, :_reduce_7,
- 1, 17, :_reduce_8,
- 3, 18, :_reduce_9,
- 3, 19, :_reduce_10,
- 3, 20, :_reduce_11,
- 5, 21, :_reduce_12,
- 11, 23, :_reduce_13,
- 2, 24, :_reduce_14,
- 0, 24, :_reduce_15,
- 2, 25, :_reduce_16,
- 7, 22, :_reduce_17 ]
-
-racc_reduce_n = 18
-
-racc_shift_n = 52
-
-racc_token_table = {
- false => 0,
- :error => 1,
- ";" => 2,
- "N" => 3,
- "b" => 4,
- ":" => 5,
- :NUMBER => 6,
- "i" => 7,
- "d" => 8,
- "s" => 9,
- :STRING => 10,
- "O" => 11,
- "{" => 12,
- "}" => 13,
- "a" => 14 }
-
-racc_nt_base = 15
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "\";\"",
- "\"N\"",
- "\"b\"",
- "\":\"",
- "NUMBER",
- "\"i\"",
- "\"d\"",
- "\"s\"",
- "STRING",
- "\"O\"",
- "\"{\"",
- "\"}\"",
- "\"a\"",
- "$start",
- "data",
- "null",
- "bool",
- "integer",
- "double",
- "string",
- "assoc_array",
- "object",
- "attribute_list",
- "attribute" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'php_serialization.y', 6)
- def _reduce_1(val, _values, result)
- @object = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 7)
- def _reduce_2(val, _values, result)
- @object = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 8)
- def _reduce_3(val, _values, result)
- @object = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 9)
- def _reduce_4(val, _values, result)
- @object = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 10)
- def _reduce_5(val, _values, result)
- @object = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 11)
- def _reduce_6(val, _values, result)
- @object = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 12)
- def _reduce_7(val, _values, result)
- @object = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 15)
- def _reduce_8(val, _values, result)
- result = nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 18)
- def _reduce_9(val, _values, result)
- result = Integer(val[2]) > 0
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 21)
- def _reduce_10(val, _values, result)
- result = Integer(val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 24)
- def _reduce_11(val, _values, result)
- result = Float(val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 27)
- def _reduce_12(val, _values, result)
- result = val[4]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 32)
- def _reduce_13(val, _values, result)
- if eval("defined?(#{val[4]})")
- result = Object.const_get(val[4]).new
-
- val[9].each do |(attr_name, value)|
- # Protected and private attributes will have a \0..\0 prefix
- attr_name = attr_name.gsub(/\A\\0[^\\]+\\0/, '')
- result.instance_variable_set("@#{attr_name}", value)
- end
- else
- klass_name = val[4].gsub(/^Struct::/, '')
- attr_names, values = [], []
-
- val[9].each do |(attr_name, value)|
- # Protected and private attributes will have a \0..\0 prefix
- attr_names << attr_name.gsub(/\A\\0[^\\]+\\0/, '')
- values << value
- end
-
- result = Struct.new(klass_name, *attr_names).new(*values)
- result.instance_variable_set("@_php_class", klass_name)
- end
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 56)
- def _reduce_14(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 57)
- def _reduce_15(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 60)
- def _reduce_16(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'php_serialization.y', 65)
- def _reduce_17(val, _values, result)
- # Checks if the keys are a sequence of integers
- idx = -1
- arr = val[5].all? { |(k,v)| k == (idx += 1) }
-
- if arr
- result = val[5].map { |(k,v)| v }
- else
- result = Hash[val[5]]
- end
-
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Unserializer
-end # module PhpSerialization
diff --git a/test/racc/regress/riml b/test/racc/regress/riml
deleted file mode 100644
index 965afc31f5..0000000000
--- a/test/racc/regress/riml
+++ /dev/null
@@ -1,3283 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
- require File.expand_path("../lexer", __FILE__)
- require File.expand_path("../nodes", __FILE__)
- require File.expand_path("../errors", __FILE__)
- require File.expand_path("../ast_rewriter", __FILE__)
-module Riml
- class Parser < Racc::Parser
-
-module_eval(<<'...end riml.y/module_eval...', 'riml.y', 592)
- # This code will be put as-is in the parser class
-
- attr_accessor :ast_rewriter
- attr_writer :options
-
- # The Parser and AST_Rewriter share this same hash of options
- def options
- @options ||= {}
- end
-
- def self.ast_cache
- @ast_cache
- end
- @ast_cache = {}
-
- # parses tokens or code into output nodes
- def parse(object, ast_rewriter = Riml::AST_Rewriter.new, filename = nil, included = false)
- if (ast = self.class.ast_cache[filename])
- else
- if tokens?(object)
- @tokens = object
- elsif code?(object)
- @lexer = Riml::Lexer.new(object, filename, true)
- end
-
- begin
- ast = do_parse
- rescue Racc::ParseError => e
- raise unless @lexer
- if (invalid_token = @lexer.prev_token_is_keyword?)
- warning = "#{invalid_token.inspect} is a keyword, and cannot " \
- "be used as a variable name"
- end
- error_msg = e.message
- error_msg << "\nWARNING: #{warning}" if warning
- error = Riml::ParseError.new(error_msg, @lexer.filename, @lexer.lineno)
- raise error
- end
- self.class.ast_cache[filename] = ast if filename
- end
- @ast_rewriter ||= ast_rewriter
- return ast unless @ast_rewriter
- @ast_rewriter.ast = ast.dup
- @ast_rewriter.options ||= options
- @ast_rewriter.rewrite(filename, included)
- @ast_rewriter.ast
- end
-
- # get the next token from either the list of tokens provided, or
- # the lexer getting the next token
- def next_token
- return @tokens.shift unless @lexer
- token = @lexer.next_token
- if token && @lexer.parser_info
- @current_parser_info = token.pop
- end
- token
- end
-
- private
-
- def tokens?(object)
- Array === object
- end
-
- def code?(object)
- String === object
- end
-
- def make_node(racc_val)
- node = yield racc_val
- node.parser_info = @current_parser_info
- node
- end
-...end riml.y/module_eval...
-##### State transition tables begin ###
-
-clist = [
-'135,265,60,139,136,211,417,418,48,47,411,211,448,274,146,56,199,89,272',
-'60,273,270,409,271,37,46,48,47,37,49,44,45,392,412,37,449,384,60,50',
-'70,316,61,386,385,317,62,63,129,130,132,127,128,131,115,116,117,121',
-'122,123,118,119,120,124,125,126,102,104,103,109,111,110,112,114,113',
-'106,108,107,133,134,101,100,137,171,80,38,173,37,81,38,82,85,83,84,87',
-'38,105,86,37,75,76,153,152,57,56,88,89,77,37,90,58,59,78,37,46,48,47',
-'91,49,44,45,64,72,73,-116,161,60,50,70,79,61,272,37,92,62,63,271,48',
-'47,-178,-178,-178,-178,211,147,211,211,38,60,-43,-43,153,152,329,409',
-'99,409,409,38,331,153,152,-42,-42,161,60,50,70,38,139,313,29,313,38',
-'52,80,54,164,277,81,277,82,85,83,84,87,279,279,86,149,75,76,38,182,57',
-'56,88,89,77,149,90,58,59,78,37,46,48,47,91,49,44,45,64,72,73,-116,164',
-'60,50,70,79,61,164,60,164,62,63,-204,277,149,164,279,164,-203,305,149',
-'366,141,164,164,-44,-44,129,130,132,-85,-85,-85,-85,142,-48,-48,-116',
-'258,60,50,70,-99,-98,60,50,70,29,149,38,52,80,54,371,149,81,52,82,85',
-'83,84,87,149,139,86,164,75,76,164,139,57,56,88,89,77,105,90,58,59,78',
-'37,46,48,47,91,49,44,45,64,72,73,-99,-98,60,50,70,79,61,-46,-46,370',
-'62,63,-175,-175,-175,-175,139,129,130,132,-47,-47,-45,-45,433,195,432',
-'129,130,132,127,128,131,115,116,117,121,122,123,118,119,120,124,125',
-'126,164,354,29,211,38,52,80,54,153,152,81,60,82,85,83,84,87,149,60,86',
-'105,75,76,417,437,57,56,88,89,77,105,90,58,59,78,215,46,48,47,91,49',
-'44,45,64,72,73,-116,216,60,50,70,79,61,139,218,319,62,63,-175,-175,-175',
-'-175,-178,-178,-178,-178,211,147,48,47,211,49,48,47,262,49,-176,-176',
-'-176,-176,263,320,191,192,193,194,267,129,130,132,127,128,131,29,269',
-'269,52,269,54,129,130,132,127,128,131,115,116,117,121,122,123,118,119',
-'120,124,125,126,102,104,103,109,111,110,112,114,113,106,108,107,133',
-'134,101,100,137,323,105,258,276,294,295,149,139,302,305,306,105,139',
-'105,312,326,327,328,333,105,105,105,342,346,357,361,320,258,362,363',
-'60,129,130,132,127,128,131,129,130,132,127,128,131,368,129,130,132,127',
-'128,131,115,116,117,121,122,123,118,119,120,124,125,126,102,104,103',
-'109,111,110,112,114,113,106,108,107,133,134,101,100,137,105,80,129,130',
-'132,81,105,82,85,83,84,87,374,105,86,377,75,76,379,380,57,56,88,89,77',
-'393,90,58,59,78,37,46,48,47,91,49,44,45,64,72,73,-116,302,60,50,70,79',
-'61,394,397,105,62,63,269,258,129,130,132,127,128,131,115,116,117,121',
-'122,123,118,119,120,124,125,126,102,104,103,109,111,110,112,114,113',
-'106,108,107,133,134,101,29,400,38,52,80,54,401,402,81,-245,82,85,83',
-'84,87,105,403,86,406,75,76,60,211,57,56,88,89,77,211,90,58,59,78,37',
-'46,48,47,91,49,44,45,64,72,73,427,60,60,50,70,79,61,430,431,434,62,63',
-'435,438,129,130,132,127,128,131,115,116,117,121,122,123,118,119,120',
-'124,125,126,102,104,103,109,111,110,112,114,113,106,108,107,133,134',
-'440,29,441,38,52,80,54,442,443,81,211,82,85,83,84,87,105,445,86,446',
-'75,76,371,371,57,56,88,89,77,211,90,58,59,78,37,46,48,47,91,49,44,45',
-'64,72,73,458,435,60,50,70,79,61,462,463,371,62,63,465,468,129,130,132',
-'127,128,131,115,116,117,121,122,123,118,119,120,124,125,126,,,,,,,,',
-',,,129,130,132,,29,,38,52,80,54,,,81,,82,85,83,84,87,105,,86,,75,76',
-',,57,56,88,89,77,,90,58,59,78,37,46,48,47,91,49,44,45,64,72,73,105,',
-'60,50,70,79,61,,,,62,63,,,129,130,132,127,128,131,115,116,117,121,122',
-'123,118,119,120,124,125,126,,,,,,,,,,,,129,130,132,,29,,38,52,80,54',
-',,81,,82,85,83,84,87,105,,86,,75,76,,,57,56,88,89,77,,90,58,59,78,37',
-'46,48,47,91,49,44,45,64,72,73,105,,60,50,70,79,61,,,,62,63,414,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,29,,38,52,,54,,129,130,132,127,128,131',
-'115,116,117,121,122,123,118,119,120,124,125,126,102,104,103,109,111',
-'110,112,114,113,106,108,107,133,134,101,100,137,419,,,,,,,,,146,56,',
-'89,105,,90,,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,129,130',
-'132,127,128,131,115,116,117,121,122,123,118,119,120,124,125,126,102',
-'104,103,109,111,110,112,114,113,106,108,107,133,134,101,100,137,29,',
-',52,,54,,261,146,56,,89,,105,90,,,,,46,48,47,,49,44,45,64,,,,,60,50',
-'70,,61,,,,62,63,180,146,56,,89,,,90,,,,,46,48,47,,49,44,45,64,,,-116',
-',60,50,70,,61,,,,62,63,,29,,,52,,54,,261,,129,130,132,127,128,131,115',
-'116,117,121,122,123,118,119,120,124,125,126,,180,146,56,,89,,176,90',
-',52,,54,46,48,47,,49,44,45,64,,,,,60,50,70,,61,105,,,62,63,180,146,56',
-',89,,,90,,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,,29,-119',
-',52,,54,,,129,130,132,127,128,131,115,116,117,121,122,123,118,119,120',
-'124,125,126,,,,180,146,56,,89,29,-119,90,52,,54,,46,48,47,,49,44,45',
-'64,,,,,60,50,70,105,61,,,,62,63,180,146,56,,89,,,90,,,,,46,48,47,,49',
-'44,45,64,,,,,60,50,70,,61,,,,62,63,,29,-119,,52,,54,,,129,130,132,127',
-'128,131,115,116,117,121,122,123,118,119,120,124,125,126,,,,180,146,56',
-',89,29,-119,90,52,,54,,46,48,47,,49,44,45,64,,,,,60,50,70,105,61,,,',
-'62,63,180,146,56,,89,,,90,,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61',
-',,,62,63,,29,-121,,52,,54,,,129,130,132,127,128,131,115,116,117,121',
-'122,123,118,119,120,124,125,126,,,,,146,56,,89,29,-119,90,52,,54,,46',
-'48,47,,49,44,45,64,,,,,60,50,70,105,61,,,,62,63,180,146,56,,89,,,90',
-',,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,,29,,,52,,54,350',
-',129,130,132,127,128,131,115,116,117,121,122,123,118,119,120,124,125',
-'126,,,,180,146,56,,89,29,-119,90,52,,54,,46,48,47,,49,44,45,64,,,,,60',
-'50,70,105,61,,,,62,63,365,146,56,,89,,,90,,,,,46,48,47,,49,44,45,64',
-',,,,60,50,70,,61,,,,62,63,,29,-119,,52,,54,,129,130,132,127,128,131',
-'115,116,117,121,122,123,118,119,120,124,125,126,,,,180,146,56,,89,,29',
-'90,,52,,54,46,48,47,,49,44,45,64,,,,,60,50,70,105,61,,,,62,63,180,146',
-'56,,89,,,90,,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,,29',
-'-119,,52,,54,,,129,130,132,127,128,131,115,116,117,121,122,123,118,119',
-'120,124,125,126,,,,,146,56,,89,29,-119,90,52,,54,,46,48,47,,49,44,45',
-'64,,,,,60,50,70,105,61,,,,62,63,146,56,,89,,,90,,,,,46,48,47,,49,44',
-'45,64,,,-116,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48',
-'47,,49,44,45,64,,,-116,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54',
-',,167,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,',
-'52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,165',
-'89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146',
-'56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63',
-'146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,-116,,60,50,70,,61',
-',,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70',
-',61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60',
-'50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,',
-',,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45',
-'64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49',
-'44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47',
-',49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46',
-'48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54',
-',,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52',
-'90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89',
-',52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56',
-'29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146',
-'56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63',
-'146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,',
-'62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,',
-'61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50',
-'70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,',
-'60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64',
-',,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44',
-'45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,',
-'49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48',
-'47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,',
-'46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90',
-'54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,',
-'52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29',
-'89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146',
-'56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63',
-'146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,',
-'62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,',
-'61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50',
-'70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,',
-'60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64',
-',,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44',
-'45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,',
-'49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48',
-'47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,',
-'46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90',
-'54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,',
-'52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29',
-'89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146',
-'56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63',
-'146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,',
-'62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,',
-'61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50',
-'70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,',
-'60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64',
-',,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44',
-'45,64,,,-116,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,288,,,,46,48',
-'47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,',
-'46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90',
-'54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,',
-'52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29',
-'89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146',
-'56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63',
-'146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,-116,,60,50,70,,61',
-',,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70',
-',61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60',
-'50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,',
-',,,60,50,70,,61,,,,62,63,,,29,,,52,348,54,129,130,132,127,128,131,115',
-'116,117,121,122,123,118,119,120,124,125,126,,,,,146,56,,89,,29,90,,52',
-',54,46,48,47,,49,44,45,64,,,-116,,60,50,70,105,61,,,,62,63,146,56,,89',
-',,90,,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89',
-',52,90,288,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56',
-'29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146',
-'56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63',
-'146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,',
-'62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,',
-'61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50',
-'70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,',
-'60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44,45,64',
-',,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,,49,44',
-'45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,,46,48,47,',
-'49,44,45,64,,,-116,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90,54,,,',
-'46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,,52,90',
-'54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29,89,',
-'52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146,56,29',
-'89,,52,90,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63,146',
-'56,29,89,,52,,54,,,,46,48,47,,49,44,45,,,,,,60,50,70,,61,,,,62,63,146',
-'56,29,89,,52,,54,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62,63',
-'146,56,188,89,,52,,,,,,46,48,47,,49,44,45,64,,,,,60,50,70,,61,,,,62',
-'63,,,188,,,52,,,,,,,,,,,,,,,,211,,,,,,129,130,132,127,128,131,,,188',
-',,52,129,130,132,127,128,131,115,116,117,121,122,123,118,119,120,124',
-'125,126,102,104,103,109,111,110,112,114,113,106,108,107,133,134,101',
-'100,137,211,105,,,,,129,130,132,127,128,131,,105,,,,,129,130,132,127',
-'128,131,115,116,117,121,122,123,118,119,120,124,125,126,102,104,103',
-'109,111,110,112,114,113,106,108,107,133,134,101,100,137,211,105,,,,',
-'129,130,132,127,128,131,,105,,,,,129,130,132,127,128,131,115,116,117',
-'121,122,123,118,119,120,124,125,126,102,104,103,109,111,110,112,114',
-'113,106,108,107,133,134,101,100,137,211,105,,,,,129,130,132,127,128',
-'131,,105,,,,,129,130,132,127,128,131,115,116,117,121,122,123,118,119',
-'120,124,125,126,102,104,103,109,111,110,112,114,113,106,108,107,133',
-'134,101,100,137,211,105,,,,,129,130,132,127,128,131,,105,,,,,129,130',
-'132,127,128,131,115,116,117,121,122,123,118,119,120,124,125,126,102',
-'104,103,109,111,110,112,114,113,106,108,107,133,134,101,100,137,455',
-'105,,,,,129,130,132,127,128,131,,105,,,,,129,130,132,127,128,131,115',
-'116,117,121,122,123,118,119,120,124,125,126,102,104,103,109,111,110',
-'112,114,113,106,108,107,133,134,101,100,137,460,105,,,,129,130,132,127',
-'128,131,,,105,,,,,129,130,132,127,128,131,115,116,117,121,122,123,118',
-'119,120,124,125,126,102,104,103,109,111,110,112,114,113,106,108,107',
-'133,134,101,100,137,105,129,130,132,127,128,131,,,,,,,105,129,130,132',
-'127,128,131,115,116,117,121,122,123,118,119,120,124,125,126,102,104',
-'103,109,111,110,112,114,113,106,108,107,133,134,101,100,137,105,,,,',
-',266,129,130,132,127,128,131,105,129,130,132,127,128,131,115,116,117',
-'121,122,123,118,119,120,124,125,126,102,104,103,109,111,110,112,114',
-'113,106,108,107,133,134,101,100,137,,,,,,,105,,,,,,,105,129,130,132',
-'127,128,131,115,116,117,121,122,123,118,119,120,124,125,126,102,104',
-'103,109,111,110,112,114,113,106,108,107,133,134,101,100,137,,,,,,,,',
-',,,,275,105,129,130,132,127,128,131,115,116,117,121,122,123,118,119',
-'120,124,125,126,102,104,103,109,111,110,112,114,113,106,108,107,133',
-'134,101,100,137,,,,,,,,,,,,,,105,129,130,132,127,128,131,115,116,117',
-'121,122,123,118,119,120,124,125,126,102,104,103,109,111,110,112,114',
-'113,106,108,107,133,134,101,100,137,,,,,,,,,,,,,,105,129,130,132,127',
-'128,131,115,116,117,121,122,123,118,119,120,124,125,126,102,104,103',
-'109,111,110,112,114,113,106,108,107,133,134,101,100,137,,,,,,,,,,,,',
-',105,129,130,132,127,128,131,115,116,117,121,122,123,118,119,120,124',
-'125,126,102,104,103,109,111,110,112,114,113,106,108,107,133,134,101',
-'100,137,,,,,,,,,,,,,,105,129,130,132,127,128,131,115,116,117,121,122',
-'123,118,119,120,124,125,126,129,130,132,127,128,131,115,116,117,121',
-'122,123,118,119,120,124,125,126,102,104,103,109,111,110,112,114,113',
-'106,108,107,105,,,,,,,,,,,,,,,,,,105,129,130,132,127,128,131,115,116',
-'117,121,122,123,118,119,120,124,125,126,102,104,103,109,111,110,112',
-'114,113,106,108,107,,,,,,,,,,,,,,,,,,,105,129,130,132,127,128,131,115',
-'116,117,121,122,123,118,119,120,124,125,126,102,104,103,109,111,110',
-'112,114,113,106,108,107,133,134,101,100,137,,,,,,,,,,,,,,105,129,130',
-'132,127,128,131,115,116,117,121,122,123,118,119,120,124,125,126,102',
-'104,103,109,111,110,112,114,113,106,108,107,133,134,101,100,137,,,,',
-',,,,,,,,,105,129,130,132,127,128,131,115,116,117,121,122,123,118,119',
-'120,124,125,126,102,104,103,109,111,110,112,114,113,106,108,107,133',
-'134,101,100,137,,,,,,,,,,,,,337,105,129,130,132,127,128,131,115,116',
-'117,121,122,123,118,119,120,124,125,126,102,104,103,109,111,110,112',
-'114,113,106,108,107,133,134,101,100,137,,,,,,,,,,340,,,341,105,129,130',
-'132,127,128,131,115,116,117,121,122,123,118,119,120,124,125,126,102',
-'104,103,109,111,110,112,114,113,106,108,107,133,134,101,100,137,,,,',
-',,,,,,,,,105,129,130,132,127,128,131,115,116,117,121,122,123,118,119',
-'120,124,125,126,102,104,103,109,111,110,112,114,113,106,108,107,133',
-'134,101,100,137,,,,,,,266,,,,,,,105,129,130,132,127,128,131,115,116',
-'117,121,122,123,118,119,120,124,125,126,102,104,103,109,111,110,112',
-'114,113,106,108,107,133,134,101,100,137,,,,,,,360,,,,,,,105,129,130',
-'132,127,128,131,115,116,117,121,122,123,118,119,120,124,125,126,102',
-'104,103,109,111,110,112,114,113,106,108,107,133,134,101,100,137,,,,',
-',,,,,,,,,105,129,130,132,127,128,131,115,116,117,121,122,123,118,119',
-'120,124,125,126,102,104,103,109,111,110,112,114,113,106,108,107,133',
-'134,101,100,137,,,,,,,360,,,,,,,105,129,130,132,127,128,131,115,116',
-'117,121,122,123,118,119,120,124,125,126,102,104,103,109,111,110,112',
-'114,113,106,108,107,133,134,101,100,137,,,,,,,,,,,,,,105,129,130,132',
-'127,128,131,115,116,117,121,122,123,118,119,120,124,125,126,102,104',
-'103,109,111,110,112,114,113,106,108,107,133,134,101,100,137,,,,,,,,',
-',,,,,105,129,130,132,127,128,131,115,116,117,121,122,123,118,119,120',
-'124,125,126,102,104,103,109,111,110,112,114,113,106,108,107,133,134',
-'101,100,137,,,,,,,,,,,,,,105,129,130,132,127,128,131,115,116,117,121',
-'122,123,118,119,120,124,125,126,102,104,103,109,111,110,112,114,113',
-'106,108,107,133,134,101,100,137,,,,,,,,,,,,,,105,129,130,132,127,128',
-'131,115,116,117,121,122,123,118,119,120,124,125,126,102,104,103,109',
-'111,110,112,114,113,106,108,107,133,134,101,100,137,,,,,,,,,,396,,,341',
-'105,129,130,132,127,128,131,115,116,117,121,122,123,118,119,120,124',
-'125,126,102,104,103,109,111,110,112,114,113,106,108,107,133,134,101',
-'100,137,,,,,,,,,,,,,,105,129,130,132,127,128,131,115,116,117,121,122',
-'123,118,119,120,124,125,126,102,104,103,109,111,110,112,114,113,106',
-'108,107,133,134,101,100,137,,,,,,,,,,399,,,,105,129,130,132,127,128',
-'131,115,116,117,121,122,123,118,119,120,124,125,126,102,104,103,109',
-'111,110,112,114,113,106,108,107,133,134,101,100,137,,,,,,,,,,,,,,105',
-'129,130,132,127,128,131,115,116,117,121,122,123,118,119,120,124,125',
-'126,102,104,103,109,111,110,112,114,113,106,108,107,133,134,101,100',
-'137,,,,,,,,,,,,,,105,129,130,132,127,128,131,115,116,117,121,122,123',
-'118,119,120,124,125,126,102,104,103,109,111,110,112,114,113,106,108',
-'107,133,134,101,100,137,,,,,,,,,,,,,,105,129,130,132,127,128,131,115',
-'116,117,121,122,123,118,119,120,124,125,126,102,104,103,109,111,110',
-'112,114,113,106,108,107,133,134,101,100,137,,,,,,,,,,,,,,105,129,130',
-'132,127,128,131,115,116,117,121,122,123,118,119,120,124,125,126,102',
-'104,103,109,111,110,112,114,113,106,108,107,133,134,101,100,137,,,,',
-',,,,,,,,,105,129,130,132,127,128,131,115,116,117,121,122,123,118,119',
-'120,124,125,126,102,104,103,109,111,110,112,114,113,106,108,107,133',
-'134,101,100,137,,,,,,,,,,,,,,105,129,130,132,127,128,131,115,116,117',
-'121,122,123,118,119,120,124,125,126,102,104,103,109,111,110,112,114',
-'113,106,108,107,133,134,101,100,137,,,,,,,,,,,,,,105,129,130,132,127',
-'128,131,115,116,117,121,122,123,118,119,120,124,125,126,102,104,103',
-'109,111,110,112,114,113,106,108,107,133,134,101,100,137,,,,,,,,,,,,',
-',105,129,130,132,127,128,131,115,116,117,121,122,123,118,119,120,124',
-'125,126,102,104,103,109,111,110,112,114,113,106,108,107,133,134,101',
-'100,137,,,,,,,,,,,,,,105,129,130,132,127,128,131,115,116,117,121,122',
-'123,118,119,120,124,125,126,102,104,103,109,111,110,112,114,113,106',
-'108,107,133,134,101,100,137,,,,,,,,,,,,,,105' ]
- racc_action_table = arr = ::Array.new(6668, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-clist = [
-'22,143,74,143,22,333,376,376,182,182,370,369,433,157,57,57,74,57,155',
-'182,157,155,369,155,3,57,57,57,93,57,57,57,333,370,376,433,330,57,57',
-'57,202,57,330,330,202,57,57,22,22,22,22,22,22,22,22,22,22,22,22,22,22',
-'22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,57,0',
-'3,57,332,0,93,0,0,0,0,0,376,22,0,454,0,0,287,287,0,0,0,0,0,461,0,0,0',
-'0,0,0,0,0,0,0,0,0,0,0,0,0,55,0,0,0,0,0,298,466,1,0,0,298,59,59,283,283',
-'283,283,447,283,451,464,332,59,283,283,40,40,210,447,19,451,464,454',
-'210,181,181,287,287,175,72,72,72,461,23,200,0,213,0,0,2,0,55,277,2,161',
-'2,2,2,2,2,162,278,2,284,2,2,466,59,2,2,2,2,2,286,2,2,2,2,2,2,2,2,2,2',
-'2,2,2,2,2,2,175,2,2,2,2,2,200,86,213,2,2,161,313,266,277,314,161,162',
-'304,360,304,24,162,278,284,284,186,186,186,138,138,138,138,27,286,286',
-'8,138,8,8,8,403,430,73,73,73,2,32,2,2,94,2,315,35,94,86,94,94,94,94',
-'94,285,266,94,313,94,94,314,360,94,94,94,94,94,186,94,94,94,94,94,94',
-'94,94,94,94,94,94,94,94,94,403,430,94,94,94,94,94,281,281,315,94,94',
-'285,285,285,285,43,187,187,187,282,282,285,285,410,70,410,222,222,222',
-'222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,290,290',
-'94,87,94,94,95,94,387,387,95,88,95,95,95,95,95,33,89,95,187,95,95,416',
-'416,95,95,95,95,95,222,95,95,95,95,90,95,95,95,95,95,95,95,95,95,95',
-'95,92,95,95,95,95,95,96,97,203,95,95,33,33,33,33,31,31,31,31,331,31',
-'331,331,386,331,386,386,140,386,42,42,42,42,141,203,66,66,66,66,146',
-'235,235,235,235,235,235,95,148,150,95,151,95,203,203,203,203,203,203',
-'203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203',
-'203,203,203,203,203,203,203,203,203,203,203,203,204,235,154,160,166',
-'169,170,174,178,183,184,185,189,203,199,207,208,209,212,249,250,252',
-'260,268,293,297,204,299,300,301,305,236,236,236,236,236,236,237,237',
-'237,237,237,237,312,204,204,204,204,204,204,204,204,204,204,204,204',
-'204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204',
-'204,204,204,204,204,204,236,211,247,247,247,211,237,211,211,211,211',
-'211,318,204,211,322,211,211,324,325,211,211,211,211,211,334,211,211',
-'211,211,211,211,211,211,211,211,211,211,211,211,211,211,335,211,211',
-'211,211,211,336,339,247,211,211,344,345,220,220,220,220,220,220,220',
-'220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220',
-'220,220,220,220,220,220,220,220,220,211,353,211,211,320,211,355,356',
-'320,320,320,320,320,320,320,220,359,320,367,320,320,368,385,320,320',
-'320,320,320,389,320,320,320,320,320,320,320,320,320,320,320,320,320',
-'320,320,391,392,320,320,320,320,320,404,408,411,320,320,412,417,221',
-'221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221',
-'221,221,221,221,221,221,221,221,221,221,221,221,221,221,420,320,421',
-'320,320,438,320,422,423,438,425,438,438,438,438,438,221,428,438,429',
-'438,438,432,434,438,438,438,438,438,445,438,438,438,438,438,438,438',
-'438,438,438,438,438,438,438,438,448,449,438,438,438,438,438,456,457',
-'458,438,438,459,467,223,223,223,223,223,223,223,223,223,223,223,223',
-'223,223,223,223,223,223,,,,,,,,,,,,248,248,248,,438,,438,438,455,438',
-',,455,,455,455,455,455,455,223,,455,,455,455,,,455,455,455,455,455,',
-'455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,248,,455',
-'455,455,455,455,,,,455,455,,,224,224,224,224,224,224,224,224,224,224',
-'224,224,224,224,224,224,224,224,,,,,,,,,,,,251,251,251,,455,,455,455',
-'460,455,,,460,,460,460,460,460,460,224,,460,,460,460,,,460,460,460,460',
-'460,,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,251',
-',460,460,460,460,460,,,,460,460,375,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,460,,460,460,,460,,375,375,375,375,375,375,375,375,375,375,375,375',
-'375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375',
-'375,375,375,375,375,375,378,,,,,,,,,139,139,,139,375,,139,,,,,139,139',
-'139,,139,139,139,139,,,,,139,139,139,,139,,,,139,139,378,378,378,378',
-'378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378',
-'378,378,378,378,378,378,378,378,378,378,378,378,378,378,139,,,139,,139',
-',139,258,258,,258,,378,258,,,,,258,258,258,,258,258,258,258,,,,,258',
-'258,258,,258,,,,258,258,58,58,58,,58,,,58,,,,,58,58,58,,58,58,58,58',
-',,58,,58,58,58,,58,,,,58,58,,258,,,258,,258,,258,,226,226,226,226,226',
-'226,226,226,226,226,226,226,226,226,226,226,226,226,,147,147,147,,147',
-',58,147,,58,,58,147,147,147,,147,147,147,147,,,,,147,147,147,,147,226',
-',,147,147,165,165,165,,165,,,165,,,,,165,165,165,,165,165,165,165,,',
-',,165,165,165,,165,,,,165,165,,147,147,,147,,147,,,227,227,227,227,227',
-'227,227,227,227,227,227,227,227,227,227,227,227,227,,,,171,171,171,',
-'171,165,165,171,165,,165,,171,171,171,,171,171,171,171,,,,,171,171,171',
-'227,171,,,,171,171,176,176,176,,176,,,176,,,,,176,176,176,,176,176,176',
-'176,,,,,176,176,176,,176,,,,176,176,,171,171,,171,,171,,,228,228,228',
-'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,,,,215,215',
-'215,,215,176,176,215,176,,176,,215,215,215,,215,215,215,215,,,,,215',
-'215,215,228,215,,,,215,215,267,267,267,,267,,,267,,,,,267,267,267,,267',
-'267,267,267,,,,,267,267,267,,267,,,,267,267,,215,215,,215,,215,,,229',
-'229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229',
-',,,,274,274,,274,267,267,274,267,,267,,274,274,274,,274,274,274,274',
-',,,,274,274,274,229,274,,,,274,274,276,276,276,,276,,,276,,,,,276,276',
-'276,,276,276,276,276,,,,,276,276,276,,276,,,,276,276,,274,,,274,,274',
-'274,,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230',
-'230,230,,,,295,295,295,,295,276,276,295,276,,276,,295,295,295,,295,295',
-'295,295,,,,,295,295,295,230,295,,,,295,295,302,302,302,,302,,,302,,',
-',,302,302,302,,302,302,302,302,,,,,302,302,302,,302,,,,302,302,,295',
-'295,,295,,295,,231,231,231,231,231,231,231,231,231,231,231,231,231,231',
-'231,231,231,231,,,,362,362,362,,362,,302,362,,302,,302,362,362,362,',
-'362,362,362,362,,,,,362,362,362,231,362,,,,362,362,393,393,393,,393',
-',,393,,,,,393,393,393,,393,393,393,393,,,,,393,393,393,,393,,,,393,393',
-',362,362,,362,,362,,,232,232,232,232,232,232,232,232,232,232,232,232',
-'232,232,232,232,232,232,,,,,29,29,,29,393,393,29,393,,393,,29,29,29',
-',29,29,29,29,,,,,29,29,29,232,29,,,,29,29,52,52,,52,,,52,,,,,52,52,52',
-',52,52,52,52,,,52,,52,52,52,,52,,,,52,52,54,54,29,54,,29,54,29,,,,54',
-'54,54,,54,54,54,54,,,54,,54,54,54,,54,,,,54,54,56,56,52,56,,52,56,52',
-',,56,56,56,56,,56,56,56,56,,,,,56,56,56,,56,,,,56,56,61,61,54,61,,54',
-'61,54,,,,61,61,61,,61,61,61,61,,,,,61,61,61,,61,,,,61,61,62,62,56,62',
-',56,62,56,,,,62,62,62,,62,62,62,62,,,,,62,62,62,,62,,,,62,62,63,63,61',
-'63,,61,63,61,,,,63,63,63,,63,63,63,63,,,,,63,63,63,,63,,,,63,63,78,78',
-'62,78,,62,78,62,,,,78,78,78,,78,78,78,78,,,78,,78,78,78,,78,,,,78,78',
-'80,80,63,80,,63,80,63,,,,80,80,80,,80,80,80,80,,,,,80,80,80,,80,,,,80',
-'80,81,81,78,81,,78,81,78,,,,81,81,81,,81,81,81,81,,,,,81,81,81,,81,',
-',,81,81,82,82,80,82,,80,82,80,,,,82,82,82,,82,82,82,82,,,,,82,82,82',
-',82,,,,82,82,85,85,81,85,,81,85,81,,,,85,85,85,,85,85,85,85,,,,,85,85',
-'85,,85,,,,85,85,100,100,82,100,,82,100,82,,,,100,100,100,,100,100,100',
-'100,,,,,100,100,100,,100,,,,100,100,101,101,85,101,,85,101,85,,,,101',
-'101,101,,101,101,101,101,,,,,101,101,101,,101,,,,101,101,102,102,100',
-'102,,100,102,100,,,,102,102,102,,102,102,102,102,,,,,102,102,102,,102',
-',,,102,102,103,103,101,103,,101,103,101,,,,103,103,103,,103,103,103',
-'103,,,,,103,103,103,,103,,,,103,103,104,104,102,104,,102,104,102,,,',
-'104,104,104,,104,104,104,104,,,,,104,104,104,,104,,,,104,104,105,105',
-'103,105,,103,105,103,,,,105,105,105,,105,105,105,105,,,,,105,105,105',
-',105,,,,105,105,106,106,104,106,,104,106,104,,,,106,106,106,,106,106',
-'106,106,,,,,106,106,106,,106,,,,106,106,107,107,105,107,,105,107,105',
-',,,107,107,107,,107,107,107,107,,,,,107,107,107,,107,,,,107,107,108',
-'108,106,108,,106,108,106,,,,108,108,108,,108,108,108,108,,,,,108,108',
-'108,,108,,,,108,108,109,109,107,109,,107,109,107,,,,109,109,109,,109',
-'109,109,109,,,,,109,109,109,,109,,,,109,109,110,110,108,110,,108,110',
-'108,,,,110,110,110,,110,110,110,110,,,,,110,110,110,,110,,,,110,110',
-'111,111,109,111,,109,111,109,,,,111,111,111,,111,111,111,111,,,,,111',
-'111,111,,111,,,,111,111,112,112,110,112,,110,112,110,,,,112,112,112',
-',112,112,112,112,,,,,112,112,112,,112,,,,112,112,113,113,111,113,,111',
-'113,111,,,,113,113,113,,113,113,113,113,,,,,113,113,113,,113,,,,113',
-'113,114,114,112,114,,112,114,112,,,,114,114,114,,114,114,114,114,,,',
-',114,114,114,,114,,,,114,114,115,115,113,115,,113,115,113,,,,115,115',
-'115,,115,115,115,115,,,,,115,115,115,,115,,,,115,115,116,116,114,116',
-',114,116,114,,,,116,116,116,,116,116,116,116,,,,,116,116,116,,116,,',
-',116,116,117,117,115,117,,115,117,115,,,,117,117,117,,117,117,117,117',
-',,,,117,117,117,,117,,,,117,117,118,118,116,118,,116,118,116,,,,118',
-'118,118,,118,118,118,118,,,,,118,118,118,,118,,,,118,118,119,119,117',
-'119,,117,119,117,,,,119,119,119,,119,119,119,119,,,,,119,119,119,,119',
-',,,119,119,120,120,118,120,,118,120,118,,,,120,120,120,,120,120,120',
-'120,,,,,120,120,120,,120,,,,120,120,121,121,119,121,,119,121,119,,,',
-'121,121,121,,121,121,121,121,,,,,121,121,121,,121,,,,121,121,122,122',
-'120,122,,120,122,120,,,,122,122,122,,122,122,122,122,,,,,122,122,122',
-',122,,,,122,122,123,123,121,123,,121,123,121,,,,123,123,123,,123,123',
-'123,123,,,,,123,123,123,,123,,,,123,123,124,124,122,124,,122,124,122',
-',,,124,124,124,,124,124,124,124,,,,,124,124,124,,124,,,,124,124,125',
-'125,123,125,,123,125,123,,,,125,125,125,,125,125,125,125,,,,,125,125',
-'125,,125,,,,125,125,126,126,124,126,,124,126,124,,,,126,126,126,,126',
-'126,126,126,,,,,126,126,126,,126,,,,126,126,127,127,125,127,,125,127',
-'125,,,,127,127,127,,127,127,127,127,,,,,127,127,127,,127,,,,127,127',
-'128,128,126,128,,126,128,126,,,,128,128,128,,128,128,128,128,,,,,128',
-'128,128,,128,,,,128,128,129,129,127,129,,127,129,127,,,,129,129,129',
-',129,129,129,129,,,,,129,129,129,,129,,,,129,129,130,130,128,130,,128',
-'130,128,,,,130,130,130,,130,130,130,130,,,,,130,130,130,,130,,,,130',
-'130,131,131,129,131,,129,131,129,,,,131,131,131,,131,131,131,131,,,',
-',131,131,131,,131,,,,131,131,132,132,130,132,,130,132,130,,,,132,132',
-'132,,132,132,132,132,,,,,132,132,132,,132,,,,132,132,133,133,131,133',
-',131,133,131,,,,133,133,133,,133,133,133,133,,,,,133,133,133,,133,,',
-',133,133,134,134,132,134,,132,134,132,,,,134,134,134,,134,134,134,134',
-',,,,134,134,134,,134,,,,134,134,135,135,133,135,,133,135,133,,,,135',
-'135,135,,135,135,135,135,,,,,135,135,135,,135,,,,135,135,136,136,134',
-'136,,134,136,134,,,,136,136,136,,136,136,136,136,,,,,136,136,136,,136',
-',,,136,136,137,137,135,137,,135,137,135,,,,137,137,137,,137,137,137',
-'137,,,,,137,137,137,,137,,,,137,137,164,164,136,164,,136,164,136,,,',
-'164,164,164,,164,164,164,164,,,,,164,164,164,,164,,,,164,164,173,173',
-'137,173,,137,173,137,,,,173,173,173,,173,173,173,173,,,173,,173,173',
-'173,,173,,,,173,173,180,180,164,180,,164,180,164,,,,180,180,180,,180',
-'180,180,180,,,,,180,180,180,,180,,,,180,180,188,188,173,188,,173,188',
-'173,,,,188,188,188,,188,188,188,188,,,,,188,188,188,,188,,,,188,188',
-'191,191,180,191,,180,191,180,,,,191,191,191,,191,191,191,191,,,,,191',
-'191,191,,191,,,,191,191,192,192,188,192,,188,192,188,,,,192,192,192',
-',192,192,192,192,,,,,192,192,192,,192,,,,192,192,193,193,191,193,,191',
-'193,191,,,,193,193,193,,193,193,193,193,,,,,193,193,193,,193,,,,193',
-'193,194,194,192,194,,192,194,192,,,,194,194,194,,194,194,194,194,,,',
-',194,194,194,,194,,,,194,194,261,261,193,261,,193,261,193,,,,261,261',
-'261,,261,261,261,261,,,261,,261,261,261,,261,,,,261,261,270,270,194',
-'270,,194,270,194,,,,270,270,270,,270,270,270,270,,,,,270,270,270,,270',
-',,,270,270,272,272,261,272,,261,272,261,,,,272,272,272,,272,272,272',
-'272,,,,,272,272,272,,272,,,,272,272,275,275,270,275,,270,275,270,,,',
-'275,275,275,,275,275,275,275,,,,,275,275,275,,275,,,,275,275,,,272,',
-',272,272,272,233,233,233,233,233,233,233,233,233,233,233,233,233,233',
-'233,233,233,233,,,,,288,288,,288,,275,288,,275,,275,288,288,288,,288',
-'288,288,288,,,288,,288,288,288,233,288,,,,288,288,291,291,,291,,,291',
-',,,,291,291,291,,291,291,291,291,,,,,291,291,291,,291,,,,291,291,294',
-'294,288,294,,288,294,288,,,,294,294,294,,294,294,294,294,,,,,294,294',
-'294,,294,,,,294,294,316,316,291,316,,291,316,291,,,,316,316,316,,316',
-'316,316,316,,,,,316,316,316,,316,,,,316,316,317,317,294,317,,294,317',
-'294,,,,317,317,317,,317,317,317,317,,,,,317,317,317,,317,,,,317,317',
-'319,319,316,319,,316,319,316,,,,319,319,319,,319,319,319,319,,,,,319',
-'319,319,,319,,,,319,319,323,323,317,323,,317,323,317,,,,323,323,323',
-',323,323,323,323,,,,,323,323,323,,323,,,,323,323,326,326,319,326,,319',
-'326,319,,,,326,326,326,,326,326,326,326,,,,,326,326,326,,326,,,,326',
-'326,327,327,323,327,,323,327,323,,,,327,327,327,,327,327,327,327,,,',
-',327,327,327,,327,,,,327,327,328,328,326,328,,326,328,326,,,,328,328',
-'328,,328,328,328,328,,,,,328,328,328,,328,,,,328,328,337,337,327,337',
-',327,337,327,,,,337,337,337,,337,337,337,337,,,,,337,337,337,,337,,',
-',337,337,341,341,328,341,,328,341,328,,,,341,341,341,,341,341,341,341',
-',,341,,341,341,341,,341,,,,341,341,365,365,337,365,,337,365,337,,,,365',
-'365,365,,365,365,365,365,,,,,365,365,365,,365,,,,365,365,418,418,341',
-'418,,341,418,341,,,,418,418,418,,418,418,418,418,,,,,418,418,418,,418',
-',,,418,418,435,435,365,435,,365,435,365,,,,435,435,435,,435,435,435',
-'435,,,,,435,435,435,,435,,,,435,435,437,437,418,437,,418,437,418,,,',
-'437,437,437,,437,437,437,437,,,,,437,437,437,,437,,,,437,437,64,64,435',
-'64,,435,,435,,,,64,64,64,,64,64,64,,,,,,64,64,64,,64,,,,64,64,99,99',
-'437,99,,437,,437,,,,99,99,99,,99,99,99,99,,,,,99,99,99,,99,,,,99,99',
-'142,142,64,142,,64,,,,,,142,142,142,,142,142,142,142,,,,,142,142,142',
-',142,,,,142,142,,,99,,,99,,,,,,,,,,,,,,,,205,,,,,,238,238,238,238,238',
-'238,,,142,,,142,205,205,205,205,205,205,205,205,205,205,205,205,205',
-'205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205',
-'205,205,205,205,205,206,238,,,,,239,239,239,239,239,239,,205,,,,,206',
-'206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206',
-'206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206',
-'381,239,,,,,240,240,240,240,240,240,,206,,,,,381,381,381,381,381,381',
-'381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381',
-'381,381,381,381,381,381,381,381,381,381,381,381,382,240,,,,,241,241',
-'241,241,241,241,,381,,,,,382,382,382,382,382,382,382,382,382,382,382',
-'382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382',
-'382,382,382,382,382,382,382,383,241,,,,,242,242,242,242,242,242,,382',
-',,,,383,383,383,383,383,383,383,383,383,383,383,383,383,383,383,383',
-'383,383,383,383,383,383,383,383,383,383,383,383,383,383,383,383,383',
-'383,383,439,242,,,,,243,243,243,243,243,243,,383,,,,,439,439,439,439',
-'439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439',
-'439,439,439,439,439,439,439,439,439,439,439,439,439,439,453,243,,,,244',
-'244,244,244,244,244,,,439,,,,,453,453,453,453,453,453,453,453,453,453',
-'453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453',
-'453,453,453,453,453,453,453,453,244,245,245,245,245,245,245,,,,,,,453',
-'145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145',
-'145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145',
-'145,245,,,,,,145,246,246,246,246,246,246,145,156,156,156,156,156,156',
-'156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156',
-'156,156,156,156,156,156,156,156,156,156,156,156,,,,,,,246,,,,,,,156',
-'159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159',
-'159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159',
-'159,,,,,,,,,,,,,159,159,168,168,168,168,168,168,168,168,168,168,168',
-'168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168',
-'168,168,168,168,168,168,168,,,,,,,,,,,,,,168,179,179,179,179,179,179',
-'179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179',
-'179,179,179,179,179,179,179,179,179,179,179,179,,,,,,,,,,,,,,179,201',
-'201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201',
-'201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201',
-',,,,,,,,,,,,,201,225,225,225,225,225,225,225,225,225,225,225,225,225',
-'225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225',
-'225,225,225,225,225,,,,,,,,,,,,,,225,234,234,234,234,234,234,234,234',
-'234,234,234,234,234,234,234,234,234,234,253,253,253,253,253,253,253',
-'253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253',
-'253,253,253,253,253,253,234,,,,,,,,,,,,,,,,,,253,254,254,254,254,254',
-'254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254',
-'254,254,254,254,254,254,254,254,,,,,,,,,,,,,,,,,,,254,255,255,255,255',
-'255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255',
-'255,255,255,255,255,255,255,255,255,255,255,255,255,255,,,,,,,,,,,,',
-',255,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256',
-'256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256',
-'256,256,,,,,,,,,,,,,,256,257,257,257,257,257,257,257,257,257,257,257',
-'257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257',
-'257,257,257,257,257,257,257,,,,,,,,,,,,,257,257,259,259,259,259,259',
-'259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259',
-'259,259,259,259,259,259,259,259,259,259,259,259,259,,,,,,,,,,259,,,259',
-'259,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289',
-'289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289',
-'289,289,,,,,,,,,,,,,,289,292,292,292,292,292,292,292,292,292,292,292',
-'292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292',
-'292,292,292,292,292,292,292,,,,,,,292,,,,,,,292,296,296,296,296,296',
-'296,296,296,296,296,296,296,296,296,296,296,296,296,296,296,296,296',
-'296,296,296,296,296,296,296,296,296,296,296,296,296,,,,,,,296,,,,,,',
-'296,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303',
-'303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303',
-'303,303,,,,,,,,,,,,,,303,307,307,307,307,307,307,307,307,307,307,307',
-'307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307',
-'307,307,307,307,307,307,307,,,,,,,307,,,,,,,307,308,308,308,308,308',
-'308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308',
-'308,308,308,308,308,308,308,308,308,308,308,308,308,,,,,,,,,,,,,,308',
-'309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309',
-'309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309',
-'309,,,,,,,,,,,,,,309,310,310,310,310,310,310,310,310,310,310,310,310',
-'310,310,310,310,310,310,310,310,310,310,310,310,310,310,310,310,310',
-'310,310,310,310,310,310,,,,,,,,,,,,,,310,311,311,311,311,311,311,311',
-'311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,311',
-'311,311,311,311,311,311,311,311,311,311,311,,,,,,,,,,,,,,311,338,338',
-'338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338',
-'338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,,,,',
-',,,,,338,,,338,338,343,343,343,343,343,343,343,343,343,343,343,343,343',
-'343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343',
-'343,343,343,343,343,,,,,,,,,,,,,,343,347,347,347,347,347,347,347,347',
-'347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347',
-'347,347,347,347,347,347,347,347,347,347,,,,,,,,,,347,,,,347,349,349',
-'349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349',
-'349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,,,,',
-',,,,,,,,,349,352,352,352,352,352,352,352,352,352,352,352,352,352,352',
-'352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352',
-'352,352,352,352,,,,,,,,,,,,,,352,358,358,358,358,358,358,358,358,358',
-'358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358',
-'358,358,358,358,358,358,358,358,358,,,,,,,,,,,,,,358,364,364,364,364',
-'364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364',
-'364,364,364,364,364,364,364,364,364,364,364,364,364,364,,,,,,,,,,,,',
-',364,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372',
-'372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372',
-'372,372,,,,,,,,,,,,,,372,373,373,373,373,373,373,373,373,373,373,373',
-'373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,373',
-'373,373,373,373,373,373,373,,,,,,,,,,,,,,373,395,395,395,395,395,395',
-'395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395',
-'395,395,395,395,395,395,395,395,395,395,395,395,,,,,,,,,,,,,,395,398',
-'398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398',
-'398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398',
-',,,,,,,,,,,,,398,405,405,405,405,405,405,405,405,405,405,405,405,405',
-'405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405',
-'405,405,405,405,405,,,,,,,,,,,,,,405,452,452,452,452,452,452,452,452',
-'452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452',
-'452,452,452,452,452,452,452,452,452,452,,,,,,,,,,,,,,452' ]
- racc_action_check = arr = ::Array.new(6668, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-racc_action_pointer = [
- 81, 132, 172, -7, nil, nil, nil, nil, 209, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 66,
- nil, nil, -2, 76, 182, nil, nil, 160, nil, 1805,
- nil, 328, 219, 324, nil, 225, nil, nil, nil, nil,
- 117, nil, 342, 229, nil, nil, nil, nil, nil, nil,
- nil, nil, 1838, nil, 1871, 82, 1904, -7, 1155, 103,
- nil, 1937, 1970, 2003, 4409, nil, 348, nil, nil, nil,
- 288, nil, 120, 214, -42, nil, nil, nil, 2036, nil,
- 2069, 2102, 2135, nil, nil, 2168, 178, 322, 317, 324,
- 296, nil, 397, -3, 263, 354, 311, 362, nil, 4442,
- 2201, 2234, 2267, 2300, 2333, 2366, 2399, 2432, 2465, 2498,
- 2531, 2564, 2597, 2630, 2663, 2696, 2729, 2762, 2795, 2828,
- 2861, 2894, 2927, 2960, 2993, 3026, 3059, 3092, 3125, 3158,
- 3191, 3224, 3257, 3290, 3323, 3356, 3389, 3422, 160, 1045,
- 381, 388, 4475, -89, nil, 4886, 347, 1218, 401, nil,
- 402, 404, nil, nil, 394, -70, 4935, -75, nil, 4984,
- 398, 137, 143, nil, 3455, 1252, 400, nil, 5033, 400,
- 447, 1316, nil, 3488, 399, 121, 1350, nil, 404, 5082,
- 3521, 126, -25, 405, 452, 398, 192, 273, 3554, 404,
- nil, 3587, 3620, 3653, 3686, nil, nil, nil, nil, 456,
- 127, 5131, 38, 400, 479, 4519, 4572, 483, 484, 485,
- 145, 562, 460, 129, nil, 1414, nil, nil, nil, nil,
- 569, 660, 283, 751, 842, 5180, 1170, 1266, 1364, 1462,
- 1560, 1657, 1755, 3831, 5229, 388, 466, 472, 4507, 4560,
- 4613, 4666, 4719, 4772, 4824, 4873, 4928, 516, 780, 406,
- 407, 871, 408, 5247, 5296, 5345, 5394, 5443, 1121, 5492,
- 413, 3719, nil, nil, nil, nil, 185, 1448, 417, nil,
- 3752, nil, 3785, nil, 1512, 3818, 1546, 135, 144, nil,
- nil, 218, 231, 54, 145, 233, 155, 67, 3881, 5541,
- 256, 3914, 5590, 418, 3947, 1610, 5639, 419, 42, 419,
- 423, 423, 1644, 5688, 145, 470, nil, 5737, 5786, 5835,
- 5884, 5933, 472, 185, 188, 225, 3980, 4013, 568, 4046,
- 653, nil, 571, 4079, 574, 575, 4112, 4145, 4178, nil,
- 29, 385, 55, -26, 499, 517, 521, 4211, 5982, 519,
- nil, 4244, nil, 6031, 573, 525, nil, 6080, nil, 6129,
- nil, nil, 6178, 562, nil, 562, 563, nil, 6227, 577,
- 191, nil, 1707, nil, 6276, 4277, nil, 627, 628, -20,
- -9, nil, 6325, 6374, nil, 973, 3, nil, 1050, nil,
- nil, 4625, 4678, 4731, nil, 642, 389, 325, nil, 648,
- nil, 688, 652, 1741, nil, 6423, nil, nil, 6472, nil,
- nil, nil, nil, 213, 612, 6521, nil, nil, 696, nil,
- 241, 614, 623, nil, nil, nil, 370, 677, 4310, nil,
- 734, 736, 741, 742, nil, 720, nil, nil, 716, 670,
- 214, nil, 721, -7, 722, 4343, nil, 4376, 744, 4784,
- nil, nil, nil, nil, nil, 739, nil, 111, 696, 703,
- nil, 113, 6570, 4837, 66, 835, 786, 787, 753, 791,
- 926, 76, nil, nil, 114, nil, 100, 792, nil ]
-
-racc_action_default = [
- -1, -259, -2, -3, -4, -8, -9, -10, -11, -12,
- -13, -14, -15, -16, -17, -18, -19, -20, -21, -22,
- -23, -24, -25, -26, -27, -29, -30, -31, -32, -116,
- -34, -35, -36, -37, -38, -39, -40, -49, -50, -51,
- -52, -53, -54, -55, -56, -57, -58, -59, -60, -63,
- -64, -65, -69, -72, -75, -259, -116, -116, -119, -116,
- -115, -116, -116, -116, -116, -168, -259, -177, -179, -180,
- -259, -184, -116, -116, -116, -200, -201, -202, -217, -219,
- -116, -116, -116, -228, -229, -116, -116, -259, -116, -116,
- -257, -258, -259, -7, -116, -6, -259, -259, -188, -116,
- -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
- -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
- -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
- -116, -116, -116, -116, -116, -116, -116, -116, -83, -116,
- -28, -259, -116, -26, -31, -259, -259, -116, -80, -94,
- -79, -81, -61, -62, -182, -259, -70, -259, -76, -259,
- -259, -183, -185, -189, -116, -116, -101, -102, -127, -35,
- -37, -116, -54, -69, -259, -259, -116, -107, -120, -123,
- -116, -111, -116, -109, -259, -164, -165, -166, -116, -259,
- -167, -116, -116, -116, -116, -181, -186, -187, -117, -259,
- -259, -218, -214, -259, -259, -259, -259, -259, -259, -259,
- -237, -245, -259, -259, -255, -116, 469, -5, -183, -170,
- -129, -130, -131, -132, -133, -134, -135, -136, -137, -138,
- -139, -140, -141, -142, -143, -144, -145, -146, -147, -148,
- -149, -150, -151, -152, -153, -154, -155, -156, -157, -158,
- -159, -160, -161, -162, -163, -222, -225, -259, -116, -259,
- -259, -93, -97, -96, -169, -41, -33, -116, -259, -95,
- -116, -67, -116, -73, -116, -116, -116, -259, -190, -191,
- -192, -29, -30, -35, -36, -37, -39, -52, -75, -259,
- -259, -116, -123, -259, -116, -116, -123, -259, -259, -83,
- -259, -259, -116, -124, -259, -116, -110, -259, -171, -172,
- -173, -174, -259, -204, -203, -207, -116, -116, -259, -116,
- -116, -246, -259, -116, -259, -259, -116, -116, -116, -234,
- -259, -259, -244, -259, -105, -122, -259, -116, -259, -259,
- -86, -91, -87, -92, -82, -84, -99, -259, -68, -71,
- -74, -77, -78, -259, -193, -259, -259, -100, -128, -259,
- -259, -103, -116, -106, -125, -116, -108, -259, -116, -259,
- -208, -205, -215, -216, -220, -259, -244, -223, -259, -227,
- -230, -259, -259, -259, -235, -259, -259, -243, -238, -259,
- -242, -259, -116, -116, -256, -226, -88, -89, -90, -66,
- -98, -194, -195, -114, -259, -126, -112, -118, -259, -206,
- -259, -259, -209, -210, -221, -247, -248, -259, -116, -224,
- -259, -259, -259, -259, -240, -259, -239, -253, -259, -259,
- -113, -196, -207, -259, -207, -116, -249, -116, -116, -259,
- -231, -232, -233, -236, -241, -259, -104, -259, -259, -211,
- -212, -259, -213, -259, -250, -116, -259, -259, -207, -259,
- -116, -251, -254, -197, -259, -198, -252, -259, -199 ]
-
-racc_goto_table = [
- 2, 154, 3, 95, 27, 169, 27, 96, 210, 98,
- 390, 170, 148, 281, 155, 151, 183, 369, 413, 260,
- 389, 415, 172, 318, 322, 1, 282, 217, 140, 356,
- 284, 286, 209, 351, 166, 214, 97, 200, 335, 336,
- 190, 207, 410, 202, 177, 330, 416, nil, nil, nil,
- nil, 208, nil, nil, 154, nil, nil, nil, nil, nil,
- nil, 436, nil, nil, nil, 390, nil, nil, nil, nil,
- nil, 96, 96, 196, 197, 425, nil, nil, nil, nil,
- nil, 450, nil, nil, nil, 175, nil, 184, nil, nil,
- nil, nil, 160, 95, nil, nil, 145, nil, 27, 27,
- 97, 97, 198, 219, nil, nil, 181, nil, nil, nil,
- nil, nil, 283, nil, 97, nil, 212, 213, 285, 156,
- nil, 159, nil, 168, nil, 179, 324, 325, 185, 186,
- 187, 162, 299, 268, 447, 298, 451, 281, 339, 304,
- 281, 280, nil, 291, nil, 201, 264, 203, 204, 205,
- 282, 293, 206, 282, 284, 286, nil, 284, 286, nil,
- 464, nil, 301, nil, nil, nil, nil, 220, 221, 222,
- 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
- 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, nil, 259, nil, nil, nil,
- 184, 287, 300, 332, 179, 27, nil, nil, nil, nil,
- nil, nil, nil, nil, 345, nil, nil, nil, nil, 181,
- nil, 289, 292, nil, nil, nil, 283, 315, 296, 283,
- 156, nil, 285, 292, nil, 285, 344, 303, nil, nil,
- 334, 162, 388, nil, 391, 307, nil, 280, 308, 309,
- 310, 311, 353, nil, 148, nil, 151, 291, nil, 355,
- nil, nil, nil, nil, nil, nil, 314, nil, nil, nil,
- nil, 359, 179, nil, nil, nil, nil, nil, nil, 314,
- 408, nil, nil, 280, nil, nil, nil, nil, nil, nil,
- nil, nil, 420, 421, 422, nil, 423, 424, nil, nil,
- 426, nil, nil, nil, nil, nil, nil, nil, 345, nil,
- nil, nil, 376, nil, 27, 338, nil, nil, 343, nil,
- nil, nil, 95, 367, 179, 287, 143, 347, 287, 349,
- 344, 159, 352, 179, nil, nil, 444, nil, 404, nil,
- nil, nil, nil, nil, nil, 159, nil, nil, 289, nil,
- nil, 358, 179, nil, 174, nil, 456, nil, 457, 364,
- nil, 189, 459, nil, nil, nil, 95, nil, 387, 429,
- nil, nil, nil, 372, 373, 467, 375, nil, nil, nil,
- 378, nil, nil, 381, 382, 383, 407, nil, nil, nil,
- nil, nil, nil, nil, 395, nil, 189, nil, 398, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 428, nil, nil, nil, nil, nil, nil, nil, nil, 179,
- nil, nil, 405, 387, nil, nil, nil, nil, nil, nil,
- 454, nil, 27, nil, nil, nil, nil, nil, nil, 189,
- nil, nil, nil, nil, 95, nil, nil, 461, nil, 27,
- 179, 95, 466, nil, 27, nil, 95, nil, nil, nil,
- nil, nil, 143, nil, nil, nil, nil, nil, 143, nil,
- nil, nil, nil, 143, nil, 439, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 143, nil, nil, nil, nil,
- nil, nil, 452, nil, 453 ]
-
-racc_goto_check = [
- 2, 50, 3, 2, 28, 31, 28, 42, 70, 64,
- 40, 33, 49, 26, 45, 49, 58, 69, 72, 52,
- 76, 77, 41, 74, 74, 1, 27, 4, 25, 37,
- 32, 35, 44, 48, 56, 57, 53, 59, 60, 61,
- 62, 65, 71, 73, 55, 75, 78, nil, nil, nil,
- nil, 41, nil, nil, 50, nil, nil, nil, nil, nil,
- nil, 77, nil, nil, nil, 40, nil, nil, nil, nil,
- nil, 42, 42, 64, 64, 76, nil, nil, nil, nil,
- nil, 72, nil, nil, nil, 53, nil, 53, nil, nil,
- nil, nil, 54, 2, nil, nil, 22, nil, 28, 28,
- 53, 53, 53, 28, nil, nil, 38, nil, nil, nil,
- nil, nil, 31, nil, 53, nil, 53, 53, 33, 22,
- nil, 22, nil, 22, nil, 22, 70, 70, 22, 22,
- 22, 66, 50, 55, 69, 45, 69, 26, 52, 58,
- 26, 67, nil, 67, nil, 22, 28, 22, 22, 22,
- 27, 55, 22, 27, 32, 35, nil, 32, 35, nil,
- 69, nil, 55, nil, nil, nil, nil, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, nil, 22, nil, nil, nil,
- 53, 38, 54, 3, 22, 28, nil, nil, nil, nil,
- nil, nil, nil, nil, 50, nil, nil, nil, nil, 38,
- nil, 22, 22, nil, nil, nil, 31, 54, 22, 31,
- 22, nil, 33, 22, nil, 33, 49, 22, nil, nil,
- 54, 66, 70, nil, 70, 22, nil, 67, 22, 22,
- 22, 22, 55, nil, 49, nil, 49, 67, nil, 67,
- nil, nil, nil, nil, nil, nil, 66, nil, nil, nil,
- nil, 55, 22, nil, nil, nil, nil, nil, nil, 66,
- 70, nil, nil, 67, nil, nil, nil, nil, nil, nil,
- nil, nil, 70, 70, 70, nil, 70, 70, nil, nil,
- 70, nil, nil, nil, nil, nil, nil, nil, 50, nil,
- nil, nil, 3, nil, 28, 22, nil, nil, 22, nil,
- nil, nil, 2, 53, 22, 38, 23, 22, 38, 22,
- 49, 22, 22, 22, nil, nil, 70, nil, 55, nil,
- nil, nil, nil, nil, nil, 22, nil, nil, 22, nil,
- nil, 22, 22, nil, 23, nil, 70, nil, 70, 22,
- nil, 23, 70, nil, nil, nil, 2, nil, 38, 55,
- nil, nil, nil, 22, 22, 70, 22, nil, nil, nil,
- 22, nil, nil, 22, 22, 22, 53, nil, nil, nil,
- nil, nil, nil, nil, 22, nil, 23, nil, 22, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 53, nil, nil, nil, nil, nil, nil, nil, nil, 22,
- nil, nil, 22, 38, nil, nil, nil, nil, nil, nil,
- 3, nil, 28, nil, nil, nil, nil, nil, nil, 23,
- nil, nil, nil, nil, 2, nil, nil, 3, nil, 28,
- 22, 2, 3, nil, 28, nil, 2, nil, nil, nil,
- nil, nil, 23, nil, nil, nil, nil, nil, 23, nil,
- nil, nil, nil, 23, nil, 22, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 23, nil, nil, nil, nil,
- nil, nil, 22, nil, 22 ]
-
-racc_goto_pointer = [
- nil, 25, 0, 2, -68, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 67, 307, nil, 4, -151, -138, 4, nil,
- nil, -52, -134, -46, nil, -133, nil, -262, 47, nil,
- -321, -35, -1, nil, -54, -38, nil, nil, -241, -20,
- -42, nil, -120, 28, 37, -14, -22, -54, -43, -37,
- -177, -176, -24, nil, 1, -45, 76, -21, nil, -298,
- -79, -328, -352, -35, -180, -165, -311, -355, -330 ]
-
-racc_goto_default = [
- nil, nil, 94, 93, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, nil, 25, 26, 144, 28,
- 30, 31, 32, 33, 34, 35, 36, 290, 40, 39,
- 41, 42, 43, 51, 67, nil, 53, 157, 158, 150,
- 138, 68, nil, 55, nil, 297, nil, nil, nil, nil,
- 178, nil, 65, 66, 71, 69, 278, 163, 74, nil,
- 321, nil, nil, nil, nil, nil, nil, nil, nil ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 0, 99, :_reduce_1,
- 1, 99, :_reduce_2,
- 1, 99, :_reduce_3,
- 1, 101, :_reduce_4,
- 3, 101, :_reduce_5,
- 2, 101, :_reduce_6,
- 2, 101, :_reduce_7,
- 1, 102, :_reduce_8,
- 1, 102, :_reduce_9,
- 1, 102, :_reduce_10,
- 1, 102, :_reduce_11,
- 1, 102, :_reduce_12,
- 1, 102, :_reduce_13,
- 1, 102, :_reduce_14,
- 1, 102, :_reduce_15,
- 1, 102, :_reduce_16,
- 1, 102, :_reduce_17,
- 1, 102, :_reduce_18,
- 1, 102, :_reduce_19,
- 1, 102, :_reduce_20,
- 1, 102, :_reduce_21,
- 1, 102, :_reduce_22,
- 1, 102, :_reduce_23,
- 1, 102, :_reduce_24,
- 1, 102, :_reduce_25,
- 1, 120, :_reduce_26,
- 1, 120, :_reduce_27,
- 2, 120, :_reduce_28,
- 1, 120, :_reduce_29,
- 1, 120, :_reduce_30,
- 1, 120, :_reduce_31,
- 1, 120, :_reduce_32,
- 3, 120, :_reduce_33,
- 1, 121, :_reduce_34,
- 1, 121, :_reduce_35,
- 1, 121, :_reduce_36,
- 1, 121, :_reduce_37,
- 1, 121, :_reduce_38,
- 1, 121, :_reduce_39,
- 1, 121, :_reduce_40,
- 3, 121, :_reduce_41,
- 1, 135, :_reduce_42,
- 1, 135, :_reduce_43,
- 1, 135, :_reduce_44,
- 1, 135, :_reduce_45,
- 1, 135, :_reduce_46,
- 1, 135, :_reduce_47,
- 1, 135, :_reduce_48,
- 1, 100, :_reduce_49,
- 1, 100, :_reduce_50,
- 1, 132, :_reduce_51,
- 1, 132, :_reduce_52,
- 1, 132, :_reduce_53,
- 1, 132, :_reduce_54,
- 1, 132, :_reduce_55,
- 1, 132, :_reduce_56,
- 1, 132, :_reduce_57,
- 1, 137, :_reduce_58,
- 1, 136, :_reduce_59,
- 1, 136, :_reduce_60,
- 2, 136, :_reduce_61,
- 2, 136, :_reduce_62,
- 1, 138, :_reduce_63,
- 1, 140, :_reduce_64,
- 1, 139, :_reduce_65,
- 5, 142, :_reduce_66,
- 3, 141, :_reduce_67,
- 4, 141, :_reduce_68,
- 0, 143, :_reduce_69,
- 1, 143, :_reduce_70,
- 3, 143, :_reduce_71,
- 1, 122, :_reduce_72,
- 3, 144, :_reduce_73,
- 4, 144, :_reduce_74,
- 0, 145, :_reduce_75,
- 1, 145, :_reduce_76,
- 3, 145, :_reduce_77,
- 3, 146, :_reduce_78,
- 2, 129, :_reduce_79,
- 2, 129, :_reduce_80,
- 2, 129, :_reduce_81,
- 4, 129, :_reduce_82,
- 2, 130, :_reduce_83,
- 4, 130, :_reduce_84,
- 2, 149, :_reduce_85,
- 3, 148, :_reduce_86,
- 3, 148, :_reduce_87,
- 4, 148, :_reduce_88,
- 4, 148, :_reduce_89,
- 3, 150, :_reduce_90,
- 2, 150, :_reduce_91,
- 2, 150, :_reduce_92,
- 1, 150, :_reduce_93,
- 1, 147, :_reduce_94,
- 2, 147, :_reduce_95,
- 2, 123, :_reduce_96,
- 2, 123, :_reduce_97,
- 5, 133, :_reduce_98,
- 4, 133, :_reduce_99,
- 4, 133, :_reduce_100,
- 2, 133, :_reduce_101,
- 2, 133, :_reduce_102,
- 4, 133, :_reduce_103,
- 5, 155, :_reduce_104,
- 2, 155, :_reduce_105,
- 4, 115, :_reduce_106,
- 2, 115, :_reduce_107,
- 4, 116, :_reduce_108,
- 2, 116, :_reduce_109,
- 2, 156, :_reduce_110,
- 1, 156, :_reduce_111,
- 4, 156, :_reduce_112,
- 6, 103, :_reduce_113,
- 5, 103, :_reduce_114,
- 1, 151, :_reduce_115,
- 0, 151, :_reduce_116,
- 1, 157, :_reduce_117,
- 4, 157, :_reduce_118,
- 0, 153, :_reduce_119,
- 1, 153, :_reduce_120,
- 0, 159, :_reduce_121,
- 1, 159, :_reduce_122,
- 1, 158, :_reduce_123,
- 2, 158, :_reduce_124,
- 3, 158, :_reduce_125,
- 4, 158, :_reduce_126,
- 1, 154, :_reduce_127,
- 3, 154, :_reduce_128,
- 3, 124, :_reduce_129,
- 3, 124, :_reduce_130,
- 3, 124, :_reduce_131,
- 3, 124, :_reduce_132,
- 3, 124, :_reduce_133,
- 3, 124, :_reduce_134,
- 3, 124, :_reduce_135,
- 3, 124, :_reduce_136,
- 3, 124, :_reduce_137,
- 3, 124, :_reduce_138,
- 3, 124, :_reduce_139,
- 3, 124, :_reduce_140,
- 3, 124, :_reduce_141,
- 3, 124, :_reduce_142,
- 3, 124, :_reduce_143,
- 3, 124, :_reduce_144,
- 3, 124, :_reduce_145,
- 3, 124, :_reduce_146,
- 3, 124, :_reduce_147,
- 3, 124, :_reduce_148,
- 3, 124, :_reduce_149,
- 3, 124, :_reduce_150,
- 3, 124, :_reduce_151,
- 3, 124, :_reduce_152,
- 3, 124, :_reduce_153,
- 3, 124, :_reduce_154,
- 3, 124, :_reduce_155,
- 3, 124, :_reduce_156,
- 3, 124, :_reduce_157,
- 3, 124, :_reduce_158,
- 3, 124, :_reduce_159,
- 3, 124, :_reduce_160,
- 3, 124, :_reduce_161,
- 3, 124, :_reduce_162,
- 3, 124, :_reduce_163,
- 2, 128, :_reduce_164,
- 2, 128, :_reduce_165,
- 2, 128, :_reduce_166,
- 2, 126, :_reduce_167,
- 1, 126, :_reduce_168,
- 3, 117, :_reduce_169,
- 3, 117, :_reduce_170,
- 3, 160, :_reduce_171,
- 3, 160, :_reduce_172,
- 3, 160, :_reduce_173,
- 3, 160, :_reduce_174,
- 1, 161, :_reduce_175,
- 1, 161, :_reduce_176,
- 1, 161, :_reduce_177,
- 1, 161, :_reduce_178,
- 1, 161, :_reduce_179,
- 1, 162, :_reduce_180,
- 2, 162, :_reduce_181,
- 2, 162, :_reduce_182,
- 2, 163, :_reduce_183,
- 1, 131, :_reduce_184,
- 2, 131, :_reduce_185,
- 2, 106, :_reduce_186,
- 2, 106, :_reduce_187,
- 2, 106, :_reduce_188,
- 1, 164, :_reduce_189,
- 2, 164, :_reduce_190,
- 2, 164, :_reduce_191,
- 2, 164, :_reduce_192,
- 3, 165, :_reduce_193,
- 4, 165, :_reduce_194,
- 4, 165, :_reduce_195,
- 6, 104, :_reduce_196,
- 9, 104, :_reduce_197,
- 9, 104, :_reduce_198,
- 11, 104, :_reduce_199,
- 1, 166, :_reduce_200,
- 1, 166, :_reduce_201,
- 1, 166, :_reduce_202,
- 1, 152, :_reduce_203,
- 1, 152, :_reduce_204,
- 1, 167, :_reduce_205,
- 2, 167, :_reduce_206,
- 0, 167, :_reduce_207,
- 0, 169, :_reduce_208,
- 1, 169, :_reduce_209,
- 1, 169, :_reduce_210,
- 3, 169, :_reduce_211,
- 3, 169, :_reduce_212,
- 3, 170, :_reduce_213,
- 2, 105, :_reduce_214,
- 4, 105, :_reduce_215,
- 4, 105, :_reduce_216,
- 0, 171, :_reduce_217,
- 1, 171, :_reduce_218,
- 1, 114, :_reduce_219,
- 4, 118, :_reduce_220,
- 5, 118, :_reduce_221,
- 3, 118, :_reduce_222,
- 4, 119, :_reduce_223,
- 5, 119, :_reduce_224,
- 3, 119, :_reduce_225,
- 5, 125, :_reduce_226,
- 4, 109, :_reduce_227,
- 1, 113, :_reduce_228,
- 1, 113, :_reduce_229,
- 4, 110, :_reduce_230,
- 6, 108, :_reduce_231,
- 6, 108, :_reduce_232,
- 6, 108, :_reduce_233,
- 3, 111, :_reduce_234,
- 4, 111, :_reduce_235,
- 6, 111, :_reduce_236,
- 0, 173, :_reduce_237,
- 2, 173, :_reduce_238,
- 3, 173, :_reduce_239,
- 3, 173, :_reduce_240,
- 4, 173, :_reduce_241,
- 1, 174, :_reduce_242,
- 1, 174, :_reduce_243,
- 2, 168, :_reduce_244,
- 1, 168, :_reduce_245,
- 1, 172, :_reduce_246,
- 3, 172, :_reduce_247,
- 3, 172, :_reduce_248,
- 4, 172, :_reduce_249,
- 3, 175, :_reduce_250,
- 4, 176, :_reduce_251,
- 5, 176, :_reduce_252,
- 5, 112, :_reduce_253,
- 8, 112, :_reduce_254,
- 2, 134, :_reduce_255,
- 4, 127, :_reduce_256,
- 1, 127, :_reduce_257,
- 1, 107, :_reduce_258 ]
-
-racc_reduce_n = 259
-
-racc_shift_n = 469
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :IF => 2,
- :ELSE => 3,
- :ELSEIF => 4,
- :THEN => 5,
- :UNLESS => 6,
- :END => 7,
- :WHILE => 8,
- :UNTIL => 9,
- :BREAK => 10,
- :CONTINUE => 11,
- :TRY => 12,
- :CATCH => 13,
- :FINALLY => 14,
- :FOR => 15,
- :IN => 16,
- :DEF => 17,
- :DEF_BANG => 18,
- :SPLAT_PARAM => 19,
- :SPLAT_ARG => 20,
- :CALL => 21,
- :BUILTIN_COMMAND => 22,
- :CLASS => 23,
- :NEW => 24,
- :DEFM => 25,
- :DEFM_BANG => 26,
- :SUPER => 27,
- :RIML_FILE_COMMAND => 28,
- :RIML_CLASS_COMMAND => 29,
- :RETURN => 30,
- :NEWLINE => 31,
- :NUMBER => 32,
- :STRING_D => 33,
- :STRING_S => 34,
- :EX_LITERAL => 35,
- :REGEXP => 36,
- :TRUE => 37,
- :FALSE => 38,
- :LET => 39,
- :UNLET => 40,
- :UNLET_BANG => 41,
- :IDENTIFIER => 42,
- :DICT_VAL => 43,
- :SCOPE_MODIFIER => 44,
- :SCOPE_MODIFIER_LITERAL => 45,
- :SPECIAL_VAR_PREFIX => 46,
- :FINISH => 47,
- "!" => 48,
- "*" => 49,
- "/" => 50,
- "%" => 51,
- "+" => 52,
- "-" => 53,
- "." => 54,
- ">" => 55,
- ">#" => 56,
- ">?" => 57,
- "<" => 58,
- "<#" => 59,
- "<?" => 60,
- ">=" => 61,
- ">=#" => 62,
- ">=?" => 63,
- "<=" => 64,
- "<=#" => 65,
- "<=?" => 66,
- "==" => 67,
- "==?" => 68,
- "==#" => 69,
- "=~" => 70,
- "=~?" => 71,
- "=~#" => 72,
- "!~" => 73,
- "!~?" => 74,
- "!~#" => 75,
- "!=" => 76,
- "!=?" => 77,
- "!=#" => 78,
- :IS => 79,
- :ISNOT => 80,
- "&&" => 81,
- "||" => 82,
- "?" => 83,
- "=" => 84,
- "+=" => 85,
- "-=" => 86,
- ".=" => 87,
- "," => 88,
- "(" => 89,
- ")" => 90,
- ";" => 91,
- "[" => 92,
- "]" => 93,
- "{" => 94,
- "}" => 95,
- ":" => 96,
- "===" => 97 }
-
-racc_nt_base = 98
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "IF",
- "ELSE",
- "ELSEIF",
- "THEN",
- "UNLESS",
- "END",
- "WHILE",
- "UNTIL",
- "BREAK",
- "CONTINUE",
- "TRY",
- "CATCH",
- "FINALLY",
- "FOR",
- "IN",
- "DEF",
- "DEF_BANG",
- "SPLAT_PARAM",
- "SPLAT_ARG",
- "CALL",
- "BUILTIN_COMMAND",
- "CLASS",
- "NEW",
- "DEFM",
- "DEFM_BANG",
- "SUPER",
- "RIML_FILE_COMMAND",
- "RIML_CLASS_COMMAND",
- "RETURN",
- "NEWLINE",
- "NUMBER",
- "STRING_D",
- "STRING_S",
- "EX_LITERAL",
- "REGEXP",
- "TRUE",
- "FALSE",
- "LET",
- "UNLET",
- "UNLET_BANG",
- "IDENTIFIER",
- "DICT_VAL",
- "SCOPE_MODIFIER",
- "SCOPE_MODIFIER_LITERAL",
- "SPECIAL_VAR_PREFIX",
- "FINISH",
- "\"!\"",
- "\"*\"",
- "\"/\"",
- "\"%\"",
- "\"+\"",
- "\"-\"",
- "\".\"",
- "\">\"",
- "\">#\"",
- "\">?\"",
- "\"<\"",
- "\"<#\"",
- "\"<?\"",
- "\">=\"",
- "\">=#\"",
- "\">=?\"",
- "\"<=\"",
- "\"<=#\"",
- "\"<=?\"",
- "\"==\"",
- "\"==?\"",
- "\"==#\"",
- "\"=~\"",
- "\"=~?\"",
- "\"=~#\"",
- "\"!~\"",
- "\"!~?\"",
- "\"!~#\"",
- "\"!=\"",
- "\"!=?\"",
- "\"!=#\"",
- "IS",
- "ISNOT",
- "\"&&\"",
- "\"||\"",
- "\"?\"",
- "\"=\"",
- "\"+=\"",
- "\"-=\"",
- "\".=\"",
- "\",\"",
- "\"(\"",
- "\")\"",
- "\";\"",
- "\"[\"",
- "\"]\"",
- "\"{\"",
- "\"}\"",
- "\":\"",
- "\"===\"",
- "$start",
- "Root",
- "Terminator",
- "Statements",
- "Statement",
- "ExplicitCall",
- "Def",
- "Return",
- "UnletVariable",
- "ExLiteral",
- "For",
- "While",
- "Until",
- "Try",
- "ClassDefinition",
- "LoopKeyword",
- "EndScript",
- "RimlFileCommand",
- "RimlClassCommand",
- "MultiAssign",
- "If",
- "Unless",
- "Expression",
- "ExpressionWithoutDictLiteral",
- "Dictionary",
- "DictGetWithDotLiteral",
- "BinaryOperator",
- "Ternary",
- "Assign",
- "Super",
- "UnaryOperator",
- "DictGet",
- "ListOrDictGet",
- "AllVariableRetrieval",
- "LiteralWithoutDictLiteral",
- "Call",
- "ObjectInstantiation",
- "PossibleStringValue",
- "String",
- "Number",
- "Regexp",
- "List",
- "ScopeModifierLiteral",
- "ListLiteral",
- "ListUnpack",
- "ListItems",
- "DictionaryLiteral",
- "DictItems",
- "DictItem",
- "DictGetWithDot",
- "ListOrDictGetWithBrackets",
- "ListOrDictGetAssign",
- "SubList",
- "Scope",
- "DefCallIdentifier",
- "ArgList",
- "ArgListWithoutNothing",
- "ObjectInstantiationCall",
- "ClassArgList",
- "SIDAndScope",
- "ArgListWithoutNothingWithSplat",
- "ArgListWithSplat",
- "AssignExpression",
- "AssignLHS",
- "VariableRetrieval",
- "SimpleVariableRetrieval",
- "CurlyBraceName",
- "CurlyBraceVarPart",
- "FunctionType",
- "DefKeywords",
- "Block",
- "ParamList",
- "DefaultParam",
- "Returnable",
- "IfBlock",
- "Catch",
- "Catchable",
- "ElseBlock",
- "ElseifBlock" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'riml.y', 61)
- def _reduce_1(val, _values, result)
- result = make_node(val) { |_| Riml::Nodes.new([]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 62)
- def _reduce_2(val, _values, result)
- result = make_node(val) { |_| Riml::Nodes.new([]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 63)
- def _reduce_3(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 68)
- def _reduce_4(val, _values, result)
- result = make_node(val) { |v| Riml::Nodes.new([ v[0] ]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 69)
- def _reduce_5(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 70)
- def _reduce_6(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 71)
- def _reduce_7(val, _values, result)
- result = make_node(val) { |v| Riml::Nodes.new(v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 76)
- def _reduce_8(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 77)
- def _reduce_9(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 78)
- def _reduce_10(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 79)
- def _reduce_11(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 80)
- def _reduce_12(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 81)
- def _reduce_13(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 82)
- def _reduce_14(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 83)
- def _reduce_15(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 84)
- def _reduce_16(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 85)
- def _reduce_17(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 86)
- def _reduce_18(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 87)
- def _reduce_19(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 88)
- def _reduce_20(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 89)
- def _reduce_21(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 90)
- def _reduce_22(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 91)
- def _reduce_23(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 92)
- def _reduce_24(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 93)
- def _reduce_25(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 97)
- def _reduce_26(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 98)
- def _reduce_27(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 99)
- def _reduce_28(val, _values, result)
- result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 100)
- def _reduce_29(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 101)
- def _reduce_30(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 102)
- def _reduce_31(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 103)
- def _reduce_32(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 104)
- def _reduce_33(val, _values, result)
- result = make_node(val) { |v| Riml::WrapInParensNode.new(v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 108)
- def _reduce_34(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 109)
- def _reduce_35(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 110)
- def _reduce_36(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 111)
- def _reduce_37(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 112)
- def _reduce_38(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 113)
- def _reduce_39(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 114)
- def _reduce_40(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 115)
- def _reduce_41(val, _values, result)
- result = make_node(val) { |v| Riml::WrapInParensNode.new(v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 120)
- def _reduce_42(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 121)
- def _reduce_43(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 122)
- def _reduce_44(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 123)
- def _reduce_45(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 124)
- def _reduce_46(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 125)
- def _reduce_47(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 126)
- def _reduce_48(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 130)
- def _reduce_49(val, _values, result)
- result = nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 131)
- def _reduce_50(val, _values, result)
- result = nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 135)
- def _reduce_51(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 136)
- def _reduce_52(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 137)
- def _reduce_53(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 138)
- def _reduce_54(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 139)
- def _reduce_55(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 140)
- def _reduce_56(val, _values, result)
- result = make_node(val) { |_| Riml::TrueNode.new }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 141)
- def _reduce_57(val, _values, result)
- result = make_node(val) { |_| Riml::FalseNode.new }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 145)
- def _reduce_58(val, _values, result)
- result = make_node(val) { |v| Riml::NumberNode.new(v[0]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 149)
- def _reduce_59(val, _values, result)
- result = make_node(val) { |v| Riml::StringNode.new(v[0], :s) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 150)
- def _reduce_60(val, _values, result)
- result = make_node(val) { |v| Riml::StringNode.new(v[0], :d) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 151)
- def _reduce_61(val, _values, result)
- result = make_node(val) { |v| Riml::StringLiteralConcatNode.new(v[0], Riml::StringNode.new(v[1], :s)) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 152)
- def _reduce_62(val, _values, result)
- result = make_node(val) { |v| Riml::StringLiteralConcatNode.new(v[0], Riml::StringNode.new(v[1], :d)) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 156)
- def _reduce_63(val, _values, result)
- result = make_node(val) { |v| Riml::RegexpNode.new(v[0]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 160)
- def _reduce_64(val, _values, result)
- result = make_node(val) { |v| Riml::ScopeModifierLiteralNode.new(v[0]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 164)
- def _reduce_65(val, _values, result)
- result = make_node(val) { |v| Riml::ListNode.new(v[0]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 168)
- def _reduce_66(val, _values, result)
- result = make_node(val) { |v| Riml::ListUnpackNode.new(v[1] << v[3]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 172)
- def _reduce_67(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 173)
- def _reduce_68(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 177)
- def _reduce_69(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 178)
- def _reduce_70(val, _values, result)
- result = [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 179)
- def _reduce_71(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 183)
- def _reduce_72(val, _values, result)
- result = make_node(val) { |v| Riml::DictionaryNode.new(v[0]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 190)
- def _reduce_73(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 191)
- def _reduce_74(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 196)
- def _reduce_75(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 197)
- def _reduce_76(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 198)
- def _reduce_77(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 203)
- def _reduce_78(val, _values, result)
- result = [val[0], val[2]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 207)
- def _reduce_79(val, _values, result)
- result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 208)
- def _reduce_80(val, _values, result)
- result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 209)
- def _reduce_81(val, _values, result)
- result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 210)
- def _reduce_82(val, _values, result)
- result = make_node(val) { |v| Riml::DictGetDotNode.new(Riml::WrapInParensNode.new(v[1]), v[3]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 214)
- def _reduce_83(val, _values, result)
- result = make_node(val) { |v| Riml::ListOrDictGetNode.new(v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 215)
- def _reduce_84(val, _values, result)
- result = make_node(val) { |v| Riml::ListOrDictGetNode.new(Riml::WrapInParensNode.new(v[1]), v[3]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 219)
- def _reduce_85(val, _values, result)
- result = make_node(val) { |v| Riml::ListOrDictGetNode.new(v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 223)
- def _reduce_86(val, _values, result)
- result = [val[1]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 224)
- def _reduce_87(val, _values, result)
- result = [val[1]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 225)
- def _reduce_88(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 226)
- def _reduce_89(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 230)
- def _reduce_90(val, _values, result)
- result = make_node(val) { |v| Riml::SublistNode.new([v[0], Riml::LiteralNode.new(' : '), v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 231)
- def _reduce_91(val, _values, result)
- result = make_node(val) { |v| Riml::SublistNode.new([v[0], Riml::LiteralNode.new(' :')]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 232)
- def _reduce_92(val, _values, result)
- result = make_node(val) { |v| Riml::SublistNode.new([Riml::LiteralNode.new(': '), v[1]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 233)
- def _reduce_93(val, _values, result)
- result = make_node(val) { |_| Riml::SublistNode.new([Riml::LiteralNode.new(':')]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 237)
- def _reduce_94(val, _values, result)
- result = [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 238)
- def _reduce_95(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 242)
- def _reduce_96(val, _values, result)
- result = [val[1]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 243)
- def _reduce_97(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 247)
- def _reduce_98(val, _values, result)
- result = make_node(val) { |v| Riml::CallNode.new(v[0], v[1], v[3]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 248)
- def _reduce_99(val, _values, result)
- result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 249)
- def _reduce_100(val, _values, result)
- result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 250)
- def _reduce_101(val, _values, result)
- result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 251)
- def _reduce_102(val, _values, result)
- result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], []) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 252)
- def _reduce_103(val, _values, result)
- result = make_node(val) { |v| Riml::ExplicitCallNode.new(nil, nil, v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 256)
- def _reduce_104(val, _values, result)
- result = make_node(val) { |v| Riml::CallNode.new(v[0], v[1], v[3]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 257)
- def _reduce_105(val, _values, result)
- result = make_node(val) { |v| Riml::CallNode.new(v[0], v[1], []) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 261)
- def _reduce_106(val, _values, result)
- result = make_node(val) { |v| Riml::RimlFileCommandNode.new(nil, v[0], v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 262)
- def _reduce_107(val, _values, result)
- result = make_node(val) { |v| Riml::RimlFileCommandNode.new(nil, v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 266)
- def _reduce_108(val, _values, result)
- result = make_node(val) { |v| Riml::RimlClassCommandNode.new(nil, v[0], v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 267)
- def _reduce_109(val, _values, result)
- result = make_node(val) { |v| Riml::RimlClassCommandNode.new(nil, v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 271)
- def _reduce_110(val, _values, result)
- result = ["#{val[0]}#{val[1]}"]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 272)
- def _reduce_111(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 273)
- def _reduce_112(val, _values, result)
- result = val[0].concat ["#{val[2]}#{val[3]}"]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 277)
- def _reduce_113(val, _values, result)
- result = make_node(val) { |v| Riml::ExplicitCallNode.new(v[1], v[2], v[4]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 278)
- def _reduce_114(val, _values, result)
- result = make_node(val) { |v| Riml::ExplicitCallNode.new(nil, v[1], v[3]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 282)
- def _reduce_115(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 283)
- def _reduce_116(val, _values, result)
- result = nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 288)
- def _reduce_117(val, _values, result)
- result = [ nil, val[0] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 289)
- def _reduce_118(val, _values, result)
- result = [ make_node(val) { |v| Riml::SIDNode.new(v[1]) }, val[3] ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 293)
- def _reduce_119(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 294)
- def _reduce_120(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 298)
- def _reduce_121(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 299)
- def _reduce_122(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 303)
- def _reduce_123(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 304)
- def _reduce_124(val, _values, result)
- result = [ make_node(val) { |v| Riml::SplatNode.new(v[1]) } ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 305)
- def _reduce_125(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 306)
- def _reduce_126(val, _values, result)
- result = val[0] << make_node(val) { |v| Riml::SplatNode.new(v[3]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 310)
- def _reduce_127(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 311)
- def _reduce_128(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 315)
- def _reduce_129(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 316)
- def _reduce_130(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 318)
- def _reduce_131(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 319)
- def _reduce_132(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 320)
- def _reduce_133(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 323)
- def _reduce_134(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 325)
- def _reduce_135(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 326)
- def _reduce_136(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 327)
- def _reduce_137(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 329)
- def _reduce_138(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 330)
- def _reduce_139(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 331)
- def _reduce_140(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 333)
- def _reduce_141(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 334)
- def _reduce_142(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 335)
- def _reduce_143(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 337)
- def _reduce_144(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 338)
- def _reduce_145(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 339)
- def _reduce_146(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 341)
- def _reduce_147(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 342)
- def _reduce_148(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 343)
- def _reduce_149(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 345)
- def _reduce_150(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 346)
- def _reduce_151(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 347)
- def _reduce_152(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 349)
- def _reduce_153(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 350)
- def _reduce_154(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 351)
- def _reduce_155(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 353)
- def _reduce_156(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 354)
- def _reduce_157(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 355)
- def _reduce_158(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 356)
- def _reduce_159(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 357)
- def _reduce_160(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 358)
- def _reduce_161(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 360)
- def _reduce_162(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 361)
- def _reduce_163(val, _values, result)
- result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 365)
- def _reduce_164(val, _values, result)
- result = make_node(val) { |v| Riml::UnaryOperatorNode.new(val[0], [val[1]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 366)
- def _reduce_165(val, _values, result)
- result = make_node(val) { |v| Riml::UnaryOperatorNode.new(val[0], [val[1]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 367)
- def _reduce_166(val, _values, result)
- result = make_node(val) { |v| Riml::UnaryOperatorNode.new(val[0], [val[1]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 372)
- def _reduce_167(val, _values, result)
- result = make_node(val) { |v| Riml::AssignNode.new(v[1][0], v[1][1], v[1][2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 373)
- def _reduce_168(val, _values, result)
- result = make_node(val) { |v| Riml::AssignNode.new(v[0][0], v[0][1], v[0][2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 377)
- def _reduce_169(val, _values, result)
- result = make_node(val) { |v| Riml::MultiAssignNode.new([v[0], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 378)
- def _reduce_170(val, _values, result)
- val[0].assigns << val[2]; result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 383)
- def _reduce_171(val, _values, result)
- result = [val[1], val[0], val[2]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 384)
- def _reduce_172(val, _values, result)
- result = [val[1], val[0], val[2]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 385)
- def _reduce_173(val, _values, result)
- result = [val[1], val[0], val[2]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 386)
- def _reduce_174(val, _values, result)
- result = [val[1], val[0], val[2]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 390)
- def _reduce_175(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 391)
- def _reduce_176(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 392)
- def _reduce_177(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 393)
- def _reduce_178(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 394)
- def _reduce_179(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 399)
- def _reduce_180(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 400)
- def _reduce_181(val, _values, result)
- result = make_node(val) { |v| Riml::GetSpecialVariableNode.new(v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 401)
- def _reduce_182(val, _values, result)
- result = make_node(val) { |v| Riml::GetVariableByScopeAndDictNameNode.new(v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 405)
- def _reduce_183(val, _values, result)
- result = make_node(val) { |v| Riml::GetVariableNode.new(v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 409)
- def _reduce_184(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 410)
- def _reduce_185(val, _values, result)
- result = make_node(val) { |v| Riml::GetCurlyBraceNameNode.new(v[0], v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 414)
- def _reduce_186(val, _values, result)
- result = make_node(val) { |v| Riml::UnletVariableNode.new('!', [ v[1] ]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 415)
- def _reduce_187(val, _values, result)
- result = make_node(val) { |v| Riml::UnletVariableNode.new('!', [ v[1] ]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 416)
- def _reduce_188(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 420)
- def _reduce_189(val, _values, result)
- result = make_node(val) { |v| Riml::CurlyBraceVariable.new([ v[0] ]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 421)
- def _reduce_190(val, _values, result)
- result = make_node(val) { |v| Riml::CurlyBraceVariable.new([ Riml::CurlyBracePart.new(v[0]), v[1] ]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 422)
- def _reduce_191(val, _values, result)
- result = val[0] << make_node(val) { |v| Riml::CurlyBracePart.new(v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 423)
- def _reduce_192(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 427)
- def _reduce_193(val, _values, result)
- result = make_node(val) { |v| Riml::CurlyBracePart.new(v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 428)
- def _reduce_194(val, _values, result)
- result = make_node(val) { |v| Riml::CurlyBracePart.new([v[1], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 429)
- def _reduce_195(val, _values, result)
- result = make_node(val) { |v| Riml::CurlyBracePart.new([v[1], v[2]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 435)
- def _reduce_196(val, _values, result)
- result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], [], v[3], v[4]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 436)
- def _reduce_197(val, _values, result)
- result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], v[4], v[6], v[7]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 437)
- def _reduce_198(val, _values, result)
- result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], [v[4]], v[6], v[7]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 438)
- def _reduce_199(val, _values, result)
- result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], v[4] << v[6], v[8], v[9]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 442)
- def _reduce_200(val, _values, result)
- result = "DefNode"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 443)
- def _reduce_201(val, _values, result)
- result = "DefNode"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 444)
- def _reduce_202(val, _values, result)
- result = "DefMethodNode"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 449)
- def _reduce_203(val, _values, result)
- result = make_node(val) { |v| Riml::GetCurlyBraceNameNode.new('', v[0]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 450)
- def _reduce_204(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 455)
- def _reduce_205(val, _values, result)
- result = [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 456)
- def _reduce_206(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 457)
- def _reduce_207(val, _values, result)
- result = nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 461)
- def _reduce_208(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 462)
- def _reduce_209(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 463)
- def _reduce_210(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 464)
- def _reduce_211(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 465)
- def _reduce_212(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 469)
- def _reduce_213(val, _values, result)
- result = make_node(val) { |v| Riml::DefaultParamNode.new(v[0], v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 473)
- def _reduce_214(val, _values, result)
- result = make_node(val) { |v| Riml::ReturnNode.new(v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 474)
- def _reduce_215(val, _values, result)
- result = make_node(val) { |v| Riml::IfNode.new(v[3], Nodes.new([ReturnNode.new(v[1])])) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 475)
- def _reduce_216(val, _values, result)
- result = make_node(val) { |v| Riml::UnlessNode.new(v[3], Nodes.new([ReturnNode.new(v[1])])) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 479)
- def _reduce_217(val, _values, result)
- result = nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 480)
- def _reduce_218(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 484)
- def _reduce_219(val, _values, result)
- result = make_node(val) { |_| Riml::FinishNode.new }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 489)
- def _reduce_220(val, _values, result)
- result = make_node(val) { |v| Riml::IfNode.new(v[1], v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 490)
- def _reduce_221(val, _values, result)
- result = make_node(val) { |v| Riml::IfNode.new(v[1], Riml::Nodes.new([v[3]])) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 491)
- def _reduce_222(val, _values, result)
- result = make_node(val) { |v| Riml::IfNode.new(v[2], Riml::Nodes.new([v[0]])) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 495)
- def _reduce_223(val, _values, result)
- result = make_node(val) { |v| Riml::UnlessNode.new(v[1], v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 496)
- def _reduce_224(val, _values, result)
- result = make_node(val) { |v| Riml::UnlessNode.new(v[1], Riml::Nodes.new([v[3]])) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 497)
- def _reduce_225(val, _values, result)
- result = make_node(val) { |v| Riml::UnlessNode.new(v[2], Riml::Nodes.new([v[0]])) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 501)
- def _reduce_226(val, _values, result)
- result = make_node(val) { |v| Riml::TernaryOperatorNode.new([v[0], v[2], v[4]]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 505)
- def _reduce_227(val, _values, result)
- result = make_node(val) { |v| Riml::WhileNode.new(v[1], v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 509)
- def _reduce_228(val, _values, result)
- result = make_node(val) { |_| Riml::BreakNode.new }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 510)
- def _reduce_229(val, _values, result)
- result = make_node(val) { |_| Riml::ContinueNode.new }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 514)
- def _reduce_230(val, _values, result)
- result = make_node(val) { |v| Riml::UntilNode.new(v[1], v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 518)
- def _reduce_231(val, _values, result)
- result = make_node(val) { |v| Riml::ForNode.new(v[1], v[3], v[4]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 519)
- def _reduce_232(val, _values, result)
- result = make_node(val) { |v| Riml::ForNode.new(v[1], v[3], v[4]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 520)
- def _reduce_233(val, _values, result)
- result = make_node(val) { |v| Riml::ForNode.new(v[1], v[3], v[4]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 524)
- def _reduce_234(val, _values, result)
- result = make_node(val) { |v| Riml::TryNode.new(v[1], nil, nil) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 525)
- def _reduce_235(val, _values, result)
- result = make_node(val) { |v| Riml::TryNode.new(v[1], v[2], nil) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 526)
- def _reduce_236(val, _values, result)
- result = make_node(val) { |v| Riml::TryNode.new(v[1], v[2], v[4]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 530)
- def _reduce_237(val, _values, result)
- result = nil
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 531)
- def _reduce_238(val, _values, result)
- result = [ make_node(val) { |v| Riml::CatchNode.new(nil, v[1]) } ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 532)
- def _reduce_239(val, _values, result)
- result = [ make_node(val) { |v| Riml::CatchNode.new(v[1], v[2]) } ]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 533)
- def _reduce_240(val, _values, result)
- result = val[0] << make_node(val) { |v| Riml::CatchNode.new(nil, v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 534)
- def _reduce_241(val, _values, result)
- result = val[0] << make_node(val) { |v| Riml::CatchNode.new(v[2], v[3]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 538)
- def _reduce_242(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 539)
- def _reduce_243(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 546)
- def _reduce_244(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 547)
- def _reduce_245(val, _values, result)
- result = make_node(val) { |_| Riml::Nodes.new([]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 551)
- def _reduce_246(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 552)
- def _reduce_247(val, _values, result)
- result = val[1] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 553)
- def _reduce_248(val, _values, result)
- result = val[1] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 554)
- def _reduce_249(val, _values, result)
- result = val[1] << val[2] << val[3]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 558)
- def _reduce_250(val, _values, result)
- result = make_node(val) { |v| Riml::ElseNode.new(v[2]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 562)
- def _reduce_251(val, _values, result)
- result = make_node(val) { |v| Riml::Nodes.new([Riml::ElseifNode.new(v[1], v[3])]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 563)
- def _reduce_252(val, _values, result)
- result = val[0] << make_node(val) { |v| Riml::ElseifNode.new(v[2], v[4]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 567)
- def _reduce_253(val, _values, result)
- result = make_node(val) { |v| Riml::ClassDefinitionNode.new(v[1], v[2], nil, v[3]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 568)
- def _reduce_254(val, _values, result)
- result = make_node(val) { |v| Riml::ClassDefinitionNode.new(v[1], v[2], (v[4] || ClassDefinitionNode::DEFAULT_SCOPE_MODIFIER) + v[5], v[6]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 572)
- def _reduce_255(val, _values, result)
- result = make_node(val) { |v| Riml::ObjectInstantiationNode.new(v[1]) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 576)
- def _reduce_256(val, _values, result)
- result = make_node(val) { |v| Riml::SuperNode.new(v[2], true) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 577)
- def _reduce_257(val, _values, result)
- result = make_node(val) { |_| Riml::SuperNode.new([], false) }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'riml.y', 581)
- def _reduce_258(val, _values, result)
- result = make_node(val) { |v| Riml::ExLiteralNode.new(v[0]) }
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module Riml
diff --git a/test/racc/regress/ruby18 b/test/racc/regress/ruby18
deleted file mode 100644
index a21fa611a5..0000000000
--- a/test/racc/regress/ruby18
+++ /dev/null
@@ -1,6344 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-
-require 'parser'
-
-module Parser
- class Ruby18 < Racc::Parser
-
-module_eval(<<'...end ruby18.y/module_eval...', 'ruby18.y', 1936)
-
- def version
- 18
- end
-
- def default_encoding
- Encoding::BINARY if defined? Encoding
- end
-...end ruby18.y/module_eval...
-##### State transition tables begin ###
-
-clist = [
-'-480,195,196,195,196,489,814,-480,-480,-480,511,578,578,-480,-480,-80',
-'-480,-429,579,579,489,72,531,-87,558,-480,99,489,-86,73,95,98,395,195',
-'196,-480,-480,-82,-480,-480,-480,-480,-480,489,489,558,495,-84,496,-83',
-'-81,463,659,658,662,661,186,99,557,558,291,291,98,-80,-480,-480,-480',
-'-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-87,557,-480',
-'-480,-480,259,546,530,722,-74,-480,-61,99,-480,291,557,621,98,-480,-86',
-'-480,-85,-480,-480,-480,-480,-480,-480,-480,-277,-480,-480,-480,187',
-'-476,510,-277,-277,-277,99,-72,488,-277,-277,98,-277,-480,-480,-79,-75',
-'-69,-480,-83,-78,99,99,488,621,-76,98,98,99,-74,488,-277,-277,98,-277',
-'-277,-277,-277,-277,-76,-74,-75,-73,431,99,99,488,488,621,98,98,-477',
-'259,502,195,196,258,503,-74,690,-277,-277,-277,-277,-277,-277,-277,-277',
-'-277,-277,-277,-277,-277,-277,558,259,-277,-277,-277,-74,549,99,-74',
-'620,-277,713,98,-277,691,-76,188,-77,-277,521,-277,521,-277,-277,-277',
-'-277,-277,-277,-277,-272,-277,-82,-277,-76,557,189,-272,-272,-272,99',
-'254,-272,-272,-272,98,-272,-277,-277,99,-77,620,-277,-85,98,-76,-272',
-'-272,-76,477,190,-84,476,258,254,-272,-272,768,-272,-272,-272,-272,-272',
-'99,194,620,477,234,98,479,521,523,522,523,522,519,258,477,358,282,482',
-'673,360,359,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272',
-'-272,-272,521,192,-272,-272,-272,-81,283,-272,193,-79,-272,521,-87,-272',
-'-272,291,-272,191,-272,349,-272,215,-272,-272,-272,-272,-272,-272,-272',
-'-226,-272,361,-272,523,522,524,-226,-226,-226,814,394,-226,-226,-226',
-'521,-226,-272,-272,-272,-272,396,-272,-473,212,606,-226,496,214,213',
-'210,211,523,522,526,-226,-226,397,-226,-226,-226,-226,-226,523,522,527',
-'251,477,426,-474,479,-480,-480,252,-319,-226,659,658,662,661,428,-319',
-'-226,-226,-226,-417,-476,-226,-226,-226,-319,-226,-417,-417,431,-226',
-'523,522,532,-429,-417,-226,-226,284,285,-473,436,254,-226,-417,-226',
-'-226,-60,-226,-226,-226,-226,-226,463,-421,451,-480,-480,541,-477,542',
-'-421,-473,-480,-480,-226,-474,680,-476,-476,-421,-476,-480,-480,452',
-'215,453,-72,-476,-226,-80,-226,215,-476,-226,-226,391,-476,-474,99,-480',
-'-480,-226,392,98,99,-78,254,-226,-86,98,-74,393,-76,-82,-476,-84,212',
-'-428,-477,-73,214,213,-81,212,-428,-477,459,214,213,-226,-477,461,462',
-'-428,-477,195,196,-421,-476,-476,-476,263,-476,-226,-421,-226,-476,-476',
-'-226,291,-480,-476,-477,-476,-476,-476,-476,-476,-476,-476,195,196,734',
-'606,-476,-476,-476,-476,-476,-476,-476,-427,215,254,-426,-425,662,661',
-'-427,464,-476,-426,-425,-476,-476,-476,-476,-476,-476,-476,-476,-476',
-'-476,465,-476,-476,-422,-476,-476,-476,-480,734,606,-422,212,215,-423',
-'-480,214,213,210,211,-476,-423,457,471,-480,-424,472,-476,692,458,-476',
-'-476,-424,-476,-476,291,481,-476,456,-476,484,-476,-480,-476,351,516',
-'-271,466,498,500,501,-476,517,-271,467,499,-476,-476,-476,-476,-476',
-'-476,-271,393,497,-476,-476,-477,-477,-477,535,-477,536,538,-83,-477',
-'-477,-259,540,254,-477,215,-477,-477,-477,-477,-477,-477,-477,215,215',
-'215,568,-477,-477,-477,-477,-477,-477,-477,667,668,575,669,93,94,291',
-'580,234,-477,590,591,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477',
-'-69,-477,-477,592,-477,-477,-477,215,219,224,225,226,221,223,231,232',
-'227,228,507,-497,-497,-278,469,229,230,505,-477,549,-278,-477,-477,606',
-'-477,-477,506,291,-477,-278,-477,212,-477,218,-477,214,213,210,211,222',
-'220,216,-477,217,616,496,624,-477,-477,-477,-477,-477,-477,672,-278',
-'675,-477,-477,62,63,64,-278,51,436,436,-85,56,57,693,704,-278,60,431',
-'58,59,61,23,24,65,66,431,243,707,708,22,28,27,88,87,89,90,715,717,17',
-'721,254,254,215,537,215,41,724,-259,92,91,82,50,84,83,86,85,93,94,728',
-'80,81,730,38,39,37,215,219,224,225,226,221,223,231,232,227,228,-277',
-'208,209,-279,606,229,230,-277,200,738,-279,204,-477,739,52,53,-277,740',
-'54,-279,743,212,745,218,40,214,213,210,211,222,220,216,18,217,749,753',
-'755,79,72,74,75,76,77,758,759,760,73,78,761,99,233,763,-215,-277,98',
-'62,63,64,7,51,-277,-260,769,56,57,-477,777,778,60,-277,58,59,61,23,24',
-'65,66,568,568,254,254,22,28,27,88,87,89,90,234,568,17,101,102,103,104',
-'105,6,41,8,9,92,91,82,50,84,83,86,85,93,94,790,80,81,791,38,39,37,215',
-'219,224,225,226,221,223,231,232,227,228,-428,-497,-497,823,792,229,230',
-'-428,36,797,824,30,799,805,52,53,-428,807,54,822,32,212,291,218,40,214',
-'213,210,211,222,220,216,18,217,818,825,826,79,72,74,75,76,77,827,-271',
-'829,73,78,62,63,64,-271,51,830,351,-278,56,57,832,835,-271,60,-278,58',
-'59,61,246,247,65,66,839,-278,840,846,245,275,279,88,87,89,90,101,102',
-'103,104,105,847,848,758,758,276,759,861,92,91,82,50,84,83,86,85,93,94',
-'568,80,81,215,568,655,280,653,652,651,654,-277,471,874,-279,875,876',
-'880,-277,229,230,-279,883,-477,758,885,772,-277,886,204,-279,568,52',
-'53,568,212,54,218,568,214,213,210,211,645,,216,,217,,,,659,658,662,661',
-'79,72,74,75,76,77,,,,73,78,,62,63,64,775,51,,,,56,57,,,,60,,58,59,61',
-'246,247,65,66,,,,,245,275,279,88,87,89,90,101,102,103,104,105,,,537',
-',276,,,92,91,82,50,84,83,86,85,93,94,,80,81,,,,280,215,219,224,225,226',
-'221,223,231,232,227,228,,208,209,,,229,230,,772,,,204,,,52,53,,,54,',
-',212,,218,,214,213,210,211,222,220,216,,217,,,,79,72,74,75,76,77,,,',
-'73,78,,,233,,855,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66',
-',,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85',
-'93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,',
-',,40,655,,653,652,651,654,,18,,,,,79,72,74,75,76,77,,,,73,78,5,62,63',
-'64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,659,658,662,661,22,28,27',
-'88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81',
-',38,39,37,,,,,,,,,,,,,,,,,,,,36,,,265,,,52,53,,,54,,32,,,,40,655,,653',
-'652,651,654,,18,,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56',
-'57,,,,60,,58,59,61,23,24,65,66,659,658,662,661,22,28,27,88,87,89,90',
-',,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,',
-',,,,,,,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,,,,40,655,,653,652,651,654',
-',18,,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,645',
-'58,59,61,23,24,65,66,659,658,662,661,22,28,27,88,87,89,90,,,17,,,,,',
-'6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,215,-497,-497',
-'-497,-497,221,223,,,-497,-497,,,,,,229,230,,36,,,30,,,52,53,,,54,,32',
-'212,,218,40,214,213,210,211,222,220,216,18,217,,,,79,72,74,75,76,77',
-',,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22',
-'28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,',
-'80,81,,38,39,37,215,,,,,,,,,,,,,,,,229,230,,36,,,30,,,52,53,,,54,,32',
-'212,,218,40,214,213,210,211,,,216,18,217,,,,79,72,74,75,76,77,,,,73',
-'78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27',
-'88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81',
-',38,39,37,215,,,,,,,,,,,,,,,,229,230,,36,,,30,,,52,53,,,54,,32,212,',
-'218,40,214,213,210,211,,,216,18,217,,,,79,72,74,75,76,77,,,,73,78,5',
-'62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87',
-'89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,215,,,,,,,,,,,,,,,,229,230,,36,,,265,,,52,53,,,54,,32,212,,218,40',
-'214,213,210,211,,,216,18,217,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64',
-'7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,',
-',17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,215',
-'-497,-497,-497,-497,221,223,,,-497,-497,,,,,,229,230,,36,,,265,,,52',
-'53,,,54,,32,212,,218,40,214,213,210,211,222,220,216,18,217,,,,79,72',
-'74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24',
-'65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83',
-'86,85,93,94,,80,81,,38,39,37,215,-497,-497,-497,-497,221,223,,,-497',
-'-497,,,,,,229,230,,36,,,30,,,52,53,,,54,,32,212,,218,40,214,213,210',
-'211,222,220,216,18,217,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7,51',
-',,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,',
-',,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,215,-497',
-'-497,-497,-497,221,223,,,-497,-497,,,,,,229,230,,36,,,30,,,52,53,,,54',
-',32,212,,218,40,214,213,210,211,222,220,216,18,217,,,,79,72,74,75,76',
-'77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,',
-',22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93',
-'94,,80,81,,38,39,37,215,-497,-497,-497,-497,221,223,,,-497,-497,,,,',
-',229,230,,36,,,30,,,52,53,,,54,,32,212,,218,40,214,213,210,211,222,220',
-'216,18,217,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,',
-',60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8',
-'9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,215,-497,-497,-497',
-'-497,221,223,,,-497,-497,,,,,,229,230,,36,,,30,,,52,53,,,54,,32,212',
-',218,40,214,213,210,211,222,220,216,18,217,,,,79,72,74,75,76,77,,,,73',
-'78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27',
-'88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81',
-',38,39,37,215,219,224,225,226,221,223,,,227,228,,,,,,229,230,,36,,,30',
-',,52,53,,,54,,32,212,,218,40,214,213,210,211,222,220,216,18,217,,,,79',
-'72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23',
-'24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84',
-'83,86,85,93,94,,80,81,,38,39,37,215,219,224,225,226,221,223,231,,227',
-'228,,,,,,229,230,,36,,,30,,,52,53,,,54,,32,212,,218,40,214,213,210,211',
-'222,220,216,18,217,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,',
-'56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,',
-',6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,215,,,,,,,',
-',,,,,,,,229,230,,36,,,30,,,52,53,,,54,,32,212,,218,40,214,213,210,211',
-',,,18,,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60',
-',58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,215,,,,,,,,,,,,,,,,229,230',
-',36,,,30,,,52,53,,,54,,32,212,,218,40,214,213,210,211,,,,18,,,,,79,72',
-'74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24',
-'65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83',
-'86,85,93,94,,80,81,,38,39,37,215,,,,,,,,,,,,,,,,229,230,,36,,,30,,,52',
-'53,,,54,,32,212,,,40,214,213,210,211,,,,18,,,,,79,72,74,75,76,77,,,',
-'73,78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28',
-'27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80',
-'81,,38,39,37,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,,,,40,,,,,',
-',,18,,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,',
-'58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,36,,',
-'30,,,52,53,,,54,,32,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,5',
-'62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87',
-'89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,,,,40,,,,,,,,18,,,,,79',
-'72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23',
-'24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84',
-'83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,53,',
-',54,,32,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7',
-'51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17',
-',,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,',
-',,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,,,,40,,,,,,,,18,,,,,79,72,74,75',
-'76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66',
-',,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85',
-'93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,',
-',,40,,,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56',
-'57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,6',
-'41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,',
-',,,,,36,,,30,,,52,53,,,54,,32,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77',
-',,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22',
-'28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,',
-'80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,,,,40,,',
-',,,,,18,,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60',
-',58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,36,,',
-'30,,,52,53,,,54,,32,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,5',
-'62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87',
-'89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,,,,40,,,,,,,,18,,,,,79',
-'72,74,75,76,77,,,,73,78,5,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23',
-'24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84',
-'83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,53,',
-',54,,32,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,5,62,63,64,7',
-'51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17',
-',,,,,6,41,8,9,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,',
-',,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,,,,40,,,,,,,,18,,,,,79,72,74,75',
-'76,77,,,,73,78,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,',
-',,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85,93',
-'94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,,,,40',
-',,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,153,164,154,177,150,170,160',
-'159,180,181,175,158,157,152,178,182,183,162,151,165,169,171,163,156',
-',,172,179,174,173,166,176,161,149,168,167,,,,,,148,155,146,147,144,145',
-'109,111,108,,110,,,,,,,,139,140,,137,121,122,123,,126,128,,,124,,,,',
-'141,142,129,130,,,,,,,,,,,,,,134,133,,120,138,136,135,131,132,127,125',
-'118,,119,,,143,79,,,,,,,,,,78,153,164,154,177,150,170,160,159,180,181',
-'175,158,157,152,178,182,183,162,151,165,169,171,163,156,,,172,179,174',
-'173,166,176,161,149,168,167,,,,,,148,155,146,147,144,145,109,111,,,110',
-',,,,,,,139,140,,137,121,122,123,,126,128,,,124,,,,,141,142,129,130,',
-',,,,,,,,,,,,134,133,,120,138,136,135,131,132,127,125,118,,119,,,143',
-'79,,,62,63,64,,51,,,78,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27',
-'88,87,89,90,,,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38',
-'39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18,,',
-',,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23',
-'24,65,66,,,,,22,28,27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86',
-'85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54',
-',,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56',
-'57,,,,60,,58,59,61,246,247,65,66,,,,,245,28,27,88,87,89,90,,,,,,,,,',
-'41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,',
-',,,200,,,204,,,52,53,,,54,,241,,243,,40,,,,,,,,207,,,,,79,72,74,75,76',
-'77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,',
-'245,28,27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80',
-'81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,241,,243,,40',
-',,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,28,27,88,87,89,90,,,,,,,,,,41,,,92,91',
-'82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204',
-',,52,53,,,54,,241,,243,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'-249,-249,-249,,-249,,,,-249,-249,,,,-249,,-249,-249,-249,-249,-249',
-'-249,-249,,,,,-249,-249,-249,-249,-249,-249,-249,,,,,,,,,,-249,,,-249',
-'-249,-249,-249,-249,-249,-249,-249,-249,-249,,-249,-249,,-249,-249,-249',
-',,,,,,,,,,,,,,,,,,,-249,,,-249,254,,-249,-249,,,-249,,-249,,-249,,-249',
-',,,,,,,-249,,,,,-249,-249,-249,-249,-249,-249,,,,-249,-249,-249,-249',
-'-249,,-249,,,,-249,-249,,,,-249,,-249,-249,-249,-249,-249,-249,-249',
-',,,,-249,-249,-249,-249,-249,-249,-249,,,,,,,,,,-249,,,-249,-249,-249',
-'-249,-249,-249,-249,-249,-249,-249,,-249,-249,,-249,-249,-249,,,,,,',
-',,,,,,,,,,,,,-249,,,-249,263,,-249,-249,,,-249,,-249,,-249,,-249,,,',
-',,,,-249,,,,,-249,-249,-249,-249,-249,-249,,,,-249,-249,62,63,64,,51',
-',,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,',
-',,,,,,,,276,,,92,91,82,50,84,83,86,85,93,94,,80,81,,,,280,,215,219,224',
-'225,226,221,223,231,232,227,228,,208,209,,,229,230,273,,,270,,,52,53',
-',,54,,269,,212,,218,,214,213,210,211,222,220,216,,217,,,79,72,74,75',
-'76,77,,,,73,78,62,63,64,233,51,568,,,56,57,,,,60,,58,59,61,246,247,65',
-'66,,,,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92,91,82,50,84,83,86,85',
-'93,94,,80,81,,,,280,,215,219,224,225,226,221,223,231,232,227,228,,208',
-'209,,,229,230,273,,,204,,,52,53,,,54,,,,212,,218,,214,213,210,211,222',
-'220,216,,217,,,79,72,74,75,76,77,,,,73,78,62,63,64,233,51,,,,56,57,',
-',,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41',
-',,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,',
-'200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73',
-'78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279',
-'88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,',
-'79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83',
-'86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,',
-'54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,',
-',56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,',
-',,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,',
-',,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77',
-',,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245',
-'28,27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81',
-',38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,299,,,,40,,,,,',
-',,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58',
-'59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91',
-'82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204',
-',,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63',
-'64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90',
-',,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,',
-',,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18,,,,,79,72,74',
-'75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66',
-',,,,22,28,27,88,87,89,90,,,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93',
-'94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40',
-',,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,,,280,,215,219,224,225,226,221,223',
-'231,232,227,228,,208,209,,,229,230,315,,,30,,,52,53,,,54,,32,,212,,218',
-',214,213,210,211,222,220,216,,217,,,79,72,74,75,76,77,,,,73,78,62,63',
-'64,233,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88',
-'87,89,90,,,,,,,,,,276,,,92,91,320,50,84,83,321,85,93,94,,80,81,,,,280',
-',215,219,224,225,226,221,223,231,232,227,228,,208,209,,327,229,230,322',
-',,204,,,52,53,,,54,,,,212,,218,,214,213,210,211,222,220,216,,217,,,79',
-'72,74,75,76,77,,,,73,78,62,63,64,233,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92,91,320,50,84',
-'83,321,85,93,94,,80,81,,,,280,,215,219,224,225,226,221,223,231,232,227',
-'228,,208,209,,,229,230,322,,,204,,,52,53,,,54,,,,212,,218,,214,213,210',
-'211,222,220,216,,217,,,79,72,74,75,76,77,,,,73,78,-473,-473,-473,233',
-'-473,,,,-473,-473,,,,-473,,-473,-473,-473,-473,-473,-473,-473,,-473',
-',,-473,-473,-473,-473,-473,-473,-473,,,,,,,,,,-473,,,-473,-473,-473',
-'-473,-473,-473,-473,-473,-473,-473,,-473,-473,,-473,-473,-473,,,,,,',
-',,,,,,,,,,,,,-473,,,-473,-473,,-473,-473,,,-473,,-473,,-473,,-473,,',
-',,,,,-473,,-473,,,-473,-473,-473,-473,-473,-473,,,,-473,-473,-474,-474',
-'-474,,-474,,,,-474,-474,,,,-474,,-474,-474,-474,-474,-474,-474,-474',
-',-474,,,-474,-474,-474,-474,-474,-474,-474,,,,,,,,,,-474,,,-474,-474',
-'-474,-474,-474,-474,-474,-474,-474,-474,,-474,-474,,-474,-474,-474,',
-',,,,,,,,,,,,,,,,,,-474,,,-474,-474,,-474,-474,,,-474,,-474,,-474,,-474',
-',,,,,,,-474,,-474,,,-474,-474,-474,-474,-474,-474,,,,-474,-474,62,63',
-'64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90',
-',,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,',
-',,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18,,,,,79,72,74',
-'75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66',
-',,,,22,28,27,88,87,89,90,,,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93',
-'94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40',
-',,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,,41,,,92,91',
-'82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204',
-',,52,53,,,54,,,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,62,63',
-'64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90',
-',,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,',
-',,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18,,,,,79,72,74',
-'75,76,77,,,,73,78,62,63,64,7,51,,,,56,57,,,,60,,58,59,61,23,24,65,66',
-',,,,22,28,27,88,87,89,90,,,17,,,,,,6,41,8,9,92,91,82,50,84,83,86,85',
-'93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,36,,,30,,,52,53,,,54,,32,',
-',,40,,,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57',
-',,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,369,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73',
-'78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88',
-'87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37',
-',,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,369,,,,40,,,,,,,,207,,,,',
-'79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23',
-'24,65,66,,,,,22,28,27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86',
-'85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54',
-',,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56',
-'57,,,,60,,58,59,61,246,247,65,66,,,,,245,28,27,88,87,89,90,,,,,,,,,',
-'41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,',
-',,,200,,,204,,,52,53,,,54,,299,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77',
-',,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28',
-'27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38',
-'39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,',
-',,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61',
-'23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,,41,,,92,91,82,50,84',
-'83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53',
-',,54,,,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,',
-',,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,',
-',,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,',
-',,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77',
-',,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245',
-'275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80',
-'81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,',
-',,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58',
-'59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91',
-'82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204',
-',,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63',
-'64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87',
-'89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,',
-',,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72',
-'74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65',
-'66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85',
-'93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,',
-',,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57',
-',,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41',
-',,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,',
-'200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73',
-'78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279',
-'88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,',
-'79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83',
-'86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,',
-'54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,',
-',56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,',
-',,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,',
-',,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76',
-'77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,',
-'245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94',
-',80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,',
-',,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279',
-'88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,',
-'79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83',
-'86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,',
-'54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,',
-',56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,',
-',,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,',
-',,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76',
-'77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,',
-'245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94',
-',80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,',
-',,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279',
-'88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,',
-'79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83',
-'86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,',
-'54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,',
-',56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,',
-',,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,',
-',,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76',
-'77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,',
-'245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94',
-',80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,',
-',,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279',
-'88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,',
-'79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83',
-'86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,',
-'54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,',
-',56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,',
-',,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,',
-',,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76',
-'77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,',
-'245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94',
-',80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,',
-',,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279',
-'88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,',
-'79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83',
-'86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,',
-'54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,',
-',56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,',
-',,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,',
-',,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76',
-'77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,',
-'245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94',
-',80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,',
-',,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,28,27,88,87,89,90,,,,,,,,,,41,,,92,91',
-'82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204',
-',,52,53,,,54,,241,,243,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,28,27,88',
-'87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37',
-',,,,,,,,,,,,,,,,,,,200,,,204,,,445,53,,,54,,241,,243,,40,,,,,,,,207',
-',,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61',
-'246,247,65,66,,,,,245,28,27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84',
-'83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,449,52',
-'53,,,54,,241,,243,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63',
-'64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87',
-'89,90,,,,,,,,,,276,,,92,91,82,50,84,83,86,85,93,94,,80,81,,,,280,,215',
-'219,224,225,226,221,223,231,232,227,228,,208,209,,,229,230,273,,,204',
-',,52,53,,,54,,,,212,,218,,214,213,210,211,222,220,216,,217,,,79,72,74',
-'75,76,77,,,,73,78,62,63,64,233,51,,,,56,57,,,,60,,58,59,61,246,247,65',
-'66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85',
-'93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,469,,52,53,,,54',
-',,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56',
-'57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,',
-',,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,',
-',,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77',
-',,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28',
-'27,88,87,89,90,,,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81',
-',38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18',
-',,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61',
-'23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,,41,,,92,91,82,50,84',
-'83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53',
-',,54,,,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,',
-',,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,',
-',,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,',
-',,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77',
-',,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28',
-'27,88,87,89,90,,,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81',
-',38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18',
-',,,,79,72,74,75,76,77,,,,73,78,153,164,154,177,150,170,160,159,180,181',
-'175,158,157,152,178,182,183,162,151,165,169,171,163,156,,,172,179,174',
-'173,166,176,161,149,168,167,,,,,,148,155,146,147,144,145,109,111,,,110',
-',,,,,,,139,140,,137,121,122,123,,126,128,,,124,,,,,141,142,129,130,',
-',,,,,,,,,,,,134,133,,120,138,136,135,131,132,127,125,118,,119,,,143',
-'79,,,62,63,64,,51,,,78,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275',
-'279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,',
-'38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207',
-',,,,79,72,74,75,76,77,,,,73,78,-249,-249,-249,,-249,,,,-249,-249,,,',
-'-249,,-249,-249,-249,-249,-249,-249,-249,,,,,-249,-249,-249,-249,-249',
-'-249,-249,,,,,,,,,,-249,,,-249,-249,-249,-249,-249,-249,-249,-249,-249',
-'-249,,-249,-249,,-249,-249,-249,,,,,,,,,,,,,,,,,,,,-249,,,-249,254,',
-'-249,-249,,,-249,,-249,,-249,,-249,,,,,,,,-249,,,,,-249,-249,-249,-249',
-'-249,-249,,,,-249,-249,-478,-478,-478,,-478,,,,-478,-478,,,,-478,,-478',
-'-478,-478,-478,-478,-478,-478,,,,,-478,-478,-478,-478,-478,-478,-478',
-',,,,,,,,,-478,,,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,,-478',
-'-478,,-478,-478,-478,,,,,,,,,,,,,,,,,,,,-478,,,-478,-478,,-478,-478',
-',,-478,,-478,,-478,,-478,,,,,,,,-478,,,,,-478,-478,-478,-478,-478,-478',
-',,,-478,-478,-479,-479,-479,,-479,,,,-479,-479,,,,-479,,-479,-479,-479',
-'-479,-479,-479,-479,,,,,-479,-479,-479,-479,-479,-479,-479,,,,,,,,,',
-'-479,,,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,,-479,-479',
-',-479,-479,-479,,,,,,,,,,,,,,,,,,,,-479,,,-479,-479,,-479,-479,,,-479',
-',-479,,-479,,-479,,,,,,,,-479,,,,,-479,-479,-479,-479,-479,-479,,,,-479',
-'-479,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,28',
-'27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38',
-'39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,299,,,,40,,,,,,,,207',
-',,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61',
-'246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50',
-'84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52',
-'53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,',
-'51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90',
-',,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,',
-',,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75',
-'76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,',
-',,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93',
-'94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40',
-',,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,560,,243,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,',
-'73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275',
-'279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,',
-'38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,564,,243,,40,,,',
-',,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,',
-'58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87',
-'89,90,,,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37',
-',,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,584,,243,,40,,,,,,,,18,,',
-',,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,28,27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83',
-'86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,',
-'54,,299,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51',
-',,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,',
-',,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,',
-',,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75',
-'76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,',
-',,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93',
-'94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40',
-',,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87',
-'89,90,,,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37',
-',,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18,,,,,79,72',
-'74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65',
-'66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85',
-'93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,369',
-',,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57',
-',,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41',
-',,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,',
-'200,,,204,,,52,53,,,54,,612,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,',
-',,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245',
-'275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80',
-'81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,',
-',,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58',
-'59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91',
-'82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204',
-',,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63',
-'64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87',
-'89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,',
-',,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,628,,,,40,,,,,,,,207,,,,,79',
-'72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247',
-'65,66,,,,,245,28,27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85',
-'93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,299',
-',,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57',
-',,,60,,58,59,61,246,247,65,66,,,,,245,28,27,88,87,89,90,,,,,,,,,,41',
-',,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,',
-'200,,,204,,,52,53,,,54,,299,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,',
-',,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28',
-'27,88,87,89,90,,,17,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81',
-',38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18',
-',,,,79,72,74,75,76,77,,,,73,78,153,164,154,177,150,170,160,159,180,181',
-'175,158,157,152,178,182,183,162,151,165,169,171,163,156,,,172,179,174',
-'173,166,176,161,149,168,167,,,,,,148,155,146,147,144,145,109,111,,,110',
-',,,,,,,139,140,,137,121,122,123,,126,128,,,124,,,,,141,142,129,130,',
-',,,,,,,,,,,,134,133,,120,138,136,135,131,132,127,125,118,,119,,,143',
-'79,,,62,63,64,,51,,,78,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275',
-'279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,',
-'38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207',
-',,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61',
-'246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50',
-'84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52',
-'53,,,54,,679,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64',
-',51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,',
-',,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,',
-',,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75',
-'76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,',
-',22,28,27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80',
-'81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,',
-',,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58',
-'59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50',
-'84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52',
-'53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,',
-'51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90',
-',,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,',
-',,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75',
-'76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,',
-',,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93',
-'94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40',
-',,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,,,280,,,,,,,,,,,,,,,,,,,,273,,,270',
-',,52,53,,,54,,697,,698,,,,,,,,,699,,,,,,79,72,74,75,76,77,,,,73,78,62',
-'63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88',
-'87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37',
-',,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79',
-'72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247',
-'65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86',
-'85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54',
-',,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56',
-'57,,,,60,,58,59,61,246,247,65,66,,,,,245,28,27,88,87,89,90,,,,,,,,,',
-'41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,',
-',,,200,,,204,,,52,53,,,54,,560,,243,,40,,,,,,,,207,,,,,79,72,74,75,76',
-'77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,',
-'245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94',
-',80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,',
-',,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279',
-'88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,',
-'79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23',
-'24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,,,,,41,,,92,91,82,50,84,83',
-'86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,',
-'54,,,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,',
-'56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,',
-',,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,',
-',,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76',
-'77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,23,24,65,66,,,,,22',
-'28,27,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81',
-',38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207',
-',,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61',
-'246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50',
-'84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52',
-'53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,',
-'51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90',
-',,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,',
-',,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75',
-'76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,',
-',,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93',
-'94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40',
-',,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,,,280,,215,219,224,225,226,221,223',
-'231,232,227,228,,208,209,,,229,230,772,,,204,,,52,53,,,54,,,,212,,218',
-',214,213,210,211,222,220,216,,217,,,79,72,74,75,76,77,,,,73,78,62,63',
-'64,233,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88',
-'87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37',
-',,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,780,,243,,40,,,,,,,,207,',
-',,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61',
-'246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50',
-'84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52',
-'53,,,54,,786,,243,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63',
-'64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87',
-'89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,',
-',,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,788,,243,,40,,,,,,,,207,,',
-',,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92,91,82,50,84',
-'83,86,85,93,94,,80,81,,,,280,,215,219,224,225,226,221,223,231,232,227',
-'228,,208,209,,,229,230,772,,,204,,,52,53,,,54,,,,212,,218,,214,213,210',
-'211,222,220,216,,217,,,79,72,74,75,76,77,,,,73,78,62,63,64,233,51,,',
-',56,57,,,,60,,58,59,61,23,24,65,66,,,,,22,28,27,88,87,89,90,,,17,,,',
-',,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,',
-',,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,18,,,,,79,72,74,75,76,77',
-',,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245',
-'275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80',
-'81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,802,,,,40,,',
-',,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279',
-'88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,',
-'79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92,91,82,50,84',
-'83,86,85,93,94,,80,81,,,,280,,,,,,,,,,,,,,,,,,,,273,,,270,,,52,53,,',
-'54,,821,,820,,,,,,,,,,,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,',
-',,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,',
-',,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,',
-',,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75',
-'76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,',
-',,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93',
-'94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40',
-',,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78',
-'62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279',
-'88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39',
-'37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,',
-'79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246',
-'247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92,91,82,50,84',
-'83,86,85,93,94,,80,81,,,,280,,215,219,224,225,226,221,223,231,232,227',
-'228,,208,209,,,229,230,772,,,204,,,52,53,,,54,,,,212,,218,,214,213,210',
-'211,222,220,216,,217,,,79,72,74,75,76,77,,,,73,78,62,63,64,233,51,,',
-',56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,28,27,88,87,89,90,,,,,',
-',,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,',
-',,,,,,,200,,,204,,,52,53,,,54,,299,,,,40,,,,,,,,207,,,,,79,72,74,75',
-'76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,',
-',,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92,91,82,50,84,83,86,85,93',
-'94,,80,81,,,,280,,215,219,224,225,226,221,223,231,232,227,228,,208,209',
-',,229,230,772,,,204,,,52,53,,,54,,,,212,,218,,214,213,210,211,222,220',
-'216,,217,,,79,72,74,75,76,77,,,,73,78,62,63,64,233,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,',
-',204,,,52,53,,,54,,864,,243,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,',
-'73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275',
-'279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,',
-'38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,867,,243,,40,,,',
-',,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,',
-'58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,,,280,,215,219,224,225,226,221,223',
-'231,232,227,228,,208,209,,,229,230,772,,,204,,,52,53,,,54,,,,212,,218',
-',214,213,210,211,222,220,216,,217,,,79,72,74,75,76,77,,,,73,78,62,63',
-'64,233,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88',
-'87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37',
-',,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79',
-'72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60,,58,59,61,246,247',
-'65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86',
-'85,93,94,,80,81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54',
-',,,,,40,,,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56',
-'57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,',
-',,276,,,92,91,82,50,84,83,86,85,93,94,,80,81,,,,280,,215,219,224,225',
-'226,221,223,231,232,227,228,,208,209,,,229,230,772,,,204,,,52,53,,,54',
-',,,212,,218,,214,213,210,211,222,220,216,,217,,,79,72,74,75,76,77,,',
-',73,78,62,63,64,233,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245',
-'275,279,88,87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80',
-'81,,38,39,37,,,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,889,,243,,40',
-',,,,,,,207,,,,,79,72,74,75,76,77,,,,73,78,62,63,64,,51,,,,56,57,,,,60',
-',58,59,61,246,247,65,66,,,,,245,275,279,88,87,89,90,,,,,,,,,,276,,,92',
-'91,82,50,84,83,86,85,93,94,,80,81,,,,280,,215,219,224,225,226,221,223',
-'231,232,227,228,,208,209,,,229,230,772,,,204,,,52,53,,,54,,,,212,,218',
-',214,213,210,211,222,220,216,,217,,,79,72,74,75,76,77,,,,73,78,62,63',
-'64,233,51,,,,56,57,,,,60,,58,59,61,246,247,65,66,,,,,245,275,279,88',
-'87,89,90,,,,,,,,,,41,,,92,91,82,50,84,83,86,85,93,94,,80,81,,38,39,37',
-',,,,,,,,,,,,,,,,,,,200,,,204,,,52,53,,,54,,,,,,40,,,,,,,,207,,,,,79',
-'72,74,75,76,77,,,,73,78,153,164,154,177,150,170,160,159,180,181,175',
-'158,157,152,178,182,183,162,151,165,169,171,163,156,,,172,179,174,336',
-'335,337,334,149,168,167,,,,,,148,155,146,147,332,333,330,111,84,83,331',
-'85,,,,,,,139,140,,137,121,122,123,,126,128,,,124,,,,,141,142,129,130',
-',,,,,341,,,,,,,,134,133,,120,138,136,135,131,132,127,125,118,,119,,',
-'143,153,164,154,177,150,170,160,159,180,181,175,158,157,152,178,182',
-'183,162,151,165,169,171,163,156,,,172,179,174,173,166,176,161,149,168',
-'167,,,,,,148,155,146,147,144,145,109,111,,,110,,,,,,,,139,140,,137,121',
-'122,123,,126,128,,,124,,,,,141,142,129,130,,,,,,,,,,,,,,134,133,,120',
-'138,136,135,131,132,127,125,118,,119,,,143,215,219,224,225,226,221,223',
-'231,232,227,228,,208,209,,,229,230,,,,-215,,,,,,,,,,,212,,218,,214,213',
-'210,211,222,220,216,,217,,,,,,,,376,379,,,377,,,,,233,,-215,139,140',
-',137,121,122,123,,126,128,,,124,,,,,141,142,129,130,,,,,,,,,,,,,,134',
-'133,,120,138,136,135,131,132,127,125,118,,119,381,385,143,,383,,,,,',
-',,139,140,,137,121,122,123,,126,128,,,124,,,,,141,142,129,130,,,,,,',
-',,,,,,,134,133,,120,138,136,135,131,132,127,125,118,,119,433,379,143',
-',434,,,,,,,,139,140,,137,121,122,123,,126,128,,,124,,,,,141,142,129',
-'130,,,,,,,,,,,,,,134,133,,120,138,136,135,131,132,127,125,118,,119,433',
-'379,143,,434,,,,,,,,139,140,,137,121,122,123,,126,128,,,124,,,,,141',
-'142,129,130,,,,,,,,,,,,,,134,133,,120,138,136,135,131,132,127,125,118',
-',119,550,379,143,,551,,,,,,,,139,140,,137,121,122,123,,126,128,,,124',
-',,,,141,142,129,130,,,,,,,,,,,,,,134,133,,120,138,136,135,131,132,127',
-'125,118,,119,552,385,143,,553,,,,,,,,139,140,,137,121,122,123,,126,128',
-',,124,,,,,141,142,129,130,,,,,,,,,,,,,,134,133,,120,138,136,135,131',
-'132,127,125,118,,119,,,143,215,219,224,225,226,221,223,231,232,227,228',
-',208,209,,,229,230,,,,,,,,,,,,,,,212,,218,,214,213,210,211,222,220,216',
-',217,,,,,,,594,379,,,595,,,,,,233,556,139,140,,137,121,122,123,,126',
-'128,,,124,,,,,141,142,129,130,,,,,,,,,,,,,,134,133,,120,138,136,135',
-'131,132,127,125,118,,119,597,385,143,,598,,,,,,,,139,140,,137,121,122',
-'123,,126,128,,,124,,,,,141,142,129,130,,,,,,,,,,,,,,134,133,,120,138',
-'136,135,131,132,127,125,118,,119,550,379,143,,551,,,,,,,,139,140,,137',
-'121,122,123,,126,128,,,124,,,,,141,142,129,130,,,,,,,,,,,,,,134,133',
-',120,138,136,135,131,132,127,125,118,,119,552,385,143,,553,,,,,,,,139',
-'140,,137,121,122,123,,126,128,,,124,,,,,141,142,129,130,,,,,,,,,,,,',
-',134,133,,120,138,136,135,131,132,127,125,118,,119,630,379,143,,631',
-',,,,,,,139,140,,137,121,122,123,,126,128,,,124,,,,,141,142,129,130,',
-',,,,,,,,,,,,134,133,,120,138,136,135,131,132,127,125,118,,119,632,385',
-'143,,633,,,,,,,,139,140,,137,121,122,123,,126,128,,,124,,,,,141,142',
-'129,130,,,,,,,,,,,,,,134,133,,120,138,136,135,131,132,127,125,118,,119',
-'635,385,143,,636,,,,,,,,139,140,,137,121,122,123,,126,128,,,124,,,,',
-'141,142,129,130,,,,,,,,,,,,,,134,133,,120,138,136,135,131,132,127,125',
-'118,,119,433,379,143,,434,,,,,,,,139,140,,137,121,122,123,,126,128,',
-',124,,,,,141,142,129,130,,,,,,,,,,,,,,134,133,,120,138,136,135,131,132',
-'127,125,118,,119,433,379,143,,434,,,,,,,,139,140,,137,121,122,123,,126',
-'128,,,124,,,,,141,142,129,130,,,,,,,,,,,,,,134,133,,120,138,136,135',
-'131,132,127,125,118,,119,433,379,143,,434,,,,,,,,139,140,,137,121,122',
-'123,,126,128,,,124,,,,,141,142,129,130,,,,,,,,,,,,,,134,133,,120,138',
-'136,135,131,132,127,125,118,,119,857,379,143,,858,,,,,,,,139,140,,137',
-'121,122,123,,126,128,,,124,,,,,141,142,129,130,,,,,,,,,,,,,,134,133',
-',120,138,136,135,131,132,127,125,118,,119,859,385,143,,860,,,,,,,,139',
-'140,,137,121,122,123,,126,128,,,124,,,,,141,142,129,130,,,,,,,,,,,,',
-',134,133,,120,138,136,135,131,132,127,125,118,,119,,,143,215,219,224',
-'225,226,221,223,231,232,227,228,,208,209,,,229,230,,,,,,,,,,,,,,,212',
-',218,,214,213,210,211,222,220,216,,217,,215,219,224,225,226,221,223',
-'231,232,227,228,,208,209,291,233,229,230,,,,,,,,,,,,,,,212,,218,,214',
-'213,210,211,222,220,216,,217,,215,219,224,225,226,221,223,231,232,227',
-'228,,208,209,291,233,229,230,,,,,,,,,,,,,,,212,,218,,214,213,210,211',
-'222,220,216,,217,,,,,,,,,,,,,,,,,233' ]
- racc_action_table = arr = ::Array.new(24340, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-clist = [
-'381,512,512,518,518,306,755,381,381,381,326,440,711,381,381,313,381',
-'199,440,711,307,70,347,316,424,381,3,627,500,70,1,3,201,603,603,381',
-'381,630,381,381,381,381,381,727,798,446,311,631,311,632,743,394,755',
-'755,755,755,8,310,424,447,440,711,310,199,381,381,381,381,381,381,381',
-'381,381,381,381,381,381,381,201,446,381,381,381,55,381,347,603,594,381',
-'591,512,381,518,447,491,512,381,394,381,633,381,381,381,381,381,381',
-'381,383,381,381,381,9,632,326,383,383,383,306,313,306,383,383,306,383',
-'381,381,316,381,591,381,381,500,307,326,307,492,595,307,326,627,630',
-'627,383,383,627,383,383,383,383,383,631,594,632,743,582,727,798,727',
-'798,744,727,798,633,26,322,15,15,55,322,594,550,383,383,383,383,383',
-'383,383,383,383,383,383,383,383,383,574,277,383,383,383,594,383,491',
-'594,491,383,582,491,383,551,595,10,633,383,528,383,343,383,383,383,383',
-'383,383,383,50,383,550,383,595,574,11,50,50,50,511,26,50,50,50,511,50',
-'383,383,492,383,492,383,383,492,595,50,50,595,297,12,551,297,26,277',
-'50,50,693,50,50,50,50,50,744,14,744,298,20,744,298,344,528,528,343,343',
-'343,277,301,108,34,301,528,108,108,50,50,50,50,50,50,50,50,50,50,50',
-'50,50,50,345,13,50,50,50,693,36,50,13,14,50,346,14,50,50,41,50,13,50',
-'95,50,419,50,50,50,50,50,50,50,432,50,184,50,344,344,344,432,432,432',
-'848,200,432,432,432,348,432,50,50,50,50,202,50,320,419,803,432,803,419',
-'419,419,419,345,345,345,432,432,203,432,432,432,432,432,346,346,346',
-'25,303,239,321,303,597,635,25,42,435,848,848,848,848,240,42,435,435',
-'435,330,857,435,435,435,42,435,330,320,244,432,348,348,348,35,320,435',
-'432,37,37,320,253,432,432,320,435,435,264,435,435,435,435,435,283,321',
-'266,597,635,376,858,377,321,320,597,635,432,321,540,597,635,321,857',
-'597,635,267,400,268,35,857,432,35,432,401,857,432,435,198,857,321,640',
-'597,635,435,198,640,646,283,435,435,283,646,376,198,377,376,857,377',
-'400,271,858,540,400,400,540,401,271,858,273,401,401,435,858,280,280',
-'271,858,294,294,331,552,552,552,275,552,435,331,435,552,552,435,276',
-'859,552,858,552,552,552,552,552,552,552,305,305,615,615,552,552,552',
-'552,552,552,552,332,420,279,333,334,758,758,332,284,552,333,334,552',
-'552,552,552,552,552,552,552,552,552,285,552,552,335,552,552,552,859',
-'870,870,335,420,288,336,859,420,420,420,420,859,336,272,292,859,337',
-'293,552,552,272,552,552,337,552,552,296,300,552,272,552,302,552,859',
-'552,312,339,274,286,314,315,317,552,339,274,286,314,552,552,552,552',
-'552,552,274,286,314,552,552,553,553,553,362,553,363,368,552,553,553',
-'371,375,382,553,402,553,553,553,553,553,553,553,403,404,405,429,553',
-'553,553,553,553,553,553,522,522,438,522,522,522,439,441,442,553,448',
-'450,553,553,553,553,553,553,553,553,553,553,451,553,553,455,553,553',
-'553,398,398,398,398,398,398,398,398,398,398,398,324,398,398,459,460',
-'398,398,324,553,553,459,553,553,470,553,553,324,473,553,459,553,398',
-'553,398,553,398,398,398,398,398,398,398,553,398,487,493,494,553,553',
-'553,553,553,553,526,503,531,553,553,60,60,60,503,60,543,547,553,60,60',
-'554,561,503,60,563,60,60,60,60,60,60,60,566,568,576,577,60,60,60,60',
-'60,60,60,583,586,60,593,596,599,601,366,602,60,604,607,60,60,60,60,60',
-'60,60,60,60,60,608,60,60,611,60,60,60,366,366,366,366,366,366,366,366',
-'366,366,366,598,366,366,721,617,366,366,598,60,623,721,60,598,625,60',
-'60,598,626,60,721,629,366,638,366,60,366,366,366,366,366,366,366,60',
-'366,643,647,648,60,60,60,60,60,60,649,655,660,60,60,663,60,366,665,366',
-'636,60,97,97,97,97,97,636,678,696,97,97,636,700,701,97,636,97,97,97',
-'97,97,97,97,702,705,709,710,97,97,97,97,97,97,97,712,716,97,4,4,4,4',
-'4,97,97,97,97,97,97,97,97,97,97,97,97,97,97,718,97,97,719,97,97,97,399',
-'399,399,399,399,399,399,399,399,399,399,770,399,399,771,720,399,399',
-'770,97,732,771,97,735,746,97,97,770,750,97,771,97,399,751,399,97,399',
-'399,399,399,399,399,399,97,399,764,772,774,97,97,97,97,97,97,775,773',
-'782,97,97,697,697,697,773,697,783,97,825,697,697,784,787,773,697,825',
-'697,697,697,697,697,697,697,800,825,801,806,697,697,697,697,697,697',
-'697,106,106,106,106,106,808,809,810,813,697,814,826,697,697,697,697',
-'697,697,697,697,697,697,833,697,697,410,836,514,697,514,514,514,514',
-'860,837,854,876,855,856,865,860,410,410,876,871,860,872,873,697,860',
-'874,697,876,878,697,697,881,410,697,410,892,410,410,410,410,514,,410',
-',410,,,,514,514,514,514,697,697,697,697,697,697,,,,697,697,,821,821',
-'821,697,821,,,,821,821,,,,821,,821,821,821,821,821,821,821,,,,,821,821',
-'821,821,821,821,821,350,350,350,350,350,,,555,,821,,,821,821,821,821',
-'821,821,821,821,821,821,,821,821,,,,821,555,555,555,555,555,555,555',
-'555,555,555,555,,555,555,,,555,555,,821,,,821,,,821,821,,,821,,,555',
-',555,,555,555,555,555,555,555,555,,555,,,,821,821,821,821,821,821,,',
-',821,821,,,555,,821,0,0,0,0,0,0,,,,0,0,,,,0,,0,0,0,0,0,0,0,,,,,0,0,0',
-'0,0,0,0,,,0,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,0,0,,0,0,0,,,,,,,,,,,',
-',,,,,,,,0,,,0,,,0,0,,,0,,0,,,,0,645,,645,645,645,645,,0,,,,,0,0,0,0',
-'0,0,,,,0,0,30,30,30,30,30,30,,,,30,30,,,,30,,30,30,30,30,30,30,30,645',
-'645,645,645,30,30,30,30,30,30,30,,,30,,,,,,30,30,30,30,30,30,30,30,30',
-'30,30,30,30,30,,30,30,,30,30,30,,,,,,,,,,,,,,,,,,,,30,,,30,,,30,30,',
-',30,,30,,,,30,753,,753,753,753,753,,30,,,,,30,30,30,30,30,30,,,,30,30',
-'51,51,51,51,51,51,,,,51,51,,,,51,,51,51,51,51,51,51,51,753,753,753,753',
-'51,51,51,51,51,51,51,,,51,,,,,,51,51,51,51,51,51,51,51,51,51,51,51,51',
-'51,,51,51,,51,51,51,,,,,,,,,,,,,,,,,,,,51,,,51,,,51,51,,,51,,51,,,,51',
-'817,,817,817,817,817,,51,,,,,51,51,51,51,51,51,,,,51,51,186,186,186',
-'186,186,186,,,,186,186,,,,186,817,186,186,186,186,186,186,186,817,817',
-'817,817,186,186,186,186,186,186,186,,,186,,,,,,186,186,186,186,186,186',
-'186,186,186,186,186,186,186,186,,186,186,,186,186,186,409,409,409,409',
-'409,409,409,,,409,409,,,,,,409,409,,186,,,186,,,186,186,,,186,,186,409',
-',409,186,409,409,409,409,409,409,409,186,409,,,,186,186,186,186,186',
-'186,,,,186,186,187,187,187,187,187,187,,,,187,187,,,,187,,187,187,187',
-'187,187,187,187,,,,,187,187,187,187,187,187,187,,,187,,,,,,187,187,187',
-'187,187,187,187,187,187,187,187,187,187,187,,187,187,,187,187,187,411',
-',,,,,,,,,,,,,,,411,411,,187,,,187,,,187,187,,,187,,187,411,,411,187',
-'411,411,411,411,,,411,187,411,,,,187,187,187,187,187,187,,,,187,187',
-'204,204,204,204,204,204,,,,204,204,,,,204,,204,204,204,204,204,204,204',
-',,,,204,204,204,204,204,204,204,,,204,,,,,,204,204,204,204,204,204,204',
-'204,204,204,204,204,204,204,,204,204,,204,204,204,412,,,,,,,,,,,,,,',
-',412,412,,204,,,204,,,204,204,,,204,,204,412,,412,204,412,412,412,412',
-',,412,204,412,,,,204,204,204,204,204,204,,,,204,204,265,265,265,265',
-'265,265,,,,265,265,,,,265,,265,265,265,265,265,265,265,,,,,265,265,265',
-'265,265,265,265,,,265,,,,,,265,265,265,265,265,265,265,265,265,265,265',
-'265,265,265,,265,265,,265,265,265,413,,,,,,,,,,,,,,,,413,413,,265,,',
-'265,,,265,265,,,265,,265,413,,413,265,413,413,413,413,,,413,265,413',
-',,,265,265,265,265,265,265,,,,265,265,270,270,270,270,270,270,,,,270',
-'270,,,,270,,270,270,270,270,270,270,270,,,,,270,270,270,270,270,270',
-'270,,,270,,,,,,270,270,270,270,270,270,270,270,270,270,270,270,270,270',
-',270,270,,270,270,270,414,414,414,414,414,414,414,,,414,414,,,,,,414',
-'414,,270,,,270,,,270,270,,,270,,270,414,,414,270,414,414,414,414,414',
-'414,414,270,414,,,,270,270,270,270,270,270,,,,270,270,486,486,486,486',
-'486,486,,,,486,486,,,,486,,486,486,486,486,486,486,486,,,,,486,486,486',
-'486,486,486,486,,,486,,,,,,486,486,486,486,486,486,486,486,486,486,486',
-'486,486,486,,486,486,,486,486,486,415,415,415,415,415,415,415,,,415',
-'415,,,,,,415,415,,486,,,486,,,486,486,,,486,,486,415,,415,486,415,415',
-'415,415,415,415,415,486,415,,,,486,486,486,486,486,486,,,,486,486,490',
-'490,490,490,490,490,,,,490,490,,,,490,,490,490,490,490,490,490,490,',
-',,,490,490,490,490,490,490,490,,,490,,,,,,490,490,490,490,490,490,490',
-'490,490,490,490,490,490,490,,490,490,,490,490,490,416,416,416,416,416',
-'416,416,,,416,416,,,,,,416,416,,490,,,490,,,490,490,,,490,,490,416,',
-'416,490,416,416,416,416,416,416,416,490,416,,,,490,490,490,490,490,490',
-',,,490,490,495,495,495,495,495,495,,,,495,495,,,,495,,495,495,495,495',
-'495,495,495,,,,,495,495,495,495,495,495,495,,,495,,,,,,495,495,495,495',
-'495,495,495,495,495,495,495,495,495,495,,495,495,,495,495,495,417,417',
-'417,417,417,417,417,,,417,417,,,,,,417,417,,495,,,495,,,495,495,,,495',
-',495,417,,417,495,417,417,417,417,417,417,417,495,417,,,,495,495,495',
-'495,495,495,,,,495,495,513,513,513,513,513,513,,,,513,513,,,,513,,513',
-'513,513,513,513,513,513,,,,,513,513,513,513,513,513,513,,,513,,,,,,513',
-'513,513,513,513,513,513,513,513,513,513,513,513,513,,513,513,,513,513',
-'513,418,418,418,418,418,418,418,,,418,418,,,,,,418,418,,513,,,513,,',
-'513,513,,,513,,513,418,,418,513,418,418,418,418,418,418,418,513,418',
-',,,513,513,513,513,513,513,,,,513,513,559,559,559,559,559,559,,,,559',
-'559,,,,559,,559,559,559,559,559,559,559,,,,,559,559,559,559,559,559',
-'559,,,559,,,,,,559,559,559,559,559,559,559,559,559,559,559,559,559,559',
-',559,559,,559,559,559,421,421,421,421,421,421,421,,,421,421,,,,,,421',
-'421,,559,,,559,,,559,559,,,559,,559,421,,421,559,421,421,421,421,421',
-'421,421,559,421,,,,559,559,559,559,559,559,,,,559,559,588,588,588,588',
-'588,588,,,,588,588,,,,588,,588,588,588,588,588,588,588,,,,,588,588,588',
-'588,588,588,588,,,588,,,,,,588,588,588,588,588,588,588,588,588,588,588',
-'588,588,588,,588,588,,588,588,588,422,422,422,422,422,422,422,422,,422',
-'422,,,,,,422,422,,588,,,588,,,588,588,,,588,,588,422,,422,588,422,422',
-'422,422,422,422,422,588,422,,,,588,588,588,588,588,588,,,,588,588,589',
-'589,589,589,589,589,,,,589,589,,,,589,,589,589,589,589,589,589,589,',
-',,,589,589,589,589,589,589,589,,,589,,,,,,589,589,589,589,589,589,589',
-'589,589,589,589,589,589,589,,589,589,,589,589,589,406,,,,,,,,,,,,,,',
-',406,406,,589,,,589,,,589,589,,,589,,589,406,,406,589,406,406,406,406',
-',,,589,,,,,589,589,589,589,589,589,,,,589,589,606,606,606,606,606,606',
-',,,606,606,,,,606,,606,606,606,606,606,606,606,,,,,606,606,606,606,606',
-'606,606,,,606,,,,,,606,606,606,606,606,606,606,606,606,606,606,606,606',
-'606,,606,606,,606,606,606,407,,,,,,,,,,,,,,,,407,407,,606,,,606,,,606',
-'606,,,606,,606,407,,407,606,407,407,407,407,,,,606,,,,,606,606,606,606',
-'606,606,,,,606,606,639,639,639,639,639,639,,,,639,639,,,,639,,639,639',
-'639,639,639,639,639,,,,,639,639,639,639,639,639,639,,,639,,,,,,639,639',
-'639,639,639,639,639,639,639,639,639,639,639,639,,639,639,,639,639,639',
-'408,,,,,,,,,,,,,,,,408,408,,639,,,639,,,639,639,,,639,,639,408,,,639',
-'408,408,408,408,,,,639,,,,,639,639,639,639,639,639,,,,639,639,644,644',
-'644,644,644,644,,,,644,644,,,,644,,644,644,644,644,644,644,644,,,,,644',
-'644,644,644,644,644,644,,,644,,,,,,644,644,644,644,644,644,644,644,644',
-'644,644,644,644,644,,644,644,,644,644,644,,,,,,,,,,,,,,,,,,,,644,,,644',
-',,644,644,,,644,,644,,,,644,,,,,,,,644,,,,,644,644,644,644,644,644,',
-',,644,644,671,671,671,671,671,671,,,,671,671,,,,671,,671,671,671,671',
-'671,671,671,,,,,671,671,671,671,671,671,671,,,671,,,,,,671,671,671,671',
-'671,671,671,671,671,671,671,671,671,671,,671,671,,671,671,671,,,,,,',
-',,,,,,,,,,,,,671,,,671,,,671,671,,,671,,671,,,,671,,,,,,,,671,,,,,671',
-'671,671,671,671,671,,,,671,671,706,706,706,706,706,706,,,,706,706,,',
-',706,,706,706,706,706,706,706,706,,,,,706,706,706,706,706,706,706,,',
-'706,,,,,,706,706,706,706,706,706,706,706,706,706,706,706,706,706,,706',
-'706,,706,706,706,,,,,,,,,,,,,,,,,,,,706,,,706,,,706,706,,,706,,706,',
-',,706,,,,,,,,706,,,,,706,706,706,706,706,706,,,,706,706,724,724,724',
-'724,724,724,,,,724,724,,,,724,,724,724,724,724,724,724,724,,,,,724,724',
-'724,724,724,724,724,,,724,,,,,,724,724,724,724,724,724,724,724,724,724',
-'724,724,724,724,,724,724,,724,724,724,,,,,,,,,,,,,,,,,,,,724,,,724,',
-',724,724,,,724,,724,,,,724,,,,,,,,724,,,,,724,724,724,724,724,724,,',
-',724,724,736,736,736,736,736,736,,,,736,736,,,,736,,736,736,736,736',
-'736,736,736,,,,,736,736,736,736,736,736,736,,,736,,,,,,736,736,736,736',
-'736,736,736,736,736,736,736,736,736,736,,736,736,,736,736,736,,,,,,',
-',,,,,,,,,,,,,736,,,736,,,736,736,,,736,,736,,,,736,,,,,,,,736,,,,,736',
-'736,736,736,736,736,,,,736,736,737,737,737,737,737,737,,,,737,737,,',
-',737,,737,737,737,737,737,737,737,,,,,737,737,737,737,737,737,737,,',
-'737,,,,,,737,737,737,737,737,737,737,737,737,737,737,737,737,737,,737',
-'737,,737,737,737,,,,,,,,,,,,,,,,,,,,737,,,737,,,737,737,,,737,,737,',
-',,737,,,,,,,,737,,,,,737,737,737,737,737,737,,,,737,737,741,741,741',
-'741,741,741,,,,741,741,,,,741,,741,741,741,741,741,741,741,,,,,741,741',
-'741,741,741,741,741,,,741,,,,,,741,741,741,741,741,741,741,741,741,741',
-'741,741,741,741,,741,741,,741,741,741,,,,,,,,,,,,,,,,,,,,741,,,741,',
-',741,741,,,741,,741,,,,741,,,,,,,,741,,,,,741,741,741,741,741,741,,',
-',741,741,748,748,748,748,748,748,,,,748,748,,,,748,,748,748,748,748',
-'748,748,748,,,,,748,748,748,748,748,748,748,,,748,,,,,,748,748,748,748',
-'748,748,748,748,748,748,748,748,748,748,,748,748,,748,748,748,,,,,,',
-',,,,,,,,,,,,,748,,,748,,,748,748,,,748,,748,,,,748,,,,,,,,748,,,,,748',
-'748,748,748,748,748,,,,748,748,794,794,794,794,794,794,,,,794,794,,',
-',794,,794,794,794,794,794,794,794,,,,,794,794,794,794,794,794,794,,',
-'794,,,,,,794,794,794,794,794,794,794,794,794,794,794,794,794,794,,794',
-'794,,794,794,794,,,,,,,,,,,,,,,,,,,,794,,,794,,,794,794,,,794,,794,',
-',,794,,,,,,,,794,,,,,794,794,794,794,794,794,,,,794,794,838,838,838',
-'838,838,838,,,,838,838,,,,838,,838,838,838,838,838,838,838,,,,,838,838',
-'838,838,838,838,838,,,838,,,,,,838,838,838,838,838,838,838,838,838,838',
-'838,838,838,838,,838,838,,838,838,838,,,,,,,,,,,,,,,,,,,,838,,,838,',
-',838,838,,,838,,838,,,,838,,,,,,,,838,,,,,838,838,838,838,838,838,,',
-',838,838,845,845,845,845,845,845,,,,845,845,,,,845,,845,845,845,845',
-'845,845,845,,,,,845,845,845,845,845,845,845,,,845,,,,,,845,845,845,845',
-'845,845,845,845,845,845,845,845,845,845,,845,845,,845,845,845,,,,,,',
-',,,,,,,,,,,,,845,,,845,,,845,845,,,845,,845,,,,845,,,,,,,,845,,,,,845',
-'845,845,845,845,845,,,,845,845,852,852,852,852,852,852,,,,852,852,,',
-',852,,852,852,852,852,852,852,852,,,,,852,852,852,852,852,852,852,,',
-'852,,,,,,852,852,852,852,852,852,852,852,852,852,852,852,852,852,,852',
-'852,,852,852,852,,,,,,,,,,,,,,,,,,,,852,,,852,,,852,852,,,852,,852,',
-',,852,,,,,,,,852,,,,,852,852,852,852,852,852,,,,852,852,5,5,5,5,5,,',
-',5,5,,,,5,,5,5,5,5,5,5,5,,,,,5,5,5,5,5,5,5,,,5,,,,,,5,5,5,5,5,5,5,5',
-'5,5,5,5,5,5,,5,5,,5,5,5,,,,,,,,,,,,,,,,,,,,5,,,5,,,5,5,,,5,,5,,,,5,',
-',,,,,,5,,,,,5,5,5,5,5,5,,,,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6',
-'6,6,6,6,6,,,6,6,6,6,6,6,6,6,6,6,,,,,,6,6,6,6,6,6,6,6,6,,6,,,,,,,,6,6',
-',6,6,6,6,,6,6,,,6,,,,,6,6,6,6,,,,,,,,,,,,,,6,6,,6,6,6,6,6,6,6,6,6,,6',
-',,6,6,,,,,,,,,,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,,,7',
-'7,7,7,7,7,7,7,7,7,,,,,,7,7,7,7,7,7,7,7,,,7,,,,,,,,7,7,,7,7,7,7,,7,7',
-',,7,,,,,7,7,7,7,,,,,,,,,,,,,,7,7,,7,7,7,7,7,7,7,7,7,,7,,,7,7,,,17,17',
-'17,,17,,,7,17,17,,,,17,,17,17,17,17,17,17,17,,,,,17,17,17,17,17,17,17',
-',,17,,,,,,,17,,,17,17,17,17,17,17,17,17,17,17,,17,17,,17,17,17,,,,,',
-',,,,,,,,,,,,,,17,,,17,,,17,17,,,17,,,,,,17,,,,,,,,17,,,,,17,17,17,17',
-'17,17,,,,17,17,18,18,18,,18,,,,18,18,,,,18,,18,18,18,18,18,18,18,,,',
-',18,18,18,18,18,18,18,,,,,,,,,,18,,,18,18,18,18,18,18,18,18,18,18,,18',
-'18,,18,18,18,,,,,,,,,,,,,,,,,,,,18,,,18,,,18,18,,,18,,,,,,18,,,,,,,',
-'18,,,,,18,18,18,18,18,18,,,,18,18,22,22,22,,22,,,,22,22,,,,22,,22,22',
-'22,22,22,22,22,,,,,22,22,22,22,22,22,22,,,,,,,,,,22,,,22,22,22,22,22',
-'22,22,22,22,22,,22,22,,22,22,22,,,,,,,,,,,,,,,,,,,,22,,,22,,,22,22,',
-',22,,22,,22,,22,,,,,,,,22,,,,,22,22,22,22,22,22,,,,22,22,23,23,23,,23',
-',,,23,23,,,,23,,23,23,23,23,23,23,23,,,,,23,23,23,23,23,23,23,,,,,,',
-',,,23,,,23,23,23,23,23,23,23,23,23,23,,23,23,,23,23,23,,,,,,,,,,,,,',
-',,,,,,23,,,23,,,23,23,,,23,,23,,23,,23,,,,,,,,23,,,,,23,23,23,23,23',
-'23,,,,23,23,24,24,24,,24,,,,24,24,,,,24,,24,24,24,24,24,24,24,,,,,24',
-'24,24,24,24,24,24,,,,,,,,,,24,,,24,24,24,24,24,24,24,24,24,24,,24,24',
-',24,24,24,,,,,,,,,,,,,,,,,,,,24,,,24,,,24,24,,,24,,24,,24,,24,,,,,,',
-',24,,,,,24,24,24,24,24,24,,,,24,24,27,27,27,,27,,,,27,27,,,,27,,27,27',
-'27,27,27,27,27,,,,,27,27,27,27,27,27,27,,,,,,,,,,27,,,27,27,27,27,27',
-'27,27,27,27,27,,27,27,,27,27,27,,,,,,,,,,,,,,,,,,,,27,,,27,27,,27,27',
-',,27,,27,,27,,27,,,,,,,,27,,,,,27,27,27,27,27,27,,,,27,27,28,28,28,',
-'28,,,,28,28,,,,28,,28,28,28,28,28,28,28,,,,,28,28,28,28,28,28,28,,,',
-',,,,,,28,,,28,28,28,28,28,28,28,28,28,28,,28,28,,28,28,28,,,,,,,,,,',
-',,,,,,,,,28,,,28,28,,28,28,,,28,,28,,28,,28,,,,,,,,28,,,,,28,28,28,28',
-'28,28,,,,28,28,31,31,31,,31,,,,31,31,,,,31,,31,31,31,31,31,31,31,,,',
-',31,31,31,31,31,31,31,,,,,,,,,,31,,,31,31,31,31,31,31,31,31,31,31,,31',
-'31,,,,31,,828,828,828,828,828,828,828,828,828,828,828,,828,828,,,828',
-'828,31,,,31,,,31,31,,,31,,31,,828,,828,,828,828,828,828,828,828,828',
-',828,,,31,31,31,31,31,31,,,,31,31,32,32,32,828,32,828,,,32,32,,,,32',
-',32,32,32,32,32,32,32,,,,,32,32,32,32,32,32,32,,,,,,,,,,32,,,32,32,32',
-'32,32,32,32,32,32,32,,32,32,,,,32,,19,19,19,19,19,19,19,19,19,19,19',
-',19,19,,,19,19,32,,,32,,,32,32,,,32,,,,19,,19,,19,19,19,19,19,19,19',
-',19,,,32,32,32,32,32,32,,,,32,32,38,38,38,19,38,,,,38,38,,,,38,,38,38',
-'38,38,38,38,38,,,,,38,38,38,38,38,38,38,,,,,,,,,,38,,,38,38,38,38,38',
-'38,38,38,38,38,,38,38,,38,38,38,,,,,,,,,,,,,,,,,,,,38,,,38,,,38,38,',
-',38,,,,,,38,,,,,,,,38,,,,,38,38,38,38,38,38,,,,38,38,39,39,39,,39,,',
-',39,39,,,,39,,39,39,39,39,39,39,39,,,,,39,39,39,39,39,39,39,,,,,,,,',
-',39,,,39,39,39,39,39,39,39,39,39,39,,39,39,,39,39,39,,,,,,,,,,,,,,,',
-',,,,39,,,39,,,39,39,,,39,,,,,,39,,,,,,,,39,,,,,39,39,39,39,39,39,,,',
-'39,39,40,40,40,,40,,,,40,40,,,,40,,40,40,40,40,40,40,40,,,,,40,40,40',
-'40,40,40,40,,,,,,,,,,40,,,40,40,40,40,40,40,40,40,40,40,,40,40,,40,40',
-'40,,,,,,,,,,,,,,,,,,,,40,,,40,,,40,40,,,40,,,,,,40,,,,,,,,40,,,,,40',
-'40,40,40,40,40,,,,40,40,52,52,52,,52,,,,52,52,,,,52,,52,52,52,52,52',
-'52,52,,,,,52,52,52,52,52,52,52,,,52,,,,,,,52,,,52,52,52,52,52,52,52',
-'52,52,52,,52,52,,52,52,52,,,,,,,,,,,,,,,,,,,,52,,,52,,,52,52,,,52,,',
-',,,52,,,,,,,,52,,,,,52,52,52,52,52,52,,,,52,52,53,53,53,,53,,,,53,53',
-',,,53,,53,53,53,53,53,53,53,,,,,53,53,53,53,53,53,53,,,,,,,,,,53,,,53',
-'53,53,53,53,53,53,53,53,53,,53,53,,53,53,53,,,,,,,,,,,,,,,,,,,,53,,',
-'53,,,53,53,,,53,,53,,,,53,,,,,,,,53,,,,,53,53,53,53,53,53,,,,53,53,54',
-'54,54,,54,,,,54,54,,,,54,,54,54,54,54,54,54,54,,,,,54,54,54,54,54,54',
-'54,,,,,,,,,,54,,,54,54,54,54,54,54,54,54,54,54,,54,54,,54,54,54,,,,',
-',,,,,,,,,,,,,,,54,,,54,,,54,54,,,54,,,,,,54,,,,,,,,54,,,,,54,54,54,54',
-'54,54,,,,54,54,56,56,56,,56,,,,56,56,,,,56,,56,56,56,56,56,56,56,,,',
-',56,56,56,56,56,56,56,,,56,,,,,,,56,,,56,56,56,56,56,56,56,56,56,56',
-',56,56,,56,56,56,,,,,,,,,,,,,,,,,,,,56,,,56,,,56,56,,,56,,,,,,56,,,',
-',,,,56,,,,,56,56,56,56,56,56,,,,56,56,57,57,57,,57,,,,57,57,,,,57,,57',
-'57,57,57,57,57,57,,,,,57,57,57,57,57,57,57,,,57,,,,,,,57,,,57,57,57',
-'57,57,57,57,57,57,57,,57,57,,57,57,57,,,,,,,,,,,,,,,,,,,,57,,,57,,,57',
-'57,,,57,,,,,,57,,,,,,,,57,,,,,57,57,57,57,57,57,,,,57,57,61,61,61,,61',
-',,,61,61,,,,61,,61,61,61,61,61,61,61,,,,,61,61,61,61,61,61,61,,,,,,',
-',,,61,,,61,61,61,61,61,61,61,61,61,61,,61,61,,,,61,,237,237,237,237',
-'237,237,237,237,237,237,237,,237,237,,,237,237,61,,,61,,,61,61,,,61',
-',61,,237,,237,,237,237,237,237,237,237,237,,237,,,61,61,61,61,61,61',
-',,,61,61,62,62,62,237,62,,,,62,62,,,,62,,62,62,62,62,62,62,62,,,,,62',
-'62,62,62,62,62,62,,,,,,,,,,62,,,62,62,62,62,62,62,62,62,62,62,,62,62',
-',,,62,,374,374,374,374,374,374,374,374,374,374,374,,374,374,,62,374',
-'374,62,,,62,,,62,62,,,62,,,,374,,374,,374,374,374,374,374,374,374,,374',
-',,62,62,62,62,62,62,,,,62,62,63,63,63,374,63,,,,63,63,,,,63,,63,63,63',
-'63,63,63,63,,,,,63,63,63,63,63,63,63,,,,,,,,,,63,,,63,63,63,63,63,63',
-'63,63,63,63,,63,63,,,,63,,388,388,388,388,388,388,388,388,388,388,388',
-',388,388,,,388,388,63,,,63,,,63,63,,,63,,,,388,,388,,388,388,388,388',
-'388,388,388,,388,,,63,63,63,63,63,63,,,,63,63,82,82,82,388,82,,,,82',
-'82,,,,82,,82,82,82,82,82,82,82,,82,,,82,82,82,82,82,82,82,,,,,,,,,,82',
-',,82,82,82,82,82,82,82,82,82,82,,82,82,,82,82,82,,,,,,,,,,,,,,,,,,,',
-'82,,,82,82,,82,82,,,82,,82,,82,,82,,,,,,,,82,,82,,,82,82,82,82,82,82',
-',,,82,82,86,86,86,,86,,,,86,86,,,,86,,86,86,86,86,86,86,86,,86,,,86',
-'86,86,86,86,86,86,,,,,,,,,,86,,,86,86,86,86,86,86,86,86,86,86,,86,86',
-',86,86,86,,,,,,,,,,,,,,,,,,,,86,,,86,86,,86,86,,,86,,86,,86,,86,,,,',
-',,,86,,86,,,86,86,86,86,86,86,,,,86,86,101,101,101,,101,,,,101,101,',
-',,101,,101,101,101,101,101,101,101,,,,,101,101,101,101,101,101,101,',
-',101,,,,,,,101,,,101,101,101,101,101,101,101,101,101,101,,101,101,,101',
-'101,101,,,,,,,,,,,,,,,,,,,,101,,,101,,,101,101,,,101,,,,,,101,,,,,,',
-',101,,,,,101,101,101,101,101,101,,,,101,101,102,102,102,,102,,,,102',
-'102,,,,102,,102,102,102,102,102,102,102,,,,,102,102,102,102,102,102',
-'102,,,102,,,,,,,102,,,102,102,102,102,102,102,102,102,102,102,,102,102',
-',102,102,102,,,,,,,,,,,,,,,,,,,,102,,,102,,,102,102,,,102,,,,,,102,',
-',,,,,,102,,,,,102,102,102,102,102,102,,,,102,102,103,103,103,,103,,',
-',103,103,,,,103,,103,103,103,103,103,103,103,,,,,103,103,103,103,103',
-'103,103,,,103,,,,,,,103,,,103,103,103,103,103,103,103,103,103,103,,103',
-'103,,103,103,103,,,,,,,,,,,,,,,,,,,,103,,,103,,,103,103,,,103,,,,,,103',
-',,,,,,,103,,,,,103,103,103,103,103,103,,,,103,103,104,104,104,,104,',
-',,104,104,,,,104,,104,104,104,104,104,104,104,,,,,104,104,104,104,104',
-'104,104,,,104,,,,,,,104,,,104,104,104,104,104,104,104,104,104,104,,104',
-'104,,104,104,104,,,,,,,,,,,,,,,,,,,,104,,,104,,,104,104,,,104,,,,,,104',
-',,,,,,,104,,,,,104,104,104,104,104,104,,,,104,104,105,105,105,105,105',
-',,,105,105,,,,105,,105,105,105,105,105,105,105,,,,,105,105,105,105,105',
-'105,105,,,105,,,,,,105,105,105,105,105,105,105,105,105,105,105,105,105',
-'105,,105,105,,105,105,105,,,,,,,,,,,,,,,,,,,,105,,,105,,,105,105,,,105',
-',105,,,,105,,,,,,,,105,,,,,105,105,105,105,105,105,,,,105,105,188,188',
-'188,,188,,,,188,188,,,,188,,188,188,188,188,188,188,188,,,,,188,188',
-'188,188,188,188,188,,,,,,,,,,188,,,188,188,188,188,188,188,188,188,188',
-'188,,188,188,,188,188,188,,,,,,,,,,,,,,,,,,,,188,,,188,,,188,188,,,188',
-',188,,,,188,,,,,,,,188,,,,,188,188,188,188,188,188,,,,188,188,189,189',
-'189,,189,,,,189,189,,,,189,,189,189,189,189,189,189,189,,,,,189,189',
-'189,189,189,189,189,,,,,,,,,,189,,,189,189,189,189,189,189,189,189,189',
-'189,,189,189,,189,189,189,,,,,,,,,,,,,,,,,,,,189,,,189,,,189,189,,,189',
-',189,,,,189,,,,,,,,189,,,,,189,189,189,189,189,189,,,,189,189,190,190',
-'190,,190,,,,190,190,,,,190,,190,190,190,190,190,190,190,,,,,190,190',
-'190,190,190,190,190,,,,,,,,,,190,,,190,190,190,190,190,190,190,190,190',
-'190,,190,190,,190,190,190,,,,,,,,,,,,,,,,,,,,190,,,190,,,190,190,,,190',
-',,,,,190,,,,,,,,190,,,,,190,190,190,190,190,190,,,,190,190,191,191,191',
-',191,,,,191,191,,,,191,,191,191,191,191,191,191,191,,,,,191,191,191',
-'191,191,191,191,,,,,,,,,,191,,,191,191,191,191,191,191,191,191,191,191',
-',191,191,,191,191,191,,,,,,,,,,,,,,,,,,,,191,,,191,,,191,191,,,191,',
-'191,,,,191,,,,,,,,191,,,,,191,191,191,191,191,191,,,,191,191,194,194',
-'194,,194,,,,194,194,,,,194,,194,194,194,194,194,194,194,,,,,194,194',
-'194,194,194,194,194,,,,,,,,,,194,,,194,194,194,194,194,194,194,194,194',
-'194,,194,194,,194,194,194,,,,,,,,,,,,,,,,,,,,194,,,194,,,194,194,,,194',
-',,,,,194,,,,,,,,194,,,,,194,194,194,194,194,194,,,,194,194,195,195,195',
-',195,,,,195,195,,,,195,,195,195,195,195,195,195,195,,,,,195,195,195',
-'195,195,195,195,,,195,,,,,,,195,,,195,195,195,195,195,195,195,195,195',
-'195,,195,195,,195,195,195,,,,,,,,,,,,,,,,,,,,195,,,195,,,195,195,,,195',
-',,,,,195,,,,,,,,195,,,,,195,195,195,195,195,195,,,,195,195,196,196,196',
-',196,,,,196,196,,,,196,,196,196,196,196,196,196,196,,,,,196,196,196',
-'196,196,196,196,,,196,,,,,,,196,,,196,196,196,196,196,196,196,196,196',
-'196,,196,196,,196,196,196,,,,,,,,,,,,,,,,,,,,196,,,196,,,196,196,,,196',
-',,,,,196,,,,,,,,196,,,,,196,196,196,196,196,196,,,,196,196,207,207,207',
-',207,,,,207,207,,,,207,,207,207,207,207,207,207,207,,,,,207,207,207',
-'207,207,207,207,,,,,,,,,,207,,,207,207,207,207,207,207,207,207,207,207',
-',207,207,,207,207,207,,,,,,,,,,,,,,,,,,,,207,,,207,,,207,207,,,207,',
-',,,,207,,,,,,,,207,,,,,207,207,207,207,207,207,,,,207,207,208,208,208',
-',208,,,,208,208,,,,208,,208,208,208,208,208,208,208,,,,,208,208,208',
-'208,208,208,208,,,,,,,,,,208,,,208,208,208,208,208,208,208,208,208,208',
-',208,208,,208,208,208,,,,,,,,,,,,,,,,,,,,208,,,208,,,208,208,,,208,',
-',,,,208,,,,,,,,208,,,,,208,208,208,208,208,208,,,,208,208,209,209,209',
-',209,,,,209,209,,,,209,,209,209,209,209,209,209,209,,,,,209,209,209',
-'209,209,209,209,,,,,,,,,,209,,,209,209,209,209,209,209,209,209,209,209',
-',209,209,,209,209,209,,,,,,,,,,,,,,,,,,,,209,,,209,,,209,209,,,209,',
-',,,,209,,,,,,,,209,,,,,209,209,209,209,209,209,,,,209,209,210,210,210',
-',210,,,,210,210,,,,210,,210,210,210,210,210,210,210,,,,,210,210,210',
-'210,210,210,210,,,,,,,,,,210,,,210,210,210,210,210,210,210,210,210,210',
-',210,210,,210,210,210,,,,,,,,,,,,,,,,,,,,210,,,210,,,210,210,,,210,',
-',,,,210,,,,,,,,210,,,,,210,210,210,210,210,210,,,,210,210,211,211,211',
-',211,,,,211,211,,,,211,,211,211,211,211,211,211,211,,,,,211,211,211',
-'211,211,211,211,,,,,,,,,,211,,,211,211,211,211,211,211,211,211,211,211',
-',211,211,,211,211,211,,,,,,,,,,,,,,,,,,,,211,,,211,,,211,211,,,211,',
-',,,,211,,,,,,,,211,,,,,211,211,211,211,211,211,,,,211,211,212,212,212',
-',212,,,,212,212,,,,212,,212,212,212,212,212,212,212,,,,,212,212,212',
-'212,212,212,212,,,,,,,,,,212,,,212,212,212,212,212,212,212,212,212,212',
-',212,212,,212,212,212,,,,,,,,,,,,,,,,,,,,212,,,212,,,212,212,,,212,',
-',,,,212,,,,,,,,212,,,,,212,212,212,212,212,212,,,,212,212,213,213,213',
-',213,,,,213,213,,,,213,,213,213,213,213,213,213,213,,,,,213,213,213',
-'213,213,213,213,,,,,,,,,,213,,,213,213,213,213,213,213,213,213,213,213',
-',213,213,,213,213,213,,,,,,,,,,,,,,,,,,,,213,,,213,,,213,213,,,213,',
-',,,,213,,,,,,,,213,,,,,213,213,213,213,213,213,,,,213,213,214,214,214',
-',214,,,,214,214,,,,214,,214,214,214,214,214,214,214,,,,,214,214,214',
-'214,214,214,214,,,,,,,,,,214,,,214,214,214,214,214,214,214,214,214,214',
-',214,214,,214,214,214,,,,,,,,,,,,,,,,,,,,214,,,214,,,214,214,,,214,',
-',,,,214,,,,,,,,214,,,,,214,214,214,214,214,214,,,,214,214,215,215,215',
-',215,,,,215,215,,,,215,,215,215,215,215,215,215,215,,,,,215,215,215',
-'215,215,215,215,,,,,,,,,,215,,,215,215,215,215,215,215,215,215,215,215',
-',215,215,,215,215,215,,,,,,,,,,,,,,,,,,,,215,,,215,,,215,215,,,215,',
-',,,,215,,,,,,,,215,,,,,215,215,215,215,215,215,,,,215,215,216,216,216',
-',216,,,,216,216,,,,216,,216,216,216,216,216,216,216,,,,,216,216,216',
-'216,216,216,216,,,,,,,,,,216,,,216,216,216,216,216,216,216,216,216,216',
-',216,216,,216,216,216,,,,,,,,,,,,,,,,,,,,216,,,216,,,216,216,,,216,',
-',,,,216,,,,,,,,216,,,,,216,216,216,216,216,216,,,,216,216,217,217,217',
-',217,,,,217,217,,,,217,,217,217,217,217,217,217,217,,,,,217,217,217',
-'217,217,217,217,,,,,,,,,,217,,,217,217,217,217,217,217,217,217,217,217',
-',217,217,,217,217,217,,,,,,,,,,,,,,,,,,,,217,,,217,,,217,217,,,217,',
-',,,,217,,,,,,,,217,,,,,217,217,217,217,217,217,,,,217,217,218,218,218',
-',218,,,,218,218,,,,218,,218,218,218,218,218,218,218,,,,,218,218,218',
-'218,218,218,218,,,,,,,,,,218,,,218,218,218,218,218,218,218,218,218,218',
-',218,218,,218,218,218,,,,,,,,,,,,,,,,,,,,218,,,218,,,218,218,,,218,',
-',,,,218,,,,,,,,218,,,,,218,218,218,218,218,218,,,,218,218,219,219,219',
-',219,,,,219,219,,,,219,,219,219,219,219,219,219,219,,,,,219,219,219',
-'219,219,219,219,,,,,,,,,,219,,,219,219,219,219,219,219,219,219,219,219',
-',219,219,,219,219,219,,,,,,,,,,,,,,,,,,,,219,,,219,,,219,219,,,219,',
-',,,,219,,,,,,,,219,,,,,219,219,219,219,219,219,,,,219,219,220,220,220',
-',220,,,,220,220,,,,220,,220,220,220,220,220,220,220,,,,,220,220,220',
-'220,220,220,220,,,,,,,,,,220,,,220,220,220,220,220,220,220,220,220,220',
-',220,220,,220,220,220,,,,,,,,,,,,,,,,,,,,220,,,220,,,220,220,,,220,',
-',,,,220,,,,,,,,220,,,,,220,220,220,220,220,220,,,,220,220,221,221,221',
-',221,,,,221,221,,,,221,,221,221,221,221,221,221,221,,,,,221,221,221',
-'221,221,221,221,,,,,,,,,,221,,,221,221,221,221,221,221,221,221,221,221',
-',221,221,,221,221,221,,,,,,,,,,,,,,,,,,,,221,,,221,,,221,221,,,221,',
-',,,,221,,,,,,,,221,,,,,221,221,221,221,221,221,,,,221,221,222,222,222',
-',222,,,,222,222,,,,222,,222,222,222,222,222,222,222,,,,,222,222,222',
-'222,222,222,222,,,,,,,,,,222,,,222,222,222,222,222,222,222,222,222,222',
-',222,222,,222,222,222,,,,,,,,,,,,,,,,,,,,222,,,222,,,222,222,,,222,',
-',,,,222,,,,,,,,222,,,,,222,222,222,222,222,222,,,,222,222,223,223,223',
-',223,,,,223,223,,,,223,,223,223,223,223,223,223,223,,,,,223,223,223',
-'223,223,223,223,,,,,,,,,,223,,,223,223,223,223,223,223,223,223,223,223',
-',223,223,,223,223,223,,,,,,,,,,,,,,,,,,,,223,,,223,,,223,223,,,223,',
-',,,,223,,,,,,,,223,,,,,223,223,223,223,223,223,,,,223,223,224,224,224',
-',224,,,,224,224,,,,224,,224,224,224,224,224,224,224,,,,,224,224,224',
-'224,224,224,224,,,,,,,,,,224,,,224,224,224,224,224,224,224,224,224,224',
-',224,224,,224,224,224,,,,,,,,,,,,,,,,,,,,224,,,224,,,224,224,,,224,',
-',,,,224,,,,,,,,224,,,,,224,224,224,224,224,224,,,,224,224,225,225,225',
-',225,,,,225,225,,,,225,,225,225,225,225,225,225,225,,,,,225,225,225',
-'225,225,225,225,,,,,,,,,,225,,,225,225,225,225,225,225,225,225,225,225',
-',225,225,,225,225,225,,,,,,,,,,,,,,,,,,,,225,,,225,,,225,225,,,225,',
-',,,,225,,,,,,,,225,,,,,225,225,225,225,225,225,,,,225,225,226,226,226',
-',226,,,,226,226,,,,226,,226,226,226,226,226,226,226,,,,,226,226,226',
-'226,226,226,226,,,,,,,,,,226,,,226,226,226,226,226,226,226,226,226,226',
-',226,226,,226,226,226,,,,,,,,,,,,,,,,,,,,226,,,226,,,226,226,,,226,',
-',,,,226,,,,,,,,226,,,,,226,226,226,226,226,226,,,,226,226,227,227,227',
-',227,,,,227,227,,,,227,,227,227,227,227,227,227,227,,,,,227,227,227',
-'227,227,227,227,,,,,,,,,,227,,,227,227,227,227,227,227,227,227,227,227',
-',227,227,,227,227,227,,,,,,,,,,,,,,,,,,,,227,,,227,,,227,227,,,227,',
-',,,,227,,,,,,,,227,,,,,227,227,227,227,227,227,,,,227,227,228,228,228',
-',228,,,,228,228,,,,228,,228,228,228,228,228,228,228,,,,,228,228,228',
-'228,228,228,228,,,,,,,,,,228,,,228,228,228,228,228,228,228,228,228,228',
-',228,228,,228,228,228,,,,,,,,,,,,,,,,,,,,228,,,228,,,228,228,,,228,',
-',,,,228,,,,,,,,228,,,,,228,228,228,228,228,228,,,,228,228,229,229,229',
-',229,,,,229,229,,,,229,,229,229,229,229,229,229,229,,,,,229,229,229',
-'229,229,229,229,,,,,,,,,,229,,,229,229,229,229,229,229,229,229,229,229',
-',229,229,,229,229,229,,,,,,,,,,,,,,,,,,,,229,,,229,,,229,229,,,229,',
-',,,,229,,,,,,,,229,,,,,229,229,229,229,229,229,,,,229,229,230,230,230',
-',230,,,,230,230,,,,230,,230,230,230,230,230,230,230,,,,,230,230,230',
-'230,230,230,230,,,,,,,,,,230,,,230,230,230,230,230,230,230,230,230,230',
-',230,230,,230,230,230,,,,,,,,,,,,,,,,,,,,230,,,230,,,230,230,,,230,',
-',,,,230,,,,,,,,230,,,,,230,230,230,230,230,230,,,,230,230,231,231,231',
-',231,,,,231,231,,,,231,,231,231,231,231,231,231,231,,,,,231,231,231',
-'231,231,231,231,,,,,,,,,,231,,,231,231,231,231,231,231,231,231,231,231',
-',231,231,,231,231,231,,,,,,,,,,,,,,,,,,,,231,,,231,,,231,231,,,231,',
-',,,,231,,,,,,,,231,,,,,231,231,231,231,231,231,,,,231,231,232,232,232',
-',232,,,,232,232,,,,232,,232,232,232,232,232,232,232,,,,,232,232,232',
-'232,232,232,232,,,,,,,,,,232,,,232,232,232,232,232,232,232,232,232,232',
-',232,232,,232,232,232,,,,,,,,,,,,,,,,,,,,232,,,232,,,232,232,,,232,',
-',,,,232,,,,,,,,232,,,,,232,232,232,232,232,232,,,,232,232,233,233,233',
-',233,,,,233,233,,,,233,,233,233,233,233,233,233,233,,,,,233,233,233',
-'233,233,233,233,,,,,,,,,,233,,,233,233,233,233,233,233,233,233,233,233',
-',233,233,,233,233,233,,,,,,,,,,,,,,,,,,,,233,,,233,,,233,233,,,233,',
-',,,,233,,,,,,,,233,,,,,233,233,233,233,233,233,,,,233,233,241,241,241',
-',241,,,,241,241,,,,241,,241,241,241,241,241,241,241,,,,,241,241,241',
-'241,241,241,241,,,,,,,,,,241,,,241,241,241,241,241,241,241,241,241,241',
-',241,241,,241,241,241,,,,,,,,,,,,,,,,,,,,241,,,241,,,241,241,,,241,',
-',,,,241,,,,,,,,241,,,,,241,241,241,241,241,241,,,,241,241,243,243,243',
-',243,,,,243,243,,,,243,,243,243,243,243,243,243,243,,,,,243,243,243',
-'243,243,243,243,,,,,,,,,,243,,,243,243,243,243,243,243,243,243,243,243',
-',243,243,,243,243,243,,,,,,,,,,,,,,,,,,,,243,,,243,,,243,243,,,243,',
-',,,,243,,,,,,,,243,,,,,243,243,243,243,243,243,,,,243,243,254,254,254',
-',254,,,,254,254,,,,254,,254,254,254,254,254,254,254,,,,,254,254,254',
-'254,254,254,254,,,,,,,,,,254,,,254,254,254,254,254,254,254,254,254,254',
-',254,254,,254,254,254,,,,,,,,,,,,,,,,,,,,254,,,254,,,254,254,,,254,',
-'254,,254,,254,,,,,,,,254,,,,,254,254,254,254,254,254,,,,254,254,255',
-'255,255,,255,,,,255,255,,,,255,,255,255,255,255,255,255,255,,,,,255',
-'255,255,255,255,255,255,,,,,,,,,,255,,,255,255,255,255,255,255,255,255',
-'255,255,,255,255,,255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255,255',
-',,255,,255,,255,,255,,,,,,,,255,,,,,255,255,255,255,255,255,,,,255,255',
-'263,263,263,,263,,,,263,263,,,,263,,263,263,263,263,263,263,263,,,,',
-'263,263,263,263,263,263,263,,,,,,,,,,263,,,263,263,263,263,263,263,263',
-'263,263,263,,263,263,,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,263',
-'263,263,,,263,,263,,263,,263,,,,,,,,263,,,,,263,263,263,263,263,263',
-',,,263,263,269,269,269,,269,,,,269,269,,,,269,,269,269,269,269,269,269',
-'269,,,,,269,269,269,269,269,269,269,,,,,,,,,,269,,,269,269,269,269,269',
-'269,269,269,269,269,,269,269,,,,269,,468,468,468,468,468,468,468,468',
-'468,468,468,,468,468,,,468,468,269,,,269,,,269,269,,,269,,,,468,,468',
-',468,468,468,468,468,468,468,,468,,,269,269,269,269,269,269,,,,269,269',
-'290,290,290,468,290,,,,290,290,,,,290,,290,290,290,290,290,290,290,',
-',,,290,290,290,290,290,290,290,,,,,,,,,,290,,,290,290,290,290,290,290',
-'290,290,290,290,,290,290,,290,290,290,,,,,,,,,,,,,,,,,,,,290,,,290,290',
-',290,290,,,290,,,,,,290,,,,,,,,290,,,,,290,290,290,290,290,290,,,,290',
-'290,299,299,299,,299,,,,299,299,,,,299,,299,299,299,299,299,299,299',
-',,,,299,299,299,299,299,299,299,,,,,,,,,,299,,,299,299,299,299,299,299',
-'299,299,299,299,,299,299,,299,299,299,,,,,,,,,,,,,,,,,,,,299,,,299,',
-',299,299,,,299,,,,,,299,,,,,,,,299,,,,,299,299,299,299,299,299,,,,299',
-'299,308,308,308,,308,,,,308,308,,,,308,,308,308,308,308,308,308,308',
-',,,,308,308,308,308,308,308,308,,,308,,,,,,,308,,,308,308,308,308,308',
-'308,308,308,308,308,,308,308,,308,308,308,,,,,,,,,,,,,,,,,,,,308,,,308',
-',,308,308,,,308,,,,,,308,,,,,,,,308,,,,,308,308,308,308,308,308,,,,308',
-'308,309,309,309,,309,,,,309,309,,,,309,,309,309,309,309,309,309,309',
-',,,,309,309,309,309,309,309,309,,,309,,,,,,,309,,,309,309,309,309,309',
-'309,309,309,309,309,,309,309,,309,309,309,,,,,,,,,,,,,,,,,,,,309,,,309',
-',,309,309,,,309,,,,,,309,,,,,,,,309,,,,,309,309,309,309,309,309,,,,309',
-'309,327,327,327,,327,,,,327,327,,,,327,,327,327,327,327,327,327,327',
-',,,,327,327,327,327,327,327,327,,,327,,,,,,,327,,,327,327,327,327,327',
-'327,327,327,327,327,,327,327,,327,327,327,,,,,,,,,,,,,,,,,,,,327,,,327',
-',,327,327,,,327,,,,,,327,,,,,,,,327,,,,,327,327,327,327,327,327,,,,327',
-'327,341,341,341,,341,,,,341,341,,,,341,,341,341,341,341,341,341,341',
-',,,,341,341,341,341,341,341,341,,,341,,,,,,,341,,,341,341,341,341,341',
-'341,341,341,341,341,,341,341,,341,341,341,,,,,,,,,,,,,,,,,,,,341,,,341',
-',,341,341,,,341,,,,,,341,,,,,,,,341,,,,,341,341,341,341,341,341,,,,341',
-'341,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357',
-'357,357,357,357,357,357,357,357,,,357,357,357,357,357,357,357,357,357',
-'357,,,,,,357,357,357,357,357,357,357,357,,,357,,,,,,,,357,357,,357,357',
-'357,357,,357,357,,,357,,,,,357,357,357,357,,,,,,,,,,,,,,357,357,,357',
-'357,357,357,357,357,357,357,357,,357,,,357,357,,,369,369,369,,369,,',
-'357,369,369,,,,369,,369,369,369,369,369,369,369,,,,,369,369,369,369',
-'369,369,369,,,,,,,,,,369,,,369,369,369,369,369,369,369,369,369,369,',
-'369,369,,369,369,369,,,,,,,,,,,,,,,,,,,,369,,,369,,,369,369,,,369,,',
-',,,369,,,,,,,,369,,,,,369,369,369,369,369,369,,,,369,369,378,378,378',
-',378,,,,378,378,,,,378,,378,378,378,378,378,378,378,,,,,378,378,378',
-'378,378,378,378,,,,,,,,,,378,,,378,378,378,378,378,378,378,378,378,378',
-',378,378,,378,378,378,,,,,,,,,,,,,,,,,,,,378,,,378,378,,378,378,,,378',
-',378,,378,,378,,,,,,,,378,,,,,378,378,378,378,378,378,,,,378,378,385',
-'385,385,,385,,,,385,385,,,,385,,385,385,385,385,385,385,385,,,,,385',
-'385,385,385,385,385,385,,,,,,,,,,385,,,385,385,385,385,385,385,385,385',
-'385,385,,385,385,,385,385,385,,,,,,,,,,,,,,,,,,,,385,,,385,385,,385',
-'385,,,385,,385,,385,,385,,,,,,,,385,,,,,385,385,385,385,385,385,,,,385',
-'385,386,386,386,,386,,,,386,386,,,,386,,386,386,386,386,386,386,386',
-',,,,386,386,386,386,386,386,386,,,,,,,,,,386,,,386,386,386,386,386,386',
-'386,386,386,386,,386,386,,386,386,386,,,,,,,,,,,,,,,,,,,,386,,,386,386',
-',386,386,,,386,,386,,386,,386,,,,,,,,386,,,,,386,386,386,386,386,386',
-',,,386,386,393,393,393,,393,,,,393,393,,,,393,,393,393,393,393,393,393',
-'393,,,,,393,393,393,393,393,393,393,,,,,,,,,,393,,,393,393,393,393,393',
-'393,393,393,393,393,,393,393,,393,393,393,,,,,,,,,,,,,,,,,,,,393,,,393',
-',,393,393,,,393,,393,,,,393,,,,,,,,393,,,,,393,393,393,393,393,393,',
-',,393,393,395,395,395,,395,,,,395,395,,,,395,,395,395,395,395,395,395',
-'395,,,,,395,395,395,395,395,395,395,,,,,,,,,,395,,,395,395,395,395,395',
-'395,395,395,395,395,,395,395,,395,395,395,,,,,,,,,,,,,,,,,,,,395,,,395',
-',,395,395,,,395,,,,,,395,,,,,,,,395,,,,,395,395,395,395,395,395,,,,395',
-'395,396,396,396,,396,,,,396,396,,,,396,,396,396,396,396,396,396,396',
-',,,,396,396,396,396,396,396,396,,,,,,,,,,396,,,396,396,396,396,396,396',
-'396,396,396,396,,396,396,,396,396,396,,,,,,,,,,,,,,,,,,,,396,,,396,',
-',396,396,,,396,,,,,,396,,,,,,,,396,,,,,396,396,396,396,396,396,,,,396',
-'396,397,397,397,,397,,,,397,397,,,,397,,397,397,397,397,397,397,397',
-',,,,397,397,397,397,397,397,397,,,,,,,,,,397,,,397,397,397,397,397,397',
-'397,397,397,397,,397,397,,397,397,397,,,,,,,,,,,,,,,,,,,,397,,,397,',
-',397,397,,,397,,,,,,397,,,,,,,,397,,,,,397,397,397,397,397,397,,,,397',
-'397,426,426,426,,426,,,,426,426,,,,426,,426,426,426,426,426,426,426',
-',,,,426,426,426,426,426,426,426,,,,,,,,,,426,,,426,426,426,426,426,426',
-'426,426,426,426,,426,426,,426,426,426,,,,,,,,,,,,,,,,,,,,426,,,426,',
-',426,426,,,426,,426,,426,,426,,,,,,,,426,,,,,426,426,426,426,426,426',
-',,,426,426,428,428,428,,428,,,,428,428,,,,428,,428,428,428,428,428,428',
-'428,,,,,428,428,428,428,428,428,428,,,,,,,,,,428,,,428,428,428,428,428',
-'428,428,428,428,428,,428,428,,428,428,428,,,,,,,,,,,,,,,,,,,,428,,,428',
-',,428,428,,,428,,428,,428,,428,,,,,,,,428,,,,,428,428,428,428,428,428',
-',,,428,428,431,431,431,,431,,,,431,431,,,,431,,431,431,431,431,431,431',
-'431,,,,,431,431,431,431,431,431,431,,,,,,,,,,431,,,431,431,431,431,431',
-'431,431,431,431,431,,431,431,,431,431,431,,,,,,,,,,,,,,,,,,,,431,,,431',
-',,431,431,,,431,,,,,,431,,,,,,,,431,,,,,431,431,431,431,431,431,,,,431',
-'431,445,445,445,,445,,,,445,445,,,,445,,445,445,445,445,445,445,445',
-',,,,445,445,445,445,445,445,445,,,445,,,,,,,445,,,445,445,445,445,445',
-'445,445,445,445,445,,445,445,,445,445,445,,,,,,,,,,,,,,,,,,,,445,,,445',
-',,445,445,,,445,,445,,445,,445,,,,,,,,445,,,,,445,445,445,445,445,445',
-',,,445,445,456,456,456,,456,,,,456,456,,,,456,,456,456,456,456,456,456',
-'456,,,,,456,456,456,456,456,456,456,,,,,,,,,,456,,,456,456,456,456,456',
-'456,456,456,456,456,,456,456,,456,456,456,,,,,,,,,,,,,,,,,,,,456,,,456',
-',,456,456,,,456,,456,,,,456,,,,,,,,456,,,,,456,456,456,456,456,456,',
-',,456,456,463,463,463,,463,,,,463,463,,,,463,,463,463,463,463,463,463',
-'463,,,,,463,463,463,463,463,463,463,,,,,,,,,,463,,,463,463,463,463,463',
-'463,463,463,463,463,,463,463,,463,463,463,,,,,,,,,,,,,,,,,,,,463,,,463',
-',,463,463,,,463,,,,,,463,,,,,,,,463,,,,,463,463,463,463,463,463,,,,463',
-'463,464,464,464,,464,,,,464,464,,,,464,,464,464,464,464,464,464,464',
-',,,,464,464,464,464,464,464,464,,,,,,,,,,464,,,464,464,464,464,464,464',
-'464,464,464,464,,464,464,,464,464,464,,,,,,,,,,,,,,,,,,,,464,,,464,',
-',464,464,,,464,,,,,,464,,,,,,,,464,,,,,464,464,464,464,464,464,,,,464',
-'464,465,465,465,,465,,,,465,465,,,,465,,465,465,465,465,465,465,465',
-',,,,465,465,465,465,465,465,465,,,,,,,,,,465,,,465,465,465,465,465,465',
-'465,465,465,465,,465,465,,465,465,465,,,,,,,,,,,,,,,,,,,,465,,,465,',
-',465,465,,,465,,,,,,465,,,,,,,,465,,,,,465,465,465,465,465,465,,,,465',
-'465,469,469,469,,469,,,,469,469,,,,469,,469,469,469,469,469,469,469',
-',,,,469,469,469,469,469,469,469,,,469,,,,,,,469,,,469,469,469,469,469',
-'469,469,469,469,469,,469,469,,469,469,469,,,,,,,,,,,,,,,,,,,,469,,,469',
-',,469,469,,,469,,,,,,469,,,,,,,,469,,,,,469,469,469,469,469,469,,,,469',
-'469,471,471,471,,471,,,,471,471,,,,471,,471,471,471,471,471,471,471',
-',,,,471,471,471,471,471,471,471,,,,,,,,,,471,,,471,471,471,471,471,471',
-'471,471,471,471,,471,471,,471,471,471,,,,,,,,,,,,,,,,,,,,471,,,471,',
-',471,471,,,471,,471,,,,471,,,,,,,,471,,,,,471,471,471,471,471,471,,',
-',471,471,476,476,476,,476,,,,476,476,,,,476,,476,476,476,476,476,476',
-'476,,,,,476,476,476,476,476,476,476,,,,,,,,,,476,,,476,476,476,476,476',
-'476,476,476,476,476,,476,476,,476,476,476,,,,,,,,,,,,,,,,,,,,476,,,476',
-',,476,476,,,476,,476,,,,476,,,,,,,,476,,,,,476,476,476,476,476,476,',
-',,476,476,479,479,479,,479,,,,479,479,,,,479,,479,479,479,479,479,479',
-'479,,,,,479,479,479,479,479,479,479,,,,,,,,,,479,,,479,479,479,479,479',
-'479,479,479,479,479,,479,479,,479,479,479,,,,,,,,,,,,,,,,,,,,479,,,479',
-',,479,479,,,479,,,,,,479,,,,,,,,479,,,,,479,479,479,479,479,479,,,,479',
-'479,482,482,482,,482,,,,482,482,,,,482,,482,482,482,482,482,482,482',
-',,,,482,482,482,482,482,482,482,,,,,,,,,,482,,,482,482,482,482,482,482',
-'482,482,482,482,,482,482,,482,482,482,,,,,,,,,,,,,,,,,,,,482,,,482,',
-',482,482,,,482,,,,,,482,,,,,,,,482,,,,,482,482,482,482,482,482,,,,482',
-'482,496,496,496,,496,,,,496,496,,,,496,,496,496,496,496,496,496,496',
-',,,,496,496,496,496,496,496,496,,,,,,,,,,496,,,496,496,496,496,496,496',
-'496,496,496,496,,496,496,,496,496,496,,,,,,,,,,,,,,,,,,,,496,,,496,',
-',496,496,,,496,,496,,,,496,,,,,,,,496,,,,,496,496,496,496,496,496,,',
-',496,496,497,497,497,,497,,,,497,497,,,,497,,497,497,497,497,497,497',
-'497,,,,,497,497,497,497,497,497,497,,,,,,,,,,497,,,497,497,497,497,497',
-'497,497,497,497,497,,497,497,,497,497,497,,,,,,,,,,,,,,,,,,,,497,,,497',
-',,497,497,,,497,,497,,,,497,,,,,,,,497,,,,,497,497,497,497,497,497,',
-',,497,497,506,506,506,,506,,,,506,506,,,,506,,506,506,506,506,506,506',
-'506,,,,,506,506,506,506,506,506,506,,,,,,,,,,506,,,506,506,506,506,506',
-'506,506,506,506,506,,506,506,,506,506,506,,,,,,,,,,,,,,,,,,,,506,,,506',
-',,506,506,,,506,,506,,,,506,,,,,,,,506,,,,,506,506,506,506,506,506,',
-',,506,506,510,510,510,,510,,,,510,510,,,,510,,510,510,510,510,510,510',
-'510,,,,,510,510,510,510,510,510,510,,,510,,,,,,,510,,,510,510,510,510',
-'510,510,510,510,510,510,,510,510,,510,510,510,,,,,,,,,,,,,,,,,,,,510',
-',,510,,,510,510,,,510,,,,,,510,,,,,,,,510,,,,,510,510,510,510,510,510',
-',,,510,510,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534',
-'534,534,534,534,534,534,534,534,534,,,534,534,534,534,534,534,534,534',
-'534,534,,,,,,534,534,534,534,534,534,534,534,,,534,,,,,,,,534,534,,534',
-'534,534,534,,534,534,,,534,,,,,534,534,534,534,,,,,,,,,,,,,,534,534',
-',534,534,534,534,534,534,534,534,534,,534,,,534,534,,,537,537,537,,537',
-',,534,537,537,,,,537,,537,537,537,537,537,537,537,,,,,537,537,537,537',
-'537,537,537,,,,,,,,,,537,,,537,537,537,537,537,537,537,537,537,537,',
-'537,537,,537,537,537,,,,,,,,,,,,,,,,,,,,537,,,537,,,537,537,,,537,,',
-',,,537,,,,,,,,537,,,,,537,537,537,537,537,537,,,,537,537,538,538,538',
-',538,,,,538,538,,,,538,,538,538,538,538,538,538,538,,,,,538,538,538',
-'538,538,538,538,,,,,,,,,,538,,,538,538,538,538,538,538,538,538,538,538',
-',538,538,,538,538,538,,,,,,,,,,,,,,,,,,,,538,,,538,,,538,538,,,538,',
-'538,,,,538,,,,,,,,538,,,,,538,538,538,538,538,538,,,,538,538,541,541',
-'541,,541,,,,541,541,,,,541,,541,541,541,541,541,541,541,,,,,541,541',
-'541,541,541,541,541,,,,,,,,,,541,,,541,541,541,541,541,541,541,541,541',
-'541,,541,541,,541,541,541,,,,,,,,,,,,,,,,,,,,541,,,541,,,541,541,,,541',
-',,,,,541,,,,,,,,541,,,,,541,541,541,541,541,541,,,,541,541,542,542,542',
-',542,,,,542,542,,,,542,,542,542,542,542,542,542,542,,,,,542,542,542',
-'542,542,542,542,,,,,,,,,,542,,,542,542,542,542,542,542,542,542,542,542',
-',542,542,,542,542,542,,,,,,,,,,,,,,,,,,,,542,,,542,,,542,542,,,542,',
-',,,,542,,,,,,,,542,,,,,542,542,542,542,542,542,,,,542,542,546,546,546',
-',546,,,,546,546,,,,546,,546,546,546,546,546,546,546,,,,,546,546,546',
-'546,546,546,546,,,,,,,,,,546,,,546,546,546,546,546,546,546,546,546,546',
-',546,546,,546,546,546,,,,,,,,,,,,,,,,,,,,546,,,546,,,546,546,,,546,',
-',,,,546,,,,,,,,546,,,,,546,546,546,546,546,546,,,,546,546,549,549,549',
-',549,,,,549,549,,,,549,,549,549,549,549,549,549,549,,,,,549,549,549',
-'549,549,549,549,,,,,,,,,,549,,,549,549,549,549,549,549,549,549,549,549',
-',549,549,,549,549,549,,,,,,,,,,,,,,,,,,,,549,,,549,,,549,549,,,549,',
-',,,,549,,,,,,,,549,,,,,549,549,549,549,549,549,,,,549,549,556,556,556',
-',556,,,,556,556,,,,556,,556,556,556,556,556,556,556,,,,,556,556,556',
-'556,556,556,556,,,,,,,,,,556,,,556,556,556,556,556,556,556,556,556,556',
-',556,556,,556,556,556,,,,,,,,,,,,,,,,,,,,556,,,556,,,556,556,,,556,',
-',,,,556,,,,,,,,556,,,,,556,556,556,556,556,556,,,,556,556,557,557,557',
-',557,,,,557,557,,,,557,,557,557,557,557,557,557,557,,,,,557,557,557',
-'557,557,557,557,,,,,,,,,,557,,,557,557,557,557,557,557,557,557,557,557',
-',557,557,,,,557,,,,,,,,,,,,,,,,,,,,557,,,557,,,557,557,,,557,,557,,557',
-',,,,,,,,557,,,,,,557,557,557,557,557,557,,,,557,557,560,560,560,,560',
-',,,560,560,,,,560,,560,560,560,560,560,560,560,,,,,560,560,560,560,560',
-'560,560,,,,,,,,,,560,,,560,560,560,560,560,560,560,560,560,560,,560',
-'560,,560,560,560,,,,,,,,,,,,,,,,,,,,560,,,560,,,560,560,,,560,,,,,,560',
-',,,,,,,560,,,,,560,560,560,560,560,560,,,,560,560,564,564,564,,564,',
-',,564,564,,,,564,,564,564,564,564,564,564,564,,,,,564,564,564,564,564',
-'564,564,,,,,,,,,,564,,,564,564,564,564,564,564,564,564,564,564,,564',
-'564,,564,564,564,,,,,,,,,,,,,,,,,,,,564,,,564,,,564,564,,,564,,,,,,564',
-',,,,,,,564,,,,,564,564,564,564,564,564,,,,564,564,580,580,580,,580,',
-',,580,580,,,,580,,580,580,580,580,580,580,580,,,,,580,580,580,580,580',
-'580,580,,,,,,,,,,580,,,580,580,580,580,580,580,580,580,580,580,,580',
-'580,,580,580,580,,,,,,,,,,,,,,,,,,,,580,,,580,,,580,580,,,580,,580,',
-'580,,580,,,,,,,,580,,,,,580,580,580,580,580,580,,,,580,580,584,584,584',
-',584,,,,584,584,,,,584,,584,584,584,584,584,584,584,,,,,584,584,584',
-'584,584,584,584,,,,,,,,,,584,,,584,584,584,584,584,584,584,584,584,584',
-',584,584,,584,584,584,,,,,,,,,,,,,,,,,,,,584,,,584,,,584,584,,,584,',
-',,,,584,,,,,,,,584,,,,,584,584,584,584,584,584,,,,584,584,612,612,612',
-',612,,,,612,612,,,,612,,612,612,612,612,612,612,612,,,,,612,612,612',
-'612,612,612,612,,,,,,,,,,612,,,612,612,612,612,612,612,612,612,612,612',
-',612,612,,612,612,612,,,,,,,,,,,,,,,,,,,,612,,,612,,,612,612,,,612,',
-',,,,612,,,,,,,,612,,,,,612,612,612,612,612,612,,,,612,612,628,628,628',
-',628,,,,628,628,,,,628,,628,628,628,628,628,628,628,,,,,628,628,628',
-'628,628,628,628,,,,,,,,,,628,,,628,628,628,628,628,628,628,628,628,628',
-',628,628,,628,628,628,,,,,,,,,,,,,,,,,,,,628,,,628,,,628,628,,,628,',
-',,,,628,,,,,,,,628,,,,,628,628,628,628,628,628,,,,628,628,634,634,634',
-',634,,,,634,634,,,,634,,634,634,634,634,634,634,634,,,,,634,634,634',
-'634,634,634,634,,,634,,,,,,,634,,,634,634,634,634,634,634,634,634,634',
-'634,,634,634,,634,634,634,,,,,,,,,,,,,,,,,,,,634,,,634,,,634,634,,,634',
-',,,,,634,,,,,,,,634,,,,,634,634,634,634,634,634,,,,634,634,679,679,679',
-',679,,,,679,679,,,,679,,679,679,679,679,679,679,679,,,,,679,679,679',
-'679,679,679,679,,,,,,,,,,679,,,679,679,679,679,679,679,679,679,679,679',
-',679,679,,679,679,679,,,,,,,,,,,,,,,,,,,,679,,,679,,,679,679,,,679,',
-',,,,679,,,,,,,,679,,,,,679,679,679,679,679,679,,,,679,679,680,680,680',
-',680,,,,680,680,,,,680,,680,680,680,680,680,680,680,,,,,680,680,680',
-'680,680,680,680,,,,,,,,,,680,,,680,680,680,680,680,680,680,680,680,680',
-',680,680,,680,680,680,,,,,,,,,,,,,,,,,,,,680,,,680,,,680,680,,,680,',
-',,,,680,,,,,,,,680,,,,,680,680,680,680,680,680,,,,680,680,690,690,690',
-',690,,,,690,690,,,,690,,690,690,690,690,690,690,690,,,,,690,690,690',
-'690,690,690,690,,,,,,,,,,690,,,690,690,690,690,690,690,690,690,690,690',
-',690,690,,690,690,690,,,,,,,,,,,,,,,,,,,,690,,,690,,,690,690,,,690,',
-',,,,690,,,,,,,,690,,,,,690,690,690,690,690,690,,,,690,690,691,691,691',
-',691,,,,691,691,,,,691,,691,691,691,691,691,691,691,,,,,691,691,691',
-'691,691,691,691,,,,,,,,,,691,,,691,691,691,691,691,691,691,691,691,691',
-',691,691,,691,691,691,,,,,,,,,,,,,,,,,,,,691,,,691,,,691,691,,,691,',
-',,,,691,,,,,,,,691,,,,,691,691,691,691,691,691,,,,691,691,692,692,692',
-',692,,,,692,692,,,,692,,692,692,692,692,692,692,692,,,,,692,692,692',
-'692,692,692,692,,,,,,,,,,692,,,692,692,692,692,692,692,692,692,692,692',
-',692,692,,692,692,692,,,,,,,,,,,,,,,,,,,,692,,,692,,,692,692,,,692,',
-',,,,692,,,,,,,,692,,,,,692,692,692,692,692,692,,,,692,692,698,698,698',
-',698,,,,698,698,,,,698,,698,698,698,698,698,698,698,,,,,698,698,698',
-'698,698,698,698,,,,,,,,,,698,,,698,698,698,698,698,698,698,698,698,698',
-',698,698,,,,698,,600,600,600,600,600,600,600,600,600,600,600,,600,600',
-',,600,600,698,,,698,,,698,698,,,698,,,,600,,600,,600,600,600,600,600',
-'600,600,,600,,,698,698,698,698,698,698,,,,698,698,704,704,704,600,704',
-',,,704,704,,,,704,,704,704,704,704,704,704,704,,,,,704,704,704,704,704',
-'704,704,,,,,,,,,,704,,,704,704,704,704,704,704,704,704,704,704,,704',
-'704,,704,704,704,,,,,,,,,,,,,,,,,,,,704,,,704,,,704,704,,,704,,704,',
-'704,,704,,,,,,,,704,,,,,704,704,704,704,704,704,,,,704,704,713,713,713',
-',713,,,,713,713,,,,713,,713,713,713,713,713,713,713,,,,,713,713,713',
-'713,713,713,713,,,,,,,,,,713,,,713,713,713,713,713,713,713,713,713,713',
-',713,713,,713,713,713,,,,,,,,,,,,,,,,,,,,713,,,713,,,713,713,,,713,',
-'713,,713,,713,,,,,,,,713,,,,,713,713,713,713,713,713,,,,713,713,715',
-'715,715,,715,,,,715,715,,,,715,,715,715,715,715,715,715,715,,,,,715',
-'715,715,715,715,715,715,,,,,,,,,,715,,,715,715,715,715,715,715,715,715',
-'715,715,,715,715,,715,715,715,,,,,,,,,,,,,,,,,,,,715,,,715,,,715,715',
-',,715,,715,,715,,715,,,,,,,,715,,,,,715,715,715,715,715,715,,,,715,715',
-'728,728,728,,728,,,,728,728,,,,728,,728,728,728,728,728,728,728,,,,',
-'728,728,728,728,728,728,728,,,,,,,,,,728,,,728,728,728,728,728,728,728',
-'728,728,728,,728,728,,,,728,,677,677,677,677,677,677,677,677,677,677',
-'677,,677,677,,,677,677,728,,,728,,,728,728,,,728,,,,677,,677,,677,677',
-'677,677,677,677,677,,677,,,728,728,728,728,728,728,,,,728,728,734,734',
-'734,677,734,,,,734,734,,,,734,,734,734,734,734,734,734,734,,,,,734,734',
-'734,734,734,734,734,,,734,,,,,,,734,,,734,734,734,734,734,734,734,734',
-'734,734,,734,734,,734,734,734,,,,,,,,,,,,,,,,,,,,734,,,734,,,734,734',
-',,734,,,,,,734,,,,,,,,734,,,,,734,734,734,734,734,734,,,,734,734,740',
-'740,740,,740,,,,740,740,,,,740,,740,740,740,740,740,740,740,,,,,740',
-'740,740,740,740,740,740,,,,,,,,,,740,,,740,740,740,740,740,740,740,740',
-'740,740,,740,740,,740,740,740,,,,,,,,,,,,,,,,,,,,740,,,740,,,740,740',
-',,740,,740,,,,740,,,,,,,,740,,,,,740,740,740,740,740,740,,,,740,740',
-'759,759,759,,759,,,,759,759,,,,759,,759,759,759,759,759,759,759,,,,',
-'759,759,759,759,759,759,759,,,,,,,,,,759,,,759,759,759,759,759,759,759',
-'759,759,759,,759,759,,759,759,759,,,,,,,,,,,,,,,,,,,,759,,,759,,,759',
-'759,,,759,,,,,,759,,,,,,,,759,,,,,759,759,759,759,759,759,,,,759,759',
-'768,768,768,,768,,,,768,768,,,,768,,768,768,768,768,768,768,768,,,,',
-'768,768,768,768,768,768,768,,,,,,,,,,768,,,768,768,768,768,768,768,768',
-'768,768,768,,768,768,,768,768,768,,,,,,,,,,,,,,,,,,,,768,,,768,,,768',
-'768,,,768,,,,,,768,,,,,,,,768,,,,,768,768,768,768,768,768,,,,768,768',
-'769,769,769,,769,,,,769,769,,,,769,,769,769,769,769,769,769,769,,,,',
-'769,769,769,769,769,769,769,,,,,,,,,,769,,,769,769,769,769,769,769,769',
-'769,769,769,,769,769,,,,769,,,,,,,,,,,,,,,,,,,,769,,,769,,,769,769,',
-',769,,769,,769,,,,,,,,,,,,,,,769,769,769,769,769,769,,,,769,769,780',
-'780,780,,780,,,,780,780,,,,780,,780,780,780,780,780,780,780,,,,,780',
-'780,780,780,780,780,780,,,,,,,,,,780,,,780,780,780,780,780,780,780,780',
-'780,780,,780,780,,780,780,780,,,,,,,,,,,,,,,,,,,,780,,,780,,,780,780',
-',,780,,,,,,780,,,,,,,,780,,,,,780,780,780,780,780,780,,,,780,780,786',
-'786,786,,786,,,,786,786,,,,786,,786,786,786,786,786,786,786,,,,,786',
-'786,786,786,786,786,786,,,,,,,,,,786,,,786,786,786,786,786,786,786,786',
-'786,786,,786,786,,786,786,786,,,,,,,,,,,,,,,,,,,,786,,,786,,,786,786',
-',,786,,,,,,786,,,,,,,,786,,,,,786,786,786,786,786,786,,,,786,786,788',
-'788,788,,788,,,,788,788,,,,788,,788,788,788,788,788,788,788,,,,,788',
-'788,788,788,788,788,788,,,,,,,,,,788,,,788,788,788,788,788,788,788,788',
-'788,788,,788,788,,788,788,788,,,,,,,,,,,,,,,,,,,,788,,,788,,,788,788',
-',,788,,,,,,788,,,,,,,,788,,,,,788,788,788,788,788,788,,,,788,788,802',
-'802,802,,802,,,,802,802,,,,802,,802,802,802,802,802,802,802,,,,,802',
-'802,802,802,802,802,802,,,,,,,,,,802,,,802,802,802,802,802,802,802,802',
-'802,802,,802,802,,802,802,802,,,,,,,,,,,,,,,,,,,,802,,,802,,,802,802',
-',,802,,,,,,802,,,,,,,,802,,,,,802,802,802,802,802,802,,,,802,802,820',
-'820,820,,820,,,,820,820,,,,820,,820,820,820,820,820,820,820,,,,,820',
-'820,820,820,820,820,820,,,,,,,,,,820,,,820,820,820,820,820,820,820,820',
-'820,820,,820,820,,,,820,,682,682,682,682,682,682,682,682,682,682,682',
-',682,682,,,682,682,820,,,820,,,820,820,,,820,,,,682,,682,,682,682,682',
-'682,682,682,682,,682,,,820,820,820,820,820,820,,,,820,820,822,822,822',
-'682,822,,,,822,822,,,,822,,822,822,822,822,822,822,822,,,,,822,822,822',
-'822,822,822,822,,,,,,,,,,822,,,822,822,822,822,822,822,822,822,822,822',
-',822,822,,822,822,822,,,,,,,,,,,,,,,,,,,,822,,,822,,,822,822,,,822,',
-'822,,,,822,,,,,,,,822,,,,,822,822,822,822,822,822,,,,822,822,827,827',
-'827,,827,,,,827,827,,,,827,,827,827,827,827,827,827,827,,,,,827,827',
-'827,827,827,827,827,,,,,,,,,,827,,,827,827,827,827,827,827,827,827,827',
-'827,,827,827,,,,827,,684,684,684,684,684,684,684,684,684,684,684,,684',
-'684,,,684,684,827,,,827,,,827,827,,,827,,,,684,,684,,684,684,684,684',
-'684,684,684,,684,,,827,827,827,827,827,827,,,,827,827,832,832,832,684',
-'832,,,,832,832,,,,832,,832,832,832,832,832,832,832,,,,,832,832,832,832',
-'832,832,832,,,,,,,,,,832,,,832,832,832,832,832,832,832,832,832,832,',
-'832,832,,832,832,832,,,,,,,,,,,,,,,,,,,,832,,,832,,,832,832,,,832,,832',
-',832,,832,,,,,,,,832,,,,,832,832,832,832,832,832,,,,832,832,835,835',
-'835,,835,,,,835,835,,,,835,,835,835,835,835,835,835,835,,,,,835,835',
-'835,835,835,835,835,,,,,,,,,,835,,,835,835,835,835,835,835,835,835,835',
-'835,,835,835,,835,835,835,,,,,,,,,,,,,,,,,,,,835,,,835,,,835,835,,,835',
-',835,,835,,835,,,,,,,,835,,,,,835,835,835,835,835,835,,,,835,835,861',
-'861,861,,861,,,,861,861,,,,861,,861,861,861,861,861,861,861,,,,,861',
-'861,861,861,861,861,861,,,,,,,,,,861,,,861,861,861,861,861,861,861,861',
-'861,861,,861,861,,,,861,,687,687,687,687,687,687,687,687,687,687,687',
-',687,687,,,687,687,861,,,861,,,861,861,,,861,,,,687,,687,,687,687,687',
-'687,687,687,687,,687,,,861,861,861,861,861,861,,,,861,861,864,864,864',
-'687,864,,,,864,864,,,,864,,864,864,864,864,864,864,864,,,,,864,864,864',
-'864,864,864,864,,,,,,,,,,864,,,864,864,864,864,864,864,864,864,864,864',
-',864,864,,864,864,864,,,,,,,,,,,,,,,,,,,,864,,,864,,,864,864,,,864,',
-',,,,864,,,,,,,,864,,,,,864,864,864,864,864,864,,,,864,864,867,867,867',
-',867,,,,867,867,,,,867,,867,867,867,867,867,867,867,,,,,867,867,867',
-'867,867,867,867,,,,,,,,,,867,,,867,867,867,867,867,867,867,867,867,867',
-',867,867,,867,867,867,,,,,,,,,,,,,,,,,,,,867,,,867,,,867,867,,,867,',
-',,,,867,,,,,,,,867,,,,,867,867,867,867,867,867,,,,867,867,875,875,875',
-',875,,,,875,875,,,,875,,875,875,875,875,875,875,875,,,,,875,875,875',
-'875,875,875,875,,,,,,,,,,875,,,875,875,875,875,875,875,875,875,875,875',
-',875,875,,,,875,,689,689,689,689,689,689,689,689,689,689,689,,689,689',
-',,689,689,875,,,875,,,875,875,,,875,,,,689,,689,,689,689,689,689,689',
-'689,689,,689,,,875,875,875,875,875,875,,,,875,875,880,880,880,689,880',
-',,,880,880,,,,880,,880,880,880,880,880,880,880,,,,,880,880,880,880,880',
-'880,880,,,,,,,,,,880,,,880,880,880,880,880,880,880,880,880,880,,880',
-'880,,880,880,880,,,,,,,,,,,,,,,,,,,,880,,,880,,,880,880,,,880,,880,',
-'880,,880,,,,,,,,880,,,,,880,880,880,880,880,880,,,,880,880,886,886,886',
-',886,,,,886,886,,,,886,,886,886,886,886,886,886,886,,,,,886,886,886',
-'886,886,886,886,,,,,,,,,,886,,,886,886,886,886,886,886,886,886,886,886',
-',886,886,,,,886,,694,694,694,694,694,694,694,694,694,694,694,,694,694',
-',,694,694,886,,,886,,,886,886,,,886,,,,694,,694,,694,694,694,694,694',
-'694,694,,694,,,886,886,886,886,886,886,,,,886,886,889,889,889,694,889',
-',,,889,889,,,,889,,889,889,889,889,889,889,889,,,,,889,889,889,889,889',
-'889,889,,,,,,,,,,889,,,889,889,889,889,889,889,889,889,889,889,,889',
-'889,,889,889,889,,,,,,,,,,,,,,,,,,,,889,,,889,,,889,889,,,889,,,,,,889',
-',,,,,,,889,,,,,889,889,889,889,889,889,,,,889,889,64,64,64,64,64,64',
-'64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,64,64,64,64',
-'64,64,64,64,64,64,,,,,,64,64,64,64,64,64,64,64,64,64,64,64,,,,,,,64',
-'64,,64,64,64,64,,64,64,,,64,,,,,64,64,64,64,,,,,,64,,,,,,,,64,64,,64',
-'64,64,64,64,64,64,64,64,,64,,,64,664,664,664,664,664,664,664,664,664',
-'664,664,664,664,664,664,664,664,664,664,664,664,664,664,664,,,664,664',
-'664,664,664,664,664,664,664,664,,,,,,664,664,664,664,664,664,664,664',
-',,664,,,,,,,,664,664,,664,664,664,664,,664,664,,,664,,,,,664,664,664',
-'664,,,,,,,,,,,,,,664,664,,664,664,664,664,664,664,664,664,664,,664,',
-',664,581,581,581,581,581,581,581,581,581,581,581,,581,581,,,581,581',
-',,,581,,,,,,,,,,,581,,581,,581,581,581,581,581,581,581,,581,,,,,,,,192',
-'192,,,192,,,,,581,,581,192,192,,192,192,192,192,,192,192,,,192,,,,,192',
-'192,192,192,,,,,,,,,,,,,,192,192,,192,192,192,192,192,192,192,192,192',
-',192,193,193,192,,193,,,,,,,,193,193,,193,193,193,193,,193,193,,,193',
-',,,,193,193,193,193,,,,,,,,,,,,,,193,193,,193,193,193,193,193,193,193',
-'193,193,,193,251,251,193,,251,,,,,,,,251,251,,251,251,251,251,,251,251',
-',,251,,,,,251,251,251,251,,,,,,,,,,,,,,251,251,,251,251,251,251,251',
-'251,251,251,251,,251,252,252,251,,252,,,,,,,,252,252,,252,252,252,252',
-',252,252,,,252,,,,,252,252,252,252,,,,,,,,,,,,,,252,252,,252,252,252',
-'252,252,252,252,252,252,,252,391,391,252,,391,,,,,,,,391,391,,391,391',
-'391,391,,391,391,,,391,,,,,391,391,391,391,,,,,,,,,,,,,,391,391,,391',
-'391,391,391,391,391,391,391,391,,391,392,392,391,,392,,,,,,,,392,392',
-',392,392,392,392,,392,392,,,392,,,,,392,392,392,392,,,,,,,,,,,,,,392',
-'392,,392,392,392,392,392,392,392,392,392,,392,,,392,423,423,423,423',
-'423,423,423,423,423,423,423,,423,423,,,423,423,,,,,,,,,,,,,,,423,,423',
-',423,423,423,423,423,423,423,,423,,,,,,,457,457,,,457,,,,,,423,423,457',
-'457,,457,457,457,457,,457,457,,,457,,,,,457,457,457,457,,,,,,,,,,,,',
-',457,457,,457,457,457,457,457,457,457,457,457,,457,458,458,457,,458',
-',,,,,,,458,458,,458,458,458,458,,458,458,,,458,,,,,458,458,458,458,',
-',,,,,,,,,,,,458,458,,458,458,458,458,458,458,458,458,458,,458,466,466',
-'458,,466,,,,,,,,466,466,,466,466,466,466,,466,466,,,466,,,,,466,466',
-'466,466,,,,,,,,,,,,,,466,466,,466,466,466,466,466,466,466,466,466,,466',
-'467,467,466,,467,,,,,,,,467,467,,467,467,467,467,,467,467,,,467,,,,',
-'467,467,467,467,,,,,,,,,,,,,,467,467,,467,467,467,467,467,467,467,467',
-'467,,467,498,498,467,,498,,,,,,,,498,498,,498,498,498,498,,498,498,',
-',498,,,,,498,498,498,498,,,,,,,,,,,,,,498,498,,498,498,498,498,498,498',
-'498,498,498,,498,499,499,498,,499,,,,,,,,499,499,,499,499,499,499,,499',
-'499,,,499,,,,,499,499,499,499,,,,,,,,,,,,,,499,499,,499,499,499,499',
-'499,499,499,499,499,,499,505,505,499,,505,,,,,,,,505,505,,505,505,505',
-'505,,505,505,,,505,,,,,505,505,505,505,,,,,,,,,,,,,,505,505,,505,505',
-'505,505,505,505,505,505,505,,505,507,507,505,,507,,,,,,,,507,507,,507',
-'507,507,507,,507,507,,,507,,,,,507,507,507,507,,,,,,,,,,,,,,507,507',
-',507,507,507,507,507,507,507,507,507,,507,578,578,507,,578,,,,,,,,578',
-'578,,578,578,578,578,,578,578,,,578,,,,,578,578,578,578,,,,,,,,,,,,',
-',578,578,,578,578,578,578,578,578,578,578,578,,578,579,579,578,,579',
-',,,,,,,579,579,,579,579,579,579,,579,579,,,579,,,,,579,579,579,579,',
-',,,,,,,,,,,,579,579,,579,579,579,579,579,579,579,579,579,,579,823,823',
-'579,,823,,,,,,,,823,823,,823,823,823,823,,823,823,,,823,,,,,823,823',
-'823,823,,,,,,,,,,,,,,823,823,,823,823,823,823,823,823,823,823,823,,823',
-'824,824,823,,824,,,,,,,,824,824,,824,824,824,824,,824,824,,,824,,,,',
-'824,824,824,824,,,,,,,,,,,,,,824,824,,824,824,824,824,824,824,824,824',
-'824,,824,,,824,480,480,480,480,480,480,480,480,480,480,480,,480,480',
-',,480,480,,,,,,,,,,,,,,,480,,480,,480,480,480,480,480,480,480,,480,',
-'731,731,731,731,731,731,731,731,731,731,731,,731,731,480,480,731,731',
-',,,,,,,,,,,,,,731,,731,,731,731,731,731,731,731,731,,731,,767,767,767',
-'767,767,767,767,767,767,767,767,,767,767,731,731,767,767,,,,,,,,,,,',
-',,,767,,767,,767,767,767,767,767,767,767,,767,,,,,,,,,,,,,,,,,767' ]
- racc_action_check = arr = ::Array.new(24340, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-racc_action_pointer = [
- 1233, 30, nil, -98, 863, 4770, 4891, 5012, -53, 2,
- 71, 90, 160, 218, 174, 130, nil, 5125, 5246, 6094,
- 234, nil, 5367, 5488, 5609, 292, 138, 5730, 5851, nil,
- 1355, 5972, 6093, nil, 146, 316, 245, 346, 6214, 6335,
- 6456, 183, 300, nil, nil, nil, nil, nil, nil, nil,
- 214, 1477, 6577, 6698, 6819, 58, 6940, 7061, nil, nil,
- 735, 7182, 7303, 7424, 22775, nil, nil, nil, nil, nil,
- -92, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 7545, nil, nil, nil, 7666, nil, nil, nil,
- nil, nil, nil, nil, nil, 311, nil, 863, nil, nil,
- nil, 7787, 7908, 8029, 8150, 8271, 981, nil, 221, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 196, nil, 1599, 1721, 8392, 8513,
- 8634, 8755, 23000, 23060, 8876, 8997, 9118, nil, 377, -67,
- 279, -52, 212, 274, 1843, nil, nil, 9239, 9360, 9481,
- 9602, 9723, 9844, 9965, 10086, 10207, 10328, 10449, 10570, 10691,
- 10812, 10933, 11054, 11175, 11296, 11417, 11538, 11659, 11780, 11901,
- 12022, 12143, 12264, 12385, nil, nil, nil, 7183, nil, 242,
- 254, 12506, nil, 12627, 310, nil, nil, nil, nil, nil,
- nil, 23120, 23180, 313, 12748, 12869, nil, nil, nil, nil,
- nil, nil, nil, 12990, 325, 1965, 333, 352, 315, 13111,
- 2087, 399, 496, 430, 520, 411, 382, 161, nil, 443,
- 430, nil, nil, 335, 472, 486, 521, nil, 498, nil,
- 13232, nil, 565, 566, 457, nil, 460, 119, 136, 13353,
- 493, 147, 479, 244, nil, 482, -7, 8, 13474, 13595,
- -67, 32, 464, -9, 522, 545, -1, 575, nil, nil,
- 319, 345, 115, nil, 614, nil, 9, 13716, nil, nil,
- 311, 419, 453, 456, 457, 478, 488, 499, nil, 519,
- nil, 13837, nil, 149, 207, 235, 246, -35, 279, nil,
- 1103, nil, nil, nil, nil, nil, nil, 13958, nil, nil,
- nil, nil, 509, 511, nil, nil, 735, nil, 495, 14071,
- nil, 499, nil, nil, 7304, 535, 340, 342, 14192, nil,
- nil, 0, 541, 107, nil, 14313, 14434, nil, 7425, nil,
- nil, 23240, 23300, 14555, -33, 14676, 14797, 14918, 614, 863,
- 377, 384, 566, 574, 575, 576, 2941, 3063, 3185, 1599,
- 980, 1721, 1843, 1965, 2087, 2209, 2331, 2453, 2575, 249,
- 465, 2697, 2819, 23348, -48, nil, 15039, nil, 15160, 514,
- nil, 15281, 321, nil, nil, 376, nil, nil, 563, 531,
- -64, 529, 630, nil, nil, 15402, -27, -13, 571, nil,
- 572, 544, nil, nil, nil, 586, 15523, 23414, 23474, 617,
- 606, nil, nil, 15644, 15765, 15886, 23534, 23594, 13112, 16007,
- 688, 16128, nil, 582, nil, nil, 16249, nil, nil, 16370,
- 24122, nil, 16491, nil, nil, nil, 2209, 711, nil, nil,
- 2331, 68, 109, 708, 716, 2453, 16612, 16733, 23654, 23714,
- 4, nil, nil, 658, nil, 23774, 16854, 23834, nil, nil,
- 16975, 100, -34, 2575, 997, nil, nil, nil, -32, nil,
- nil, nil, 598, nil, nil, nil, 609, nil, 147, nil,
- nil, 606, nil, nil, 17096, nil, nil, 17209, 17330, nil,
- 349, 17451, 17572, 648, nil, nil, 17693, 649, nil, 17814,
- 86, 115, 493, 614, 655, 1106, 17935, 18056, nil, 2697,
- 18177, 621, nil, 666, 18298, nil, 674, nil, 663, nil,
- nil, nil, nil, nil, 113, nil, 673, 674, 23894, 23954,
- 18419, 22933, 69, 643, 18540, nil, 683, nil, 2819, 2941,
- nil, 1, nil, 681, 63, 112, 687, 347, 735, 688,
- 19630, 712, 714, -2, 772, nil, 3063, 654, 707, nil,
- nil, 707, 18661, nil, nil, 506, nil, 800, nil, nil,
- nil, nil, nil, 810, nil, 814, 700, 15, 18782, 738,
- 13, 23, 25, 75, 18903, 348, 788, nil, 740, 3185,
- 331, nil, nil, 835, 3307, 1284, 337, 718, 719, 726,
- nil, nil, nil, nil, nil, 724, nil, nil, nil, nil,
- 806, nil, nil, 809, 22885, 773, nil, nil, nil, nil,
- nil, 3429, nil, nil, nil, nil, nil, 20114, 744, 19024,
- 19145, nil, 21324, nil, 21566, nil, nil, 21929, nil, 22292,
- 19266, 19387, 19508, 167, 22534, nil, 745, 984, 19629, nil,
- 770, 868, 760, nil, 19750, 761, 3551, nil, nil, 802,
- 803, -63, 871, 19871, nil, 19992, 772, nil, 832, 813,
- 933, 738, nil, nil, 3673, nil, nil, 31, 20113, nil,
- nil, 24168, 938, nil, 20234, 941, 3795, 3917, nil, nil,
- 20355, 4039, nil, 26, 133, nil, 942, nil, 4161, nil,
- 946, 836, nil, 1406, nil, -43, nil, nil, 436, 20476,
- nil, nil, nil, nil, 862, nil, nil, 24214, 20597, 20718,
- 863, 866, 920, 907, 847, 884, nil, nil, nil, nil,
- 20839, nil, 873, 903, 869, nil, 20960, 870, 21081, nil,
- nil, nil, nil, nil, 4283, nil, nil, nil, 32, nil,
- 999, 1001, 21202, 332, nil, nil, 1002, nil, 936, 898,
- 899, nil, nil, 900, 899, nil, nil, 1528, nil, nil,
- 21323, 1106, 21444, 24014, 24074, 918, 933, 21565, 5973, nil,
- nil, nil, 21686, 914, nil, 21807, 918, 1046, 4405, nil,
- nil, nil, nil, nil, nil, 4527, nil, nil, 282, nil,
- nil, nil, 4649, nil, 927, 959, 965, 362, 400, 482,
- 977, 21928, nil, nil, 22049, 931, nil, 22170, nil, nil,
- 545, 1054, 938, 1057, 972, 22291, 980, nil, 945, nil,
- 22412, 948, nil, nil, nil, nil, 22533, nil, nil, 22654,
- nil, nil, 952, nil ]
-
-racc_action_default = [
- -4, -497, -1, -485, -5, -497, -497, -497, -497, -497,
- -497, -497, -497, -497, -271, -32, -33, -497, -497, -38,
- -40, -41, -282, -315, -316, -45, -249, -361, -285, -58,
- -4, -62, -67, -68, -497, -428, -497, -497, -497, -497,
- -497, -487, -214, -264, -265, -266, -267, -268, -269, -270,
- -475, -4, -497, -496, -467, -288, -497, -497, -292, -295,
- -485, -497, -497, -497, -497, -317, -318, -381, -382, -383,
- -384, -385, -399, -388, -401, -401, -392, -397, -411, -401,
- -413, -414, -417, -418, -419, -420, -421, -422, -423, -424,
- -425, -426, -427, -430, -431, -497, -3, -486, -492, -493,
- -494, -497, -497, -497, -497, -497, -6, -8, -497, -93,
- -94, -95, -96, -97, -98, -99, -100, -101, -105, -106,
- -107, -108, -109, -110, -111, -112, -113, -114, -115, -116,
- -117, -118, -119, -120, -121, -122, -123, -124, -125, -126,
- -127, -128, -129, -130, -131, -132, -133, -134, -135, -136,
- -137, -138, -139, -140, -141, -142, -143, -144, -145, -146,
- -147, -148, -149, -150, -151, -152, -153, -154, -155, -156,
- -157, -158, -159, -160, -161, -162, -163, -164, -165, -166,
- -167, -168, -169, -170, -13, -102, -4, -4, -497, -497,
- -497, -496, -497, -497, -497, -497, -497, -36, -497, -428,
- -497, -271, -497, -497, -4, -37, -206, -497, -497, -497,
- -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
- -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
- -497, -497, -497, -497, -351, -353, -42, -215, -228, -258,
- -258, -497, -236, -497, -259, -282, -315, -316, -470, -43,
- -44, -497, -497, -50, -496, -497, -287, -356, -362, -364,
- -56, -360, -57, -497, -58, -4, -497, -497, -63, -65,
- -4, -72, -497, -497, -79, -285, -487, -497, -319, -361,
- -497, -66, -70, -278, -415, -416, -497, -191, -192, -207,
- -497, -488, -373, -497, -274, -216, -487, -489, -489, -497,
- -497, -489, -497, -489, -289, -39, -497, -497, -497, -497,
- -485, -497, -486, -428, -497, -497, -271, -497, -331, -332,
- -88, -89, -497, -91, -497, -271, -497, -497, -428, -308,
- -93, -94, -131, -132, -148, -153, -160, -163, -310, -497,
- -465, -497, -386, -497, -497, -497, -497, -497, -497, 894,
- -7, -495, -14, -15, -16, -17, -18, -497, -10, -11,
- -12, -103, -497, -497, -21, -29, -171, -259, -497, -497,
- -22, -30, -31, -23, -173, -497, -476, -477, -226, -478,
- -479, -476, -249, -477, -359, -481, -482, -28, -180, -34,
- -35, -497, -497, -496, -278, -497, -497, -497, -181, -182,
- -183, -184, -185, -186, -187, -188, -193, -194, -195, -196,
- -197, -198, -199, -200, -201, -202, -203, -204, -205, -208,
- -209, -210, -211, -497, -347, -229, -497, -231, -497, -258,
- -256, -497, -249, -476, -477, -249, -48, -51, -497, -487,
- -487, -258, -228, -250, -251, -252, -347, -347, -497, -284,
- -497, -59, -276, -71, -64, -497, -496, -497, -497, -78,
- -497, -415, -416, -497, -497, -497, -497, -497, -212, -497,
- -496, -496, -273, -487, -217, -218, -491, -490, -220, -491,
- -487, -280, -491, -469, -281, -468, -4, -320, -321, -322,
- -4, -497, -497, -497, -497, -4, -497, -496, -497, -497,
- -278, -301, -88, -89, -90, -497, -496, -497, -304, -432,
- -497, -497, -497, -4, -445, -312, -483, -484, -487, -387,
- -400, -403, -497, -405, -389, -402, -497, -391, -497, -394,
- -396, -497, -412, -9, -497, -19, -20, -497, -497, -263,
- -279, -497, -497, -52, -227, -357, -497, -54, -358, -497,
- -476, -477, -480, -277, -497, -171, -497, -497, -349, -4,
- -497, -258, -257, -260, -497, -471, -497, -235, -497, -472,
- -46, -354, -47, -355, -347, -222, -497, -497, -497, -497,
- -497, -38, -497, -258, -497, -248, -497, -254, -4, -4,
- -283, -59, -69, -497, -476, -477, -226, -75, -77, -497,
- -179, -189, -190, -497, -496, -329, -4, -374, -496, -375,
- -376, -497, -497, -260, -221, -496, -323, -496, -293, -324,
- -325, -326, -296, -497, -299, -497, -367, -497, -497, -497,
- -476, -477, -480, -277, -497, -88, -89, -92, -497, -4,
- -497, -434, -306, -497, -4, -445, -497, -464, -464, -464,
- -444, -446, -447, -448, -449, -450, -451, -454, -456, -457,
- -459, -460, -461, -497, -497, -497, -404, -407, -408, -409,
- -410, -4, -390, -393, -395, -398, -104, -172, -261, -497,
- -497, -25, -175, -26, -176, -53, -27, -177, -55, -178,
- -497, -497, -497, -279, -213, -333, -335, -345, -497, -348,
- -497, -497, -258, -233, -497, -258, -4, -223, -224, -226,
- -226, -487, -497, -497, -241, -497, -258, -253, -497, -497,
- -497, -73, -286, -2, -4, -380, -330, -497, -497, -378,
- -275, -487, -497, -327, -497, -497, -4, -4, -298, -300,
- -497, -4, -369, -279, -497, -279, -497, -433, -4, -309,
- -497, -487, -436, -497, -440, -497, -442, -443, -497, -497,
- -458, -462, -313, -466, -497, -262, -24, -174, -497, -336,
- -80, -497, -497, -87, -344, -497, -346, -350, -352, -230,
- -497, -232, -497, -497, -258, -238, -497, -258, -497, -247,
- -255, -363, -365, -379, -4, -377, -219, -290, -497, -291,
- -497, -497, -497, -496, -302, -305, -497, -311, -497, -464,
- -464, -452, -463, -464, -497, -455, -453, -445, -406, -334,
- -497, -341, -496, -497, -497, -86, -497, -497, -258, -49,
- -225, -237, -497, -258, -243, -497, -258, -373, -4, -294,
- -297, -368, -366, -370, -371, -4, -307, -435, -497, -438,
- -439, -441, -4, -337, -340, -497, -497, -82, -84, -83,
- -85, -497, -343, -234, -497, -258, -239, -497, -242, -372,
- -496, -497, -464, -497, -497, -497, -81, -342, -258, -244,
- -497, -258, -328, -303, -437, -314, -497, -339, -240, -497,
- -245, -338, -258, -246 ]
-
-clist = [
-'10,205,240,240,240,10,268,438,112,112,100,300,338,470,293,644,242,242',
-'242,440,107,185,238,238,238,115,115,117,117,494,10,486,490,650,303,437',
-'239,239,239,253,260,262,604,290,365,372,732,618,622,96,565,10,815,296',
-'257,261,281,571,504,520,573,318,529,236,249,250,112,100,301,559,810',
-'264,813,266,106,475,478,344,345,483,1,485,348,723,754,756,757,326,329',
-'306,307,588,589,310,97,13,184,10,319,357,13,565,574,534,587,10,311,443',
-'586,718,340,302,198,198,304,317,508,198,198,198,339,515,473,308,736',
-'13,272,272,309,737,634,278,278,845,352,353,354,355,639,748,513,197,514',
-'664,817,815,13,198,198,375,696,198,198,700,424,198,314,324,324,446,447',
-'278,278,278,650,872,350,627,842,608,727,364,370,373,356,342,294,387',
-'343,346,305,305,528,347,305,666,10,10,671,735,751,296,13,809,811,386',
-'198,198,198,198,13,2,368,368,10,,,,,,,623,,,,,,,,706,,,,605,610,305',
-'305,305,305,,,267,,,240,240,,,,,,637,,240,674,,849,850,242,242,851,',
-',,442,238,,242,,,,,,238,,10,,,441,239,10,,,,,,,239,460,,,13,13,198,198',
-'198,198,,,198,198,198,14,454,,439,444,14,474,13,804,882,,427,448,257',
-'264,261,450,884,,264,,455,,,,100,852,389,390,,14,274,274,685,565,609',
-',688,,,,509,571,573,650,565,,,,491,492,14,,711,,,,198,198,554,741,316',
-'325,325,493,725,198,112,13,729,,,272,13,,,605,278,605,533,,,,843,115',
-',117,,,,,,,,,362,363,14,,543,,296,386,547,,14,,,,,,198,198,267,561,',
-',,548,,,,593,,,,,,,,198,,,583,,,,,,,305,305,,,198,,,585,,576,577,,,570',
-',,572,,,512,794,,,629,296,565,,,386,,,,638,518,267,,,386,,267,,,,611',
-'643,,14,14,,,614,,,368,10,,198,,10,,567,,,10,14,296,619,619,,386,565',
-',,,296,386,,,626,,,10,,,,,641,642,665,844,,838,681,683,,,,686,,,695',
-',,,112,,,,198,,,640,,,,,676,,,198,,115,,117,605,14,869,10,561,274,14',
-',198,,,,,294,,,,,,,,,,,712,13,,,,13,,,10,10,13,,198,603,,,378,382,35',
-',,198,746,35,,198,10,750,13,,,,762,12,,,,,12,,,,,605,703,,,548,35,271',
-'271,,,,305,,198,198,,10,,198,,12,10,,714,747,,35,,,272,752,13,432,435',
-'278,,313,328,328,328,766,12,,112,744,,,,10,,,,198,,,,,,,,13,13,,,615',
-',,,617,,787,,35,625,774,776,,,13,,35,,,10,785,,,12,806,,783,,,,,12,',
-',,,,10,,,784,795,198,,,,796,13,,10,10,,13,,10,,,819,,,,10,,,619,,808',
-',,,,305,,701,,,,,779,13,798,781,,,,,,,198,,,14,789,856,,14,,35,35,,14',
-',719,720,,771,771,10,378,382,278,278,12,12,13,35,,,14,,726,,,,,865,',
-'670,873,,12,,13,853,854,296,771,,,386,862,278,198,,13,13,,,,13,,10,',
-',,,13,,10,,831,,274,834,14,10,,,,,,305,,,877,599,35,272,,,271,35,278',
-',599,764,,,887,,,12,,14,14,,12,,,891,,,13,,863,,,,,866,,14,868,,,,599',
-',,,782,,599,,,,,,771,771,198,,,278,278,771,,,793,,278,879,,,14,,13,',
-',14,800,801,,13,888,803,,890,,,13,,,,,,,,893,771,,,,,278,,14,,,,,,,771',
-',,,,278,,,,,,771,709,710,,,278,,,773,773,,,,,837,,,14,,,,,,,,,,,,,,',
-',,,14,,,,773,,,,,,,,14,14,,,,14,,,,,,870,14,,,,,,871,,,,,,,,,,,,,,,274',
-',,,,,,,,,,,,,,,,,,,,,,35,,14,,35,,,,,35,,,,,,12,,,,12,,,,,12,,,35,773',
-'773,,,,,,773,,,,,,,12,,,,14,,,,,,,14,,,,,,,14,,,,,,,,,773,,271,,35,',
-',,,,,,,,773,,,,,12,,,,,,773,,,,,,,,35,35,,,,,,,,,,,,,,12,12,,35,,,,',
-',,,,,,,,,,12,,,,,,,,,599,,,,,,,,,35,,,,,35,,,,,,,,,,12,,,,,12,,,,,,',
-',,,,,35,,,,,,,,,,,,,,,12,,,,,,,,,,,770,770,,,,,,,,35,,,206,,,,237,237',
-'237,,,,,,12,,,35,,,,770,287,288,289,,,,,35,35,,12,,35,,,237,237,,,35',
-',,12,12,,,,12,,,,,367,371,12,,,,,,271,,,,,,,,,,,,,,,,,,,,,,,,,35,,,',
-',,,,,,,,,,,12,,,,,429,,430,,,,770,770,,,,,,770,,,,,,,,,,,35,,,,,,,35',
-',,,,,,35,12,,,,,,,12,770,,,,,,12,,,,,,,,770,,,,366,237,374,237,,,388',
-'770,,,,,,,,,,,,206,398,399,400,401,402,403,404,405,406,407,408,409,410',
-'411,412,413,414,415,416,417,418,419,420,421,422,423,,,,,,,,237,,237',
-',,,,,,,539,,,237,237,,,,,,,,237,,,,,,,,,,,,,,,,,,,,,,,,,,,468,,,,,,',
-',,480,,,,,,,,,563,,566,,,569,,,,,,,,,,,,,,582,,,,,,,,,,,,,,,,,,,,,,',
-',,,607,,,,,613,,,566,,,613,,,,,237,,,,,,,,,367,,,,,,,,,,,,,,,237,,388',
-'555,374,,,,,,,,,,,,,,,,,,,,,,,678,,,,,,237,,237,,,237,,,,,,,,,,,702',
-',,581,705,,,,,,,,,,237,,,,,,563,600,601,602,716,,26,,,237,,26,,,237',
-',,237,,,237,,,26,26,,,,26,26,26,,,,237,237,26,,,,,,,,237,,,,742,,,,',
-',,,,26,26,26,,,26,26,,,26,,,,,,,,,677,237,,,682,684,,,,687,,,689,,,',
-',,,694,,,,237,765,,,237,26,,,,26,26,26,26,26,,,,,,,237,,,,237,,566,',
-',,,,,,,,,566,,,,,,,,,,,,,,,731,,,,,,,,,,613,,,,,,237,,,,,,,,,,,,,816',
-',,,,,,,,,,,,26,26,26,26,26,26,,,26,26,26,,,,833,,836,,26,,,,,,,237,767',
-',,,841,,,,,,682,684,687,,,,,,,,,,,,237,,,,,,,,,237,563,237,,566,,,,',
-'26,26,,,,,,,,26,,26,,,,,26,,237,,,,,,878,,,881,,,,,,,,,,237,,,566,,',
-',,,767,,,892,,,,,26,26,,,828,,,,,,237,,237,,,,,,,26,,,,,,,237,,,,,,',
-'26,,,,,,,,,,,,,237,,,,,,,,,,237,,,237,,,,,,,,,,,,,,,,,,,,,,,,,,26,,',
-'237,,,237,,,,,,,,,,,,,237,,,,,,,,,237,,,,,,,,,,,,,,,,,,,,,,,,26,,,,',
-',,,,,,26,,,,,,,,,,,,,26,,,,,,,,,,,,,,,,,26,,,,26,,,,,26,,26,,,,,,,,',
-'26,,,,26,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,,26,26,,,,26,,,,,,,,,,,,,26',
-',,,,,,,,,,,,,,,,,,,,26,,,,,,,,26,26,,,,,,,,,,,,,,,,,26,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,26,,,,,26,,,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,26,,,,,,,,',
-'26,,,,,,,,,,,,,,,,,,,,,,,,,,26,,,,,,,,,,,,,,,,,,26,,,,,,,,,,26,,26,26',
-',,,26,,,,,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,26,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,26,,,,,,,,,,,,,,,,26,,,,,,,26,,,,,,,26' ]
- racc_goto_table = arr = ::Array.new(2610, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-clist = [
-'14,15,56,56,56,14,39,53,45,45,82,19,44,4,3,83,60,60,60,29,11,11,26,26',
-'26,48,48,49,49,79,14,76,76,126,56,32,54,54,54,31,31,31,5,51,21,21,77',
-'78,78,8,131,14,128,26,57,57,40,58,42,117,58,14,117,28,28,28,45,82,54',
-'33,124,36,124,37,9,55,55,114,114,55,1,55,114,6,125,125,125,43,43,13',
-'13,33,33,13,10,18,12,14,16,24,18,131,34,50,61,14,8,62,64,65,72,73,18',
-'18,74,80,81,18,18,18,84,85,86,87,88,18,18,18,89,90,91,52,52,92,13,13',
-'13,13,93,94,95,23,96,97,98,128,18,18,18,19,99,18,18,100,102,18,18,18',
-'18,104,105,52,52,52,126,124,9,106,107,108,109,15,15,15,9,112,23,15,113',
-'115,23,23,116,118,23,119,14,14,120,5,121,26,18,123,127,45,18,18,18,18',
-'18,2,54,54,14,,,,,,,79,,,,,,,,33,,,,53,53,23,23,23,23,,,2,,,56,56,,',
-',,,42,,56,117,,125,125,60,60,125,,,,26,26,,60,,,,,,26,,14,,,54,54,14',
-',,,,,,54,51,,,18,18,18,18,18,18,,,18,18,18,20,40,,28,28,20,51,18,78',
-'77,,59,28,57,36,57,37,125,,36,,37,,,,82,83,23,23,,20,20,20,32,131,21',
-',32,,,,82,58,58,126,131,,,,13,13,20,,29,,,,18,18,19,76,20,20,20,8,53',
-'18,45,18,53,,,18,18,,,53,52,53,11,,,,5,48,,49,,,,,,,,,2,2,20,,31,,26',
-'45,31,,20,,,,,,18,18,2,56,,,,57,,,,19,,,,,,,,18,,,56,,,,,,,23,23,,,18',
-',,60,,51,51,,,31,,,31,,,23,76,,,19,26,131,,,45,,,,19,23,2,,,45,,2,,',
-',51,3,,20,20,,,51,,,54,14,,18,,14,,59,,,14,20,26,82,82,,45,131,,,,26',
-'45,,,54,,,14,,,,,82,82,51,79,,76,15,15,,,,15,,,39,,,,45,,,,18,,,13,',
-',,,11,,,18,,48,,49,53,20,4,14,56,20,20,,18,,,,,23,,,,,,,,,,,26,18,,',
-',18,,,14,14,18,,18,23,,,30,30,41,,,18,3,41,,18,14,3,18,,,,44,17,,,,',
-'17,,,,,53,59,,,57,41,41,41,,,,23,,18,18,,14,,18,,17,14,,59,82,,41,,',
-'18,82,18,30,30,52,,41,41,41,41,15,17,,45,13,,,,14,,,,18,,,,,,,,18,18',
-',,2,,,,2,,56,,41,2,14,14,,,18,,41,,,14,60,,,17,3,,51,,,,,17,,,,,,14',
-',,54,14,18,,,,51,18,,14,14,,18,,14,,,39,,,,14,,,82,,51,,,,,23,,2,,,',
-',59,18,13,59,,,,,,,18,,,20,59,19,,20,,41,41,,20,,2,2,,18,18,14,30,30',
-'52,52,17,17,18,41,,,20,,2,,,,,56,,20,3,,17,,18,14,14,26,18,,,45,14,52',
-'18,,18,18,,,,18,,14,,,,,18,,14,,59,,20,59,20,14,,,,,,23,,,14,30,41,18',
-',,41,41,52,,30,2,,,14,,,17,,20,20,,17,,,14,,,18,,59,,,,,59,,20,59,,',
-',30,,,,2,,30,,,,,,18,18,18,,,52,52,18,,,2,,52,59,,,20,,18,,,20,2,2,',
-'18,59,2,,59,,,18,,,,,,,,59,18,,,,,52,,20,,,,,,,18,,,,,52,,,,,,18,30',
-'30,,,52,,,20,20,,,,,2,,,20,,,,,,,,,,,,,,,,,,20,,,,20,,,,,,,,20,20,,',
-',20,,,,,,2,20,,,,,,2,,,,,,,,,,,,,,,20,,,,,,,,,,,,,,,,,,,,,,,41,,20,',
-'41,,,,,41,,,,,,17,,,,17,,,,,17,,,41,20,20,,,,,,20,,,,,,,17,,,,20,,,',
-',,,20,,,,,,,20,,,,,,,,,20,,41,,41,,,,,,,,,,20,,,,,17,,,,,,20,,,,,,,',
-'41,41,,,,,,,,,,,,,,17,17,,41,,,,,,,,,,,,,,,17,,,,,,,,,30,,,,,,,,,41',
-',,,,41,,,,,,,,,,17,,,,,17,,,,,,,,,,,,41,,,,,,,,,,,,,,,17,,,,,,,,,,,41',
-'41,,,,,,,,41,,,25,,,,25,25,25,,,,,,17,,,41,,,,41,25,25,25,,,,,41,41',
-',17,,41,,,25,25,,,41,,,17,17,,,,17,,,,,22,22,17,,,,,,41,,,,,,,,,,,,',
-',,,,,,,,,,,,41,,,,,,,,,,,,,,,17,,,,,22,,22,,,,41,41,,,,,,41,,,,,,,,',
-',,41,,,,,,,41,,,,,,,41,17,,,,,,,17,41,,,,,,17,,,,,,,,41,,,,25,25,25',
-'25,,,25,41,,,,,,,,,,,,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25',
-'25,25,25,25,25,25,25,25,25,25,25,,,,,,,,25,,25,,,,,,,,22,,,25,25,,,',
-',,,,25,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,,,,,,,,25,,,,,,,,,22,,22,,,22,',
-',,,,,,,,,,,,22,,,,,,,,,,,,,,,,,,,,,,,,,,22,,,,,22,,,22,,,22,,,,,25,',
-',,,,,,,22,,,,,,,,,,,,,,,25,,25,25,25,,,,,,,,,,,,,,,,,,,,,,,22,,,,,,25',
-',25,,,25,,,,,,,,,,,22,,,25,22,,,,,,,,,,25,,,,,,22,25,25,25,22,,35,,',
-'25,,35,,,25,,,25,,,25,,,35,35,,,,35,35,35,,,,25,25,35,,,,,,,,25,,,,22',
-',,,,,,,,35,35,35,,,35,35,,,35,,,,,,,,,25,25,,,25,25,,,,25,,,25,,,,,',
-',25,,,,25,22,,,25,35,,,,35,35,35,35,35,,,,,,,25,,,,25,,22,,,,,,,,,,',
-'22,,,,,,,,,,,,,,,25,,,,,,,,,,22,,,,,,25,,,,,,,,,,,,,22,,,,,,,,,,,,,35',
-'35,35,35,35,35,,,35,35,35,,,,22,,22,,35,,,,,,,25,25,,,,22,,,,,,25,25',
-'25,,,,,,,,,,,,25,,,,,,,,,25,22,25,,22,,,,,35,35,,,,,,,,35,,35,,,,,35',
-',25,,,,,,22,,,22,,,,,,,,,,25,,,22,,,,,,25,,,22,,,,,35,35,,,25,,,,,,25',
-',25,,,,,,,35,,,,,,,25,,,,,,,35,,,,,,,,,,,,,25,,,,,,,,,,25,,,25,,,,,',
-',,,,,,,,,,,,,,,,,,,,35,,,25,,,25,,,,,,,,,,,,,25,,,,,,,,,25,,,,,,,,,',
-',,,,,,,,,,,,,,35,,,,,,,,,,,35,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,35,,,,35',
-',,,,35,,35,,,,,,,,,35,,,,35,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,35,,',
-',35,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,35,35,,,,,,,,,,,,,',
-',,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,35,,,,,35,,,,,,,,,,,,,,,,,,',
-',,,,,,,,35,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,,,35',
-',,,,,,,,,35,,35,35,,,,35,,,,,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,,,,,,,,,,,,,,,,35,,,,,,',
-'35,,,,,,,35' ]
- racc_goto_check = arr = ::Array.new(2610, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-racc_goto_pointer = [
- nil, 80, 201, -37, -279, -428, -521, nil, 46, 69,
- 91, 14, 89, 33, 0, -17, 37, 613, 95, -42,
- 292, -144, 1171, 124, -8, 1289, 0, nil, 41, -235,
- 404, 13, -218, -355, -334, 1757, 41, 43, nil, -25,
- 24, 598, -264, 25, -52, 2, nil, nil, 19, 21,
- -258, 2, 100, -247, 14, -222, -20, 28, -375, 63,
- -6, -341, -148, nil, -337, -478, nil, nil, nil, nil,
- nil, nil, 46, 57, 59, nil, -275, -569, -444, -282,
- 54, -210, 7, -499, 56, -218, -172, 65, -494, 69,
- -493, -371, -671, -370, -503, -189, -196, -372, -618, -407,
- -404, nil, -80, nil, -99, -99, -329, -635, -302, -438,
- nil, nil, 105, 106, 3, 103, -164, -284, 106, -337,
- -335, -455, nil, -560, -683, -563, -481, -559, -703, nil,
- nil, -378 ]
-
-racc_goto_default = [
- nil, nil, 292, nil, nil, 733, nil, 3, nil, 4,
- 312, nil, nil, nil, 202, 16, 11, 203, 286, nil,
- 201, nil, 244, 15, nil, 19, 20, 21, nil, 25,
- 596, nil, nil, nil, nil, 277, 29, nil, 31, 34,
- 33, 199, 323, nil, 114, 380, 113, 116, 68, 69,
- nil, nil, 42, 295, 297, nil, 298, 544, 545, 425,
- 562, nil, nil, 255, nil, nil, 43, 44, 45, 46,
- 47, 48, 49, nil, 256, 55, nil, nil, nil, nil,
- nil, nil, 487, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 235, nil, 384, nil, nil, nil, nil, nil, nil,
- 67, 70, 71, nil, nil, nil, nil, 525, nil, nil,
- nil, 646, 647, 648, 649, nil, 812, 656, 657, 660,
- 663, 248 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 133, :_reduce_1,
- 4, 135, :_reduce_2,
- 2, 134, :_reduce_3,
- 0, 139, :_reduce_4,
- 1, 139, :_reduce_5,
- 2, 139, :_reduce_6,
- 3, 139, :_reduce_7,
- 0, 156, :_reduce_8,
- 4, 141, :_reduce_9,
- 3, 141, :_reduce_10,
- 3, 141, :_reduce_11,
- 3, 141, :_reduce_12,
- 2, 141, :_reduce_13,
- 3, 141, :_reduce_14,
- 3, 141, :_reduce_15,
- 3, 141, :_reduce_16,
- 3, 141, :_reduce_17,
- 3, 141, :_reduce_18,
- 4, 141, :_reduce_19,
- 4, 141, :_reduce_20,
- 3, 141, :_reduce_21,
- 3, 141, :_reduce_22,
- 3, 141, :_reduce_23,
- 6, 141, :_reduce_24,
- 5, 141, :_reduce_25,
- 5, 141, :_reduce_26,
- 5, 141, :_reduce_27,
- 3, 141, :_reduce_28,
- 3, 141, :_reduce_29,
- 3, 141, :_reduce_30,
- 3, 141, :_reduce_31,
- 1, 141, :_reduce_none,
- 1, 155, :_reduce_none,
- 3, 155, :_reduce_34,
- 3, 155, :_reduce_35,
- 2, 155, :_reduce_36,
- 2, 155, :_reduce_37,
- 1, 155, :_reduce_none,
- 1, 145, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 2, 147, :_reduce_42,
- 2, 147, :_reduce_43,
- 2, 147, :_reduce_44,
- 1, 159, :_reduce_none,
- 4, 159, :_reduce_46,
- 4, 159, :_reduce_47,
- 0, 166, :_reduce_48,
- 5, 164, :_reduce_49,
- 2, 158, :_reduce_50,
- 3, 158, :_reduce_51,
- 4, 158, :_reduce_52,
- 5, 158, :_reduce_53,
- 4, 158, :_reduce_54,
- 5, 158, :_reduce_55,
- 2, 158, :_reduce_56,
- 2, 158, :_reduce_57,
- 1, 148, :_reduce_58,
- 3, 148, :_reduce_59,
- 1, 169, :_reduce_60,
- 3, 169, :_reduce_61,
- 1, 168, :_reduce_62,
- 2, 168, :_reduce_63,
- 3, 168, :_reduce_64,
- 2, 168, :_reduce_65,
- 2, 168, :_reduce_66,
- 1, 168, :_reduce_67,
- 1, 171, :_reduce_none,
- 3, 171, :_reduce_69,
- 2, 170, :_reduce_70,
- 3, 170, :_reduce_71,
- 1, 172, :_reduce_72,
- 4, 172, :_reduce_73,
- 3, 172, :_reduce_74,
- 3, 172, :_reduce_75,
- 3, 172, :_reduce_76,
- 3, 172, :_reduce_77,
- 2, 172, :_reduce_78,
- 1, 172, :_reduce_79,
- 1, 146, :_reduce_80,
- 4, 146, :_reduce_81,
- 3, 146, :_reduce_82,
- 3, 146, :_reduce_83,
- 3, 146, :_reduce_84,
- 3, 146, :_reduce_85,
- 2, 146, :_reduce_86,
- 1, 146, :_reduce_87,
- 1, 174, :_reduce_88,
- 1, 174, :_reduce_none,
- 2, 175, :_reduce_90,
- 1, 175, :_reduce_91,
- 3, 175, :_reduce_92,
- 1, 176, :_reduce_none,
- 1, 176, :_reduce_none,
- 1, 176, :_reduce_none,
- 1, 176, :_reduce_none,
- 1, 176, :_reduce_none,
- 1, 179, :_reduce_98,
- 1, 179, :_reduce_none,
- 1, 143, :_reduce_none,
- 1, 143, :_reduce_none,
- 1, 144, :_reduce_102,
- 0, 182, :_reduce_103,
- 4, 144, :_reduce_104,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 177, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 1, 178, :_reduce_none,
- 3, 157, :_reduce_171,
- 5, 157, :_reduce_172,
- 3, 157, :_reduce_173,
- 6, 157, :_reduce_174,
- 5, 157, :_reduce_175,
- 5, 157, :_reduce_176,
- 5, 157, :_reduce_177,
- 5, 157, :_reduce_178,
- 4, 157, :_reduce_179,
- 3, 157, :_reduce_180,
- 3, 157, :_reduce_181,
- 3, 157, :_reduce_182,
- 3, 157, :_reduce_183,
- 3, 157, :_reduce_184,
- 3, 157, :_reduce_185,
- 3, 157, :_reduce_186,
- 3, 157, :_reduce_187,
- 3, 157, :_reduce_188,
- 4, 157, :_reduce_189,
- 4, 157, :_reduce_190,
- 2, 157, :_reduce_191,
- 2, 157, :_reduce_192,
- 3, 157, :_reduce_193,
- 3, 157, :_reduce_194,
- 3, 157, :_reduce_195,
- 3, 157, :_reduce_196,
- 3, 157, :_reduce_197,
- 3, 157, :_reduce_198,
- 3, 157, :_reduce_199,
- 3, 157, :_reduce_200,
- 3, 157, :_reduce_201,
- 3, 157, :_reduce_202,
- 3, 157, :_reduce_203,
- 3, 157, :_reduce_204,
- 3, 157, :_reduce_205,
- 2, 157, :_reduce_206,
- 2, 157, :_reduce_207,
- 3, 157, :_reduce_208,
- 3, 157, :_reduce_209,
- 3, 157, :_reduce_210,
- 3, 157, :_reduce_211,
- 3, 157, :_reduce_212,
- 5, 157, :_reduce_213,
- 1, 157, :_reduce_none,
- 1, 154, :_reduce_none,
- 1, 151, :_reduce_none,
- 2, 151, :_reduce_217,
- 2, 151, :_reduce_218,
- 5, 151, :_reduce_219,
- 2, 151, :_reduce_220,
- 3, 151, :_reduce_221,
- 3, 189, :_reduce_222,
- 4, 189, :_reduce_223,
- 4, 189, :_reduce_224,
- 6, 189, :_reduce_225,
- 0, 190, :_reduce_226,
- 1, 190, :_reduce_none,
- 1, 160, :_reduce_228,
- 2, 160, :_reduce_229,
- 5, 160, :_reduce_230,
- 2, 160, :_reduce_231,
- 5, 160, :_reduce_232,
- 4, 160, :_reduce_233,
- 7, 160, :_reduce_234,
- 3, 160, :_reduce_235,
- 1, 160, :_reduce_236,
- 4, 193, :_reduce_237,
- 3, 193, :_reduce_238,
- 5, 193, :_reduce_239,
- 7, 193, :_reduce_240,
- 2, 193, :_reduce_241,
- 5, 193, :_reduce_242,
- 4, 193, :_reduce_243,
- 6, 193, :_reduce_244,
- 7, 193, :_reduce_245,
- 9, 193, :_reduce_246,
- 3, 193, :_reduce_247,
- 1, 193, :_reduce_248,
- 0, 195, :_reduce_249,
- 2, 163, :_reduce_250,
- 1, 194, :_reduce_251,
- 0, 196, :_reduce_252,
- 3, 194, :_reduce_253,
- 0, 197, :_reduce_254,
- 4, 194, :_reduce_255,
- 2, 192, :_reduce_256,
- 2, 191, :_reduce_257,
- 0, 191, :_reduce_258,
- 1, 186, :_reduce_259,
- 3, 186, :_reduce_260,
- 3, 153, :_reduce_261,
- 4, 153, :_reduce_262,
- 2, 153, :_reduce_263,
- 1, 184, :_reduce_none,
- 1, 184, :_reduce_none,
- 1, 184, :_reduce_none,
- 1, 184, :_reduce_none,
- 1, 184, :_reduce_none,
- 1, 184, :_reduce_none,
- 1, 184, :_reduce_none,
- 1, 184, :_reduce_none,
- 1, 184, :_reduce_272,
- 3, 184, :_reduce_273,
- 0, 218, :_reduce_274,
- 5, 184, :_reduce_275,
- 3, 184, :_reduce_276,
- 3, 184, :_reduce_277,
- 2, 184, :_reduce_278,
- 4, 184, :_reduce_279,
- 3, 184, :_reduce_280,
- 3, 184, :_reduce_281,
- 1, 184, :_reduce_282,
- 4, 184, :_reduce_283,
- 3, 184, :_reduce_284,
- 1, 184, :_reduce_285,
- 5, 184, :_reduce_286,
- 2, 184, :_reduce_287,
- 1, 184, :_reduce_none,
- 2, 184, :_reduce_289,
- 6, 184, :_reduce_290,
- 6, 184, :_reduce_291,
- 0, 219, :_reduce_292,
- 0, 220, :_reduce_293,
- 7, 184, :_reduce_294,
- 0, 221, :_reduce_295,
- 0, 222, :_reduce_296,
- 7, 184, :_reduce_297,
- 5, 184, :_reduce_298,
- 4, 184, :_reduce_299,
- 5, 184, :_reduce_300,
- 0, 223, :_reduce_301,
- 0, 224, :_reduce_302,
- 9, 184, :_reduce_303,
- 0, 225, :_reduce_304,
- 6, 184, :_reduce_305,
- 0, 226, :_reduce_306,
- 7, 184, :_reduce_307,
- 0, 227, :_reduce_308,
- 5, 184, :_reduce_309,
- 0, 228, :_reduce_310,
- 6, 184, :_reduce_311,
- 0, 229, :_reduce_312,
- 0, 230, :_reduce_313,
- 9, 184, :_reduce_314,
- 1, 184, :_reduce_315,
- 1, 184, :_reduce_316,
- 1, 184, :_reduce_317,
- 1, 184, :_reduce_318,
- 1, 150, :_reduce_none,
- 1, 208, :_reduce_none,
- 1, 208, :_reduce_none,
- 1, 208, :_reduce_none,
- 2, 208, :_reduce_323,
- 1, 210, :_reduce_none,
- 1, 210, :_reduce_none,
- 1, 210, :_reduce_none,
- 1, 209, :_reduce_none,
- 5, 209, :_reduce_328,
- 1, 137, :_reduce_none,
- 2, 137, :_reduce_330,
- 1, 212, :_reduce_none,
- 1, 212, :_reduce_none,
- 1, 231, :_reduce_333,
- 3, 231, :_reduce_334,
- 1, 232, :_reduce_none,
- 2, 232, :_reduce_none,
- 4, 232, :_reduce_337,
- 7, 232, :_reduce_338,
- 6, 232, :_reduce_339,
- 4, 232, :_reduce_340,
- 3, 232, :_reduce_341,
- 5, 232, :_reduce_342,
- 4, 232, :_reduce_343,
- 2, 232, :_reduce_344,
- 1, 232, :_reduce_345,
- 2, 232, :_reduce_346,
- 0, 165, :_reduce_347,
- 2, 165, :_reduce_348,
- 1, 165, :_reduce_349,
- 3, 165, :_reduce_350,
- 0, 234, :_reduce_351,
- 5, 233, :_reduce_352,
- 2, 161, :_reduce_353,
- 4, 161, :_reduce_354,
- 4, 161, :_reduce_355,
- 2, 207, :_reduce_356,
- 4, 207, :_reduce_357,
- 4, 207, :_reduce_358,
- 3, 207, :_reduce_359,
- 2, 207, :_reduce_360,
- 1, 207, :_reduce_361,
- 0, 236, :_reduce_362,
- 5, 206, :_reduce_363,
- 0, 237, :_reduce_364,
- 5, 206, :_reduce_365,
- 5, 211, :_reduce_366,
- 1, 238, :_reduce_none,
- 4, 238, :_reduce_368,
- 2, 238, :_reduce_369,
- 1, 239, :_reduce_370,
- 1, 239, :_reduce_none,
- 6, 136, :_reduce_372,
- 0, 136, :_reduce_373,
- 1, 240, :_reduce_374,
- 1, 240, :_reduce_none,
- 1, 240, :_reduce_none,
- 2, 241, :_reduce_377,
- 1, 241, :_reduce_none,
- 2, 138, :_reduce_379,
- 1, 138, :_reduce_none,
- 1, 198, :_reduce_none,
- 1, 198, :_reduce_none,
- 1, 198, :_reduce_none,
- 1, 199, :_reduce_384,
- 1, 243, :_reduce_385,
- 2, 243, :_reduce_386,
- 3, 244, :_reduce_387,
- 1, 244, :_reduce_388,
- 3, 200, :_reduce_389,
- 4, 201, :_reduce_390,
- 3, 202, :_reduce_391,
- 0, 247, :_reduce_392,
- 3, 247, :_reduce_393,
- 1, 248, :_reduce_394,
- 2, 248, :_reduce_395,
- 3, 203, :_reduce_396,
- 0, 250, :_reduce_397,
- 3, 250, :_reduce_398,
- 0, 245, :_reduce_399,
- 2, 245, :_reduce_400,
- 0, 246, :_reduce_401,
- 2, 246, :_reduce_402,
- 1, 249, :_reduce_403,
- 2, 249, :_reduce_404,
- 0, 252, :_reduce_405,
- 4, 249, :_reduce_406,
- 1, 251, :_reduce_407,
- 1, 251, :_reduce_408,
- 1, 251, :_reduce_409,
- 1, 251, :_reduce_none,
- 1, 180, :_reduce_411,
- 3, 181, :_reduce_412,
- 1, 242, :_reduce_413,
- 1, 242, :_reduce_414,
- 2, 242, :_reduce_415,
- 2, 242, :_reduce_416,
- 1, 173, :_reduce_417,
- 1, 173, :_reduce_418,
- 1, 173, :_reduce_419,
- 1, 173, :_reduce_420,
- 1, 173, :_reduce_421,
- 1, 173, :_reduce_422,
- 1, 173, :_reduce_423,
- 1, 173, :_reduce_424,
- 1, 173, :_reduce_425,
- 1, 173, :_reduce_426,
- 1, 173, :_reduce_427,
- 1, 204, :_reduce_428,
- 1, 149, :_reduce_429,
- 1, 152, :_reduce_430,
- 1, 152, :_reduce_431,
- 1, 213, :_reduce_432,
- 3, 213, :_reduce_433,
- 2, 213, :_reduce_434,
- 4, 215, :_reduce_435,
- 2, 215, :_reduce_436,
- 6, 253, :_reduce_437,
- 4, 253, :_reduce_438,
- 4, 253, :_reduce_439,
- 2, 253, :_reduce_440,
- 4, 253, :_reduce_441,
- 2, 253, :_reduce_442,
- 2, 253, :_reduce_443,
- 1, 253, :_reduce_444,
- 0, 253, :_reduce_445,
- 1, 259, :_reduce_446,
- 1, 259, :_reduce_447,
- 1, 259, :_reduce_448,
- 1, 259, :_reduce_449,
- 1, 259, :_reduce_450,
- 1, 254, :_reduce_451,
- 3, 254, :_reduce_452,
- 3, 260, :_reduce_453,
- 1, 255, :_reduce_454,
- 3, 255, :_reduce_455,
- 1, 261, :_reduce_none,
- 1, 261, :_reduce_none,
- 2, 256, :_reduce_458,
- 1, 256, :_reduce_459,
- 1, 262, :_reduce_none,
- 1, 262, :_reduce_none,
- 2, 258, :_reduce_462,
- 2, 257, :_reduce_463,
- 0, 257, :_reduce_464,
- 1, 216, :_reduce_none,
- 4, 216, :_reduce_466,
- 0, 205, :_reduce_467,
- 2, 205, :_reduce_468,
- 2, 205, :_reduce_469,
- 1, 188, :_reduce_470,
- 3, 188, :_reduce_471,
- 3, 263, :_reduce_472,
- 1, 167, :_reduce_none,
- 1, 167, :_reduce_none,
- 1, 167, :_reduce_none,
- 1, 162, :_reduce_none,
- 1, 162, :_reduce_none,
- 1, 162, :_reduce_none,
- 1, 162, :_reduce_none,
- 1, 235, :_reduce_none,
- 1, 235, :_reduce_none,
- 1, 235, :_reduce_none,
- 1, 217, :_reduce_none,
- 1, 217, :_reduce_none,
- 0, 140, :_reduce_none,
- 1, 140, :_reduce_none,
- 0, 183, :_reduce_none,
- 1, 183, :_reduce_none,
- 0, 187, :_reduce_none,
- 1, 187, :_reduce_none,
- 1, 187, :_reduce_none,
- 1, 214, :_reduce_492,
- 1, 214, :_reduce_none,
- 1, 142, :_reduce_none,
- 2, 142, :_reduce_none,
- 0, 185, :_reduce_496 ]
-
-racc_reduce_n = 497
-
-racc_shift_n = 894
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :kCLASS => 2,
- :kMODULE => 3,
- :kDEF => 4,
- :kUNDEF => 5,
- :kBEGIN => 6,
- :kRESCUE => 7,
- :kENSURE => 8,
- :kEND => 9,
- :kIF => 10,
- :kUNLESS => 11,
- :kTHEN => 12,
- :kELSIF => 13,
- :kELSE => 14,
- :kCASE => 15,
- :kWHEN => 16,
- :kWHILE => 17,
- :kUNTIL => 18,
- :kFOR => 19,
- :kBREAK => 20,
- :kNEXT => 21,
- :kREDO => 22,
- :kRETRY => 23,
- :kIN => 24,
- :kDO => 25,
- :kDO_COND => 26,
- :kDO_BLOCK => 27,
- :kRETURN => 28,
- :kYIELD => 29,
- :kSUPER => 30,
- :kSELF => 31,
- :kNIL => 32,
- :kTRUE => 33,
- :kFALSE => 34,
- :kAND => 35,
- :kOR => 36,
- :kNOT => 37,
- :kIF_MOD => 38,
- :kUNLESS_MOD => 39,
- :kWHILE_MOD => 40,
- :kUNTIL_MOD => 41,
- :kRESCUE_MOD => 42,
- :kALIAS => 43,
- :kDEFINED => 44,
- :klBEGIN => 45,
- :klEND => 46,
- :k__LINE__ => 47,
- :k__FILE__ => 48,
- :tIDENTIFIER => 49,
- :tFID => 50,
- :tGVAR => 51,
- :tIVAR => 52,
- :tCONSTANT => 53,
- :tCVAR => 54,
- :tNTH_REF => 55,
- :tBACK_REF => 56,
- :tSTRING_CONTENT => 57,
- :tINTEGER => 58,
- :tFLOAT => 59,
- :tREGEXP_END => 60,
- :tUPLUS => 61,
- :tUMINUS => 62,
- :tUMINUS_NUM => 63,
- :tPOW => 64,
- :tCMP => 65,
- :tEQ => 66,
- :tEQQ => 67,
- :tNEQ => 68,
- :tGEQ => 69,
- :tLEQ => 70,
- :tANDOP => 71,
- :tOROP => 72,
- :tMATCH => 73,
- :tNMATCH => 74,
- :tDOT => 75,
- :tDOT2 => 76,
- :tDOT3 => 77,
- :tAREF => 78,
- :tASET => 79,
- :tLSHFT => 80,
- :tRSHFT => 81,
- :tCOLON2 => 82,
- :tCOLON3 => 83,
- :tOP_ASGN => 84,
- :tASSOC => 85,
- :tLPAREN => 86,
- :tLPAREN2 => 87,
- :tRPAREN => 88,
- :tLPAREN_ARG => 89,
- :tLBRACK => 90,
- :tLBRACK2 => 91,
- :tRBRACK => 92,
- :tLBRACE => 93,
- :tLBRACE_ARG => 94,
- :tSTAR => 95,
- :tSTAR2 => 96,
- :tAMPER => 97,
- :tAMPER2 => 98,
- :tTILDE => 99,
- :tPERCENT => 100,
- :tDIVIDE => 101,
- :tPLUS => 102,
- :tMINUS => 103,
- :tLT => 104,
- :tGT => 105,
- :tPIPE => 106,
- :tBANG => 107,
- :tCARET => 108,
- :tLCURLY => 109,
- :tRCURLY => 110,
- :tBACK_REF2 => 111,
- :tSYMBEG => 112,
- :tSTRING_BEG => 113,
- :tXSTRING_BEG => 114,
- :tREGEXP_BEG => 115,
- :tWORDS_BEG => 116,
- :tQWORDS_BEG => 117,
- :tSTRING_DBEG => 118,
- :tSTRING_DVAR => 119,
- :tSTRING_END => 120,
- :tSTRING => 121,
- :tSYMBOL => 122,
- :tREGEXP_OPT => 123,
- :tNL => 124,
- :tEH => 125,
- :tCOLON => 126,
- :tCOMMA => 127,
- :tSPACE => 128,
- :tSEMI => 129,
- :tEQL => 130,
- :tLOWEST => 131 }
-
-racc_nt_base = 132
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "kCLASS",
- "kMODULE",
- "kDEF",
- "kUNDEF",
- "kBEGIN",
- "kRESCUE",
- "kENSURE",
- "kEND",
- "kIF",
- "kUNLESS",
- "kTHEN",
- "kELSIF",
- "kELSE",
- "kCASE",
- "kWHEN",
- "kWHILE",
- "kUNTIL",
- "kFOR",
- "kBREAK",
- "kNEXT",
- "kREDO",
- "kRETRY",
- "kIN",
- "kDO",
- "kDO_COND",
- "kDO_BLOCK",
- "kRETURN",
- "kYIELD",
- "kSUPER",
- "kSELF",
- "kNIL",
- "kTRUE",
- "kFALSE",
- "kAND",
- "kOR",
- "kNOT",
- "kIF_MOD",
- "kUNLESS_MOD",
- "kWHILE_MOD",
- "kUNTIL_MOD",
- "kRESCUE_MOD",
- "kALIAS",
- "kDEFINED",
- "klBEGIN",
- "klEND",
- "k__LINE__",
- "k__FILE__",
- "tIDENTIFIER",
- "tFID",
- "tGVAR",
- "tIVAR",
- "tCONSTANT",
- "tCVAR",
- "tNTH_REF",
- "tBACK_REF",
- "tSTRING_CONTENT",
- "tINTEGER",
- "tFLOAT",
- "tREGEXP_END",
- "tUPLUS",
- "tUMINUS",
- "tUMINUS_NUM",
- "tPOW",
- "tCMP",
- "tEQ",
- "tEQQ",
- "tNEQ",
- "tGEQ",
- "tLEQ",
- "tANDOP",
- "tOROP",
- "tMATCH",
- "tNMATCH",
- "tDOT",
- "tDOT2",
- "tDOT3",
- "tAREF",
- "tASET",
- "tLSHFT",
- "tRSHFT",
- "tCOLON2",
- "tCOLON3",
- "tOP_ASGN",
- "tASSOC",
- "tLPAREN",
- "tLPAREN2",
- "tRPAREN",
- "tLPAREN_ARG",
- "tLBRACK",
- "tLBRACK2",
- "tRBRACK",
- "tLBRACE",
- "tLBRACE_ARG",
- "tSTAR",
- "tSTAR2",
- "tAMPER",
- "tAMPER2",
- "tTILDE",
- "tPERCENT",
- "tDIVIDE",
- "tPLUS",
- "tMINUS",
- "tLT",
- "tGT",
- "tPIPE",
- "tBANG",
- "tCARET",
- "tLCURLY",
- "tRCURLY",
- "tBACK_REF2",
- "tSYMBEG",
- "tSTRING_BEG",
- "tXSTRING_BEG",
- "tREGEXP_BEG",
- "tWORDS_BEG",
- "tQWORDS_BEG",
- "tSTRING_DBEG",
- "tSTRING_DVAR",
- "tSTRING_END",
- "tSTRING",
- "tSYMBOL",
- "tREGEXP_OPT",
- "tNL",
- "tEH",
- "tCOLON",
- "tCOMMA",
- "tSPACE",
- "tSEMI",
- "tEQL",
- "tLOWEST",
- "$start",
- "program",
- "compstmt",
- "bodystmt",
- "opt_rescue",
- "opt_else",
- "opt_ensure",
- "stmts",
- "opt_terms",
- "stmt",
- "terms",
- "fitem",
- "undef_list",
- "expr_value",
- "lhs",
- "command_call",
- "mlhs",
- "var_lhs",
- "primary_value",
- "aref_args",
- "backref",
- "mrhs",
- "arg_value",
- "expr",
- "@1",
- "arg",
- "command",
- "block_command",
- "call_args",
- "block_call",
- "operation2",
- "command_args",
- "cmd_brace_block",
- "opt_block_var",
- "@2",
- "operation",
- "mlhs_basic",
- "mlhs_entry",
- "mlhs_head",
- "mlhs_item",
- "mlhs_node",
- "variable",
- "cname",
- "cpath",
- "fname",
- "op",
- "reswords",
- "fsym",
- "symbol",
- "dsym",
- "@3",
- "opt_nl",
- "primary",
- "none",
- "args",
- "trailer",
- "assocs",
- "paren_args",
- "opt_paren_args",
- "opt_block_arg",
- "block_arg",
- "call_args2",
- "open_args",
- "@4",
- "@5",
- "@6",
- "literal",
- "strings",
- "xstring",
- "regexp",
- "words",
- "qwords",
- "var_ref",
- "assoc_list",
- "brace_block",
- "method_call",
- "then",
- "if_tail",
- "do",
- "case_body",
- "for_var",
- "superclass",
- "term",
- "f_arglist",
- "singleton",
- "dot_or_colon",
- "@7",
- "@8",
- "@9",
- "@10",
- "@11",
- "@12",
- "@13",
- "@14",
- "@15",
- "@16",
- "@17",
- "@18",
- "@19",
- "block_par",
- "block_var",
- "do_block",
- "@20",
- "operation3",
- "@21",
- "@22",
- "when_args",
- "cases",
- "exc_list",
- "exc_var",
- "numeric",
- "string",
- "string1",
- "string_contents",
- "xstring_contents",
- "word_list",
- "word",
- "string_content",
- "qword_list",
- "string_dvar",
- "@23",
- "f_args",
- "f_arg",
- "f_optarg",
- "f_rest_arg",
- "opt_f_block_arg",
- "f_block_arg",
- "f_norm_arg",
- "f_opt",
- "restarg_mark",
- "blkarg_mark",
- "assoc" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 73)
- def _reduce_1(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 78)
- def _reduce_2(val, _values, result)
- rescue_bodies = val[1]
- else_t, else_ = val[2]
- ensure_t, ensure_ = val[3]
-
- if rescue_bodies.empty? && !else_.nil?
- diagnostic :warning, :useless_else, nil, else_t
- end
-
- result = @builder.begin_body(val[0],
- rescue_bodies,
- else_t, else_,
- ensure_t, ensure_)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 94)
- def _reduce_3(val, _values, result)
- result = @builder.compstmt(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 99)
- def _reduce_4(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 103)
- def _reduce_5(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 107)
- def _reduce_6(val, _values, result)
- result = [ val[1] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 111)
- def _reduce_7(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 116)
- def _reduce_8(val, _values, result)
- @lexer.state = :expr_fname
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 120)
- def _reduce_9(val, _values, result)
- result = @builder.alias(val[0], val[1], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 124)
- def _reduce_10(val, _values, result)
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.gvar(val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 130)
- def _reduce_11(val, _values, result)
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.back_ref(val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 136)
- def _reduce_12(val, _values, result)
- diagnostic :error, :nth_ref_alias, nil, val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 140)
- def _reduce_13(val, _values, result)
- result = @builder.undef_method(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 144)
- def _reduce_14(val, _values, result)
- result = @builder.condition_mod(val[0], nil,
- val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 149)
- def _reduce_15(val, _values, result)
- result = @builder.condition_mod(nil, val[0],
- val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 154)
- def _reduce_16(val, _values, result)
- result = @builder.loop_mod(:while, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 158)
- def _reduce_17(val, _values, result)
- result = @builder.loop_mod(:until, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 162)
- def _reduce_18(val, _values, result)
- rescue_body = @builder.rescue_body(val[1],
- nil, nil, nil,
- nil, val[2])
-
- result = @builder.begin_body(val[0], [ rescue_body ])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 170)
- def _reduce_19(val, _values, result)
- if in_def?
- diagnostic :error, :begin_in_method, nil, val[0]
- end
-
- result = @builder.preexe(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 178)
- def _reduce_20(val, _values, result)
- result = @builder.postexe(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 182)
- def _reduce_21(val, _values, result)
- result = @builder.assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 186)
- def _reduce_22(val, _values, result)
- result = @builder.multi_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 190)
- def _reduce_23(val, _values, result)
- result = @builder.op_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 194)
- def _reduce_24(val, _values, result)
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 201)
- def _reduce_25(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 208)
- def _reduce_26(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 215)
- def _reduce_27(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 222)
- def _reduce_28(val, _values, result)
- @builder.op_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 226)
- def _reduce_29(val, _values, result)
- result = @builder.assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 231)
- def _reduce_30(val, _values, result)
- result = @builder.multi_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 235)
- def _reduce_31(val, _values, result)
- result = @builder.multi_assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
-
- result
- end
-.,.,
-
-# reduce 32 omitted
-
-# reduce 33 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 243)
- def _reduce_34(val, _values, result)
- result = @builder.logical_op(:and, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 247)
- def _reduce_35(val, _values, result)
- result = @builder.logical_op(:or, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 251)
- def _reduce_36(val, _values, result)
- result = @builder.not_op(val[0], nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 255)
- def _reduce_37(val, _values, result)
- result = @builder.not_op(val[0], nil, val[1], nil)
-
- result
- end
-.,.,
-
-# reduce 38 omitted
-
-# reduce 39 omitted
-
-# reduce 40 omitted
-
-# reduce 41 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 265)
- def _reduce_42(val, _values, result)
- result = @builder.keyword_cmd(:return, val[0],
- nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 270)
- def _reduce_43(val, _values, result)
- result = @builder.keyword_cmd(:break, val[0],
- nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 275)
- def _reduce_44(val, _values, result)
- result = @builder.keyword_cmd(:next, val[0],
- nil, val[1], nil)
-
- result
- end
-.,.,
-
-# reduce 45 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 282)
- def _reduce_46(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 288)
- def _reduce_47(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 295)
- def _reduce_48(val, _values, result)
- @static_env.extend_dynamic
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 299)
- def _reduce_49(val, _values, result)
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 306)
- def _reduce_50(val, _values, result)
- lparen_t, args, rparen_t = val[1]
- result = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 312)
- def _reduce_51(val, _values, result)
- lparen_t, args, rparen_t = val[1]
- method_call = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
-
- begin_t, block_args, body, end_t = val[2]
- result = @builder.block(method_call,
- begin_t, block_args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 322)
- def _reduce_52(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 329)
- def _reduce_53(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- method_call = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- begin_t, block_args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, block_args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 339)
- def _reduce_54(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 345)
- def _reduce_55(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- method_call = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- begin_t, block_args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, block_args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 355)
- def _reduce_56(val, _values, result)
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:super, val[0],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 361)
- def _reduce_57(val, _values, result)
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:yield, val[0],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 368)
- def _reduce_58(val, _values, result)
- result = @builder.multi_lhs(nil, val[0], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 372)
- def _reduce_59(val, _values, result)
- result = @builder.begin(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 377)
- def _reduce_60(val, _values, result)
- result = @builder.multi_lhs(nil, val[0], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 381)
- def _reduce_61(val, _values, result)
- result = @builder.multi_lhs(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 386)
- def _reduce_62(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 390)
- def _reduce_63(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 394)
- def _reduce_64(val, _values, result)
- result = val[0] << @builder.splat(val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 398)
- def _reduce_65(val, _values, result)
- result = val[0] << @builder.splat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 402)
- def _reduce_66(val, _values, result)
- result = [ @builder.splat(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 406)
- def _reduce_67(val, _values, result)
- result = [ @builder.splat(val[0]) ]
-
- result
- end
-.,.,
-
-# reduce 68 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 412)
- def _reduce_69(val, _values, result)
- result = @builder.begin(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 417)
- def _reduce_70(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 421)
- def _reduce_71(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 426)
- def _reduce_72(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 430)
- def _reduce_73(val, _values, result)
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 434)
- def _reduce_74(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 438)
- def _reduce_75(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 442)
- def _reduce_76(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 446)
- def _reduce_77(val, _values, result)
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 451)
- def _reduce_78(val, _values, result)
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 456)
- def _reduce_79(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 461)
- def _reduce_80(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 465)
- def _reduce_81(val, _values, result)
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 469)
- def _reduce_82(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 473)
- def _reduce_83(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 477)
- def _reduce_84(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 481)
- def _reduce_85(val, _values, result)
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 486)
- def _reduce_86(val, _values, result)
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 491)
- def _reduce_87(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 496)
- def _reduce_88(val, _values, result)
- diagnostic :error, :module_name_const, nil, val[0]
-
- result
- end
-.,.,
-
-# reduce 89 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 502)
- def _reduce_90(val, _values, result)
- result = @builder.const_global(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 506)
- def _reduce_91(val, _values, result)
- result = @builder.const(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 510)
- def _reduce_92(val, _values, result)
- result = @builder.const_fetch(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-# reduce 93 omitted
-
-# reduce 94 omitted
-
-# reduce 95 omitted
-
-# reduce 96 omitted
-
-# reduce 97 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 519)
- def _reduce_98(val, _values, result)
- result = @builder.symbol(val[0])
-
- result
- end
-.,.,
-
-# reduce 99 omitted
-
-# reduce 100 omitted
-
-# reduce 101 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 528)
- def _reduce_102(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 532)
- def _reduce_103(val, _values, result)
- @lexer.state = :expr_fname
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 536)
- def _reduce_104(val, _values, result)
- result = val[0] << val[3]
-
- result
- end
-.,.,
-
-# reduce 105 omitted
-
-# reduce 106 omitted
-
-# reduce 107 omitted
-
-# reduce 108 omitted
-
-# reduce 109 omitted
-
-# reduce 110 omitted
-
-# reduce 111 omitted
-
-# reduce 112 omitted
-
-# reduce 113 omitted
-
-# reduce 114 omitted
-
-# reduce 115 omitted
-
-# reduce 116 omitted
-
-# reduce 117 omitted
-
-# reduce 118 omitted
-
-# reduce 119 omitted
-
-# reduce 120 omitted
-
-# reduce 121 omitted
-
-# reduce 122 omitted
-
-# reduce 123 omitted
-
-# reduce 124 omitted
-
-# reduce 125 omitted
-
-# reduce 126 omitted
-
-# reduce 127 omitted
-
-# reduce 128 omitted
-
-# reduce 129 omitted
-
-# reduce 130 omitted
-
-# reduce 131 omitted
-
-# reduce 132 omitted
-
-# reduce 133 omitted
-
-# reduce 134 omitted
-
-# reduce 135 omitted
-
-# reduce 136 omitted
-
-# reduce 137 omitted
-
-# reduce 138 omitted
-
-# reduce 139 omitted
-
-# reduce 140 omitted
-
-# reduce 141 omitted
-
-# reduce 142 omitted
-
-# reduce 143 omitted
-
-# reduce 144 omitted
-
-# reduce 145 omitted
-
-# reduce 146 omitted
-
-# reduce 147 omitted
-
-# reduce 148 omitted
-
-# reduce 149 omitted
-
-# reduce 150 omitted
-
-# reduce 151 omitted
-
-# reduce 152 omitted
-
-# reduce 153 omitted
-
-# reduce 154 omitted
-
-# reduce 155 omitted
-
-# reduce 156 omitted
-
-# reduce 157 omitted
-
-# reduce 158 omitted
-
-# reduce 159 omitted
-
-# reduce 160 omitted
-
-# reduce 161 omitted
-
-# reduce 162 omitted
-
-# reduce 163 omitted
-
-# reduce 164 omitted
-
-# reduce 165 omitted
-
-# reduce 166 omitted
-
-# reduce 167 omitted
-
-# reduce 168 omitted
-
-# reduce 169 omitted
-
-# reduce 170 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 555)
- def _reduce_171(val, _values, result)
- result = @builder.assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 559)
- def _reduce_172(val, _values, result)
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.assign(val[0], val[1], rescue_)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 569)
- def _reduce_173(val, _values, result)
- result = @builder.op_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 573)
- def _reduce_174(val, _values, result)
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 580)
- def _reduce_175(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 587)
- def _reduce_176(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 594)
- def _reduce_177(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 601)
- def _reduce_178(val, _values, result)
- diagnostic :error, :dynamic_const, nil, val[2], [ val[3] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 605)
- def _reduce_179(val, _values, result)
- diagnostic :error, :dynamic_const, nil, val[1], [ val[2] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 609)
- def _reduce_180(val, _values, result)
- result = @builder.op_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 613)
- def _reduce_181(val, _values, result)
- result = @builder.range_inclusive(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 617)
- def _reduce_182(val, _values, result)
- result = @builder.range_exclusive(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 621)
- def _reduce_183(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 625)
- def _reduce_184(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 629)
- def _reduce_185(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 633)
- def _reduce_186(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 637)
- def _reduce_187(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 641)
- def _reduce_188(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 645)
- def _reduce_189(val, _values, result)
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- @builder.integer(val[1]),
- val[2], val[3]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 652)
- def _reduce_190(val, _values, result)
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- @builder.float(val[1]),
- val[2], val[3]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 659)
- def _reduce_191(val, _values, result)
- result = @builder.unary_op(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 663)
- def _reduce_192(val, _values, result)
- result = @builder.unary_op(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 667)
- def _reduce_193(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 671)
- def _reduce_194(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 675)
- def _reduce_195(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 679)
- def _reduce_196(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 683)
- def _reduce_197(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 687)
- def _reduce_198(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 691)
- def _reduce_199(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 695)
- def _reduce_200(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 699)
- def _reduce_201(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 703)
- def _reduce_202(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 707)
- def _reduce_203(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 711)
- def _reduce_204(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 715)
- def _reduce_205(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 719)
- def _reduce_206(val, _values, result)
- result = @builder.not_op(val[0], nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 723)
- def _reduce_207(val, _values, result)
- result = @builder.unary_op(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 727)
- def _reduce_208(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 731)
- def _reduce_209(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 735)
- def _reduce_210(val, _values, result)
- result = @builder.logical_op(:and, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 739)
- def _reduce_211(val, _values, result)
- result = @builder.logical_op(:or, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 743)
- def _reduce_212(val, _values, result)
- result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 747)
- def _reduce_213(val, _values, result)
- result = @builder.ternary(val[0], val[1],
- val[2], val[3], val[4])
-
- result
- end
-.,.,
-
-# reduce 214 omitted
-
-# reduce 215 omitted
-
-# reduce 216 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 757)
- def _reduce_217(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 761)
- def _reduce_218(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 765)
- def _reduce_219(val, _values, result)
- result = val[0] << @builder.splat(val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 769)
- def _reduce_220(val, _values, result)
- result = [ @builder.associate(nil, val[0], nil) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 773)
- def _reduce_221(val, _values, result)
- result = [ @builder.splat(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 778)
- def _reduce_222(val, _values, result)
- result = [ val[0], [], val[2] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 782)
- def _reduce_223(val, _values, result)
- result = [ val[0], val[1], val[3] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 786)
- def _reduce_224(val, _values, result)
- result = [ val[0], [ val[1] ], val[3] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 790)
- def _reduce_225(val, _values, result)
- result = [ val[0], val[1] << val[3], val[5] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 795)
- def _reduce_226(val, _values, result)
- result = [ nil, [], nil ]
-
- result
- end
-.,.,
-
-# reduce 227 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 801)
- def _reduce_228(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 805)
- def _reduce_229(val, _values, result)
- result = val[0].concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 809)
- def _reduce_230(val, _values, result)
- result = val[0].concat(
- [ @builder.splat(val[2], val[3]),
- *val[4] ])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 815)
- def _reduce_231(val, _values, result)
- result = [ @builder.associate(nil, val[0], nil),
- *val[1] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 820)
- def _reduce_232(val, _values, result)
- result = [ @builder.associate(nil, val[0], nil),
- @builder.splat(val[2], val[3]),
- *val[4] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 826)
- def _reduce_233(val, _values, result)
- result = val[0].concat(
- [ @builder.associate(nil, val[2], nil),
- *val[3] ])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 832)
- def _reduce_234(val, _values, result)
- result = val[0].concat(
- [ @builder.associate(nil, val[2], nil),
- @builder.splat(val[4], val[5]),
- *val[6] ])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 839)
- def _reduce_235(val, _values, result)
- result = [ @builder.splat(val[0], val[1]),
- *val[2] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 844)
- def _reduce_236(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 849)
- def _reduce_237(val, _values, result)
- result = [ val[0], *val[2].concat(val[3]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 853)
- def _reduce_238(val, _values, result)
- result = [ val[0], val[2] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 857)
- def _reduce_239(val, _values, result)
- result = [ val[0],
- @builder.splat(val[2], val[3]),
- *val[4] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 863)
- def _reduce_240(val, _values, result)
- result = [ val[0],
- *val[2].
- push(@builder.splat(val[4], val[5])).
- concat(val[6]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 870)
- def _reduce_241(val, _values, result)
- result = [ @builder.associate(nil, val[0], nil),
- *val[1] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 875)
- def _reduce_242(val, _values, result)
- result = [ @builder.associate(nil, val[0], nil),
- @builder.splat(val[2], val[3]),
- *val[4] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 881)
- def _reduce_243(val, _values, result)
- result = [ val[0],
- @builder.associate(nil, val[2], nil),
- *val[3] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 887)
- def _reduce_244(val, _values, result)
- result = [ val[0],
- *val[2].
- push(@builder.associate(nil, val[4], nil)).
- concat(val[5]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 894)
- def _reduce_245(val, _values, result)
- result = [ val[0],
- @builder.associate(nil, val[2], nil),
- @builder.splat(val[4], val[5]),
- *val[6] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 901)
- def _reduce_246(val, _values, result)
- result = [ val[0],
- *val[2].
- push(@builder.associate(nil, val[4], nil)).
- push(@builder.splat(val[6], val[7])).
- concat(val[8]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 909)
- def _reduce_247(val, _values, result)
- result = [ @builder.splat(val[0], val[1]),
- *val[2] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 914)
- def _reduce_248(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 918)
- def _reduce_249(val, _values, result)
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.push(true)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 923)
- def _reduce_250(val, _values, result)
- @lexer.cmdarg = val[0]
-
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 930)
- def _reduce_251(val, _values, result)
- result = [ nil, val[0], nil ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 934)
- def _reduce_252(val, _values, result)
- @lexer.state = :expr_endarg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 938)
- def _reduce_253(val, _values, result)
- result = [ val[0], [], val[2] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 942)
- def _reduce_254(val, _values, result)
- @lexer.state = :expr_endarg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 946)
- def _reduce_255(val, _values, result)
- result = [ val[0], val[1], val[3] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 951)
- def _reduce_256(val, _values, result)
- result = @builder.block_pass(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 956)
- def _reduce_257(val, _values, result)
- result = [ val[1] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 960)
- def _reduce_258(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 965)
- def _reduce_259(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 969)
- def _reduce_260(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 974)
- def _reduce_261(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 978)
- def _reduce_262(val, _values, result)
- result = val[0] << @builder.splat(val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 982)
- def _reduce_263(val, _values, result)
- result = [ @builder.splat(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-# reduce 264 omitted
-
-# reduce 265 omitted
-
-# reduce 266 omitted
-
-# reduce 267 omitted
-
-# reduce 268 omitted
-
-# reduce 269 omitted
-
-# reduce 270 omitted
-
-# reduce 271 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 995)
- def _reduce_272(val, _values, result)
- result = @builder.call_method(nil, nil, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 999)
- def _reduce_273(val, _values, result)
- result = @builder.begin_keyword(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1003)
- def _reduce_274(val, _values, result)
- @lexer.state = :expr_endarg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1007)
- def _reduce_275(val, _values, result)
- result = @builder.begin(val[0], val[1], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1011)
- def _reduce_276(val, _values, result)
- result = @builder.begin(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1015)
- def _reduce_277(val, _values, result)
- result = @builder.const_fetch(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1019)
- def _reduce_278(val, _values, result)
- result = @builder.const_global(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1023)
- def _reduce_279(val, _values, result)
- result = @builder.index(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1027)
- def _reduce_280(val, _values, result)
- result = @builder.array(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1031)
- def _reduce_281(val, _values, result)
- result = @builder.associate(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1035)
- def _reduce_282(val, _values, result)
- result = @builder.keyword_cmd(:return, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1039)
- def _reduce_283(val, _values, result)
- result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1043)
- def _reduce_284(val, _values, result)
- result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1047)
- def _reduce_285(val, _values, result)
- result = @builder.keyword_cmd(:yield, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1051)
- def _reduce_286(val, _values, result)
- result = @builder.keyword_cmd(:defined?, val[0],
- val[2], [ val[3] ], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1056)
- def _reduce_287(val, _values, result)
- method_call = @builder.call_method(nil, nil, val[0])
-
- begin_t, args, body, end_t = val[1]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
-
- result
- end
-.,.,
-
-# reduce 288 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1065)
- def _reduce_289(val, _values, result)
- begin_t, args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1071)
- def _reduce_290(val, _values, result)
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1078)
- def _reduce_291(val, _values, result)
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- else_, else_t,
- val[3], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1085)
- def _reduce_292(val, _values, result)
- @lexer.cond.push(true)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1089)
- def _reduce_293(val, _values, result)
- @lexer.cond.pop
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1093)
- def _reduce_294(val, _values, result)
- result = @builder.loop(:while, val[0], val[2], val[3],
- val[5], val[6])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1098)
- def _reduce_295(val, _values, result)
- @lexer.cond.push(true)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1102)
- def _reduce_296(val, _values, result)
- @lexer.cond.pop
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1106)
- def _reduce_297(val, _values, result)
- result = @builder.loop(:until, val[0], val[2], val[3],
- val[5], val[6])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1111)
- def _reduce_298(val, _values, result)
- when_bodies = val[3][0..-2]
- else_t, else_body = val[3][-1]
-
- result = @builder.case(val[0], val[1],
- when_bodies, else_t, else_body,
- val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1120)
- def _reduce_299(val, _values, result)
- when_bodies = val[2][0..-2]
- else_t, else_body = val[2][-1]
-
- result = @builder.case(val[0], nil,
- when_bodies, else_t, else_body,
- val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1129)
- def _reduce_300(val, _values, result)
- result = @builder.case(val[0], nil,
- [], val[2], val[3],
- val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1135)
- def _reduce_301(val, _values, result)
- @lexer.cond.push(true)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1139)
- def _reduce_302(val, _values, result)
- @lexer.cond.pop
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1143)
- def _reduce_303(val, _values, result)
- result = @builder.for(val[0], val[1],
- val[2], val[4],
- val[5], val[7], val[8])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1149)
- def _reduce_304(val, _values, result)
- @static_env.extend_static
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1153)
- def _reduce_305(val, _values, result)
- if in_def?
- diagnostic :error, :class_in_def, nil, val[0]
- end
-
- lt_t, superclass = val[2]
- result = @builder.def_class(val[0], val[1],
- lt_t, superclass,
- val[4], val[5])
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1166)
- def _reduce_306(val, _values, result)
- result = @def_level
- @def_level = 0
-
- @static_env.extend_static
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1173)
- def _reduce_307(val, _values, result)
- result = @builder.def_sclass(val[0], val[1], val[2],
- val[5], val[6])
-
- @static_env.unextend
-
- @def_level = val[4]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1182)
- def _reduce_308(val, _values, result)
- @static_env.extend_static
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1186)
- def _reduce_309(val, _values, result)
- if in_def?
- diagnostic :error, :module_in_def, nil, val[0]
- end
-
- result = @builder.def_module(val[0], val[1],
- val[3], val[4])
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1197)
- def _reduce_310(val, _values, result)
- @def_level += 1
- @static_env.extend_static
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1202)
- def _reduce_311(val, _values, result)
- result = @builder.def_method(val[0], val[1],
- val[3], val[4], val[5])
-
- @static_env.unextend
- @def_level -= 1
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1210)
- def _reduce_312(val, _values, result)
- @lexer.state = :expr_fname
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1214)
- def _reduce_313(val, _values, result)
- @def_level += 1
- @static_env.extend_static
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1219)
- def _reduce_314(val, _values, result)
- result = @builder.def_singleton(val[0], val[1], val[2],
- val[4], val[6], val[7], val[8])
-
- @static_env.unextend
- @def_level -= 1
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1227)
- def _reduce_315(val, _values, result)
- result = @builder.keyword_cmd(:break, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1231)
- def _reduce_316(val, _values, result)
- result = @builder.keyword_cmd(:next, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1235)
- def _reduce_317(val, _values, result)
- result = @builder.keyword_cmd(:redo, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1239)
- def _reduce_318(val, _values, result)
- result = @builder.keyword_cmd(:retry, val[0])
-
- result
- end
-.,.,
-
-# reduce 319 omitted
-
-# reduce 320 omitted
-
-# reduce 321 omitted
-
-# reduce 322 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1249)
- def _reduce_323(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-# reduce 324 omitted
-
-# reduce 325 omitted
-
-# reduce 326 omitted
-
-# reduce 327 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1259)
- def _reduce_328(val, _values, result)
- else_t, else_ = val[4]
- result = [ val[0],
- @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, nil),
- ]
-
- result
- end
-.,.,
-
-# reduce 329 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1270)
- def _reduce_330(val, _values, result)
- result = val
-
- result
- end
-.,.,
-
-# reduce 331 omitted
-
-# reduce 332 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1278)
- def _reduce_333(val, _values, result)
- result = [ @builder.arg_expr(val[0]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1282)
- def _reduce_334(val, _values, result)
- result = val[0] << @builder.arg_expr(val[2])
-
- result
- end
-.,.,
-
-# reduce 335 omitted
-
-# reduce 336 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1289)
- def _reduce_337(val, _values, result)
- result = val[0].
- push(@builder.blockarg_expr(val[2], val[3]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1294)
- def _reduce_338(val, _values, result)
- result = val[0].
- push(@builder.restarg_expr(val[2], val[3])).
- push(@builder.blockarg_expr(val[5], val[6]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1300)
- def _reduce_339(val, _values, result)
- result = val[0].
- push(@builder.restarg_expr(val[2])).
- push(@builder.blockarg_expr(val[4], val[5]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1306)
- def _reduce_340(val, _values, result)
- result = val[0].
- push(@builder.restarg_expr(val[2], val[3]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1311)
- def _reduce_341(val, _values, result)
- result = val[0].
- push(@builder.restarg_expr(val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1316)
- def _reduce_342(val, _values, result)
- result = [ @builder.restarg_expr(val[0], val[1]),
- @builder.blockarg_expr(val[3], val[4]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1321)
- def _reduce_343(val, _values, result)
- result = [ @builder.restarg_expr(val[0]),
- @builder.blockarg_expr(val[2], val[3]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1326)
- def _reduce_344(val, _values, result)
- result = [ @builder.restarg_expr(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1330)
- def _reduce_345(val, _values, result)
- result = [ @builder.restarg_expr(val[0]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1334)
- def _reduce_346(val, _values, result)
- result = [ @builder.blockarg_expr(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1340)
- def _reduce_347(val, _values, result)
- result = @builder.args(nil, [], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1344)
- def _reduce_348(val, _values, result)
- result = @builder.args(val[0], [], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1348)
- def _reduce_349(val, _values, result)
- result = @builder.args(val[0], [], val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1352)
- def _reduce_350(val, _values, result)
- result = @builder.args(val[0], val[1], val[2], false)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1357)
- def _reduce_351(val, _values, result)
- @static_env.extend_dynamic
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1361)
- def _reduce_352(val, _values, result)
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1368)
- def _reduce_353(val, _values, result)
- begin_t, block_args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, block_args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1374)
- def _reduce_354(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1380)
- def _reduce_355(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1387)
- def _reduce_356(val, _values, result)
- lparen_t, args, rparen_t = val[1]
- result = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1393)
- def _reduce_357(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1399)
- def _reduce_358(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1405)
- def _reduce_359(val, _values, result)
- result = @builder.call_method(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1409)
- def _reduce_360(val, _values, result)
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:super, val[0],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1415)
- def _reduce_361(val, _values, result)
- result = @builder.keyword_cmd(:zsuper, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1420)
- def _reduce_362(val, _values, result)
- @static_env.extend_dynamic
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1424)
- def _reduce_363(val, _values, result)
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1430)
- def _reduce_364(val, _values, result)
- @static_env.extend_dynamic
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1434)
- def _reduce_365(val, _values, result)
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1441)
- def _reduce_366(val, _values, result)
- result = [ @builder.when(val[0], val[1], val[2], val[3]),
- *val[4] ]
-
- result
- end
-.,.,
-
-# reduce 367 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1448)
- def _reduce_368(val, _values, result)
- result = val[0] << @builder.splat(val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1452)
- def _reduce_369(val, _values, result)
- result = [ @builder.splat(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1457)
- def _reduce_370(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-# reduce 371 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1463)
- def _reduce_372(val, _values, result)
- assoc_t, exc_var = val[2]
-
- if val[1]
- exc_list = @builder.array(nil, val[1], nil)
- end
-
- result = [ @builder.rescue_body(val[0],
- exc_list, assoc_t, exc_var,
- val[3], val[4]),
- *val[5] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1476)
- def _reduce_373(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1481)
- def _reduce_374(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-# reduce 375 omitted
-
-# reduce 376 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1488)
- def _reduce_377(val, _values, result)
- result = [ val[0], val[1] ]
-
- result
- end
-.,.,
-
-# reduce 378 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1494)
- def _reduce_379(val, _values, result)
- result = [ val[0], val[1] ]
-
- result
- end
-.,.,
-
-# reduce 380 omitted
-
-# reduce 381 omitted
-
-# reduce 382 omitted
-
-# reduce 383 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1504)
- def _reduce_384(val, _values, result)
- result = @builder.string_compose(nil, val[0], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1509)
- def _reduce_385(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1513)
- def _reduce_386(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1518)
- def _reduce_387(val, _values, result)
- result = @builder.string_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1522)
- def _reduce_388(val, _values, result)
- result = @builder.string(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1527)
- def _reduce_389(val, _values, result)
- result = @builder.xstring_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1532)
- def _reduce_390(val, _values, result)
- opts = @builder.regexp_options(val[3])
- result = @builder.regexp_compose(val[0], val[1], val[2], opts)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1538)
- def _reduce_391(val, _values, result)
- result = @builder.words_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1543)
- def _reduce_392(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1547)
- def _reduce_393(val, _values, result)
- result = val[0] << @builder.word(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1552)
- def _reduce_394(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1556)
- def _reduce_395(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1561)
- def _reduce_396(val, _values, result)
- result = @builder.words_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1566)
- def _reduce_397(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1570)
- def _reduce_398(val, _values, result)
- result = val[0] << @builder.string_internal(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1575)
- def _reduce_399(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1579)
- def _reduce_400(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1584)
- def _reduce_401(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1588)
- def _reduce_402(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1593)
- def _reduce_403(val, _values, result)
- result = @builder.string_internal(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1597)
- def _reduce_404(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1601)
- def _reduce_405(val, _values, result)
- @lexer.cond.push(false)
- @lexer.cmdarg.push(false)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1606)
- def _reduce_406(val, _values, result)
- @lexer.cond.lexpop
- @lexer.cmdarg.lexpop
-
- result = @builder.begin(val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1614)
- def _reduce_407(val, _values, result)
- result = @builder.gvar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1618)
- def _reduce_408(val, _values, result)
- result = @builder.ivar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1622)
- def _reduce_409(val, _values, result)
- result = @builder.cvar(val[0])
-
- result
- end
-.,.,
-
-# reduce 410 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1629)
- def _reduce_411(val, _values, result)
- result = @builder.symbol(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1634)
- def _reduce_412(val, _values, result)
- result = @builder.symbol_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1639)
- def _reduce_413(val, _values, result)
- result = @builder.integer(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1643)
- def _reduce_414(val, _values, result)
- result = @builder.float(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1647)
- def _reduce_415(val, _values, result)
- result = @builder.negate(val[0],
- @builder.integer(val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1652)
- def _reduce_416(val, _values, result)
- result = @builder.negate(val[0],
- @builder.float(val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1658)
- def _reduce_417(val, _values, result)
- result = @builder.ident(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1662)
- def _reduce_418(val, _values, result)
- result = @builder.ivar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1666)
- def _reduce_419(val, _values, result)
- result = @builder.gvar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1670)
- def _reduce_420(val, _values, result)
- result = @builder.cvar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1674)
- def _reduce_421(val, _values, result)
- result = @builder.const(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1678)
- def _reduce_422(val, _values, result)
- result = @builder.nil(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1682)
- def _reduce_423(val, _values, result)
- result = @builder.self(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1686)
- def _reduce_424(val, _values, result)
- result = @builder.true(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1690)
- def _reduce_425(val, _values, result)
- result = @builder.false(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1694)
- def _reduce_426(val, _values, result)
- result = @builder.__FILE__(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1698)
- def _reduce_427(val, _values, result)
- result = @builder.__LINE__(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1703)
- def _reduce_428(val, _values, result)
- result = @builder.accessible(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1708)
- def _reduce_429(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1713)
- def _reduce_430(val, _values, result)
- result = @builder.nth_ref(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1717)
- def _reduce_431(val, _values, result)
- result = @builder.back_ref(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1722)
- def _reduce_432(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1726)
- def _reduce_433(val, _values, result)
- result = [ val[0], val[1] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1730)
- def _reduce_434(val, _values, result)
- yyerrok
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1736)
- def _reduce_435(val, _values, result)
- result = @builder.args(val[0], val[1], val[3])
-
- @lexer.state = :expr_beg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1742)
- def _reduce_436(val, _values, result)
- result = @builder.args(nil, val[0], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1747)
- def _reduce_437(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1754)
- def _reduce_438(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1760)
- def _reduce_439(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1766)
- def _reduce_440(val, _values, result)
- result = val[0].
- concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1771)
- def _reduce_441(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1777)
- def _reduce_442(val, _values, result)
- result = val[0].
- concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1782)
- def _reduce_443(val, _values, result)
- result = val[0].
- concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1787)
- def _reduce_444(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1791)
- def _reduce_445(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1796)
- def _reduce_446(val, _values, result)
- diagnostic :error, :argument_const, nil, val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1800)
- def _reduce_447(val, _values, result)
- diagnostic :error, :argument_ivar, nil, val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1804)
- def _reduce_448(val, _values, result)
- diagnostic :error, :argument_gvar, nil, val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1808)
- def _reduce_449(val, _values, result)
- diagnostic :error, :argument_cvar, nil, val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1812)
- def _reduce_450(val, _values, result)
- @static_env.declare val[0][0]
-
- result = @builder.arg(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1819)
- def _reduce_451(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1823)
- def _reduce_452(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1828)
- def _reduce_453(val, _values, result)
- @static_env.declare val[0][0]
-
- result = @builder.optarg(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1835)
- def _reduce_454(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1839)
- def _reduce_455(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-# reduce 456 omitted
-
-# reduce 457 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1846)
- def _reduce_458(val, _values, result)
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1852)
- def _reduce_459(val, _values, result)
- result = [ @builder.restarg(val[0]) ]
-
- result
- end
-.,.,
-
-# reduce 460 omitted
-
-# reduce 461 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1859)
- def _reduce_462(val, _values, result)
- @static_env.declare val[1][0]
-
- result = @builder.blockarg(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1866)
- def _reduce_463(val, _values, result)
- result = [ val[1] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1870)
- def _reduce_464(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-# reduce 465 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1876)
- def _reduce_466(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1881)
- def _reduce_467(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1885)
- def _reduce_468(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1889)
- def _reduce_469(val, _values, result)
- result = @builder.pair_list_18(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1894)
- def _reduce_470(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1898)
- def _reduce_471(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby18.y', 1903)
- def _reduce_472(val, _values, result)
- result = @builder.pair(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-# reduce 473 omitted
-
-# reduce 474 omitted
-
-# reduce 475 omitted
-
-# reduce 476 omitted
-
-# reduce 477 omitted
-
-# reduce 478 omitted
-
-# reduce 479 omitted
-
-# reduce 480 omitted
-
-# reduce 481 omitted
-
-# reduce 482 omitted
-
-# reduce 483 omitted
-
-# reduce 484 omitted
-
-# reduce 485 omitted
-
-# reduce 486 omitted
-
-# reduce 487 omitted
-
-# reduce 488 omitted
-
-# reduce 489 omitted
-
-# reduce 490 omitted
-
-# reduce 491 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1916)
- def _reduce_492(val, _values, result)
- yyerrok
-
- result
- end
-.,.,
-
-# reduce 493 omitted
-
-# reduce 494 omitted
-
-# reduce 495 omitted
-
-module_eval(<<'.,.,', 'ruby18.y', 1925)
- def _reduce_496(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Ruby18
-end # module Parser
diff --git a/test/racc/regress/ruby22 b/test/racc/regress/ruby22
deleted file mode 100644
index 101119a232..0000000000
--- a/test/racc/regress/ruby22
+++ /dev/null
@@ -1,7460 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-
-
-require 'parser'
-
-Parser.check_for_encoding_support
-
-module Parser
- class Ruby22 < Racc::Parser
-
-module_eval(<<'...end ruby22.y/module_eval...', 'ruby22.y', 2374)
-
- def version
- 22
- end
-
- def default_encoding
- Encoding::UTF_8
- end
-...end ruby22.y/module_eval...
-##### State transition tables begin ###
-
-clist = [
-'-476,-97,268,214,215,-98,-105,-476,-476,-476,-490,568,-476,-476,-476',
-'610,-476,580,217,612,-288,581,214,215,-476,-491,-476,-476,-476,647,268',
-'268,214,215,-104,589,-476,-476,568,-476,-476,-476,-476,-476,568,568',
-'212,109,568,815,-100,121,-100,-83,-102,-99,214,215,268,218,-288,806',
-'-69,574,646,-102,-97,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476',
-'-476,-476,-476,-476,-98,609,-476,-476,-476,611,-476,-476,715,267,-476',
-'206,-96,-476,-476,263,-476,218,-476,207,-476,-105,-476,-476,-99,-476',
-'-476,-476,-476,-476,-88,-476,-479,-476,-89,-96,218,267,267,-479,-479',
-'-479,263,-101,-479,-479,-479,-476,-479,113,-476,-476,-476,-476,112,-476',
-'-479,-476,-479,-479,-479,588,-476,-95,715,267,-101,715,-479,-479,218',
-'-479,-479,-479,-479,-479,113,208,814,-91,-91,112,113,113,113,842,113',
-'112,112,112,-100,112,-102,-99,-93,-100,213,-102,-99,-479,-479,-479,-479',
-'-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,113,257,-479,-479',
-'-479,112,-479,-479,-574,-93,-479,316,-103,-479,-479,317,-479,597,-479',
-'-574,-479,-90,-479,-479,444,-479,-479,-479,-479,-479,-291,-479,218,-479',
-'-91,214,215,-291,-291,-291,647,260,527,-291,-291,526,-291,-479,261,-101',
-'-479,-479,-479,-479,-101,-479,113,-479,-571,113,113,112,-479,-92,112',
-'112,-291,-291,386,-291,-291,-291,-291,-291,-91,646,-93,-91,-575,396',
-'-105,399,599,598,398,397,-91,548,597,545,544,543,747,546,443,91,92,-291',
-'-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-476',
-'-572,-291,-291,-291,-93,630,-476,-93,-490,-291,-94,-571,-291,91,92,-476',
-'-93,-291,113,-291,515,-291,-291,112,-291,-291,-291,-291,-291,597,-291',
-'-578,-291,445,-571,-491,-476,446,-578,-578,-578,599,598,-476,-578,-578',
-'-291,-578,647,-291,-291,749,-94,-479,-291,-88,-578,217,833,-578,-479',
-'-103,93,94,-97,-572,477,-578,-578,-479,-578,-578,-578,-578,-578,548',
-'-104,545,544,543,515,546,-89,646,527,647,597,529,-572,597,486,-98,93',
-'94,599,598,595,-412,-578,-578,-578,-578,-578,-578,-578,-578,-578,-578',
-'-578,-578,-578,-578,-578,625,-578,-578,-578,597,631,-578,646,113,-578',
-'626,-574,-578,112,-95,-578,597,-578,770,-578,-578,-578,-578,-104,-578',
-'-578,-578,-578,-578,488,-578,-578,-578,597,-578,490,597,-412,599,598',
-'595,599,598,600,-412,957,-578,-91,756,-578,-578,-578,-92,-412,-578,662',
-'-100,-93,-578,-578,-578,-101,498,-578,-578,-578,-102,-578,-479,599,598',
-'602,-412,-578,-100,-479,-578,-578,-578,-578,-578,599,598,604,771,-574',
-'-68,-578,-578,-578,-578,-578,-578,-578,-578,-90,218,860,599,598,608',
-'599,598,613,-99,214,215,-486,-578,548,-485,545,544,543,-486,546,501',
-'-485,-578,-578,-578,-578,-578,-578,-578,-578,-578,-578,-578,-578,-578',
-'-578,553,502,-578,-578,-578,-487,772,-578,-102,509,-578,556,-487,-578',
-'-578,701,-578,272,-578,218,-578,-99,-578,-578,704,-578,-578,-578,-578',
-'-578,553,-578,-578,-578,527,-484,79,529,113,-481,263,556,-484,112,564',
-'563,-481,-578,80,557,-578,-578,-578,-578,238,-578,-291,-578,81,-482',
-'210,512,-101,-291,-291,-291,-482,211,-291,-291,-291,-334,-291,440,564',
-'563,209,516,-334,557,441,-483,-291,-291,-291,238,235,-334,-483,442,237',
-'236,-291,-291,260,-291,-291,-291,-291,-291,548,261,545,544,543,-488',
-'546,548,218,545,544,543,-488,546,548,530,545,544,543,527,546,-488,529',
-'-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291',
-'238,701,-291,-291,-291,-489,773,-291,701,238,-291,531,-489,-291,-291',
-'701,-291,704,-291,490,-291,-489,-291,-291,904,-291,-291,-291,-291,-291',
-'113,-291,235,-291,574,112,237,236,238,233,234,235,214,215,388,237,236',
-'-291,233,234,-291,-291,-291,-291,113,-291,113,-291,578,112,579,112,-103',
-'5,69,70,71,9,57,614,235,507,63,64,237,236,617,67,508,65,66,68,30,31',
-'72,73,218,506,-263,981,619,29,28,27,101,100,102,103,741,742,19,218,743',
-'107,108,635,8,45,7,10,105,104,106,95,56,97,96,98,623,99,107,108,624',
-'91,92,263,42,43,41,238,242,247,248,249,244,246,254,255,250,251,-281',
-'231,232,517,634,252,253,-281,40,637,518,33,564,563,58,59,-281,238,60',
-'442,35,235,238,241,44,237,236,238,233,234,245,243,239,20,240,837,806',
-'238,89,79,82,83,576,84,86,85,87,837,806,577,218,80,88,218,256,218,-240',
-'-83,575,62,666,81,93,94,290,69,70,71,9,57,218,520,584,63,64,677,682',
-'683,67,583,65,66,68,30,31,72,73,685,585,689,692,693,29,28,27,101,100',
-'102,103,695,697,19,699,707,708,709,620,8,45,292,10,105,104,106,95,56',
-'97,96,98,711,99,107,108,574,91,92,718,42,43,41,238,242,247,248,249,244',
-'246,254,255,250,251,-292,231,232,-292,736,252,253,-292,40,746,-292,294',
-'750,751,58,59,-292,-264,60,-292,35,235,757,241,44,237,236,477,233,234',
-'245,243,239,20,240,477,218,257,89,79,82,83,584,84,86,85,87,488,490,939',
-'799,80,88,677,256,218,263,263,585,62,677,81,93,94,5,69,70,71,9,57,238',
-'806,584,63,64,218,218,831,67,939,65,66,68,30,31,72,73,218,585,806,841',
-'218,29,28,27,101,100,102,103,218,850,19,-265,859,861,862,635,8,45,7',
-'10,105,104,106,95,56,97,96,98,692,99,107,108,865,91,92,867,42,43,41',
-'238,242,247,248,249,244,246,254,255,250,251,-291,231,232,-488,869,252',
-'253,-291,40,871,-488,33,-575,218,58,59,-291,873,60,-488,35,235,874,241',
-'44,237,236,877,233,234,245,243,239,20,240,879,880,677,89,79,82,83,-489',
-'84,86,85,87,882,-263,-489,886,80,88,888,256,891,692,893,-489,62,895',
-'81,93,94,290,69,70,71,9,57,897,899,986,63,64,899,218,905,67,987,65,66',
-'68,30,31,72,73,907,985,909,915,918,29,28,27,101,100,102,103,218,936',
-'19,545,544,543,922,546,8,45,292,10,105,104,106,95,56,97,96,98,-266,99',
-'107,108,933,91,92,940,42,43,41,238,242,247,248,249,244,246,254,255,250',
-'251,-291,231,232,-281,941,252,253,-291,40,950,-281,33,-575,951,58,59',
-'-291,959,60,-281,35,235,961,241,44,237,236,962,233,234,245,243,239,20',
-'240,967,736,692,89,79,82,83,-292,84,86,85,87,971,973,-292,975,80,88',
-'977,256,977,988,989,-292,62,899,81,93,94,290,69,70,71,9,57,899,899,994',
-'63,64,959,-575,-574,67,682,65,66,68,30,31,72,73,116,117,118,119,120',
-'29,28,27,101,100,102,103,959,936,19,545,544,543,1013,546,8,45,292,10',
-'105,104,106,95,56,97,96,98,1014,99,107,108,1015,91,92,977,42,43,41,238',
-'242,247,248,249,244,246,254,255,250,251,-291,231,232,977,977,252,253',
-'-291,40,218,899,33,-575,959,58,59,-291,977,60,,35,235,,241,44,237,236',
-',233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,256',
-',,,,62,,81,93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72',
-'73,116,117,118,119,120,29,28,27,101,100,102,103,,,19,116,117,118,119',
-'120,8,45,292,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,238,242,247,248,249,244,246,254,255,250,251,,231,232,,,252,253,,40',
-',,294,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,245,243,239,20,240',
-',,,89,79,82,83,,84,86,85,87,,,,,80,88,,256,,,,,62,,81,93,94,290,69,70',
-'71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102',
-'103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97,96,98,,99,107,108,,91',
-'92,,42,43,41,238,242,247,248,249,244,246,254,255,250,251,,231,232,,',
-'252,253,,40,,,294,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,245',
-'243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,256,,,,,62,,81',
-'93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29',
-'28,27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97,96',
-'98,,99,107,108,,91,92,,42,43,41,238,242,247,248,249,244,246,254,255',
-'250,251,,231,232,,,252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237',
-'236,,233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
-'218,256,,,,,62,,81,93,94,5,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30',
-'31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,7,10,105,104,106',
-'95,56,97,96,98,,99,107,108,,91,92,,42,43,41,238,242,247,248,249,244',
-'246,254,255,250,251,,231,232,,,252,253,,40,,,33,,,58,59,,,60,,35,235',
-',241,44,237,236,,233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85',
-'87,,,,,80,88,,256,,,,,62,,81,93,94,290,69,70,71,9,57,,,,63,64,,,,67',
-',65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,292',
-'10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,238,242,247',
-'248,249,244,246,254,255,250,251,,231,232,,,252,253,,40,,,33,,,58,59',
-',,60,,35,235,,241,44,237,236,,233,234,245,243,239,20,240,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,256,,,,,62,,81,93,94,290,69,70,71,9,57,,',
-',63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19',
-',,,,,8,45,292,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,238,242,247,248,249,244,246,254,255,250,251,,231,232,,,252,253,,40',
-',,33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,245,243,239,20,240',
-',,,89,79,82,83,,84,86,85,87,,,,,80,88,,256,,,,,62,,81,93,94,290,69,70',
-'71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102',
-'103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97,96,98,,99,107,108,,91',
-'92,,42,43,41,238,242,247,248,249,244,246,254,255,250,251,,231,232,,',
-'252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,245,243',
-'239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,256,,,,,62,,81,93',
-'94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28',
-'27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97,96,98',
-',99,107,108,,91,92,,42,43,41,238,242,247,248,249,244,246,254,255,250',
-'251,,231,232,,,252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237,236',
-',233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,256',
-',,,,62,,81,93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72',
-'73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,42,43,41,238,242,247,248,249,244,246',
-'254,255,250,251,,231,232,,,252,253,,40,,,33,,,58,59,,,60,,35,235,,241',
-'44,237,236,,233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85,87,',
-',,,80,88,,256,,,,,62,,81,93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65',
-'66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,292,10',
-'105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,238,242,247',
-'248,249,244,246,254,255,250,251,,231,232,,,252,253,,40,,,33,,,58,59',
-',,60,,35,235,,241,44,237,236,,233,234,245,243,239,20,240,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,256,,,,,62,,81,93,94,290,69,70,71,9,57,,',
-',63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19',
-',,,,,8,45,292,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,238,242,247,248,249,244,246,254,255,250,251,,231,232,,,252,253,,40',
-',,33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,245,243,239,20,240',
-',,,89,79,82,83,,84,86,85,87,,,,,80,88,,256,,,,,62,,81,93,94,290,69,70',
-'71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102',
-'103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97,96,98,,99,107,108,,91',
-'92,,42,43,41,238,242,247,248,249,244,246,254,255,250,251,,231,232,,',
-'252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,245,243',
-'239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,256,,,,,62,,81,93',
-'94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28',
-'27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97,96,98',
-',99,107,108,,91,92,,42,43,41,238,242,247,248,249,244,246,254,255,250',
-'251,,-597,-597,,,252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237,236',
-',233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,',
-',,,,62,,81,93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72',
-'73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,42,43,41,238,242,247,248,249,244,246',
-'254,255,250,251,,-597,-597,,,252,253,,40,,,33,,,58,59,,,60,,35,235,',
-'241,44,237,236,,233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85',
-'87,,,,,80,88,,,,,,,62,,81,93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65',
-'66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,548,19,545,544,543',
-',546,8,45,292,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,238,-597,-597,-597,-597,244,246,,701,-597,-597,,,,,,252,253,,40,',
-',33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,245,243,239,20,240',
-',,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,290,69,70,71',
-'9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102',
-'103,,548,19,545,544,543,,546,8,45,292,10,105,104,106,95,56,97,96,98',
-',99,107,108,,91,92,,42,43,41,238,,,548,,545,544,543,701,546,,,,,,,252',
-'253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,701,,239',
-'20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,290',
-'69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101',
-'100,102,103,,548,19,545,544,543,,546,8,45,292,10,105,104,106,95,56,97',
-'96,98,,99,107,108,,91,92,,42,43,41,238,,,,,,,,701,,,,,,,,252,253,,40',
-',,33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,,,239,20,240,,,,89',
-'79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,290,69,70,71,9,57',
-',,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,',
-',19,,,,,,8,45,292,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,',
-'42,43,41,238,,,,,,,,,,,,,,,,252,253,,40,,,33,,,58,59,,,60,,35,235,,241',
-'44,237,236,,233,234,,,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80',
-'88,,,,,,,62,,81,93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30',
-'31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104',
-'106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,238,,,,,,,,,,,,,,,,252',
-'253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,,,239,20',
-'240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,290,69',
-'70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100',
-'102,103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97,96,98,,99,107,108',
-',91,92,,42,43,41,238,-597,-597,-597,-597,244,246,,,-597,-597,,,,,,252',
-'253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,245,243,239',
-'20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,290',
-'69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101',
-'100,102,103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97,96,98,,99,107',
-'108,,91,92,,42,43,41,238,-597,-597,-597,-597,244,246,,,-597,-597,,,',
-',,252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,245',
-'243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93',
-'94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28',
-'27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97,96,98',
-',99,107,108,,91,92,,42,43,41,238,-597,-597,-597,-597,244,246,,,-597',
-'-597,,,,,,252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237,236,,233',
-'234,245,243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62',
-',81,93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,',
-',,29,28,27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97',
-'96,98,,99,107,108,,91,92,,42,43,41,238,-597,-597,-597,-597,244,246,',
-',-597,-597,,,,,,252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237,236',
-',233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,',
-',,,,62,,81,93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72',
-'73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,42,43,41,238,-597,-597,-597,-597,244',
-'246,,,-597,-597,,,,,,252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237',
-'236,,233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
-',,,,,,62,,81,93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31',
-'72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106',
-'95,56,97,96,98,,99,107,108,,91,92,,42,43,41,238,242,247,248,249,244',
-'246,,,250,251,,,,,,252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44,237',
-'236,,233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,,80,88',
-',,,,,,62,,81,93,94,290,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31',
-'72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106',
-'95,56,97,96,98,,99,107,108,,91,92,,42,43,41,238,242,247,248,249,244',
-'246,254,,250,251,,,,,,252,253,,40,,,33,,,58,59,,,60,,35,235,,241,44',
-'237,236,,233,234,245,243,239,20,240,,,,89,79,82,83,,84,86,85,87,,,,',
-'80,88,,,,,,,62,,81,93,94,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31',
-'72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,7,10,105,104,106',
-'95,56,97,96,98,,99,107,108,,91,92,,42,43,41,238,,,,,,,,,,,,,,,,252,253',
-',40,,,33,,,58,59,,,60,,35,235,,241,44,237,236,,233,234,,,,20,,,,,89',
-'79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,',
-'67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,230,,,,,,,45',
-',,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,238,,,,,,',
-',,,,,,,,,252,253,,223,,,229,,,58,59,,,60,,,235,,241,44,237,236,,233',
-'234,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57',
-'81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102',
-'103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108,,91,92',
-',42,43,41,238,,,,,,,,,,,,,,,,252,253,,223,,,229,,,58,59,,,60,,281,235',
-'279,,44,237,236,285,233,234,,,,228,,,,,89,282,82,83,,84,86,85,87,,,',
-',80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73',
-',,,,,29,28,27,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97',
-'96,98,284,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,',
-',58,59,,,60,,281,,279,,44,,,285,,,,,,228,,,,,89,282,82,83,,84,86,85',
-'87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31',
-'72,73,,,,,,29,28,27,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95',
-'56,97,96,98,284,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,',
-',229,,,58,59,,,60,,281,,279,,44,,,285,,,,,,228,,,,,89,282,82,83,,84',
-'86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68',
-'309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,307,,,105',
-'104,106,95,56,97,96,98,,99,107,108,,91,92,,,,313,,,,,,,,,,,,,,,,,,,',
-'303,,,299,,,58,59,,,60,,298,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87',
-',,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72',
-'73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,307,,,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,,,313,,,,,,,,,,,,,,,,,,,,303,,,229,',
-',58,59,,,60,,548,,545,544,543,553,546,,,,,,,,,,556,,89,79,82,83,,84',
-'86,85,87,,,,,80,88,,,,315,,551,62,,81,93,94,69,70,71,,57,564,563,,63',
-'64,557,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103',
-',,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,',
-',89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230',
-',,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,',
-',,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89',
-'79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,',
-'67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,',
-',,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,',
-',,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79',
-'82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67',
-',65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,',
-',45,,,105,104,106,95,56,97,96,98,284,99,107,108,,91,92,,42,43,41,,,',
-',,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,281,,,,44,,,285,,,,,,228,,,',
-',89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230',
-',,,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108,,91,92,,42,43,41',
-',,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,285,,,,,,228,,,',
-',89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,',
-',45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,',
-',,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65',
-'66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105',
-'104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,',
-',,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86',
-'85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30',
-'31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229',
-',,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80',
-'88,113,,,,,112,62,,81,93,94,69,70,71,,57,,,,63,64,,,,67,,65,66,68,309',
-'310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,307,,,105,104',
-'106,95,56,97,96,98,,99,107,108,,91,92,,,,313,,,,,,,,,,,,,,,,,,,,348',
-',,33,,,58,59,,,60,,35,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,',
-'80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73',
-',,,,,305,306,312,101,100,102,103,,,230,,,,,,,307,,,105,104,106,353,56',
-'97,96,354,,99,107,108,,91,92,,,,313,,,,,,,,,,,,,,,,,360,,,355,,,229',
-',,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,',
-',,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305',
-'306,312,101,100,102,103,,,230,,,,,,,307,,,105,104,106,353,56,97,96,354',
-',99,107,108,,91,92,,,,313,,,,,,,,,,,,,,,,,,,,355,,,229,,,58,59,,,60',
-',548,,545,544,543,553,546,,,,,,,,,,556,,89,79,82,83,,84,86,85,87,,,',
-',80,88,,,,,,551,62,,81,93,94,69,70,71,9,57,564,563,,63,64,557,,,67,',
-'65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,7',
-'10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,',
-',,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79,82,83',
-',84,86,85,87,,,,,80,88,,,,,,388,62,,81,93,94,69,70,71,,57,,,,63,64,',
-',,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,',
-'45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,',
-',,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83',
-',84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66',
-'68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104',
-'106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223',
-',,229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,',
-',,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73',
-',,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96',
-'98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59',
-',,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69',
-'70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
-'101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108',
-',91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,',
-',,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94',
-'69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101',
-'100,102,103,,,19,,,,,,8,45,,10,105,104,106,95,56,97,96,98,,99,107,108',
-',91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,',
-',,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81',
-'93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103',
-',,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,404,,,,44,,,,,,,,,228',
-',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63',
-'64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,230,',
-',,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,',
-',,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79',
-'82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67',
-',65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,230,,,,,,,45,',
-',105,104,106,95,56,97,96,98,284,99,107,108,,91,92,,42,43,41,,,,,,,,',
-',,,,,,,,,,,223,,,229,,,58,59,,,60,,281,,279,,44,,,285,,,,,,228,,,,,89',
-'282,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,',
-',67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,230,,,,,,',
-'45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,',
-',,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65',
-'66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,230,,,,,,,45,,,105',
-'104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,',
-',,,223,,,229,,,58,59,,,60,,404,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84',
-'86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68',
-'30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106',
-'95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,',
-',229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,',
-',,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73',
-',,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96',
-'98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59',
-',,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69',
-'70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
-'101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108',
-',91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,',
-',,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81',
-'93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103',
-',,19,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,',
-'89,79,82,83,,84,86,85,87,,,,,80,88,218,,,69,70,71,62,57,81,93,94,63',
-'64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,',
-'230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,',
-',89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230',
-',,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,',
-',,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89',
-'79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,',
-'67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,',
-',,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,',
-',,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79',
-'82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67',
-',65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,',
-',45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,',
-',,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65',
-'66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45',
-',,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,',
-',,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83',
-',84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66',
-'68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105',
-'104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,',
-',,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86',
-'85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309',
-'310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104',
-'106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223',
-',,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87',
-',,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72',
-'73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229',
-',,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80',
-'88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,',
-',,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97',
-'96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58',
-'59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,',
-',,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305',
-'306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98',
-',99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,',
-'60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69',
-'70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306',
-'312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99',
-'107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,',
-',,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71',
-'62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312',
-'101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107',
-'108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,',
-'44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62',
-'57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101',
-'100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108',
-',91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,',
-',,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57',
-'81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100',
-'102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91',
-'92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,',
-',,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93',
-'94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102',
-'103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,',
-'42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228',
-',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63',
-'64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,',
-'230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,',
-',89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230',
-',,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,',
-',,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89',
-'79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,',
-'67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,',
-',,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,',
-',,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79',
-'82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67',
-',65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,',
-',45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,',
-',,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65',
-'66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45',
-',,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,',
-',,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83',
-',84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66',
-'68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105',
-'104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,',
-',,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86',
-'85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309',
-'310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104',
-'106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223',
-',,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87',
-',,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72',
-'73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229',
-',,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80',
-'88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,',
-',,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97',
-'96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58',
-'59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,',
-',,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305',
-'306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98',
-',99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,',
-'60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69',
-'70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306',
-'312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99',
-'107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,',
-',,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71',
-'62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100',
-'102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108,',
-'91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,281,,279',
-',44,,,285,,,,,,228,,,,,89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70',
-'71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101',
-'100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108',
-',91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,281,,279',
-',44,,,285,,,,,,228,,,,,89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70',
-'71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101',
-'100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108',
-',91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,281,,279',
-',44,,,285,,,,,,228,,,,,89,282,82,83,,84,86,85,87,,,,,80,88,218,,,69',
-'70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306',
-'312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99',
-'107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,',
-',,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71',
-'62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312',
-'101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107',
-'108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,',
-'44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62',
-'57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101',
-'100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108',
-',91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,',
-',,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57',
-'81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100',
-'102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91',
-'92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,',
-',,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,69',
-'70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100',
-'102,103,,,19,,,,,,8,45,,10,105,104,106,95,56,97,96,98,,99,107,108,,91',
-'92,,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,',
-',,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93',
-'94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102',
-'103,,,230,,,,,,,307,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92',
-',,,313,,,,,,,,,,,,,,,,,,,,303,,,229,,,58,59,,,60,,548,,545,544,543,553',
-'546,,,,,,,,,,556,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,504,,551,62',
-',81,93,94,69,70,71,,57,564,563,,63,64,557,,,67,,65,66,68,309,310,72',
-'73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,307,,,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,,,313,,,,,,,,,,,,,,,,,,,,303,,,299,',
-',58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,',
-',69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305',
-'306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98',
-',99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,520,,58,59',
-',,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69',
-'70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
-'101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108',
-',91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,',
-',,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81',
-'93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103',
-',,19,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,',
-'89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,',
-',45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,',
-',,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65',
-'66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105',
-'104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,',
-',,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86',
-'85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30',
-'31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229',
-',,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80',
-'88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,',
-',,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97',
-'96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58',
-'59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,',
-',,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29',
-'28,27,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,284',
-'99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60',
-',281,,279,,44,,,285,,,,,,228,,,,,89,282,82,83,,84,86,85,87,,,,,80,88',
-',,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,',
-'305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96',
-'98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59',
-',,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69',
-'70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306',
-'312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99',
-'107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,',
-',,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71',
-'62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312',
-'101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107',
-'108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,',
-'44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62',
-'57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101',
-'100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108',
-',91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,',
-',,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57',
-'81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100',
-'102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108,',
-'91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,659,,279',
-',44,,,285,,,,,,228,,,,,89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70',
-'71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312',
-'101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,284,99,107',
-'108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,279',
-',44,,,285,,,,,,228,,,,,89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70',
-'71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312',
-'101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107',
-'108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,',
-'44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93',
-'94,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27',
-'101,100,102,103,,,19,,,,,,8,45,292,10,105,104,106,95,56,97,96,98,,99',
-'107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35',
-',,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,388,62',
-',81,93,94,69,70,71,,57,,,,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305',
-'306,312,101,100,102,103,,,230,,,,,,,307,,,105,104,106,95,56,97,96,98',
-',99,107,108,,91,92,,,,313,,,,,,,,,,,,,,,,,,,,303,,,299,,,58,59,,,60',
-',,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62',
-'57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100',
-'102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108,',
-'91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,281,,279',
-',44,,,285,,,,,,228,,,,,89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70',
-'71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312',
-'101,100,102,103,,,230,,,,,,,307,,,105,104,106,95,56,97,96,98,,99,107',
-'108,,91,92,,,,313,,,,,,,,,,,,,,,,,,,,303,,,299,,,58,59,,,60,,,,,,,,',
-',,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93',
-'94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102',
-'103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,',
-'42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228',
-',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63',
-'64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,',
-'230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,',
-',89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,',
-',45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,',
-',,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65',
-'66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45',
-',,105,104,106,95,56,97,96,98,284,99,107,108,,91,92,,42,43,41,,,,,,,',
-',,,,,,,,,,,,223,,,229,,,58,59,,,60,,659,,,,44,,,285,,,,,,228,,,,,89',
-'282,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,',
-',67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,',
-',,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108,,91,92,,42,43,41',
-',,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,285,,,,,,228,,,',
-',89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230',
-',,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,',
-',,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89',
-'79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,',
-'67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,',
-',,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,',
-',,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,281,,,,44,,,,,,,,,228,,,,,89',
-'79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,',
-'67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,230,,,,,,,45',
-',,105,104,106,95,56,97,96,98,284,99,107,108,,91,92,,42,43,41,,,,,,,',
-',,,,,,,,,,,,223,,,229,,,58,59,,,60,,281,,279,,44,,,285,,,,,,228,,,,',
-'89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,230,,,,',
-',,45,,,105,104,106,95,56,97,96,98,284,99,107,108,,91,92,,42,43,41,,',
-',,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,281,,279,,44,,,285,,,,,,228',
-',,,,89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63',
-'64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,',
-'230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,754,,,,44,,,,,,,,,228',
-',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63',
-'64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,',
-'230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,',
-',89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230',
-',,,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108,,91,92,,42,43,41',
-',,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,659,,279,,44,,,285,,,,,,228',
-',,,,89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63',
-'64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,',
-'230,,,,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108,,91,92,,42',
-'43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,279,,44,,,285,,,',
-',,228,,,,,89,282,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93',
-'94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,',
-',230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,',
-',89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,230,,,,',
-',,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,',
-',,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65',
-'66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,230,,,,,,,45,,,105',
-'104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,',
-',,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86',
-'85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30',
-'31,72,73,,,,,,29,28,27,101,100,102,103,,,230,,,,,,,45,,,105,104,106',
-'95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,',
-',229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,',
-',,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73',
-',,,,,29,28,27,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97',
-'96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58',
-'59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,',
-',,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305',
-'306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98',
-',99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,',
-'60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69',
-'70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306',
-'312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99',
-'107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,',
-',,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71',
-'62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312',
-'101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107',
-'108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,',
-'44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62',
-'57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101',
-'100,102,103,,,230,,,,,,,307,,,105,104,106,95,56,97,96,98,,99,107,108',
-',91,92,,,,313,,,,,,,,,,,,,,,,,,,,303,,,299,,,58,59,,,60,,,,,,,,,,,,',
-',,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94',
-'63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103',
-',,230,,,,,,,307,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,,,313',
-',,,,,,,,,,,,,,,,,,,303,,,299,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65',
-'66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45',
-',,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,',
-',,,,,,,,,223,,,229,,,58,59,,,60,,404,,,,44,,,,,,,,,228,,,,,89,79,82',
-'83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65',
-'66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45',
-',,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,',
-',,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83',
-',84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66',
-'68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104',
-'106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223',
-',,229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,',
-',,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73',
-',,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96',
-'98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59',
-',,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69',
-'70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306',
-'312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99',
-'107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,',
-',,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71',
-'62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100',
-'102,103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91',
-'92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,',
-',,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93',
-'94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102',
-'103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,',
-'42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228',
-',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63',
-'64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,',
-'230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43',
-'41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,',
-',89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64',
-',,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230',
-',,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,',
-',,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89',
-'79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,',
-'67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,',
-',,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,',
-',,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79',
-'82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67',
-',65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102,103,,,230,,,,,',
-',307,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,,,313,,,,,,,,',
-',,,,,,,,,,,876,,,229,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84',
-'86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68',
-'30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106',
-'95,56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,',
-',229,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,',
-',,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72',
-'73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229',
-',,58,59,,,60,,659,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,',
-',80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73',
-',,,,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95,56',
-'97,96,98,284,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229',
-',,58,59,,,60,,,,279,,44,,,285,,,,,,228,,,,,89,282,82,83,,84,86,85,87',
-',,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72',
-'73,,,,,,305,306,312,101,100,102,103,,,230,,,,,,,45,,,105,104,106,95',
-'56,97,96,98,,99,107,108,,91,92,,42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229',
-',,58,59,,,60,,,,,,44,,,,,,,,,228,,,,,89,79,82,83,,84,86,85,87,,,,,80',
-'88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,',
-',,,305,306,312,101,100,102,103,,,230,,,,,,,307,,,105,104,106,95,56,97',
-'96,98,,99,107,108,,91,92,,,,313,,,,,,,,,,,,,,,,,,,,876,,,229,,,58,59',
-',,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70',
-'71,62,57,81,93,94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312',
-'101,100,102,103,,,230,,,,,,,307,,,105,104,106,95,56,97,96,98,,99,107',
-'108,,91,92,,,,313,,,,,,,,,,,,,,,,,,,,947,,,229,,,58,59,,,60,,,,,,,,',
-',,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93',
-'94,63,64,,,,67,,65,66,68,309,310,72,73,,,,,,305,306,312,101,100,102',
-'103,,,230,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,',
-'42,43,41,,,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,,,,,44,,,,,,,,,228',
-',,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63',
-'64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,230,',
-',,,,,45,,,105,104,106,95,56,97,96,98,284,99,107,108,,91,92,,42,43,41',
-',,,,,,,,,,,,,,,,,,,223,,,229,,,58,59,,,60,,281,,279,,44,,,285,,,,,,228',
-',,,,89,282,82,83,,84,86,85,87,,,,,80,88,,,,,-282,,62,,81,93,94,-282',
-'-282,-282,,,-282,-282,-282,,-282,,,,,,,,,,-282,-282,-282,,,,,,,,-282',
-'-282,,-282,-282,-282,-282,-282,,,,,,,,,,,,,,,,,,,,,,,,-282,-282,-282',
-'-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,,,-282,-282,-282',
-',,-282,,,-282,,,-282,-282,,-282,,-282,,-282,,-282,-282,,-282,-282,-282',
-'-282,-282,,-282,,-282,,,,,,,,,,,,,,-282,,,-282,-282,-282,-282,-579,-282',
-',-282,,,,-579,-579,-579,,,-579,-579,-579,,-579,,,,,,,,,-579,-579,-579',
-'-579,,,,,,,,-579,-579,,-579,-579,-579,-579,-579,,,,,,,,,,,,,,,,,,,,',
-',,,-579,-579,-579,-579,-579,-579,-579,-579,-579,-579,-579,-579,-579',
-'-579,,,-579,-579,-579,,,-579,,,-579,,,-579,-579,,-579,,-579,,-579,,-579',
-'-579,,-579,-579,-579,-579,-579,,-579,-579,-579,,,,,,,,,,,,,,-579,,,-579',
-'-579,-579,-579,-580,-579,,-579,,,,-580,-580,-580,,,-580,-580,-580,,-580',
-',,,,,,,,-580,-580,-580,-580,,,,,,,,-580,-580,,-580,-580,-580,-580,-580',
-',,,,,,,,,,,,,,,,,,,,,,,-580,-580,-580,-580,-580,-580,-580,-580,-580',
-'-580,-580,-580,-580,-580,,,-580,-580,-580,,,-580,,,-580,,,-580,-580',
-',-580,,-580,,-580,,-580,-580,,-580,-580,-580,-580,-580,,-580,-580,-580',
-',,,,,,,,,,,,,-580,,,-580,-580,-580,-580,-411,-580,,-580,,,,-411,-411',
-'-411,,,-411,-411,-411,,-411,,,,,,,,,-411,-411,-411,,,,,,,,,-411,-411',
-',-411,-411,-411,-411,-411,,,,,,,,,,,,,,,,,,,,,,,,-411,-411,-411,-411',
-'-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,,,-411,-411,-411,',
-',-411,,263,-411,,,-411,-411,,-411,,-411,,-411,,-411,-411,,-411,-411',
-'-411,-411,-411,-298,-411,-411,-411,,,,-298,-298,-298,,,-298,-298,-298',
-',-298,-411,,,-411,-411,,-411,,-411,-298,-298,,,,,,,,,-298,-298,,-298',
-'-298,-298,-298,-298,,,,,,,,,,,,,,,,,,,,,,,,-298,-298,-298,-298,-298',
-'-298,-298,-298,-298,-298,-298,-298,-298,-298,,,-298,-298,-298,,,-298',
-',272,-298,,,-298,-298,,-298,,-298,,-298,,-298,-298,,-298,-298,-298,-298',
-'-298,,-298,-246,-298,,,,,,-246,-246,-246,,,-246,-246,-246,-298,-246',
-',-298,-298,,-298,,-298,,-246,-246,-246,,,,,,,,,-246,-246,,-246,-246',
-'-246,-246,-246,,,,,,,,,,,,,,,,,,,,,,,,-246,-246,-246,-246,-246,-246',
-'-246,-246,-246,-246,-246,-246,-246,-246,,,-246,-246,-246,,,-246,,263',
-'-246,,,-246,-246,,-246,,-246,,-246,,-246,-246,,-246,-246,-246,-246,-246',
-',-246,-246,-246,,,,,,,,,,,,,,-246,,-246,-246,-246,,-246,,-246,-246,-246',
-'-246,,,-246,-246,-246,548,-246,545,544,543,553,546,,,,-246,-246,,,,',
-'556,,,,,-246,-246,,-246,-246,-246,-246,-246,,,,,,,,,,551,548,,545,544',
-'543,553,546,,561,560,564,563,,,,557,556,548,,545,544,543,553,546,-246',
-',,,,,,-246,,556,,,263,-246,551,534,,218,,,,,,561,560,564,563,,,,557',
-'551,,,,-246,-246,,,,561,560,564,563,,,,557,,,-246,,,-246,,,,,-246,173',
-'184,174,197,170,190,180,179,200,201,195,178,177,172,198,202,203,182',
-'171,185,189,191,183,176,,,,192,199,194,193,186,196,181,169,188,187,',
-',,,,168,175,166,167,163,164,165,124,126,123,,125,,,,,,,,,157,158,,154',
-'136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,,,,,,,,,151',
-'150,,135,156,153,152,161,148,149,143,141,133,155,134,,,162,89,,,,,,',
-',,,,,,,88,173,184,174,197,170,190,180,179,200,201,195,178,177,172,198',
-'202,203,182,171,185,189,191,183,176,,,,192,199,194,193,186,196,181,169',
-'188,187,,,,,,168,175,166,167,163,164,165,124,126,,,125,,,,,,,,,157,158',
-',154,136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,,,,,',
-',,,151,150,,135,156,153,152,161,148,149,143,141,133,155,134,,,162,89',
-',,,,,,,,,,,,,88,173,184,174,197,170,190,180,179,200,201,195,178,177',
-'172,198,202,203,182,171,185,189,191,183,176,,,,192,199,194,193,186,196',
-'181,169,188,187,,,,,,168,175,166,167,163,164,165,124,126,,,125,,,,,',
-',,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146,147',
-',,,,,,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155,134',
-',,162,89,,,,,,,,,,,,,,88,173,184,174,197,170,190,180,179,200,201,195',
-'178,177,172,198,202,203,182,171,185,189,191,183,176,,,,192,199,194,193',
-'186,196,181,169,188,187,,,,,,168,175,166,167,163,164,165,124,126,,,125',
-',,,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146',
-'147,,,,,,,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155',
-'134,,,162,89,,,,,,,,,,,,,,88,173,184,174,197,170,190,180,179,200,201',
-'195,178,177,172,198,202,203,182,171,185,189,191,183,176,,,,192,199,194',
-'371,370,372,369,169,188,187,,,,,,168,175,166,167,366,367,368,364,126',
-'97,96,365,,99,,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,',
-',,159,160,146,147,,,,,,376,,,,,,,,151,150,,135,156,153,152,161,148,149',
-'143,141,133,155,134,,,162,173,184,174,197,170,190,180,179,200,201,195',
-'178,177,172,198,202,203,182,171,185,189,191,183,176,,,,192,199,194,193',
-'186,196,181,169,188,187,,,,,,168,175,166,167,163,164,165,124,126,,,125',
-',,,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146',
-'147,,,,,,,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155',
-'134,413,417,162,,414,,,,,,,,,157,158,,154,136,137,138,145,142,144,,',
-'139,140,,,,159,160,146,147,,,,,,263,,,,,,,,151,150,,135,156,153,152',
-'161,148,149,143,141,133,155,134,420,424,162,,419,,,,,,,,,157,158,,154',
-'136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,263,,,,,,',
-',151,150,,135,156,153,152,161,148,149,143,141,133,155,134,475,417,162',
-',476,,,,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160',
-'146,147,,,,,,,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133',
-'155,134,638,417,162,,639,,,,,,,,,157,158,,154,136,137,138,145,142,144',
-',,139,140,,,,159,160,146,147,,,,,,263,,,,,,,,151,150,,135,156,153,152',
-'161,148,149,143,141,133,155,134,640,424,162,,641,,,,,,,,,157,158,,154',
-'136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,263,,,,,,',
-',151,150,,135,156,153,152,161,148,149,143,141,133,155,134,670,417,162',
-',671,,,,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160',
-'146,147,,,,,,263,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141',
-'133,155,134,673,424,162,,674,,,,,,,,,157,158,,154,136,137,138,145,142',
-'144,,,139,140,,,,159,160,146,147,,,,,,263,,,,,,,,151,150,,135,156,153',
-'152,161,148,149,143,141,133,155,134,638,417,162,,639,,,,,,,,,157,158',
-',154,136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,263,',
-',,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155,134,640,424',
-'162,,641,,,,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159',
-'160,146,147,,,,,,263,,,,,,,,151,150,,135,156,153,152,161,148,149,143',
-'141,133,155,134,721,417,162,,722,,,,,,,,,157,158,,154,136,137,138,145',
-'142,144,,,139,140,,,,159,160,146,147,,,,,,263,,,,,,,,151,150,,135,156',
-'153,152,161,148,149,143,141,133,155,134,723,424,162,,724,,,,,,,,,157',
-'158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,263',
-',,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155,134,726',
-'424,162,,727,,,,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140',
-',,,159,160,146,147,,,,,,263,,,,,,,,151,150,,135,156,153,152,161,148',
-'149,143,141,133,155,134,475,417,162,,476,,,,,,,,,157,158,,154,136,137',
-'138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,263,,,,,,,,151,150',
-',135,156,153,152,161,148,149,143,141,133,155,134,983,424,162,,982,,',
-',,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146',
-'147,,,,,,263,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133',
-'155,134,1006,417,162,,1007,,,,,,,,,157,158,,154,136,137,138,145,142',
-'144,,,139,140,,,,159,160,146,147,,,,,,263,,,,,,,,151,150,,135,156,153',
-'152,161,148,149,143,141,133,155,134,1008,424,162,,1009,,,,,,,,,157,158',
-',154,136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,263,',
-',,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155,134,,548',
-'162,545,544,543,553,546,,548,,545,544,543,553,546,,556,,,,,,,548,556',
-'545,544,543,553,546,,,,,,,,,551,556,,,,,,,551,561,560,564,563,,,,557',
-'561,560,564,563,,,551,557,548,,545,544,543,553,546,561,560,564,563,',
-',,557,548,556,545,544,543,553,546,,548,,545,544,543,553,546,,556,,,',
-',,,551,556,548,,545,544,543,553,546,561,560,564,563,,,551,557,,556,',
-',,,551,561,560,564,563,,,,557,561,560,564,563,,,,557,551,548,,545,544',
-'543,553,546,,561,560,564,563,,,,557,556,548,,545,544,543,553,546,,548',
-',545,544,543,553,546,,556,,,,,551,,548,556,545,544,543,553,546,,,564',
-'563,,,,557,551,556,,,,,,,551,,,564,563,,,,557,561,560,564,563,,,551',
-'557,548,,545,544,543,553,546,,,564,563,,,,557,548,556,545,544,543,553',
-'546,,548,,545,544,543,553,546,548,556,545,544,543,553,546,,551,556,',
-',,,,,556,,,564,563,,,551,557,,,,,,,551,,,564,563,,,551,557,,,564,563',
-',,,557,,564,563,,,,557' ]
- racc_action_table = arr = ::Array.new(25292, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-clist = [
-'95,345,61,437,437,346,349,95,95,95,221,338,95,95,95,383,95,355,19,384',
-'58,355,594,594,95,222,95,95,95,473,650,26,17,17,578,359,95,95,339,95',
-'95,95,95,95,719,885,15,1,908,687,721,7,1006,665,1007,1020,680,680,308',
-'19,58,913,665,913,473,722,221,95,95,95,95,95,95,95,95,95,95,95,95,95',
-'95,222,383,95,95,95,384,95,95,570,61,95,10,15,95,95,26,95,437,95,12',
-'95,15,95,95,844,95,95,95,95,95,345,95,98,95,346,349,594,650,26,98,98',
-'98,308,1008,98,98,98,95,98,338,95,95,95,95,338,95,98,95,98,98,98,359',
-'95,578,571,308,723,845,98,98,680,98,98,98,98,98,339,13,687,721,670,339',
-'719,885,359,719,908,719,885,359,1006,908,1007,1020,722,1006,16,1007',
-'1020,98,98,98,98,98,98,98,98,98,98,98,98,98,98,570,22,98,98,98,570,98',
-'98,1008,671,98,37,724,98,98,40,98,605,98,723,98,844,98,98,224,98,98',
-'98,98,98,419,98,45,98,670,590,590,419,419,419,481,24,328,419,419,328',
-'419,98,24,1008,98,98,98,98,1008,98,571,98,353,845,3,571,98,723,845,3',
-'419,419,109,419,419,419,419,419,670,481,671,670,724,123,224,204,605',
-'605,123,123,670,704,607,704,704,704,605,704,223,41,41,419,419,419,419',
-'419,419,419,419,419,419,419,419,419,419,353,354,419,419,419,671,419',
-'353,671,38,419,724,353,419,313,313,353,671,419,590,419,443,419,419,590',
-'419,419,419,419,419,378,419,420,419,225,353,39,364,226,420,420,420,607',
-'607,364,420,420,419,420,482,419,419,607,419,354,419,38,420,230,704,673',
-'354,419,41,41,38,354,262,420,420,354,420,420,420,420,420,904,443,904',
-'904,904,317,904,39,482,329,651,492,329,354,379,276,39,313,313,378,378',
-'378,801,420,420,420,420,420,420,420,420,420,420,420,420,420,420,673',
-'413,420,420,420,380,420,673,651,288,420,414,673,420,288,317,673,381',
-'420,638,420,726,420,420,317,420,420,420,420,420,277,420,420,420,382',
-'673,280,385,801,492,492,492,379,379,379,801,904,420,413,621,420,420',
-'640,420,801,420,492,413,414,640,640,640,420,292,640,640,640,414,640',
-'365,380,380,380,801,726,638,365,640,640,640,640,726,381,381,381,639',
-'726,293,640,640,726,640,640,640,640,640,621,295,774,382,382,382,385',
-'385,385,621,337,337,366,726,551,367,551,551,551,366,551,296,367,640',
-'640,640,640,640,640,640,640,640,640,640,640,640,640,689,297,640,640',
-'640,368,640,640,639,303,640,689,368,640,640,551,640,306,640,307,640',
-'774,640,640,551,640,640,640,640,640,862,640,640,640,332,369,77,332,342',
-'370,312,862,369,342,689,689,370,640,77,689,640,640,640,640,449,640,641',
-'640,77,371,14,314,640,641,641,641,371,14,641,641,641,46,641,220,862',
-'862,14,318,46,862,220,372,641,641,641,321,449,46,372,220,449,449,641',
-'641,374,641,641,641,641,641,833,374,833,833,833,300,833,701,326,701',
-'701,701,300,701,831,330,831,831,831,686,831,300,686,641,641,641,641',
-'641,641,641,641,641,641,641,641,641,641,468,833,641,641,641,301,641',
-'641,701,469,641,331,301,641,641,831,641,701,641,333,641,301,641,641',
-'831,641,641,641,641,641,589,641,468,641,343,589,468,468,450,468,468',
-'469,523,523,344,469,469,641,469,469,641,641,641,641,848,641,853,641',
-'348,848,350,853,641,0,0,0,0,0,0,394,450,302,0,0,450,450,400,0,302,0',
-'0,0,0,0,0,0,934,302,403,934,405,0,0,0,0,0,0,0,598,598,0,409,598,598',
-'598,432,0,0,0,0,0,0,0,0,0,0,0,0,411,0,0,0,412,0,0,421,0,0,0,432,432',
-'432,432,432,432,432,432,432,432,432,304,432,432,319,429,432,432,304',
-'0,439,319,0,692,692,0,0,304,451,0,319,0,432,452,432,0,432,432,453,432',
-'432,432,432,432,0,432,710,710,454,0,0,0,0,347,0,0,0,0,996,996,347,479',
-'0,0,483,432,499,432,500,347,0,503,0,0,0,33,33,33,33,33,33,505,510,357',
-'33,33,513,521,522,33,357,33,33,33,33,33,33,33,524,357,536,537,539,33',
-'33,33,33,33,33,33,540,541,33,550,558,562,565,408,33,33,33,33,33,33,33',
-'33,33,33,33,33,567,33,33,33,572,33,33,573,33,33,33,408,408,408,408,408',
-'408,408,408,408,408,408,509,408,408,581,592,408,408,509,33,602,581,33',
-'610,612,33,33,509,618,33,581,33,408,622,408,33,408,408,627,408,408,408',
-'408,408,33,408,632,642,649,33,33,33,33,875,33,33,33,33,656,658,875,664',
-'33,33,667,408,669,672,675,875,33,676,33,33,33,121,121,121,121,121,121',
-'679,681,938,121,121,684,688,703,121,938,121,121,121,121,121,121,121',
-'705,938,712,717,720,121,121,121,121,121,121,121,729,734,121,753,758',
-'775,776,643,121,121,121,121,121,121,121,121,121,121,121,121,777,121',
-'121,121,779,121,121,780,121,121,121,643,643,643,643,643,643,643,643',
-'643,643,643,674,643,643,944,781,643,643,674,121,783,944,121,674,784',
-'121,121,674,785,121,944,121,643,786,643,121,643,643,790,643,643,643',
-'643,643,121,643,794,795,800,121,121,121,121,945,121,121,121,121,804',
-'807,945,808,121,121,811,643,816,817,821,945,121,822,121,121,121,206',
-'206,206,206,206,206,824,825,946,206,206,827,830,832,206,946,206,206',
-'206,206,206,206,206,835,946,838,847,851,206,206,206,206,206,206,206',
-'852,873,206,873,873,873,855,873,206,206,206,206,206,206,206,206,206',
-'206,206,206,856,206,206,206,872,206,206,876,206,206,206,21,21,21,21',
-'21,21,21,21,21,21,21,727,21,21,948,878,21,21,727,206,889,948,206,727',
-'890,206,206,727,906,206,948,206,21,910,21,206,21,21,911,21,21,21,21',
-'21,206,21,917,921,924,206,206,206,206,988,206,206,206,206,927,928,988',
-'929,206,206,930,21,932,947,952,988,206,953,206,206,206,229,229,229,229',
-'229,229,954,955,956,229,229,958,982,983,229,984,229,229,229,229,229',
-'229,229,6,6,6,6,6,229,229,229,229,229,229,229,995,981,229,981,981,981',
-'997,981,229,229,229,229,229,229,229,229,229,229,229,229,998,229,229',
-'229,999,229,229,1000,229,229,229,274,274,274,274,274,274,274,274,274',
-'274,274,1009,274,274,1001,1002,274,274,1009,229,1005,1010,229,1009,1011',
-'229,229,1009,1022,229,,229,274,,274,229,274,274,,274,274,274,274,274',
-'229,274,,,,229,229,229,229,,229,229,229,229,,,,,229,229,,274,,,,,229',
-',229,229,229,294,294,294,294,294,294,,,,294,294,,,,294,,294,294,294',
-'294,294,294,294,291,291,291,291,291,294,294,294,294,294,294,294,,,294',
-'497,497,497,497,497,294,294,294,294,294,294,294,294,294,294,294,294',
-',294,294,294,,294,294,,294,294,294,427,427,427,427,427,427,427,427,427',
-'427,427,,427,427,,,427,427,,294,,,294,,,294,294,,,294,,294,427,,427',
-'294,427,427,,427,427,427,427,427,294,427,,,,294,294,294,294,,294,294',
-'294,294,,,,,294,294,,427,,,,,294,,294,294,294,299,299,299,299,299,299',
-',,,299,299,,,,299,,299,299,299,299,299,299,299,,,,,,299,299,299,299',
-'299,299,299,,,299,,,,,,299,299,299,299,299,299,299,299,299,299,299,299',
-',299,299,299,,299,299,,299,299,299,519,519,519,519,519,519,519,519,519',
-'519,519,,519,519,,,519,519,,299,,,299,,,299,299,,,299,,299,519,,519',
-'299,519,519,,519,519,519,519,519,299,519,,,,299,299,299,299,,299,299',
-'299,299,,,,,299,299,,519,,,,,299,,299,299,299,324,324,324,324,324,324',
-',,,324,324,,,,324,,324,324,324,324,324,324,324,,,,,,324,324,324,324',
-'324,324,324,,,324,,,,,,324,324,324,324,324,324,324,324,324,324,324,324',
-',324,324,324,,324,324,,324,324,324,644,644,644,644,644,644,644,644,644',
-'644,644,,644,644,,,644,644,,324,,,324,,,324,324,,,324,,324,644,,644',
-'324,644,644,,644,644,644,644,644,324,644,,,,324,324,324,324,,324,324',
-'324,324,,,,,324,324,644,644,,,,,324,,324,324,324,498,498,498,498,498',
-'498,,,,498,498,,,,498,,498,498,498,498,498,498,498,,,,,,498,498,498',
-'498,498,498,498,,,498,,,,,,498,498,498,498,498,498,498,498,498,498,498',
-'498,,498,498,498,,498,498,,498,498,498,678,678,678,678,678,678,678,678',
-'678,678,678,,678,678,,,678,678,,498,,,498,,,498,498,,,498,,498,678,',
-'678,498,678,678,,678,678,678,678,678,498,678,,,,498,498,498,498,,498',
-'498,498,498,,,,,498,498,,678,,,,,498,,498,498,498,566,566,566,566,566',
-'566,,,,566,566,,,,566,,566,566,566,566,566,566,566,,,,,,566,566,566',
-'566,566,566,566,,,566,,,,,,566,566,566,566,566,566,566,566,566,566,566',
-'566,,566,566,566,,566,566,,566,566,566,755,755,755,755,755,755,755,755',
-'755,755,755,,755,755,,,755,755,,566,,,566,,,566,566,,,566,,566,755,',
-'755,566,755,755,,755,755,755,755,755,566,755,,,,566,566,566,566,,566',
-'566,566,566,,,,,566,566,,755,,,,,566,,566,566,566,569,569,569,569,569',
-'569,,,,569,569,,,,569,,569,569,569,569,569,569,569,,,,,,569,569,569',
-'569,569,569,569,,,569,,,,,,569,569,569,569,569,569,569,569,569,569,569',
-'569,,569,569,569,,569,569,,569,569,569,760,760,760,760,760,760,760,760',
-'760,760,760,,760,760,,,760,760,,569,,,569,,,569,569,,,569,,569,760,',
-'760,569,760,760,,760,760,760,760,760,569,760,,,,569,569,569,569,,569',
-'569,569,569,,,,,569,569,,760,,,,,569,,569,569,569,591,591,591,591,591',
-'591,,,,591,591,,,,591,,591,591,591,591,591,591,591,,,,,,591,591,591',
-'591,591,591,591,,,591,,,,,,591,591,591,591,591,591,591,591,591,591,591',
-'591,,591,591,591,,591,591,,591,591,591,762,762,762,762,762,762,762,762',
-'762,762,762,,762,762,,,762,762,,591,,,591,,,591,591,,,591,,591,762,',
-'762,591,762,762,,762,762,762,762,762,591,762,,,,591,591,591,591,,591',
-'591,591,591,,,,,591,591,,762,,,,,591,,591,591,591,648,648,648,648,648',
-'648,,,,648,648,,,,648,,648,648,648,648,648,648,648,,,,,,648,648,648',
-'648,648,648,648,,,648,,,,,,648,648,648,648,648,648,648,648,648,648,648',
-'648,,648,648,648,,648,648,,648,648,648,765,765,765,765,765,765,765,765',
-'765,765,765,,765,765,,,765,765,,648,,,648,,,648,648,,,648,,648,765,',
-'765,648,765,765,,765,765,765,765,765,648,765,,,,648,648,648,648,,648',
-'648,648,648,,,,,648,648,,765,,,,,648,,648,648,648,653,653,653,653,653',
-'653,,,,653,653,,,,653,,653,653,653,653,653,653,653,,,,,,653,653,653',
-'653,653,653,653,,,653,,,,,,653,653,653,653,653,653,653,653,653,653,653',
-'653,,653,653,653,,653,653,,653,653,653,767,767,767,767,767,767,767,767',
-'767,767,767,,767,767,,,767,767,,653,,,653,,,653,653,,,653,,653,767,',
-'767,653,767,767,,767,767,767,767,767,653,767,,,,653,653,653,653,,653',
-'653,653,653,,,,,653,653,,767,,,,,653,,653,653,653,654,654,654,654,654',
-'654,,,,654,654,,,,654,,654,654,654,654,654,654,654,,,,,,654,654,654',
-'654,654,654,654,,,654,,,,,,654,654,654,654,654,654,654,654,654,654,654',
-'654,,654,654,654,,654,654,,654,654,654,769,769,769,769,769,769,769,769',
-'769,769,769,,769,769,,,769,769,,654,,,654,,,654,654,,,654,,654,769,',
-'769,654,769,769,,769,769,769,769,769,654,769,,,,654,654,654,654,,654',
-'654,654,654,,,,,654,654,,769,,,,,654,,654,654,654,730,730,730,730,730',
-'730,,,,730,730,,,,730,,730,730,730,730,730,730,730,,,,,,730,730,730',
-'730,730,730,730,,,730,,,,,,730,730,730,730,730,730,730,730,730,730,730',
-'730,,730,730,730,,730,730,,730,730,730,858,858,858,858,858,858,858,858',
-'858,858,858,,858,858,,,858,858,,730,,,730,,,730,730,,,730,,730,858,',
-'858,730,858,858,,858,858,858,858,858,730,858,,,,730,730,730,730,,730',
-'730,730,730,,,,,730,730,,858,,,,,730,,730,730,730,735,735,735,735,735',
-'735,,,,735,735,,,,735,,735,735,735,735,735,735,735,,,,,,735,735,735',
-'735,735,735,735,,,735,,,,,,735,735,735,735,735,735,735,735,735,735,735',
-'735,,735,735,735,,735,735,,735,735,735,969,969,969,969,969,969,969,969',
-'969,969,969,,969,969,,,969,969,,735,,,735,,,735,735,,,735,,735,969,',
-'969,735,969,969,,969,969,969,969,969,735,969,,,,735,735,735,735,,735',
-'735,735,735,,,,,735,735,,969,,,,,735,,735,735,735,745,745,745,745,745',
-'745,,,,745,745,,,,745,,745,745,745,745,745,745,745,,,,,,745,745,745',
-'745,745,745,745,,,745,,,,,,745,745,745,745,745,745,745,745,745,745,745',
-'745,,745,745,745,,745,745,,745,745,745,447,447,447,447,447,447,447,447',
-'447,447,447,,447,447,,,447,447,,745,,,745,,,745,745,,,745,,745,447,',
-'447,745,447,447,,447,447,447,447,447,745,447,,,,745,745,745,745,,745',
-'745,745,745,,,,,745,745,,,,,,,745,,745,745,745,793,793,793,793,793,793',
-',,,793,793,,,,793,,793,793,793,793,793,793,793,,,,,,793,793,793,793',
-'793,793,793,,,793,,,,,,793,793,793,793,793,793,793,793,793,793,793,793',
-',793,793,793,,793,793,,793,793,793,448,448,448,448,448,448,448,448,448',
-'448,448,,448,448,,,448,448,,793,,,793,,,793,793,,,793,,793,448,,448',
-'793,448,448,,448,448,448,448,448,793,448,,,,793,793,793,793,,793,793',
-'793,793,,,,,793,793,,,,,,,793,,793,793,793,806,806,806,806,806,806,',
-',,806,806,,,,806,,806,806,806,806,806,806,806,,,,,,806,806,806,806,806',
-'806,806,,905,806,905,905,905,,905,806,806,806,806,806,806,806,806,806',
-'806,806,806,,806,806,806,,806,806,,806,806,806,458,458,458,458,458,458',
-'458,,905,458,458,,,,,,458,458,,806,,,806,,,806,806,,,806,,806,458,,458',
-'806,458,458,,458,458,458,458,458,806,458,,,,806,806,806,806,,806,806',
-'806,806,,,,,806,806,,,,,,,806,,806,806,806,814,814,814,814,814,814,',
-',,814,814,,,,814,,814,814,814,814,814,814,814,,,,,,814,814,814,814,814',
-'814,814,,957,814,957,957,957,,957,814,814,814,814,814,814,814,814,814',
-'814,814,814,,814,814,814,,814,814,,814,814,814,459,,,959,,959,959,959',
-'957,959,,,,,,,459,459,,814,,,814,,,814,814,,,814,,814,459,,459,814,459',
-'459,,459,459,959,,459,814,459,,,,814,814,814,814,,814,814,814,814,,',
-',,814,814,,,,,,,814,,814,814,814,815,815,815,815,815,815,,,,815,815',
-',,,815,,815,815,815,815,815,815,815,,,,,,815,815,815,815,815,815,815',
-',994,815,994,994,994,,994,815,815,815,815,815,815,815,815,815,815,815',
-'815,,815,815,815,,815,815,,815,815,815,460,,,,,,,,994,,,,,,,,460,460',
-',815,,,815,,,815,815,,,815,,815,460,,460,815,460,460,,460,460,,,460',
-'815,460,,,,815,815,815,815,,815,815,815,815,,,,,815,815,,,,,,,815,,815',
-'815,815,839,839,839,839,839,839,,,,839,839,,,,839,,839,839,839,839,839',
-'839,839,,,,,,839,839,839,839,839,839,839,,,839,,,,,,839,839,839,839',
-'839,839,839,839,839,839,839,839,,839,839,839,,839,839,,839,839,839,461',
-',,,,,,,,,,,,,,,461,461,,839,,,839,,,839,839,,,839,,839,461,,461,839',
-'461,461,,461,461,,,461,839,461,,,,839,839,839,839,,839,839,839,839,',
-',,,839,839,,,,,,,839,,839,839,839,840,840,840,840,840,840,,,,840,840',
-',,,840,,840,840,840,840,840,840,840,,,,,,840,840,840,840,840,840,840',
-',,840,,,,,,840,840,840,840,840,840,840,840,840,840,840,840,,840,840',
-'840,,840,840,,840,840,840,462,,,,,,,,,,,,,,,,462,462,,840,,,840,,,840',
-'840,,,840,,840,462,,462,840,462,462,,462,462,,,462,840,462,,,,840,840',
-'840,840,,840,840,840,840,,,,,840,840,,,,,,,840,,840,840,840,843,843',
-'843,843,843,843,,,,843,843,,,,843,,843,843,843,843,843,843,843,,,,,',
-'843,843,843,843,843,843,843,,,843,,,,,,843,843,843,843,843,843,843,843',
-'843,843,843,843,,843,843,843,,843,843,,843,843,843,463,463,463,463,463',
-'463,463,,,463,463,,,,,,463,463,,843,,,843,,,843,843,,,843,,843,463,',
-'463,843,463,463,,463,463,463,463,463,843,463,,,,843,843,843,843,,843',
-'843,843,843,,,,,843,843,,,,,,,843,,843,843,843,849,849,849,849,849,849',
-',,,849,849,,,,849,,849,849,849,849,849,849,849,,,,,,849,849,849,849',
-'849,849,849,,,849,,,,,,849,849,849,849,849,849,849,849,849,849,849,849',
-',849,849,849,,849,849,,849,849,849,464,464,464,464,464,464,464,,,464',
-'464,,,,,,464,464,,849,,,849,,,849,849,,,849,,849,464,,464,849,464,464',
-',464,464,464,464,464,849,464,,,,849,849,849,849,,849,849,849,849,,,',
-',849,849,,,,,,,849,,849,849,849,882,882,882,882,882,882,,,,882,882,',
-',,882,,882,882,882,882,882,882,882,,,,,,882,882,882,882,882,882,882',
-',,882,,,,,,882,882,882,882,882,882,882,882,882,882,882,882,,882,882',
-'882,,882,882,,882,882,882,465,465,465,465,465,465,465,,,465,465,,,,',
-',465,465,,882,,,882,,,882,882,,,882,,882,465,,465,882,465,465,,465,465',
-'465,465,465,882,465,,,,882,882,882,882,,882,882,882,882,,,,,882,882',
-',,,,,,882,,882,882,882,943,943,943,943,943,943,,,,943,943,,,,943,,943',
-'943,943,943,943,943,943,,,,,,943,943,943,943,943,943,943,,,943,,,,,',
-'943,943,943,943,943,943,943,943,943,943,943,943,,943,943,943,,943,943',
-',943,943,943,466,466,466,466,466,466,466,,,466,466,,,,,,466,466,,943',
-',,943,,,943,943,,,943,,943,466,,466,943,466,466,,466,466,466,466,466',
-'943,466,,,,943,943,943,943,,943,943,943,943,,,,,943,943,,,,,,,943,,943',
-'943,943,960,960,960,960,960,960,,,,960,960,,,,960,,960,960,960,960,960',
-'960,960,,,,,,960,960,960,960,960,960,960,,,960,,,,,,960,960,960,960',
-'960,960,960,960,960,960,960,960,,960,960,960,,960,960,,960,960,960,467',
-'467,467,467,467,467,467,,,467,467,,,,,,467,467,,960,,,960,,,960,960',
-',,960,,960,467,,467,960,467,467,,467,467,467,467,467,960,467,,,,960',
-'960,960,960,,960,960,960,960,,,,,960,960,,,,,,,960,,960,960,960,966',
-'966,966,966,966,966,,,,966,966,,,,966,,966,966,966,966,966,966,966,',
-',,,,966,966,966,966,966,966,966,,,966,,,,,,966,966,966,966,966,966,966',
-'966,966,966,966,966,,966,966,966,,966,966,,966,966,966,470,470,470,470',
-'470,470,470,,,470,470,,,,,,470,470,,966,,,966,,,966,966,,,966,,966,470',
-',470,966,470,470,,470,470,470,470,470,966,470,,,,966,966,966,966,,966',
-'966,966,966,,,,,966,966,,,,,,,966,,966,966,966,968,968,968,968,968,968',
-',,,968,968,,,,968,,968,968,968,968,968,968,968,,,,,,968,968,968,968',
-'968,968,968,,,968,,,,,,968,968,968,968,968,968,968,968,968,968,968,968',
-',968,968,968,,968,968,,968,968,968,471,471,471,471,471,471,471,471,',
-'471,471,,,,,,471,471,,968,,,968,,,968,968,,,968,,968,471,,471,968,471',
-'471,,471,471,471,471,471,968,471,,,,968,968,968,968,,968,968,968,968',
-',,,,968,968,,,,,,,968,,968,968,968,5,5,5,5,5,,,,5,5,,,,5,,5,5,5,5,5',
-'5,5,,,,,,5,5,5,5,5,5,5,,,5,,,,,,5,5,5,5,5,5,5,5,5,5,5,5,,5,5,5,,5,5',
-',5,5,5,455,,,,,,,,,,,,,,,,455,455,,5,,,5,,,5,5,,,5,,5,455,,455,5,455',
-'455,,455,455,,,,5,,,,,5,5,5,5,,5,5,5,5,,,,,5,5,,,,20,20,20,5,20,5,5',
-'5,20,20,,,,20,,20,20,20,20,20,20,20,,,,,,20,20,20,20,20,20,20,,,20,',
-',,,,,20,,,20,20,20,20,20,20,20,20,,20,20,20,,20,20,,20,20,20,456,,,',
-',,,,,,,,,,,,456,456,,20,,,20,,,20,20,,,20,,,456,,456,20,456,456,,456',
-'456,,,,20,,,,,20,20,20,20,,20,20,20,20,,,,,20,20,,,,29,29,29,20,29,20',
-'20,20,29,29,,,,29,,29,29,29,29,29,29,29,,,,,,29,29,29,29,29,29,29,,',
-'29,,,,,,,29,,,29,29,29,29,29,29,29,29,29,29,29,29,,29,29,,29,29,29,457',
-',,,,,,,,,,,,,,,457,457,,29,,,29,,,29,29,,,29,,29,457,29,,29,457,457',
-'29,457,457,,,,29,,,,,29,29,29,29,,29,29,29,29,,,,,29,29,,,,30,30,30',
-'29,30,29,29,29,30,30,,,,30,,30,30,30,30,30,30,30,,,,,,30,30,30,30,30',
-'30,30,,,30,,,,,,,30,,,30,30,30,30,30,30,30,30,30,30,30,30,,30,30,,30',
-'30,30,,,,,,,,,,,,,,,,,,,,30,,,30,,,30,30,,,30,,30,,30,,30,,,30,,,,,',
-'30,,,,,30,30,30,30,,30,30,30,30,,,,,30,30,,,,31,31,31,30,31,30,30,30',
-'31,31,,,,31,,31,31,31,31,31,31,31,,,,,,31,31,31,31,31,31,31,,,31,,,',
-',,,31,,,31,31,31,31,31,31,31,31,31,31,31,31,,31,31,,31,31,31,,,,,,,',
-',,,,,,,,,,,,31,,,31,,,31,31,,,31,,31,,31,,31,,,31,,,,,,31,,,,,31,31',
-'31,31,,31,31,31,31,,,,,31,31,,,,34,34,34,31,34,31,31,31,34,34,,,,34',
-',34,34,34,34,34,34,34,,,,,,34,34,34,34,34,34,34,,,34,,,,,,,34,,,34,34',
-'34,34,34,34,34,34,,34,34,34,,34,34,,,,34,,,,,,,,,,,,,,,,,,,,34,,,34',
-',,34,34,,,34,,34,,,,,,,,,,,,,,,,,,34,34,34,34,,34,34,34,34,,,,,34,34',
-',,,35,35,35,34,35,34,34,34,35,35,,,,35,,35,35,35,35,35,35,35,,,,,,35',
-'35,35,35,35,35,35,,,35,,,,,,,35,,,35,35,35,35,35,35,35,35,,35,35,35',
-',35,35,,,,35,,,,,,,,,,,,,,,,,,,,35,,,35,,,35,35,,,35,,697,,697,697,697',
-'697,697,,,,,,,,,,697,,35,35,35,35,,35,35,35,35,,,,,35,35,,,,35,,697',
-'35,,35,35,35,42,42,42,,42,697,697,,42,42,697,,,42,,42,42,42,42,42,42',
-'42,,,,,,42,42,42,42,42,42,42,,,42,,,,,,,42,,,42,42,42,42,42,42,42,42',
-',42,42,42,,42,42,,42,42,42,,,,,,,,,,,,,,,,,,,,42,,,42,,,42,42,,,42,',
-',,,,42,,,,,,,,,42,,,,,42,42,42,42,,42,42,42,42,,,,,42,42,,,,43,43,43',
-'42,43,42,42,42,43,43,,,,43,,43,43,43,43,43,43,43,,,,,,43,43,43,43,43',
-'43,43,,,43,,,,,,,43,,,43,43,43,43,43,43,43,43,,43,43,43,,43,43,,43,43',
-'43,,,,,,,,,,,,,,,,,,,,43,,,43,,,43,43,,,43,,,,,,43,,,,,,,,,43,,,,,43',
-'43,43,43,,43,43,43,43,,,,,43,43,,,,44,44,44,43,44,43,43,43,44,44,,,',
-'44,,44,44,44,44,44,44,44,,,,,,44,44,44,44,44,44,44,,,44,,,,,,,44,,,44',
-'44,44,44,44,44,44,44,,44,44,44,,44,44,,44,44,44,,,,,,,,,,,,,,,,,,,,44',
-',,44,,,44,44,,,44,,,,,,44,,,,,,,,,44,,,,,44,44,44,44,,44,44,44,44,,',
-',,44,44,,,,59,59,59,44,59,44,44,44,59,59,,,,59,,59,59,59,59,59,59,59',
-',,,,,59,59,59,59,59,59,59,,,59,,,,,,,59,,,59,59,59,59,59,59,59,59,59',
-'59,59,59,,59,59,,59,59,59,,,,,,,,,,,,,,,,,,,,59,,,59,,,59,59,,,59,,59',
-',,,59,,,59,,,,,,59,,,,,59,59,59,59,,59,59,59,59,,,,,59,59,,,,60,60,60',
-'59,60,59,59,59,60,60,,,,60,,60,60,60,60,60,60,60,,,,,,60,60,60,60,60',
-'60,60,,,60,,,,,,,60,,,60,60,60,60,60,60,60,60,60,60,60,60,,60,60,,60',
-'60,60,,,,,,,,,,,,,,,,,,,,60,,,60,,,60,60,,,60,,,,,,60,,,60,,,,,,60,',
-',,,60,60,60,60,,60,60,60,60,,,,,60,60,,,,63,63,63,60,63,60,60,60,63',
-'63,,,,63,,63,63,63,63,63,63,63,,,,,,63,63,63,63,63,63,63,,,63,,,,,,',
-'63,,,63,63,63,63,63,63,63,63,,63,63,63,,63,63,,63,63,63,,,,,,,,,,,,',
-',,,,,,,63,,,63,,,63,63,,,63,,,,,,63,,,,,,,,,63,,,,,63,63,63,63,,63,63',
-'63,63,,,,,63,63,,,,64,64,64,63,64,63,63,63,64,64,,,,64,,64,64,64,64',
-'64,64,64,,,,,,64,64,64,64,64,64,64,,,64,,,,,,,64,,,64,64,64,64,64,64',
-'64,64,,64,64,64,,64,64,,64,64,64,,,,,,,,,,,,,,,,,,,,64,,,64,,,64,64',
-',,64,,,,,,64,,,,,,,,,64,,,,,64,64,64,64,,64,64,64,64,,,,,64,64,,,,67',
-'67,67,64,67,64,64,64,67,67,,,,67,,67,67,67,67,67,67,67,,,,,,67,67,67',
-'67,67,67,67,,,67,,,,,,,67,,,67,67,67,67,67,67,67,67,,67,67,67,,67,67',
-',67,67,67,,,,,,,,,,,,,,,,,,,,67,,,67,,,67,67,,,67,,,,,,67,,,,,,,,,67',
-',,,,67,67,67,67,,67,67,67,67,,,,,67,67,67,,,,,67,67,,67,67,67,68,68',
-'68,,68,,,,68,68,,,,68,,68,68,68,68,68,68,68,,,,,,68,68,68,68,68,68,68',
-',,68,,,,,,,68,,,68,68,68,68,68,68,68,68,,68,68,68,,68,68,,,,68,,,,,',
-',,,,,,,,,,,,,,68,,,68,,,68,68,,,68,,68,,,,,,,,,,,,,,,,,,68,68,68,68',
-',68,68,68,68,,,,,68,68,,,,69,69,69,68,69,68,68,68,69,69,,,,69,,69,69',
-'69,69,69,69,69,,,,,,69,69,69,69,69,69,69,,,69,,,,,,,69,,,69,69,69,69',
-'69,69,69,69,,69,69,69,,69,69,,,,69,,,,,,,,,,,,,,,,,69,,,69,,,69,,,69',
-'69,,,69,,,,,,,,,,,,,,,,,,,,69,69,69,69,,69,69,69,69,,,,,69,69,,,,70',
-'70,70,69,70,69,69,69,70,70,,,,70,,70,70,70,70,70,70,70,,,,,,70,70,70',
-'70,70,70,70,,,70,,,,,,,70,,,70,70,70,70,70,70,70,70,,70,70,70,,70,70',
-',,,70,,,,,,,,,,,,,,,,,,,,70,,,70,,,70,70,,,70,,869,,869,869,869,869',
-'869,,,,,,,,,,869,,70,70,70,70,,70,70,70,70,,,,,70,70,,,,,,869,70,,70',
-'70,70,111,111,111,111,111,869,869,,111,111,869,,,111,,111,111,111,111',
-'111,111,111,,,,,,111,111,111,111,111,111,111,,,111,,,,,,111,111,111',
-'111,111,111,111,111,111,111,111,111,,111,111,111,,111,111,,111,111,111',
-',,,,,,,,,,,,,,,,,,,111,,,111,,,111,111,,,111,,111,,,,111,,,,,,,,,111',
-',,,,111,111,111,111,,111,111,111,111,,,,,111,111,,,,,,111,111,,111,111',
-'111,116,116,116,,116,,,,116,116,,,,116,,116,116,116,116,116,116,116',
-',,,,,116,116,116,116,116,116,116,,,116,,,,,,,116,,,116,116,116,116,116',
-'116,116,116,,116,116,116,,116,116,,116,116,116,,,,,,,,,,,,,,,,,,,,116',
-',,116,,,116,116,,,116,,,,,,116,,,,,,,,,116,,,,,116,116,116,116,,116',
-'116,116,116,,,,,116,116,,,,117,117,117,116,117,116,116,116,117,117,',
-',,117,,117,117,117,117,117,117,117,,,,,,117,117,117,117,117,117,117',
-',,117,,,,,,,117,,,117,117,117,117,117,117,117,117,,117,117,117,,117',
-'117,,117,117,117,,,,,,,,,,,,,,,,,,,,117,,,117,,,117,117,,,117,,,,,,117',
-',,,,,,,,117,,,,,117,117,117,117,,117,117,117,117,,,,,117,117,,,,118',
-'118,118,117,118,117,117,117,118,118,,,,118,,118,118,118,118,118,118',
-'118,,,,,,118,118,118,118,118,118,118,,,118,,,,,,,118,,,118,118,118,118',
-'118,118,118,118,,118,118,118,,118,118,,118,118,118,,,,,,,,,,,,,,,,,',
-',,118,,,118,,,118,118,,,118,,,,,,118,,,,,,,,,118,,,,,118,118,118,118',
-',118,118,118,118,,,,,118,118,,,,119,119,119,118,119,118,118,118,119',
-'119,,,,119,,119,119,119,119,119,119,119,,,,,,119,119,119,119,119,119',
-'119,,,119,,,,,,,119,,,119,119,119,119,119,119,119,119,,119,119,119,',
-'119,119,,119,119,119,,,,,,,,,,,,,,,,,,,,119,,,119,,,119,119,,,119,,',
-',,,119,,,,,,,,,119,,,,,119,119,119,119,,119,119,119,119,,,,,119,119',
-',,,,,,119,,119,119,119,120,120,120,120,120,,,,120,120,,,,120,,120,120',
-'120,120,120,120,120,,,,,,120,120,120,120,120,120,120,,,120,,,,,,120',
-'120,,120,120,120,120,120,120,120,120,120,,120,120,120,,120,120,,120',
-'120,120,,,,,,,,,,,,,,,,,,,,120,,,120,,,120,120,,,120,,120,,,,120,,,',
-',,,,,120,,,,,120,120,120,120,,120,120,120,120,,,,,120,120,,,,207,207',
-'207,120,207,120,120,120,207,207,,,,207,,207,207,207,207,207,207,207',
-',,,,,207,207,207,207,207,207,207,,,207,,,,,,,207,,,207,207,207,207,207',
-'207,207,207,,207,207,207,,207,207,,207,207,207,,,,,,,,,,,,,,,,,,,,207',
-',,207,,,207,207,,,207,,207,,,,207,,,,,,,,,207,,,,,207,207,207,207,,207',
-'207,207,207,,,,,207,207,,,,208,208,208,207,208,207,207,207,208,208,',
-',,208,,208,208,208,208,208,208,208,,,,,,208,208,208,208,208,208,208',
-',,208,,,,,,,208,,,208,208,208,208,208,208,208,208,,208,208,208,,208',
-'208,,208,208,208,,,,,,,,,,,,,,,,,,,,208,,,208,,,208,208,,,208,,,,,,208',
-',,,,,,,,208,,,,,208,208,208,208,,208,208,208,208,,,,,208,208,,,,209',
-'209,209,208,209,208,208,208,209,209,,,,209,,209,209,209,209,209,209',
-'209,,,,,,209,209,209,209,209,209,209,,,209,,,,,,,209,,,209,209,209,209',
-'209,209,209,209,209,209,209,209,,209,209,,209,209,209,,,,,,,,,,,,,,',
-',,,,,209,,,209,,,209,209,,,209,,209,,209,,209,,,209,,,,,,209,,,,,209',
-'209,209,209,,209,209,209,209,,,,,209,209,,,,212,212,212,209,212,209',
-'209,209,212,212,,,,212,,212,212,212,212,212,212,212,,,,,,212,212,212',
-'212,212,212,212,,,212,,,,,,,212,,,212,212,212,212,212,212,212,212,,212',
-'212,212,,212,212,,212,212,212,,,,,,,,,,,,,,,,,,,,212,,,212,,,212,212',
-',,212,,,,,,212,,,,,,,,,212,,,,,212,212,212,212,,212,212,212,212,,,,',
-'212,212,,,,213,213,213,212,213,212,212,212,213,213,,,,213,,213,213,213',
-'213,213,213,213,,,,,,213,213,213,213,213,213,213,,,213,,,,,,,213,,,213',
-'213,213,213,213,213,213,213,,213,213,213,,213,213,,213,213,213,,,,,',
-',,,,,,,,,,,,,,213,,,213,,,213,213,,,213,,213,,,,213,,,,,,,,,213,,,,',
-'213,213,213,213,,213,213,213,213,,,,,213,213,,,,214,214,214,213,214',
-'213,213,213,214,214,,,,214,,214,214,214,214,214,214,214,,,,,,214,214',
-'214,214,214,214,214,,,214,,,,,,,214,,,214,214,214,214,214,214,214,214',
-',214,214,214,,214,214,,214,214,214,,,,,,,,,,,,,,,,,,,,214,,,214,,,214',
-'214,,,214,,,,,,214,,,,,,,,,214,,,,,214,214,214,214,,214,214,214,214',
-',,,,214,214,,,,215,215,215,214,215,214,214,214,215,215,,,,215,,215,215',
-'215,215,215,215,215,,,,,,215,215,215,215,215,215,215,,,215,,,,,,,215',
-',,215,215,215,215,215,215,215,215,,215,215,215,,215,215,,215,215,215',
-',,,,,,,,,,,,,,,,,,,215,,,215,,,215,215,,,215,,,,,,215,,,,,,,,,215,,',
-',,215,215,215,215,,215,215,215,215,,,,,215,215,,,,216,216,216,215,216',
-'215,215,215,216,216,,,,216,,216,216,216,216,216,216,216,,,,,,216,216',
-'216,216,216,216,216,,,216,,,,,,,216,,,216,216,216,216,216,216,216,216',
-',216,216,216,,216,216,,216,216,216,,,,,,,,,,,,,,,,,,,,216,,,216,,,216',
-'216,,,216,,,,,,216,,,,,,,,,216,,,,,216,216,216,216,,216,216,216,216',
-',,,,216,216,,,,217,217,217,216,217,216,216,216,217,217,,,,217,,217,217',
-'217,217,217,217,217,,,,,,217,217,217,217,217,217,217,,,217,,,,,,,217',
-',,217,217,217,217,217,217,217,217,,217,217,217,,217,217,,217,217,217',
-',,,,,,,,,,,,,,,,,,,217,,,217,,,217,217,,,217,,,,,,217,,,,,,,,,217,,',
-',,217,217,217,217,,217,217,217,217,,,,,217,217,217,,,228,228,228,217',
-'228,217,217,217,228,228,,,,228,,228,228,228,228,228,228,228,,,,,,228',
-'228,228,228,228,228,228,,,228,,,,,,,228,,,228,228,228,228,228,228,228',
-'228,,228,228,228,,228,228,,228,228,228,,,,,,,,,,,,,,,,,,,,228,,,228',
-',,228,228,,,228,,,,,,228,,,,,,,,,228,,,,,228,228,228,228,,228,228,228',
-'228,,,,,228,228,,,,231,231,231,228,231,228,228,228,231,231,,,,231,,231',
-'231,231,231,231,231,231,,,,,,231,231,231,231,231,231,231,,,231,,,,,',
-',231,,,231,231,231,231,231,231,231,231,,231,231,231,,231,231,,231,231',
-'231,,,,,,,,,,,,,,,,,,,,231,,,231,,,231,231,,,231,,,,,,231,,,,,,,,,231',
-',,,,231,231,231,231,,231,231,231,231,,,,,231,231,,,,232,232,232,231',
-'232,231,231,231,232,232,,,,232,,232,232,232,232,232,232,232,,,,,,232',
-'232,232,232,232,232,232,,,232,,,,,,,232,,,232,232,232,232,232,232,232',
-'232,,232,232,232,,232,232,,232,232,232,,,,,,,,,,,,,,,,,,,,232,,,232',
-',,232,232,,,232,,,,,,232,,,,,,,,,232,,,,,232,232,232,232,,232,232,232',
-'232,,,,,232,232,,,,233,233,233,232,233,232,232,232,233,233,,,,233,,233',
-'233,233,233,233,233,233,,,,,,233,233,233,233,233,233,233,,,233,,,,,',
-',233,,,233,233,233,233,233,233,233,233,,233,233,233,,233,233,,233,233',
-'233,,,,,,,,,,,,,,,,,,,,233,,,233,,,233,233,,,233,,,,,,233,,,,,,,,,233',
-',,,,233,233,233,233,,233,233,233,233,,,,,233,233,,,,234,234,234,233',
-'234,233,233,233,234,234,,,,234,,234,234,234,234,234,234,234,,,,,,234',
-'234,234,234,234,234,234,,,234,,,,,,,234,,,234,234,234,234,234,234,234',
-'234,,234,234,234,,234,234,,234,234,234,,,,,,,,,,,,,,,,,,,,234,,,234',
-',,234,234,,,234,,,,,,234,,,,,,,,,234,,,,,234,234,234,234,,234,234,234',
-'234,,,,,234,234,,,,235,235,235,234,235,234,234,234,235,235,,,,235,,235',
-'235,235,235,235,235,235,,,,,,235,235,235,235,235,235,235,,,235,,,,,',
-',235,,,235,235,235,235,235,235,235,235,,235,235,235,,235,235,,235,235',
-'235,,,,,,,,,,,,,,,,,,,,235,,,235,,,235,235,,,235,,,,,,235,,,,,,,,,235',
-',,,,235,235,235,235,,235,235,235,235,,,,,235,235,,,,236,236,236,235',
-'236,235,235,235,236,236,,,,236,,236,236,236,236,236,236,236,,,,,,236',
-'236,236,236,236,236,236,,,236,,,,,,,236,,,236,236,236,236,236,236,236',
-'236,,236,236,236,,236,236,,236,236,236,,,,,,,,,,,,,,,,,,,,236,,,236',
-',,236,236,,,236,,,,,,236,,,,,,,,,236,,,,,236,236,236,236,,236,236,236',
-'236,,,,,236,236,,,,237,237,237,236,237,236,236,236,237,237,,,,237,,237',
-'237,237,237,237,237,237,,,,,,237,237,237,237,237,237,237,,,237,,,,,',
-',237,,,237,237,237,237,237,237,237,237,,237,237,237,,237,237,,237,237',
-'237,,,,,,,,,,,,,,,,,,,,237,,,237,,,237,237,,,237,,,,,,237,,,,,,,,,237',
-',,,,237,237,237,237,,237,237,237,237,,,,,237,237,,,,238,238,238,237',
-'238,237,237,237,238,238,,,,238,,238,238,238,238,238,238,238,,,,,,238',
-'238,238,238,238,238,238,,,238,,,,,,,238,,,238,238,238,238,238,238,238',
-'238,,238,238,238,,238,238,,238,238,238,,,,,,,,,,,,,,,,,,,,238,,,238',
-',,238,238,,,238,,,,,,238,,,,,,,,,238,,,,,238,238,238,238,,238,238,238',
-'238,,,,,238,238,,,,239,239,239,238,239,238,238,238,239,239,,,,239,,239',
-'239,239,239,239,239,239,,,,,,239,239,239,239,239,239,239,,,239,,,,,',
-',239,,,239,239,239,239,239,239,239,239,,239,239,239,,239,239,,239,239',
-'239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239,239,,,239,,,,,,239,,,,,,,,,239',
-',,,,239,239,239,239,,239,239,239,239,,,,,239,239,,,,240,240,240,239',
-'240,239,239,239,240,240,,,,240,,240,240,240,240,240,240,240,,,,,,240',
-'240,240,240,240,240,240,,,240,,,,,,,240,,,240,240,240,240,240,240,240',
-'240,,240,240,240,,240,240,,240,240,240,,,,,,,,,,,,,,,,,,,,240,,,240',
-',,240,240,,,240,,,,,,240,,,,,,,,,240,,,,,240,240,240,240,,240,240,240',
-'240,,,,,240,240,,,,241,241,241,240,241,240,240,240,241,241,,,,241,,241',
-'241,241,241,241,241,241,,,,,,241,241,241,241,241,241,241,,,241,,,,,',
-',241,,,241,241,241,241,241,241,241,241,,241,241,241,,241,241,,241,241',
-'241,,,,,,,,,,,,,,,,,,,,241,,,241,,,241,241,,,241,,,,,,241,,,,,,,,,241',
-',,,,241,241,241,241,,241,241,241,241,,,,,241,241,,,,242,242,242,241',
-'242,241,241,241,242,242,,,,242,,242,242,242,242,242,242,242,,,,,,242',
-'242,242,242,242,242,242,,,242,,,,,,,242,,,242,242,242,242,242,242,242',
-'242,,242,242,242,,242,242,,242,242,242,,,,,,,,,,,,,,,,,,,,242,,,242',
-',,242,242,,,242,,,,,,242,,,,,,,,,242,,,,,242,242,242,242,,242,242,242',
-'242,,,,,242,242,,,,243,243,243,242,243,242,242,242,243,243,,,,243,,243',
-'243,243,243,243,243,243,,,,,,243,243,243,243,243,243,243,,,243,,,,,',
-',243,,,243,243,243,243,243,243,243,243,,243,243,243,,243,243,,243,243',
-'243,,,,,,,,,,,,,,,,,,,,243,,,243,,,243,243,,,243,,,,,,243,,,,,,,,,243',
-',,,,243,243,243,243,,243,243,243,243,,,,,243,243,,,,244,244,244,243',
-'244,243,243,243,244,244,,,,244,,244,244,244,244,244,244,244,,,,,,244',
-'244,244,244,244,244,244,,,244,,,,,,,244,,,244,244,244,244,244,244,244',
-'244,,244,244,244,,244,244,,244,244,244,,,,,,,,,,,,,,,,,,,,244,,,244',
-',,244,244,,,244,,,,,,244,,,,,,,,,244,,,,,244,244,244,244,,244,244,244',
-'244,,,,,244,244,,,,245,245,245,244,245,244,244,244,245,245,,,,245,,245',
-'245,245,245,245,245,245,,,,,,245,245,245,245,245,245,245,,,245,,,,,',
-',245,,,245,245,245,245,245,245,245,245,,245,245,245,,245,245,,245,245',
-'245,,,,,,,,,,,,,,,,,,,,245,,,245,,,245,245,,,245,,,,,,245,,,,,,,,,245',
-',,,,245,245,245,245,,245,245,245,245,,,,,245,245,,,,246,246,246,245',
-'246,245,245,245,246,246,,,,246,,246,246,246,246,246,246,246,,,,,,246',
-'246,246,246,246,246,246,,,246,,,,,,,246,,,246,246,246,246,246,246,246',
-'246,,246,246,246,,246,246,,246,246,246,,,,,,,,,,,,,,,,,,,,246,,,246',
-',,246,246,,,246,,,,,,246,,,,,,,,,246,,,,,246,246,246,246,,246,246,246',
-'246,,,,,246,246,,,,247,247,247,246,247,246,246,246,247,247,,,,247,,247',
-'247,247,247,247,247,247,,,,,,247,247,247,247,247,247,247,,,247,,,,,',
-',247,,,247,247,247,247,247,247,247,247,,247,247,247,,247,247,,247,247',
-'247,,,,,,,,,,,,,,,,,,,,247,,,247,,,247,247,,,247,,,,,,247,,,,,,,,,247',
-',,,,247,247,247,247,,247,247,247,247,,,,,247,247,,,,248,248,248,247',
-'248,247,247,247,248,248,,,,248,,248,248,248,248,248,248,248,,,,,,248',
-'248,248,248,248,248,248,,,248,,,,,,,248,,,248,248,248,248,248,248,248',
-'248,,248,248,248,,248,248,,248,248,248,,,,,,,,,,,,,,,,,,,,248,,,248',
-',,248,248,,,248,,,,,,248,,,,,,,,,248,,,,,248,248,248,248,,248,248,248',
-'248,,,,,248,248,,,,249,249,249,248,249,248,248,248,249,249,,,,249,,249',
-'249,249,249,249,249,249,,,,,,249,249,249,249,249,249,249,,,249,,,,,',
-',249,,,249,249,249,249,249,249,249,249,,249,249,249,,249,249,,249,249',
-'249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,,,,,249,,,,,,,,,249',
-',,,,249,249,249,249,,249,249,249,249,,,,,249,249,,,,250,250,250,249',
-'250,249,249,249,250,250,,,,250,,250,250,250,250,250,250,250,,,,,,250',
-'250,250,250,250,250,250,,,250,,,,,,,250,,,250,250,250,250,250,250,250',
-'250,,250,250,250,,250,250,,250,250,250,,,,,,,,,,,,,,,,,,,,250,,,250',
-',,250,250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250,250,250',
-'250,,,,,250,250,,,,251,251,251,250,251,250,250,250,251,251,,,,251,,251',
-'251,251,251,251,251,251,,,,,,251,251,251,251,251,251,251,,,251,,,,,',
-',251,,,251,251,251,251,251,251,251,251,,251,251,251,,251,251,,251,251',
-'251,,,,,,,,,,,,,,,,,,,,251,,,251,,,251,251,,,251,,,,,,251,,,,,,,,,251',
-',,,,251,251,251,251,,251,251,251,251,,,,,251,251,,,,252,252,252,251',
-'252,251,251,251,252,252,,,,252,,252,252,252,252,252,252,252,,,,,,252',
-'252,252,252,252,252,252,,,252,,,,,,,252,,,252,252,252,252,252,252,252',
-'252,,252,252,252,,252,252,,252,252,252,,,,,,,,,,,,,,,,,,,,252,,,252',
-',,252,252,,,252,,,,,,252,,,,,,,,,252,,,,,252,252,252,252,,252,252,252',
-'252,,,,,252,252,,,,253,253,253,252,253,252,252,252,253,253,,,,253,,253',
-'253,253,253,253,253,253,,,,,,253,253,253,253,253,253,253,,,253,,,,,',
-',253,,,253,253,253,253,253,253,253,253,,253,253,253,,253,253,,253,253',
-'253,,,,,,,,,,,,,,,,,,,,253,,,253,,,253,253,,,253,,,,,,253,,,,,,,,,253',
-',,,,253,253,253,253,,253,253,253,253,,,,,253,253,,,,254,254,254,253',
-'254,253,253,253,254,254,,,,254,,254,254,254,254,254,254,254,,,,,,254',
-'254,254,254,254,254,254,,,254,,,,,,,254,,,254,254,254,254,254,254,254',
-'254,,254,254,254,,254,254,,254,254,254,,,,,,,,,,,,,,,,,,,,254,,,254',
-',,254,254,,,254,,,,,,254,,,,,,,,,254,,,,,254,254,254,254,,254,254,254',
-'254,,,,,254,254,,,,255,255,255,254,255,254,254,254,255,255,,,,255,,255',
-'255,255,255,255,255,255,,,,,,255,255,255,255,255,255,255,,,255,,,,,',
-',255,,,255,255,255,255,255,255,255,255,,255,255,255,,255,255,,255,255',
-'255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255,255,,,255,,,,,,255,,,,,,,,,255',
-',,,,255,255,255,255,,255,255,255,255,,,,,255,255,,,,263,263,263,255',
-'263,255,255,255,263,263,,,,263,,263,263,263,263,263,263,263,,,,,,263',
-'263,263,263,263,263,263,,,263,,,,,,,263,,,263,263,263,263,263,263,263',
-'263,263,263,263,263,,263,263,,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263',
-',,263,263,,,263,,263,,263,,263,,,263,,,,,,263,,,,,263,263,263,263,,263',
-'263,263,263,,,,,263,263,,,,264,264,264,263,264,263,263,263,264,264,',
-',,264,,264,264,264,264,264,264,264,,,,,,264,264,264,264,264,264,264',
-',,264,,,,,,,264,,,264,264,264,264,264,264,264,264,264,264,264,264,,264',
-'264,,264,264,264,,,,,,,,,,,,,,,,,,,,264,,,264,,,264,264,,,264,,264,',
-'264,,264,,,264,,,,,,264,,,,,264,264,264,264,,264,264,264,264,,,,,264',
-'264,,,,272,272,272,264,272,264,264,264,272,272,,,,272,,272,272,272,272',
-'272,272,272,,,,,,272,272,272,272,272,272,272,,,272,,,,,,,272,,,272,272',
-'272,272,272,272,272,272,272,272,272,272,,272,272,,272,272,272,,,,,,',
-',,,,,,,,,,,,,272,,,272,,,272,272,,,272,,272,,272,,272,,,272,,,,,,272',
-',,,,272,272,272,272,,272,272,272,272,,,,,272,272,272,,,279,279,279,272',
-'279,272,272,272,279,279,,,,279,,279,279,279,279,279,279,279,,,,,,279',
-'279,279,279,279,279,279,,,279,,,,,,,279,,,279,279,279,279,279,279,279',
-'279,,279,279,279,,279,279,,279,279,279,,,,,,,,,,,,,,,,,,,,279,,,279',
-',,279,279,,,279,,,,,,279,,,,,,,,,279,,,,,279,279,279,279,,279,279,279',
-'279,,,,,279,279,,,,281,281,281,279,281,279,279,279,281,281,,,,281,,281',
-'281,281,281,281,281,281,,,,,,281,281,281,281,281,281,281,,,281,,,,,',
-',281,,,281,281,281,281,281,281,281,281,,281,281,281,,281,281,,281,281',
-'281,,,,,,,,,,,,,,,,,,,,281,,,281,,,281,281,,,281,,,,,,281,,,,,,,,,281',
-',,,,281,281,281,281,,281,281,281,281,,,,,281,281,,,,284,284,284,281',
-'284,281,281,281,284,284,,,,284,,284,284,284,284,284,284,284,,,,,,284',
-'284,284,284,284,284,284,,,284,,,,,,,284,,,284,284,284,284,284,284,284',
-'284,,284,284,284,,284,284,,284,284,284,,,,,,,,,,,,,,,,,,,,284,,,284',
-',,284,284,,,284,,,,,,284,,,,,,,,,284,,,,,284,284,284,284,,284,284,284',
-'284,,,,,284,284,,,,285,285,285,284,285,284,284,284,285,285,,,,285,,285',
-'285,285,285,285,285,285,,,,,,285,285,285,285,285,285,285,,,285,,,,,',
-',285,,,285,285,285,285,285,285,285,285,,285,285,285,,285,285,,285,285',
-'285,,,,,,,,,,,,,,,,,,,,285,,,285,,,285,285,,,285,,,,,,285,,,,,,,,,285',
-',,,,285,285,285,285,,285,285,285,285,,,,,285,285,,,,,,,285,,285,285',
-'285,290,290,290,290,290,,,,290,290,,,,290,,290,290,290,290,290,290,290',
-',,,,,290,290,290,290,290,290,290,,,290,,,,,,290,290,,290,290,290,290',
-'290,290,290,290,290,,290,290,290,,290,290,,290,290,290,,,,,,,,,,,,,',
-',,,,,,290,,,290,,,290,290,,,290,,290,,,,290,,,,,,,,,290,,,,,290,290',
-'290,290,,290,290,290,290,,,,,290,290,,,,298,298,298,290,298,290,290',
-'290,298,298,,,,298,,298,298,298,298,298,298,298,,,,,,298,298,298,298',
-'298,298,298,,,298,,,,,,,298,,,298,298,298,298,298,298,298,298,,298,298',
-'298,,298,298,,,,298,,,,,,,,,,,,,,,,,,,,298,,,298,,,298,298,,,298,,895',
-',895,895,895,895,895,,,,,,,,,,895,,298,298,298,298,,298,298,298,298',
-',,,,298,298,,,,298,,895,298,,298,298,298,315,315,315,,315,895,895,,315',
-'315,895,,,315,,315,315,315,315,315,315,315,,,,,,315,315,315,315,315',
-'315,315,,,315,,,,,,,315,,,315,315,315,315,315,315,315,315,,315,315,315',
-',315,315,,,,315,,,,,,,,,,,,,,,,,,,,315,,,315,,,315,315,,,315,,,,,,,',
-',,,,,,,,,,,,315,315,315,315,,315,315,315,315,,,,,315,315,,,,323,323',
-'323,315,323,315,315,315,323,323,,,,323,,323,323,323,323,323,323,323',
-',,,,,323,323,323,323,323,323,323,,,323,,,,,,,323,,,323,323,323,323,323',
-'323,323,323,,323,323,323,,323,323,,323,323,323,,,,,,,,,,,,,,,,,,,,323',
-',,323,323,,323,323,,,323,,,,,,323,,,,,,,,,323,,,,,323,323,323,323,,323',
-'323,323,323,,,,,323,323,,,,325,325,325,323,325,323,323,323,325,325,',
-',,325,,325,325,325,325,325,325,325,,,,,,325,325,325,325,325,325,325',
-',,325,,,,,,,325,,,325,325,325,325,325,325,325,325,,325,325,325,,325',
-'325,,325,325,325,,,,,,,,,,,,,,,,,,,,325,,,325,,,325,325,,,325,,,,,,325',
-',,,,,,,,325,,,,,325,325,325,325,,325,325,325,325,,,,,325,325,,,,340',
-'340,340,325,340,325,325,325,340,340,,,,340,,340,340,340,340,340,340',
-'340,,,,,,340,340,340,340,340,340,340,,,340,,,,,,,340,,,340,340,340,340',
-'340,340,340,340,,340,340,340,,340,340,,340,340,340,,,,,,,,,,,,,,,,,',
-',,340,,,340,,,340,340,,,340,,,,,,340,,,,,,,,,340,,,,,340,340,340,340',
-',340,340,340,340,,,,,340,340,,,,341,341,341,340,341,340,340,340,341',
-'341,,,,341,,341,341,341,341,341,341,341,,,,,,341,341,341,341,341,341',
-'341,,,341,,,,,,,341,,,341,341,341,341,341,341,341,341,,341,341,341,',
-'341,341,,341,341,341,,,,,,,,,,,,,,,,,,,,341,,,341,,,341,341,,,341,,',
-',,,341,,,,,,,,,341,,,,,341,341,341,341,,341,341,341,341,,,,,341,341',
-',,,360,360,360,341,360,341,341,341,360,360,,,,360,,360,360,360,360,360',
-'360,360,,,,,,360,360,360,360,360,360,360,,,360,,,,,,,360,,,360,360,360',
-'360,360,360,360,360,,360,360,360,,360,360,,360,360,360,,,,,,,,,,,,,',
-',,,,,,360,,,360,,,360,360,,,360,,,,,,360,,,,,,,,,360,,,,,360,360,360',
-'360,,360,360,360,360,,,,,360,360,,,,376,376,376,360,376,360,360,360',
-'376,376,,,,376,,376,376,376,376,376,376,376,,,,,,376,376,376,376,376',
-'376,376,,,376,,,,,,,376,,,376,376,376,376,376,376,376,376,,376,376,376',
-',376,376,,376,376,376,,,,,,,,,,,,,,,,,,,,376,,,376,,,376,376,,,376,',
-',,,,376,,,,,,,,,376,,,,,376,376,376,376,,376,376,376,376,,,,,376,376',
-',,,404,404,404,376,404,376,376,376,404,404,,,,404,,404,404,404,404,404',
-'404,404,,,,,,404,404,404,404,404,404,404,,,404,,,,,,,404,,,404,404,404',
-'404,404,404,404,404,,404,404,404,,404,404,,404,404,404,,,,,,,,,,,,,',
-',,,,,,404,,,404,,,404,404,,,404,,,,,,404,,,,,,,,,404,,,,,404,404,404',
-'404,,404,404,404,404,,,,,404,404,,,,442,442,442,404,442,404,404,404',
-'442,442,,,,442,,442,442,442,442,442,442,442,,,,,,442,442,442,442,442',
-'442,442,,,442,,,,,,,442,,,442,442,442,442,442,442,442,442,442,442,442',
-'442,,442,442,,442,442,442,,,,,,,,,,,,,,,,,,,,442,,,442,,,442,442,,,442',
-',442,,442,,442,,,442,,,,,,442,,,,,442,442,442,442,,442,442,442,442,',
-',,,442,442,,,,444,444,444,442,444,442,442,442,444,444,,,,444,,444,444',
-'444,444,444,444,444,,,,,,444,444,444,444,444,444,444,,,444,,,,,,,444',
-',,444,444,444,444,444,444,444,444,,444,444,444,,444,444,,444,444,444',
-',,,,,,,,,,,,,,,,,,,444,,,444,,,444,444,,,444,,,,,,444,,,,,,,,,444,,',
-',,444,444,444,444,,444,444,444,444,,,,,444,444,,,,445,445,445,444,445',
-'444,444,444,445,445,,,,445,,445,445,445,445,445,445,445,,,,,,445,445',
-'445,445,445,445,445,,,445,,,,,,,445,,,445,445,445,445,445,445,445,445',
-',445,445,445,,445,445,,445,445,445,,,,,,,,,,,,,,,,,,,,445,,,445,,,445',
-'445,,,445,,,,,,445,,,,,,,,,445,,,,,445,445,445,445,,445,445,445,445',
-',,,,445,445,,,,446,446,446,445,446,445,445,445,446,446,,,,446,,446,446',
-'446,446,446,446,446,,,,,,446,446,446,446,446,446,446,,,446,,,,,,,446',
-',,446,446,446,446,446,446,446,446,,446,446,446,,446,446,,446,446,446',
-',,,,,,,,,,,,,,,,,,,446,,,446,,,446,446,,,446,,,,,,446,,,,,,,,,446,,',
-',,446,446,446,446,,446,446,446,446,,,,,446,446,,,,472,472,472,446,472',
-'446,446,446,472,472,,,,472,,472,472,472,472,472,472,472,,,,,,472,472',
-'472,472,472,472,472,,,472,,,,,,,472,,,472,472,472,472,472,472,472,472',
-',472,472,472,,472,472,,472,472,472,,,,,,,,,,,,,,,,,,,,472,,,472,,,472',
-'472,,,472,,,,,,472,,,,,,,,,472,,,,,472,472,472,472,,472,472,472,472',
-',,,,472,472,,,,486,486,486,472,486,472,472,472,486,486,,,,486,,486,486',
-'486,486,486,486,486,,,,,,486,486,486,486,486,486,486,,,486,,,,,,,486',
-',,486,486,486,486,486,486,486,486,486,486,486,486,,486,486,,486,486',
-'486,,,,,,,,,,,,,,,,,,,,486,,,486,,,486,486,,,486,,486,,486,,486,,,486',
-',,,,,486,,,,,486,486,486,486,,486,486,486,486,,,,,486,486,,,,488,488',
-'488,486,488,486,486,486,488,488,,,,488,,488,488,488,488,488,488,488',
-',,,,,488,488,488,488,488,488,488,,,488,,,,,,,488,,,488,488,488,488,488',
-'488,488,488,488,488,488,488,,488,488,,488,488,488,,,,,,,,,,,,,,,,,,',
-',488,,,488,,,488,488,,,488,,,,488,,488,,,488,,,,,,488,,,,,488,488,488',
-'488,,488,488,488,488,,,,,488,488,,,,490,490,490,488,490,488,488,488',
-'490,490,,,,490,,490,490,490,490,490,490,490,,,,,,490,490,490,490,490',
-'490,490,,,490,,,,,,,490,,,490,490,490,490,490,490,490,490,,490,490,490',
-',490,490,,490,490,490,,,,,,,,,,,,,,,,,,,,490,,,490,,,490,490,,,490,',
-',,,,490,,,,,,,,,490,,,,,490,490,490,490,,490,490,490,490,,,,,490,490',
-',,,,,,490,,490,490,490,496,496,496,496,496,,,,496,496,,,,496,,496,496',
-'496,496,496,496,496,,,,,,496,496,496,496,496,496,496,,,496,,,,,,496',
-'496,496,496,496,496,496,496,496,496,496,496,,496,496,496,,496,496,,496',
-'496,496,,,,,,,,,,,,,,,,,,,,496,,,496,,,496,496,,,496,,496,,,,496,,,',
-',,,,,496,,,,,496,496,496,496,,496,496,496,496,,,,,496,496,,,,,,496,496',
-',496,496,496,504,504,504,,504,,,,504,504,,,,504,,504,504,504,504,504',
-'504,504,,,,,,504,504,504,504,504,504,504,,,504,,,,,,,504,,,504,504,504',
-'504,504,504,504,504,,504,504,504,,504,504,,,,504,,,,,,,,,,,,,,,,,,,',
-'504,,,504,,,504,504,,,504,,,,,,,,,,,,,,,,,,,,504,504,504,504,,504,504',
-'504,504,,,,,504,504,,,,506,506,506,504,506,504,504,504,506,506,,,,506',
-',506,506,506,506,506,506,506,,,,,,506,506,506,506,506,506,506,,,506',
-',,,,,,506,,,506,506,506,506,506,506,506,506,506,506,506,506,,506,506',
-',506,506,506,,,,,,,,,,,,,,,,,,,,506,,,506,,,506,506,,,506,,506,,506',
-',506,,,506,,,,,,506,,,,,506,506,506,506,,506,506,506,506,,,,,506,506',
-',,,512,512,512,506,512,506,506,506,512,512,,,,512,,512,512,512,512,512',
-'512,512,,,,,,512,512,512,512,512,512,512,,,512,,,,,,,512,,,512,512,512',
-'512,512,512,512,512,,512,512,512,,512,512,,,,512,,,,,,,,,,,,,,,,,,,',
-'512,,,512,,,512,512,,,512,,,,,,,,,,,,,,,,,,,,512,512,512,512,,512,512',
-'512,512,,,,,512,512,,,,515,515,515,512,515,512,512,512,515,515,,,,515',
-',515,515,515,515,515,515,515,,,,,,515,515,515,515,515,515,515,,,515',
-',,,,,,515,,,515,515,515,515,515,515,515,515,,515,515,515,,515,515,,515',
-'515,515,,,,,,,,,,,,,,,,,,,,515,,,515,,,515,515,,,515,,,,,,515,,,,,,',
-',,515,,,,,515,515,515,515,,515,515,515,515,,,,,515,515,,,,516,516,516',
-'515,516,515,515,515,516,516,,,,516,,516,516,516,516,516,516,516,,,,',
-',516,516,516,516,516,516,516,,,516,,,,,,,516,,,516,516,516,516,516,516',
-'516,516,,516,516,516,,516,516,,516,516,516,,,,,,,,,,,,,,,,,,,,516,,',
-'516,,,516,516,,,516,,,,,,516,,,,,,,,,516,,,,,516,516,516,516,,516,516',
-'516,516,,,,,516,516,,,,520,520,520,516,520,516,516,516,520,520,,,,520',
-',520,520,520,520,520,520,520,,,,,,520,520,520,520,520,520,520,,,520',
-',,,,,,520,,,520,520,520,520,520,520,520,520,,520,520,520,,520,520,,520',
-'520,520,,,,,,,,,,,,,,,,,,,,520,,,520,,,520,520,,,520,,,,,,520,,,,,,',
-',,520,,,,,520,520,520,520,,520,520,520,520,,,,,520,520,,,,526,526,526',
-'520,526,520,520,520,526,526,,,,526,,526,526,526,526,526,526,526,,,,',
-',526,526,526,526,526,526,526,,,526,,,,,,,526,,,526,526,526,526,526,526',
-'526,526,526,526,526,526,,526,526,,526,526,526,,,,,,,,,,,,,,,,,,,,526',
-',,526,,,526,526,,,526,,526,,,,526,,,526,,,,,,526,,,,,526,526,526,526',
-',526,526,526,526,,,,,526,526,,,,529,529,529,526,529,526,526,526,529',
-'529,,,,529,,529,529,529,529,529,529,529,,,,,,529,529,529,529,529,529',
-'529,,,529,,,,,,,529,,,529,529,529,529,529,529,529,529,529,529,529,529',
-',529,529,,529,529,529,,,,,,,,,,,,,,,,,,,,529,,,529,,,529,529,,,529,',
-',,,,529,,,529,,,,,,529,,,,,529,529,529,529,,529,529,529,529,,,,,529',
-'529,,,,554,554,554,529,554,529,529,529,554,554,,,,554,,554,554,554,554',
-'554,554,554,,,,,,554,554,554,554,554,554,554,,,554,,,,,,,554,,,554,554',
-'554,554,554,554,554,554,,554,554,554,,554,554,,554,554,554,,,,,,,,,',
-',,,,,,,,,,554,,,554,,,554,554,,,554,,,,,,554,,,,,,,,,554,,,,,554,554',
-'554,554,,554,554,554,554,,,,,554,554,,,,574,574,574,554,574,554,554',
-'554,574,574,,,,574,,574,574,574,574,574,574,574,,,,,,574,574,574,574',
-'574,574,574,,,574,,,,,,,574,,,574,574,574,574,574,574,574,574,,574,574',
-'574,,574,574,,574,574,574,,,,,,,,,,,,,,,,,,,,574,,,574,,,574,574,,,574',
-',574,,,,574,,,,,,,,,574,,,,,574,574,574,574,,574,574,574,574,,,,,574',
-'574,,,,575,575,575,574,575,574,574,574,575,575,,,,575,,575,575,575,575',
-'575,575,575,,,,,,575,575,575,575,575,575,575,,,575,,,,,,,575,,,575,575',
-'575,575,575,575,575,575,575,575,575,575,,575,575,,575,575,575,,,,,,',
-',,,,,,,,,,,,,575,,,575,,,575,575,,,575,,575,,575,,575,,,575,,,,,,575',
-',,,,575,575,575,575,,575,575,575,575,,,,,575,575,,,,585,585,585,575',
-'585,575,575,575,585,585,,,,585,,585,585,585,585,585,585,585,,,,,,585',
-'585,585,585,585,585,585,,,585,,,,,,,585,,,585,585,585,585,585,585,585',
-'585,585,585,585,585,,585,585,,585,585,585,,,,,,,,,,,,,,,,,,,,585,,,585',
-',,585,585,,,585,,585,,585,,585,,,585,,,,,,585,,,,,585,585,585,585,,585',
-'585,585,585,,,,,585,585,,,,619,619,619,585,619,585,585,585,619,619,',
-',,619,,619,619,619,619,619,619,619,,,,,,619,619,619,619,619,619,619',
-',,619,,,,,,,619,,,619,619,619,619,619,619,619,619,,619,619,619,,619',
-'619,,619,619,619,,,,,,,,,,,,,,,,,,,,619,,,619,,,619,619,,,619,,619,',
-',,619,,,,,,,,,619,,,,,619,619,619,619,,619,619,619,619,,,,,619,619,',
-',,620,620,620,619,620,619,619,619,620,620,,,,620,,620,620,620,620,620',
-'620,620,,,,,,620,620,620,620,620,620,620,,,620,,,,,,,620,,,620,620,620',
-'620,620,620,620,620,,620,620,620,,620,620,,620,620,620,,,,,,,,,,,,,',
-',,,,,,620,,,620,,,620,620,,,620,,,,,,620,,,,,,,,,620,,,,,620,620,620',
-'620,,620,620,620,620,,,,,620,620,,,,623,623,623,620,623,620,620,620',
-'623,623,,,,623,,623,623,623,623,623,623,623,,,,,,623,623,623,623,623',
-'623,623,,,623,,,,,,,623,,,623,623,623,623,623,623,623,623,623,623,623',
-'623,,623,623,,623,623,623,,,,,,,,,,,,,,,,,,,,623,,,623,,,623,623,,,623',
-',623,,623,,623,,,623,,,,,,623,,,,,623,623,623,623,,623,623,623,623,',
-',,,623,623,,,,624,624,624,623,624,623,623,623,624,624,,,,624,,624,624',
-'624,624,624,624,624,,,,,,624,624,624,624,624,624,624,,,624,,,,,,,624',
-',,624,624,624,624,624,624,624,624,624,624,624,624,,624,624,,624,624',
-'624,,,,,,,,,,,,,,,,,,,,624,,,624,,,624,624,,,624,,,,624,,624,,,624,',
-',,,,624,,,,,624,624,624,624,,624,624,624,624,,,,,624,624,,,,625,625',
-'625,624,625,624,624,624,625,625,,,,625,,625,625,625,625,625,625,625',
-',,,,,625,625,625,625,625,625,625,,,625,,,,,,,625,,,625,625,625,625,625',
-'625,625,625,,625,625,625,,625,625,,625,625,625,,,,,,,,,,,,,,,,,,,,625',
-',,625,,,625,625,,,625,,,,,,625,,,,,,,,,625,,,,,625,625,625,625,,625',
-'625,625,625,,,,,625,625,,,,626,626,626,625,626,625,625,625,626,626,',
-',,626,,626,626,626,626,626,626,626,,,,,,626,626,626,626,626,626,626',
-',,626,,,,,,,626,,,626,626,626,626,626,626,626,626,,626,626,626,,626',
-'626,,626,626,626,,,,,,,,,,,,,,,,,,,,626,,,626,,,626,626,,,626,,,,,,626',
-',,,,,,,,626,,,,,626,626,626,626,,626,626,626,626,,,,,626,626,,,,630',
-'630,630,626,630,626,626,626,630,630,,,,630,,630,630,630,630,630,630',
-'630,,,,,,630,630,630,630,630,630,630,,,630,,,,,,,630,,,630,630,630,630',
-'630,630,630,630,,630,630,630,,630,630,,630,630,630,,,,,,,,,,,,,,,,,',
-',,630,,,630,,,630,630,,,630,,,,,,630,,,,,,,,,630,,,,,630,630,630,630',
-',630,630,630,630,,,,,630,630,,,,631,631,631,630,631,630,630,630,631',
-'631,,,,631,,631,631,631,631,631,631,631,,,,,,631,631,631,631,631,631',
-'631,,,631,,,,,,,631,,,631,631,631,631,631,631,631,631,,631,631,631,',
-'631,631,,631,631,631,,,,,,,,,,,,,,,,,,,,631,,,631,,,631,631,,,631,,',
-',,,631,,,,,,,,,631,,,,,631,631,631,631,,631,631,631,631,,,,,631,631',
-',,,634,634,634,631,634,631,631,631,634,634,,,,634,,634,634,634,634,634',
-'634,634,,,,,,634,634,634,634,634,634,634,,,634,,,,,,,634,,,634,634,634',
-'634,634,634,634,634,,634,634,634,,634,634,,634,634,634,,,,,,,,,,,,,',
-',,,,,,634,,,634,,,634,634,,,634,,,,,,634,,,,,,,,,634,,,,,634,634,634',
-'634,,634,634,634,634,,,,,634,634,,,,635,635,635,634,635,634,634,634',
-'635,635,,,,635,,635,635,635,635,635,635,635,,,,,,635,635,635,635,635',
-'635,635,,,635,,,,,,,635,,,635,635,635,635,635,635,635,635,,635,635,635',
-',635,635,,635,635,635,,,,,,,,,,,,,,,,,,,,635,,,635,,,635,635,,,635,',
-',,,,635,,,,,,,,,635,,,,,635,635,635,635,,635,635,635,635,,,,,635,635',
-',,,659,659,659,635,659,635,635,635,659,659,,,,659,,659,659,659,659,659',
-'659,659,,,,,,659,659,659,659,659,659,659,,,659,,,,,,,659,,,659,659,659',
-'659,659,659,659,659,,659,659,659,,659,659,,659,659,659,,,,,,,,,,,,,',
-',,,,,,659,,,659,,,659,659,,,659,,,,,,659,,,,,,,,,659,,,,,659,659,659',
-'659,,659,659,659,659,,,,,659,659,,,,662,662,662,659,662,659,659,659',
-'662,662,,,,662,,662,662,662,662,662,662,662,,,,,,662,662,662,662,662',
-'662,662,,,662,,,,,,,662,,,662,662,662,662,662,662,662,662,,662,662,662',
-',662,662,,662,662,662,,,,,,,,,,,,,,,,,,,,662,,,662,,,662,662,,,662,',
-',,,,662,,,,,,,,,662,,,,,662,662,662,662,,662,662,662,662,,,,,662,662',
-',,,666,666,666,662,666,662,662,662,666,666,,,,666,,666,666,666,666,666',
-'666,666,,,,,,666,666,666,666,666,666,666,,,666,,,,,,,666,,,666,666,666',
-'666,666,666,666,666,,666,666,666,,666,666,,,,666,,,,,,,,,,,,,,,,,,,',
-'666,,,666,,,666,666,,,666,,,,,,,,,,,,,,,,,,,,666,666,666,666,,666,666',
-'666,666,,,,,666,666,,,,677,677,677,666,677,666,666,666,677,677,,,,677',
-',677,677,677,677,677,677,677,,,,,,677,677,677,677,677,677,677,,,677',
-',,,,,,677,,,677,677,677,677,677,677,677,677,,677,677,677,,677,677,,',
-',677,,,,,,,,,,,,,,,,,,,,677,,,677,,,677,677,,,677,,,,,,,,,,,,,,,,,,',
-',677,677,677,677,,677,677,677,677,,,,,677,677,,,,682,682,682,677,682',
-'677,677,677,682,682,,,,682,,682,682,682,682,682,682,682,,,,,,682,682',
-'682,682,682,682,682,,,682,,,,,,,682,,,682,682,682,682,682,682,682,682',
-',682,682,682,,682,682,,682,682,682,,,,,,,,,,,,,,,,,,,,682,,,682,,,682',
-'682,,,682,,682,,,,682,,,,,,,,,682,,,,,682,682,682,682,,682,682,682,682',
-',,,,682,682,,,,699,699,699,682,699,682,682,682,699,699,,,,699,,699,699',
-'699,699,699,699,699,,,,,,699,699,699,699,699,699,699,,,699,,,,,,,699',
-',,699,699,699,699,699,699,699,699,,699,699,699,,699,699,,699,699,699',
-',,,,,,,,,,,,,,,,,,,699,,,699,,,699,699,,,699,,,,,,699,,,,,,,,,699,,',
-',,699,699,699,699,,699,699,699,699,,,,,699,699,,,,725,725,725,699,725',
-'699,699,699,725,725,,,,725,,725,725,725,725,725,725,725,,,,,,725,725',
-'725,725,725,725,725,,,725,,,,,,,725,,,725,725,725,725,725,725,725,725',
-',725,725,725,,725,725,,725,725,725,,,,,,,,,,,,,,,,,,,,725,,,725,,,725',
-'725,,,725,,,,,,725,,,,,,,,,725,,,,,725,725,725,725,,725,725,725,725',
-',,,,725,725,,,,731,731,731,725,731,725,725,725,731,731,,,,731,,731,731',
-'731,731,731,731,731,,,,,,731,731,731,731,731,731,731,,,731,,,,,,,731',
-',,731,731,731,731,731,731,731,731,,731,731,731,,731,731,,731,731,731',
-',,,,,,,,,,,,,,,,,,,731,,,731,,,731,731,,,731,,,,,,731,,,,,,,,,731,,',
-',,731,731,731,731,,731,731,731,731,,,,,731,731,,,,754,754,754,731,754',
-'731,731,731,754,754,,,,754,,754,754,754,754,754,754,754,,,,,,754,754',
-'754,754,754,754,754,,,754,,,,,,,754,,,754,754,754,754,754,754,754,754',
-',754,754,754,,754,754,,754,754,754,,,,,,,,,,,,,,,,,,,,754,,,754,,,754',
-'754,,,754,,,,,,754,,,,,,,,,754,,,,,754,754,754,754,,754,754,754,754',
-',,,,754,754,,,,756,756,756,754,756,754,754,754,756,756,,,,756,,756,756',
-'756,756,756,756,756,,,,,,756,756,756,756,756,756,756,,,756,,,,,,,756',
-',,756,756,756,756,756,756,756,756,,756,756,756,,756,756,,756,756,756',
-',,,,,,,,,,,,,,,,,,,756,,,756,,,756,756,,,756,,,,,,756,,,,,,,,,756,,',
-',,756,756,756,756,,756,756,756,756,,,,,756,756,,,,770,770,770,756,770',
-'756,756,756,770,770,,,,770,,770,770,770,770,770,770,770,,,,,,770,770',
-'770,770,770,770,770,,,770,,,,,,,770,,,770,770,770,770,770,770,770,770',
-',770,770,770,,770,770,,770,770,770,,,,,,,,,,,,,,,,,,,,770,,,770,,,770',
-'770,,,770,,,,,,770,,,,,,,,,770,,,,,770,770,770,770,,770,770,770,770',
-',,,,770,770,,,,771,771,771,770,771,770,770,770,771,771,,,,771,,771,771',
-'771,771,771,771,771,,,,,,771,771,771,771,771,771,771,,,771,,,,,,,771',
-',,771,771,771,771,771,771,771,771,,771,771,771,,771,771,,771,771,771',
-',,,,,,,,,,,,,,,,,,,771,,,771,,,771,771,,,771,,,,,,771,,,,,,,,,771,,',
-',,771,771,771,771,,771,771,771,771,,,,,771,771,,,,772,772,772,771,772',
-'771,771,771,772,772,,,,772,,772,772,772,772,772,772,772,,,,,,772,772',
-'772,772,772,772,772,,,772,,,,,,,772,,,772,772,772,772,772,772,772,772',
-',772,772,772,,772,772,,772,772,772,,,,,,,,,,,,,,,,,,,,772,,,772,,,772',
-'772,,,772,,,,,,772,,,,,,,,,772,,,,,772,772,772,772,,772,772,772,772',
-',,,,772,772,,,,773,773,773,772,773,772,772,772,773,773,,,,773,,773,773',
-'773,773,773,773,773,,,,,,773,773,773,773,773,773,773,,,773,,,,,,,773',
-',,773,773,773,773,773,773,773,773,,773,773,773,,773,773,,773,773,773',
-',,,,,,,,,,,,,,,,,,,773,,,773,,,773,773,,,773,,,,,,773,,,,,,,,,773,,',
-',,773,773,773,773,,773,773,773,773,,,,,773,773,,,,787,787,787,773,787',
-'773,773,773,787,787,,,,787,,787,787,787,787,787,787,787,,,,,,787,787',
-'787,787,787,787,787,,,787,,,,,,,787,,,787,787,787,787,787,787,787,787',
-',787,787,787,,787,787,,,,787,,,,,,,,,,,,,,,,,,,,787,,,787,,,787,787',
-',,787,,,,,,,,,,,,,,,,,,,,787,787,787,787,,787,787,787,787,,,,,787,787',
-',,,837,837,837,787,837,787,787,787,837,837,,,,837,,837,837,837,837,837',
-'837,837,,,,,,837,837,837,837,837,837,837,,,837,,,,,,,837,,,837,837,837',
-'837,837,837,837,837,,837,837,837,,837,837,,837,837,837,,,,,,,,,,,,,',
-',,,,,,837,,,837,,,837,837,,,837,,,,,,837,,,,,,,,,837,,,,,837,837,837',
-'837,,837,837,837,837,,,,,837,837,,,,842,842,842,837,842,837,837,837',
-'842,842,,,,842,,842,842,842,842,842,842,842,,,,,,842,842,842,842,842',
-'842,842,,,842,,,,,,,842,,,842,842,842,842,842,842,842,842,,842,842,842',
-',842,842,,842,842,842,,,,,,,,,,,,,,,,,,,,842,,,842,,,842,842,,,842,',
-'842,,,,842,,,,,,,,,842,,,,,842,842,842,842,,842,842,842,842,,,,,842',
-'842,,,,859,859,859,842,859,842,842,842,859,859,,,,859,,859,859,859,859',
-'859,859,859,,,,,,859,859,859,859,859,859,859,,,859,,,,,,,859,,,859,859',
-'859,859,859,859,859,859,859,859,859,859,,859,859,,859,859,859,,,,,,',
-',,,,,,,,,,,,,859,,,859,,,859,859,,,859,,,,859,,859,,,859,,,,,,859,,',
-',,859,859,859,859,,859,859,859,859,,,,,859,859,,,,860,860,860,859,860',
-'859,859,859,860,860,,,,860,,860,860,860,860,860,860,860,,,,,,860,860',
-'860,860,860,860,860,,,860,,,,,,,860,,,860,860,860,860,860,860,860,860',
-',860,860,860,,860,860,,860,860,860,,,,,,,,,,,,,,,,,,,,860,,,860,,,860',
-'860,,,860,,,,,,860,,,,,,,,,860,,,,,860,860,860,860,,860,860,860,860',
-',,,,860,860,,,,874,874,874,860,874,860,860,860,874,874,,,,874,,874,874',
-'874,874,874,874,874,,,,,,874,874,874,874,874,874,874,,,874,,,,,,,874',
-',,874,874,874,874,874,874,874,874,,874,874,874,,874,874,,,,874,,,,,',
-',,,,,,,,,,,,,,874,,,874,,,874,874,,,874,,,,,,,,,,,,,,,,,,,,874,874,874',
-'874,,874,874,874,874,,,,,874,874,,,,886,886,886,874,886,874,874,874',
-'886,886,,,,886,,886,886,886,886,886,886,886,,,,,,886,886,886,886,886',
-'886,886,,,886,,,,,,,886,,,886,886,886,886,886,886,886,886,,886,886,886',
-',886,886,,,,886,,,,,,,,,,,,,,,,,,,,886,,,886,,,886,886,,,886,,,,,,,',
-',,,,,,,,,,,,886,886,886,886,,886,886,886,886,,,,,886,886,,,,923,923',
-'923,886,923,886,886,886,923,923,,,,923,,923,923,923,923,923,923,923',
-',,,,,923,923,923,923,923,923,923,,,923,,,,,,,923,,,923,923,923,923,923',
-'923,923,923,,923,923,923,,923,923,,923,923,923,,,,,,,,,,,,,,,,,,,,923',
-',,923,,,923,923,,,923,,,,,,923,,,,,,,,,923,,,,,923,923,923,923,,923',
-'923,923,923,,,,,923,923,,,,985,985,985,923,985,923,923,923,985,985,',
-',,985,,985,985,985,985,985,985,985,,,,,,985,985,985,985,985,985,985',
-',,985,,,,,,,985,,,985,985,985,985,985,985,985,985,985,985,985,985,,985',
-'985,,985,985,985,,,,,,,,,,,,,,,,,,,,985,,,985,,,985,985,,,985,,985,',
-'985,,985,,,985,,,,,,985,,,,,985,985,985,985,,985,985,985,985,,,,,985',
-'985,,,,,56,,985,,985,985,985,56,56,56,,,56,56,56,,56,,,,,,,,,,56,56',
-'56,,,,,,,,56,56,,56,56,56,56,56,,,,,,,,,,,,,,,,,,,,,,,,56,56,56,56,56',
-'56,56,56,56,56,56,56,56,56,,,56,56,56,,,56,,,56,,,56,56,,56,,56,,56',
-',56,56,,56,56,56,56,56,,56,,56,,,,,,,,,,,,,,56,,,56,56,56,56,424,56',
-',56,,,,424,424,424,,,424,424,424,,424,,,,,,,,,424,424,424,424,,,,,,',
-',424,424,,424,424,424,424,424,,,,,,,,,,,,,,,,,,,,,,,,424,424,424,424',
-'424,424,424,424,424,424,424,424,424,424,,,424,424,424,,,424,,,424,,',
-'424,424,,424,,424,,424,,424,424,,424,424,424,424,424,,424,424,424,,',
-',,,,,,,,,,,424,,,424,424,424,424,425,424,,424,,,,425,425,425,,,425,425',
-'425,,425,,,,,,,,,425,425,425,425,,,,,,,,425,425,,425,425,425,425,425',
-',,,,,,,,,,,,,,,,,,,,,,,425,425,425,425,425,425,425,425,425,425,425,425',
-'425,425,,,425,425,425,,,425,,,425,,,425,425,,425,,425,,425,,425,425',
-',425,425,425,425,425,,425,425,425,,,,,,,,,,,,,,425,,,425,425,425,425',
-'27,425,,425,,,,27,27,27,,,27,27,27,,27,,,,,,,,,27,27,27,,,,,,,,,27,27',
-',27,27,27,27,27,,,,,,,,,,,,,,,,,,,,,,,,27,27,27,27,27,27,27,27,27,27',
-'27,27,27,27,,,27,27,27,,,27,,27,27,,,27,27,,27,,27,,27,,27,27,,27,27',
-'27,27,27,28,27,27,27,,,,28,28,28,,,28,28,28,,28,27,,,27,27,,27,,27,28',
-'28,,,,,,,,,28,28,,28,28,28,28,28,,,,,,,,,,,,,,,,,,,,,,,,28,28,28,28',
-'28,28,28,28,28,28,28,28,28,28,,,28,28,28,,,28,,28,28,,,28,28,,28,,28',
-',28,,28,28,,28,28,28,28,28,,28,415,28,,,,,,415,415,415,,,415,415,415',
-'28,415,,28,28,,28,,28,,415,415,415,,,,,,,,,415,415,,415,415,415,415',
-'415,,,,,,,,,,,,,,,,,,,,,,,,415,415,415,415,415,415,415,415,415,415,415',
-'415,415,415,,,415,415,415,,,415,,415,415,,,415,415,,415,,415,,415,,415',
-'415,,415,415,415,415,415,,415,415,415,,,,,,,,,,,,,,415,,474,415,415',
-',415,,415,474,474,474,,,474,474,474,646,474,646,646,646,646,646,,,,474',
-'474,,,,,646,,,,,474,474,,474,474,474,474,474,,,,,,,,,,646,336,,336,336',
-'336,336,336,,646,646,646,646,,,,646,336,534,,534,534,534,534,534,474',
-',,,,,,474,,534,,,474,474,336,336,,646,,,,,,336,336,336,336,,,,336,534',
-',,,474,474,,,,534,534,534,534,,,,534,,,474,,,474,,,,,474,8,8,8,8,8,8',
-'8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,,,,8,8,8,8,8,8,8,8,8,8,,,,,,8,8',
-'8,8,8,8,8,8,8,8,,8,,,,,,,,,8,8,,8,8,8,8,8,8,8,,,8,8,,,,8,8,8,8,,,,,',
-',,,,,,,,8,8,,8,8,8,8,8,8,8,8,8,8,8,8,,,8,8,,,,,,,,,,,,,,8,9,9,9,9,9',
-'9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,,,,9,9,9,9,9,9,9,9,9,9,,,,,,9',
-'9,9,9,9,9,9,9,9,,,9,,,,,,,,,9,9,,9,9,9,9,9,9,9,,,9,9,,,,9,9,9,9,,,,',
-',,,,,,,,,9,9,,9,9,9,9,9,9,9,9,9,9,9,9,,,9,9,,,,,,,,,,,,,,9,395,395,395',
-'395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395',
-'395,395,395,395,,,,395,395,395,395,395,395,395,395,395,395,,,,,,395',
-'395,395,395,395,395,395,395,395,,,395,,,,,,,,,395,395,,395,395,395,395',
-'395,395,395,,,395,395,,,,395,395,395,395,,,,,,,,,,,,,,395,395,,395,395',
-'395,395,395,395,395,395,395,395,395,395,,,395,395,,,,,,,,,,,,,,395,616',
-'616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616',
-'616,616,616,616,616,616,,,,616,616,616,616,616,616,616,616,616,616,',
-',,,,616,616,616,616,616,616,616,616,616,,,616,,,,,,,,,616,616,,616,616',
-'616,616,616,616,616,,,616,616,,,,616,616,616,616,,,,,,,,,,,,,,616,616',
-',616,616,616,616,616,616,616,616,616,616,616,616,,,616,616,,,,,,,,,',
-',,,,616,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71',
-'71,71,71,71,,,,71,71,71,71,71,71,71,71,71,71,,,,,,71,71,71,71,71,71',
-'71,71,71,71,71,71,,71,,,,,,,71,71,,71,71,71,71,71,71,71,,,71,71,,,,71',
-'71,71,71,,,,,,71,,,,,,,,71,71,,71,71,71,71,71,71,71,71,71,71,71,71,',
-',71,738,738,738,738,738,738,738,738,738,738,738,738,738,738,738,738',
-'738,738,738,738,738,738,738,738,,,,738,738,738,738,738,738,738,738,738',
-'738,,,,,,738,738,738,738,738,738,738,738,738,,,738,,,,,,,,,738,738,',
-'738,738,738,738,738,738,738,,,738,738,,,,738,738,738,738,,,,,,,,,,,',
-',,738,738,,738,738,738,738,738,738,738,738,738,738,738,738,210,210,738',
-',210,,,,,,,,,210,210,,210,210,210,210,210,210,210,,,210,210,,,,210,210',
-'210,210,,,,,,210,,,,,,,,210,210,,210,210,210,210,210,210,210,210,210',
-'210,210,210,211,211,210,,211,,,,,,,,,211,211,,211,211,211,211,211,211',
-'211,,,211,211,,,,211,211,211,211,,,,,,211,,,,,,,,211,211,,211,211,211',
-'211,211,211,211,211,211,211,211,211,259,259,211,,259,,,,,,,,,259,259',
-',259,259,259,259,259,259,259,,,259,259,,,,259,259,259,259,,,,,,,,,,',
-',,,259,259,,259,259,259,259,259,259,259,259,259,259,259,259,440,440',
-'259,,440,,,,,,,,,440,440,,440,440,440,440,440,440,440,,,440,440,,,,440',
-'440,440,440,,,,,,440,,,,,,,,440,440,,440,440,440,440,440,440,440,440',
-'440,440,440,440,441,441,440,,441,,,,,,,,,441,441,,441,441,441,441,441',
-'441,441,,,441,441,,,,441,441,441,441,,,,,,441,,,,,,,,441,441,,441,441',
-'441,441,441,441,441,441,441,441,441,441,507,507,441,,507,,,,,,,,,507',
-'507,,507,507,507,507,507,507,507,,,507,507,,,,507,507,507,507,,,,,,507',
-',,,,,,,507,507,,507,507,507,507,507,507,507,507,507,507,507,507,508',
-'508,507,,508,,,,,,,,,508,508,,508,508,508,508,508,508,508,,,508,508',
-',,,508,508,508,508,,,,,,508,,,,,,,,508,508,,508,508,508,508,508,508',
-'508,508,508,508,508,508,517,517,508,,517,,,,,,,,,517,517,,517,517,517',
-'517,517,517,517,,,517,517,,,,517,517,517,517,,,,,,517,,,,,,,,517,517',
-',517,517,517,517,517,517,517,517,517,517,517,517,518,518,517,,518,,',
-',,,,,,518,518,,518,518,518,518,518,518,518,,,518,518,,,,518,518,518',
-'518,,,,,,518,,,,,,,,518,518,,518,518,518,518,518,518,518,518,518,518',
-'518,518,576,576,518,,576,,,,,,,,,576,576,,576,576,576,576,576,576,576',
-',,576,576,,,,576,576,576,576,,,,,,576,,,,,,,,576,576,,576,576,576,576',
-'576,576,576,576,576,576,576,576,577,577,576,,577,,,,,,,,,577,577,,577',
-'577,577,577,577,577,577,,,577,577,,,,577,577,577,577,,,,,,577,,,,,,',
-',577,577,,577,577,577,577,577,577,577,577,577,577,577,577,583,583,577',
-',583,,,,,,,,,583,583,,583,583,583,583,583,583,583,,,583,583,,,,583,583',
-'583,583,,,,,,583,,,,,,,,583,583,,583,583,583,583,583,583,583,583,583',
-'583,583,583,584,584,583,,584,,,,,,,,,584,584,,584,584,584,584,584,584',
-'584,,,584,584,,,,584,584,584,584,,,,,,584,,,,,,,,584,584,,584,584,584',
-'584,584,584,584,584,584,584,584,584,939,939,584,,939,,,,,,,,,939,939',
-',939,939,939,939,939,939,939,,,939,939,,,,939,939,939,939,,,,,,939,',
-',,,,,,939,939,,939,939,939,939,939,939,939,939,939,939,939,939,986,986',
-'939,,986,,,,,,,,,986,986,,986,986,986,986,986,986,986,,,986,986,,,,986',
-'986,986,986,,,,,,986,,,,,,,,986,986,,986,986,986,986,986,986,986,986',
-'986,986,986,986,987,987,986,,987,,,,,,,,,987,987,,987,987,987,987,987',
-'987,987,,,987,987,,,,987,987,987,987,,,,,,987,,,,,,,,987,987,,987,987',
-'987,987,987,987,987,987,987,987,987,987,,693,987,693,693,693,693,693',
-',695,,695,695,695,695,695,,693,,,,,,,736,695,736,736,736,736,736,,,',
-',,,,,693,736,,,,,,,695,693,693,693,693,,,,693,695,695,695,695,,,736',
-'695,737,,737,737,737,737,737,736,736,736,736,,,,736,865,737,865,865',
-'865,865,865,,867,,867,867,867,867,867,,865,,,,,,,737,867,893,,893,893',
-'893,893,893,737,737,737,737,,,865,737,,893,,,,,867,865,865,865,865,',
-',,865,867,867,867,867,,,,867,893,897,,897,897,897,897,897,,893,893,893',
-'893,,,,893,897,899,,899,899,899,899,899,,971,,971,971,971,971,971,,899',
-',,,,897,,973,971,973,973,973,973,973,,,897,897,,,,897,899,973,,,,,,',
-'971,,,899,899,,,,899,971,971,971,971,,,973,971,975,,975,975,975,975',
-'975,,,973,973,,,,973,977,975,977,977,977,977,977,,989,,989,989,989,989',
-'989,1015,977,1015,1015,1015,1015,1015,,975,989,,,,,,,1015,,,975,975',
-',,977,975,,,,,,,989,,,977,977,,,1015,977,,,989,989,,,,989,,1015,1015',
-',,,1015' ]
- racc_action_check = arr = ::Array.new(25292, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-racc_action_pointer = [
- 750, 47, nil, 123, nil, 5120, 1299, -62, 23249, 23378,
- -21, nil, -43, 71, 533, -41, 34, -4, nil, -72,
- 5252, 1173, 168, nil, 157, nil, 6, 22760, 22871, 5384,
- 5516, 5648, nil, 891, 5780, 5912, nil, 71, 227, 254,
- 154, 228, 6052, 6184, 6316, 95, 544, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 22355, nil, -71, 6448,
- 6580, -23, nil, 6712, 6844, nil, nil, 6976, 7116, 7248,
- 7380, 23765, nil, nil, nil, nil, nil, 470, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 0, nil, nil, 113, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 262,
- nil, 7520, nil, nil, nil, nil, 7660, 7792, 7924, 8056,
- 8196, 1032, nil, 220, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 141, nil, 1173, 8328, 8460, 8592,
- 23941, 24003, 8724, 8856, 8988, 9120, 9252, 9384, nil, nil,
- 546, -77, -62, 233, 131, 196, 256, nil, 9516, 1314,
- 273, 9648, 9780, 9912, 10044, 10176, 10308, 10440, 10572, 10704,
- 10836, 10968, 11100, 11232, 11364, 11496, 11628, 11760, 11892, 12024,
- 12156, 12288, 12420, 12552, 12684, 12816, nil, nil, nil, 24065,
- nil, nil, 275, 12948, 13080, nil, nil, nil, nil, nil,
- nil, nil, 13212, nil, 1314, nil, 262, 314, nil, 13344,
- 366, 13476, nil, nil, 13608, 13740, nil, nil, 296, nil,
- 13880, 1440, 368, 362, 1455, 384, 444, 418, 14012, 1596,
- 578, 615, 681, 505, 750, nil, 478, 439, 33, nil,
- nil, nil, 501, 258, 478, 14152, nil, 299, 561, 753,
- nil, 569, nil, 14284, 1737, 14416, 528, nil, 105, 259,
- 571, 585, 454, 619, nil, nil, 23117, 488, -1, 26,
- 14548, 14680, 458, 706, 596, -23, -19, 792, 691, -18,
- 724, nil, nil, 227, 281, -34, nil, 822, nil, 34,
- 14812, nil, nil, nil, 264, 409, 448, 451, 478, 508,
- 512, 532, 554, nil, 567, nil, 14944, nil, 275, 335,
- 363, 375, 392, -45, -41, 395, nil, nil, nil, nil,
- nil, nil, nil, nil, 643, 23507, nil, nil, nil, nil,
- 650, nil, nil, 642, 15076, 644, nil, nil, 891, 658,
- nil, 672, 676, 332, 342, 22984, nil, nil, nil, 224,
- 337, 723, nil, nil, 22490, 22625, nil, 1455, nil, 689,
- nil, nil, 750, nil, nil, nil, nil, -33, nil, 746,
- 24127, 24189, 15208, 239, 15340, 15472, 15604, 3147, 3288, 538,
- 659, 778, 783, 788, 798, 5120, 5252, 5384, 3429, 3570,
- 3711, 3852, 3993, 4134, 4275, 4416, 4557, 4698, 621, 630,
- 4839, 4980, 15736, -46, 23114, nil, nil, nil, nil, 747,
- nil, 159, 279, 750, nil, nil, 15868, nil, 16000, nil,
- 16132, nil, 332, nil, nil, nil, 16272, 1455, 1878, 752,
- 751, nil, nil, 754, 16412, 767, 16544, 24251, 24313, 891,
- 809, nil, 16676, 769, nil, 16808, 16940, 24375, 24437, 1596,
- 17072, 897, 896, 694, 824, nil, 17204, nil, nil, 17336,
- nil, nil, nil, nil, 23134, nil, 783, 784, nil, 785,
- 793, 794, nil, nil, nil, nil, nil, nil, nil, nil,
- 787, 477, nil, nil, 17468, nil, nil, nil, 880, nil,
- nil, nil, 881, nil, nil, 882, 2019, 935, nil, 2160,
- 63, 119, 935, 945, 17600, 17732, 24499, 24561, 10, nil,
- nil, 894, nil, 24623, 24685, 17864, nil, nil, nil, 587,
- 193, 2301, 883, nil, -14, nil, nil, nil, 733, nil,
- nil, nil, 858, nil, nil, 151, nil, 222, nil, nil,
- 846, nil, 847, nil, nil, nil, 23636, nil, 852, 17996,
- 18128, 380, 896, 18260, 18392, 18524, 18656, 899, nil, nil,
- 18788, 18920, 907, nil, 19052, 19184, nil, nil, 350, 416,
- 470, 607, 874, 1032, 1737, nil, 23078, nil, 2442, 979,
- 5, 316, nil, 2583, 2724, nil, 882, nil, 929, 19316,
- nil, nil, 19448, nil, 905, -81, 19580, 888, nil, 893,
- 137, 179, 935, 340, 1032, 936, 895, 19712, 1878, 972,
- 20, 1026, 19844, nil, 913, nil, 539, 21, 914, 495,
- nil, nil, 740, 24934, nil, 24942, nil, 5959, nil, 19976,
- nil, 607, nil, 912, 230, 925, nil, nil, nil, nil,
- 850, nil, 1044, nil, nil, nil, nil, 1050, nil, 32,
- 929, 26, 41, 123, 182, 20108, 414, 1173, nil, 937,
- 2865, 20240, nil, nil, 1060, 3006, 24957, 24997, 23879, nil,
- nil, nil, nil, nil, nil, 3147, nil, nil, nil, nil,
- nil, nil, nil, 937, 20372, 2019, 20504, nil, 938, nil,
- 2160, nil, 2301, nil, nil, 2442, nil, 2583, nil, 2724,
- 20636, 20768, 20900, 21032, 429, 940, 940, 954, nil, 958,
- 961, 980, nil, 1009, 992, 991, 989, 21164, nil, nil,
- 1128, nil, nil, 3288, 1031, 1137, nil, nil, nil, nil,
- 1013, 378, nil, nil, 1149, nil, 3429, 1024, 1072, nil,
- nil, 1072, nil, nil, 3570, 3711, 1074, 1032, nil, nil,
- nil, 1033, 1036, nil, 1046, 1047, nil, 1051, nil, nil,
- 1055, 614, 1053, 600, nil, 1188, nil, 21296, 1190, 3852,
- 3993, nil, 21428, 4134, 81, 122, nil, 1191, 611, 4275,
- nil, 1192, 1078, 613, nil, 1087, 1095, nil, 2865, 21560,
- 21692, nil, 525, nil, nil, 25012, nil, 25020, nil, 7427,
- nil, nil, 1123, 1159, 21824, 933, 1181, nil, 1141, nil,
- nil, nil, 4416, nil, nil, 33, 21956, nil, nil, 1146,
- 1255, nil, nil, 25037, nil, 14059, nil, 25076, nil, 25093,
- nil, nil, nil, nil, 330, 3415, 1134, nil, 36, nil,
- 1264, 1269, nil, 47, nil, nil, nil, 1277, nil, nil,
- nil, 1197, nil, 22088, 1154, nil, nil, 1164, 1165, 1167,
- 1170, nil, 1172, nil, 643, nil, nil, nil, 963, 24747,
- nil, nil, nil, 4557, 1035, 1074, 1104, 1252, 1176, nil,
- nil, nil, 1174, 1177, 1187, 1188, 1189, 3556, 1192, 3589,
- 4698, nil, nil, nil, nil, nil, 4839, nil, 4980, 3006,
- nil, 25101, nil, 25116, nil, 25156, nil, 25171, nil, nil,
- nil, 1300, 1237, 1238, 1323, 22220, 24809, 24871, 1215, 25179,
- nil, nil, nil, nil, 3697, 1216, 862, 1347, 1361, 1240,
- 1243, 1261, 1262, nil, nil, 1270, 40, 42, 112, 1314,
- 1268, 1271, nil, nil, nil, 25186, nil, nil, nil, nil,
- 43, nil, 1275, nil ]
-
-racc_action_default = [
- -3, -597, -1, -583, -4, -597, -7, -597, -597, -597,
- -597, -29, -597, -597, -597, -281, -597, -40, -43, -585,
- -597, -48, -50, -51, -52, -56, -258, -258, -258, -295,
- -330, -331, -68, -11, -72, -80, -82, -597, -488, -489,
- -597, -597, -597, -597, -597, -585, -239, -272, -273, -274,
- -275, -276, -277, -278, -279, -280, -573, -283, -285, -596,
- -563, -303, -391, -597, -597, -308, -311, -583, -597, -597,
- -597, -597, -332, -333, -429, -430, -431, -432, -433, -454,
- -436, -437, -456, -458, -441, -446, -450, -452, -468, -456,
- -470, -472, -473, -474, -475, -571, -477, -478, -572, -480,
- -481, -482, -483, -484, -485, -486, -487, -492, -493, -597,
- -2, -584, -592, -593, -594, -6, -597, -597, -597, -597,
- -597, -3, -17, -597, -111, -112, -113, -114, -115, -116,
- -117, -118, -119, -123, -124, -125, -126, -127, -128, -129,
- -130, -131, -132, -133, -134, -135, -136, -137, -138, -139,
- -140, -141, -142, -143, -144, -145, -146, -147, -148, -149,
- -150, -151, -152, -153, -154, -155, -156, -157, -158, -159,
- -160, -161, -162, -163, -164, -165, -166, -167, -168, -169,
- -170, -171, -172, -173, -174, -175, -176, -177, -178, -179,
- -180, -181, -182, -183, -184, -185, -186, -187, -188, -189,
- -190, -191, -192, -193, -22, -120, -11, -597, -597, -248,
- -597, -597, -597, -597, -597, -597, -597, -585, -586, -47,
- -597, -488, -489, -597, -281, -597, -597, -229, -597, -11,
- -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
- -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
- -597, -597, -597, -597, -597, -597, -236, -398, -400, -597,
- -581, -582, -57, -248, -597, -302, -404, -413, -415, -63,
- -410, -64, -585, -65, -240, -253, -262, -262, -257, -597,
- -263, -597, -454, -565, -597, -597, -66, -67, -583, -12,
- -597, -15, -597, -70, -11, -585, -597, -73, -76, -11,
- -88, -89, -597, -597, -96, -295, -298, -585, -597, -330,
- -331, -334, -411, -597, -78, -597, -84, -292, -471, -597,
- -214, -215, -230, -597, -11, -597, -585, -241, -589, -589,
- -597, -597, -589, -597, -304, -305, -521, -49, -597, -597,
- -597, -597, -583, -597, -584, -488, -489, -597, -597, -281,
- -597, -344, -345, -106, -107, -597, -109, -597, -281, -597,
- -597, -488, -489, -323, -111, -112, -153, -154, -155, -171,
- -176, -183, -186, -325, -597, -561, -597, -434, -597, -597,
- -597, -597, -597, -597, -597, -597, 1024, -5, -595, -23,
- -24, -25, -26, -27, -597, -597, -19, -20, -21, -121,
- -597, -30, -39, -268, -597, -597, -267, -31, -196, -585,
- -249, -262, -262, -574, -575, -258, -408, -576, -577, -575,
- -574, -258, -407, -409, -576, -577, -37, -204, -38, -597,
- -41, -42, -194, -263, -44, -45, -46, -585, -301, -597,
- -597, -597, -248, -292, -597, -597, -597, -205, -206, -207,
- -208, -209, -210, -211, -212, -216, -217, -218, -219, -220,
- -221, -222, -223, -224, -225, -226, -227, -228, -231, -232,
- -233, -234, -597, -380, -258, -574, -575, -54, -58, -585,
- -259, -380, -380, -585, -297, -254, -597, -255, -597, -260,
- -597, -264, -597, -568, -570, -10, -584, -14, -3, -585,
- -69, -290, -85, -74, -597, -585, -248, -597, -597, -95,
- -597, -471, -597, -81, -86, -597, -597, -597, -597, -235,
- -597, -421, -597, -286, -597, -242, -591, -590, -244, -591,
- -293, -294, -564, -392, -521, -395, -560, -560, -504, -506,
- -506, -506, -520, -522, -523, -524, -525, -526, -527, -528,
- -529, -597, -531, -533, -535, -540, -542, -543, -545, -550,
- -552, -553, -555, -556, -557, -597, -11, -335, -336, -11,
- -597, -597, -597, -597, -597, -248, -597, -597, -292, -316,
- -106, -107, -108, -597, -597, -248, -319, -494, -495, -597,
- -597, -11, -499, -327, -585, -435, -455, -460, -597, -462,
- -438, -457, -597, -459, -440, -597, -443, -597, -445, -448,
- -597, -449, -597, -469, -8, -18, -597, -28, -271, -597,
- -597, -412, -597, -250, -252, -597, -597, -59, -247, -405,
- -597, -597, -61, -406, -597, -597, -300, -587, -574, -575,
- -574, -575, -585, -194, -585, -381, -585, -383, -11, -53,
- -401, -380, -245, -11, -11, -296, -262, -261, -265, -597,
- -566, -567, -597, -13, -597, -71, -597, -77, -83, -585,
- -574, -575, -246, -92, -94, -597, -79, -597, -203, -213,
- -585, -596, -596, -284, -585, -289, -589, -597, -585, -597,
- -502, -503, -597, -597, -513, -597, -516, -597, -518, -597,
- -346, -597, -348, -350, -357, -585, -534, -544, -554, -558,
- -596, -337, -596, -309, -338, -339, -312, -597, -315, -597,
- -585, -574, -575, -578, -291, -597, -106, -107, -110, -585,
- -11, -597, -497, -321, -597, -11, -521, -521, -597, -562,
- -461, -464, -465, -466, -467, -11, -439, -442, -444, -447,
- -451, -453, -122, -269, -597, -197, -597, -588, -262, -33,
- -199, -34, -200, -60, -35, -202, -36, -201, -62, -195,
- -597, -597, -597, -597, -412, -597, -560, -560, -362, -364,
- -364, -364, -379, -597, -585, -385, -529, -537, -538, -548,
- -597, -403, -402, -11, -597, -597, -256, -266, -569, -16,
- -75, -90, -87, -299, -596, -342, -11, -422, -596, -423,
- -424, -597, -243, -393, -11, -11, -597, -560, -541, -559,
- -505, -506, -506, -532, -506, -506, -551, -506, -529, -546,
- -585, -597, -355, -597, -530, -597, -340, -597, -597, -11,
- -11, -314, -597, -11, -412, -597, -412, -597, -597, -11,
- -324, -597, -585, -597, -328, -597, -270, -32, -198, -251,
- -597, -237, -597, -360, -361, -370, -372, -597, -375, -597,
- -377, -382, -597, -597, -597, -536, -597, -399, -597, -414,
- -416, -9, -11, -428, -343, -597, -597, -426, -287, -597,
- -597, -394, -501, -597, -509, -597, -511, -597, -514, -597,
- -517, -519, -347, -349, -353, -597, -358, -306, -597, -307,
- -597, -597, -265, -596, -317, -320, -496, -597, -326, -498,
- -500, -499, -463, -597, -560, -539, -363, -364, -364, -364,
- -364, -549, -364, -384, -585, -387, -389, -390, -547, -597,
- -292, -55, -427, -11, -97, -98, -597, -597, -105, -425,
- -396, -397, -506, -506, -506, -506, -351, -597, -356, -597,
- -11, -310, -313, -417, -418, -419, -11, -322, -11, -238,
- -359, -597, -367, -597, -369, -597, -373, -597, -376, -378,
- -386, -597, -291, -578, -421, -248, -597, -597, -104, -597,
- -507, -510, -512, -515, -597, -354, -596, -597, -597, -364,
- -364, -364, -364, -388, -420, -585, -574, -575, -578, -103,
- -506, -352, -341, -318, -329, -597, -365, -368, -371, -374,
- -412, -508, -364, -366 ]
-
-clist = [
-'216,275,275,275,14,327,373,409,573,14,522,276,276,276,266,270,311,311',
-'258,2,415,421,334,431,220,681,323,259,122,205,535,127,127,220,220,220',
-'406,14,302,302,550,328,428,478,297,130,130,132,132,542,311,311,311,110',
-'114,338,339,487,438,342,513,479,735,835,582,318,660,220,220,474,111',
-'220,347,357,357,705,621,826,219,6,314,690,691,804,6,783,566,569,713',
-'716,378,293,295,780,127,262,269,271,906,903,525,528,115,931,532,379',
-'935,660,389,390,391,392,385,484,838,14,937,343,114,1,220,220,220,220',
-'14,14,881,816,359,363,648,273,286,287,605,607,500,663,653,654,394,823',
-'204,352,402,395,277,277,277,651,616,472,657,13,657,923,330,650,13,375',
-'331,335,350,586,374,324,325,684,326,340,958,694,696,698,839,341,329',
-'332,840,725,966,275,730,849,591,592,13,738,921,405,6,782,487,784,934',
-'405,533,813,416,393,6,700,660,336,687,473,481,931,387,482,14,220,220',
-'220,1003,963,220,220,220,220,220,220,995,872,937,830,808,903,688,885',
-'377,296,380,14,425,275,275,717,550,381,642,382,383,384,275,740,276,542',
-'745,667,415,421,731,821,276,818,925,676,,1011,,,,,13,401,407,220,220',
-',426,430,,13,13,826,220,734,636,,311,601,603,606,606,,,601,510,657,657',
-',728,492,14,,266,311,14,,270,,302,14,669,,,524,793,774,,,927,823,,964',
-',672,,302,652,863,864,,655,514,,672,14,220,,,570,571,,,801,511,495,114',
-'665,,,503,220,220,668,823,,1012,786,700,293,499,832,496,,293,505,13',
-',,892,914,220,,480,,,497,,,,720,483,,,593,,,220,277,13,729,,,672,844',
-',277,622,968,572,114,672,,846,550,,550,,,,628,400,,,,763,633,587,800',
-',768,275,615,847,,127,,,851,,,,823,,296,416,,852,853,130,,132,739,796',
-'660,,,550,550,,13,431,,220,13,,542,542,,13,894,896,,898,900,812,901',
-',333,628,,425,,,843,,970,,,,,,,,13,275,,,700,,700,627,,311,,1004,,632',
-',296,,311,416,,296,,26,14,,14,,26,416,,748,302,748,220,809,781,,514',
-',302,664,,26,,803,514,,220,657,,,26,26,26,425,26,,,917,,,796,,,425,',
-'649,,,834,275,,,,,,,956,700,719,275,,822,,824,26,26,416,,26,,,786,14',
-'786,416,14,,,,6,965,220,,,,,990,991,992,993,,220,,,,,,14,,550,,,425',
-',,656,,,425,700,403,700,26,792,,,433,26,26,26,26,26,26,714,714,622,',
-'775,,785,810,220,220,,,943,220,220,752,,220,127,732,733,1021,686,700',
-'791,,,311,13,622,13,14,130,998,132,960,14,14,311,628,,,633,405,811,',
-',,785,302,902,1020,854,,786,514,,,,489,302,491,759,761,493,494,802,764',
-'766,,,430,919,,,,,,,,622,,,,26,26,26,26,,622,26,26,26,26,26,26,845,',
-'13,,,13,848,,,,,26,220,,928,,929,14,220,,,,14,758,,,,13,,,,,14,883,',
-'15,,887,,,15,,952,220,127,26,26,710,785,,712,,311,,26,,,,,,,,,,,,1005',
-',15,304,304,,26,,875,,26,,,672,14,26,,,13,,16,,618,13,13,16,,14,,,,857',
-',,,14,14,349,358,358,26,26,,,,,908,,,,,,,16,999,,26,26,220,,14,14,,790',
-'14,,,,794,795,14,777,,311,,,26,,,,15,,,778,,311,,,351,15,15,,26,,,938',
-',,,,13,,,14,658,13,333,946,661,,779,,,714,817,13,916,,,,,920,,,,,819',
-',,819,,16,980,,,,,,,,16,16,,,658,,,333,,,,,,,,787,,,26,825,855,827,',
-'13,14,,,,,,,,706,,275,15,13,,,425,,14,,,13,13,,14,,14,,416,433,,,,,',
-'15,,,,,622,,,220,,878,13,13,,26,13,26,,,,,13,,884,26,,,,16,425,,889',
-'890,,,429,,,26,753,,,,658,333,,,,,,,16,,,13,,910,911,,,913,15,,,,15',
-',,,304,15,,,,337,337,,,337,797,,,798,,26,,304,26,,924,,,777,26,777,15',
-'777,,,942,,819,807,26,778,,778,,778,26,,,16,,,13,16,,,829,,16,,,,,,337',
-'337,337,337,,13,930,,932,,,13,,13,,,26,26,,16,,26,26,,,26,866,868,870',
-',,,953,984,954,,955,,,26,,,,,26,26,787,856,,787,996,787,,787,,,997,',
-',,,,38,,,,,38,,,,777,,777,,777,,777,,,,,,778,,778,,778,,778,,,,,,38',
-'300,300,434,435,436,437,,,,,,,,,1000,,1001,,1002,777,26,,,,,26,26,,',
-',26,778,1010,,345,361,361,361,,912,26,,,,15,,15,,,,,26,304,,,,333,,1022',
-'787,304,787,,787,,787,,,,,,,,,,,,38,972,974,976,978,,979,,,38,38,26',
-',,,,,,16,,16,,,,26,,787,,,,,,26,26,,,523,15,,,15,,,,,,,,,,,337,337,',
-',26,,26,26,,,26,15,,,,,26,,744,,590,,1016,1017,1018,1019,,,,,,,,,,,594',
-'16,,,16,,,,38,1023,,,,26,,,,,,,,,,,,,16,,,,,38,15,,,,,15,15,,,,,,,,',
-',,,304,,,,,,,,,,,304,,,,,,,,429,,,,,26,,,,,,,,,16,,,,,16,16,39,26,38',
-',,39,38,26,,26,300,38,,,,,,,,,,,,,15,,26,300,,15,,,,39,301,301,38,,',
-'15,,,,,,,,,,,,,,,680,,,,,,,,,,,,,,346,362,362,362,,,,16,,,,,16,358,',
-',,,,15,,,16,,,,,,,,,,15,,,,,,,,15,15,,39,,,,,,,,,39,39,,,,,,,,,,,,15',
-'15,,,15,16,,,,,15,,,,,,,,16,,,,,,,,16,16,,,,,,,,358,,,,,,,,15,,,,948',
-',,,16,16,,,16,,,,,,16,,,,,,,,,,,,39,,38,,38,,,,,,300,,,,,,,,300,,,16',
-',39,,949,,,,,,15,,,,,,,,,,,,,,,,,15,,,,,337,15,,15,,,337,,,,,,,,,,,',
-',38,,,38,,,,,,,16,,39,,,,39,,,,301,39,,,,38,,16,,,,,,16,,16,,301,,,',
-',,,,,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,,,,,38,38,,,,,337,,,,',
-',,300,,,,,,,,,,,300,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,38,,,,,38,,,,,,,,,,38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,39,',
-'39,361,,,,,301,38,,,,,,,301,,,,,,38,,,,,,,,38,38,,,,,,,,,,,,,,,,,,,',
-',,,,38,38,,,38,,,,,,38,,,,,39,,,39,,,,,,,,,,,,,,,,,361,,,,,39,,,38,',
-',,944,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,39,,,,,39,39',
-'38,,,,,,,,,,,301,,,,,,38,,,,227,301,38,,38,,,,,274,274,274,,,,,,,,,',
-',320,321,322,,,,,,,,,,,,,,,274,274,,,,,,,,,,,,,,39,,,,,39,,,,,,,,,,39',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,362,,,,,,39,,,,,,,,,,,,,39',
-',,,,,,,39,39,,,,,,,,,,,,,,,,,,,,,,,,39,39,,,39,,,,,,39,,,,,,,,,,,,,',
-'274,408,274,,,427,432,,,,,362,,,,,,,,39,,227,,945,447,448,449,450,451',
-'452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468',
-'469,470,471,,,,,,,,274,274,,,,,,,,274,,,,,,,274,,274,,,274,274,,39,',
-',,,,,,,,,,,,,,,39,,,,,,39,,39,,,,,,,,,,,519,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,274,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,274,,427,643,408,,,,,,,,,,,,,,,,,,,,,,',
-',,,644,,,,,,,,,,,,,,274,,274,,274,,,,,,,,,,,,,,,,274,,,,,,,,,678,679',
-',,,,,,,,,274,,,274,,,,,,,,,,,,,,,,,,,,,,,,,274,,,,,,,,,,,,,,,,,,,,274',
-'274,,,,,,,,,,274,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,274,755,,,274,274',
-'760,762,,,,765,767,,,643,769,,,,,,,,,,,,,,,,,,,,,,,,274,,,274,,,,,,',
-',,,,,,,,,,,,,274,,,,,,,,,,,,,,,,,274,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,274,,858,,,,,,,,,,,,,,760,762,767,765,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,274,,,',
-',,,,,,,,,,,,,274,858,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,969,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,274' ]
- racc_goto_table = arr = ::Array.new(3100, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-clist = [
-'31,33,33,33,22,69,56,23,94,22,8,70,70,70,73,73,64,64,140,2,37,37,88',
-'18,22,10,31,36,15,15,139,57,57,22,22,22,27,22,22,22,168,70,27,39,49',
-'60,60,61,61,163,64,64,64,4,97,17,17,75,47,17,51,23,98,92,54,63,178,22',
-'22,37,6,22,22,22,22,118,24,174,20,7,50,123,123,11,7,131,91,91,93,93',
-'151,45,46,128,57,38,38,38,119,116,71,71,5,175,71,152,133,178,17,17,17',
-'17,152,47,11,22,134,4,97,1,22,22,22,22,22,22,12,131,55,55,40,44,44,44',
-'155,155,47,14,40,40,2,169,16,19,28,30,72,72,72,42,62,66,76,21,76,67',
-'68,74,21,86,87,90,95,96,99,100,101,102,103,104,119,166,166,166,105,106',
-'72,72,107,108,109,33,110,111,112,113,21,114,115,70,7,120,75,126,132',
-'70,135,136,73,7,7,117,178,137,138,141,143,175,5,144,22,22,22,22,133',
-'145,22,22,22,22,22,22,119,131,134,118,146,116,139,147,150,9,153,22,57',
-'33,33,94,168,154,23,157,158,159,33,160,70,163,161,51,37,37,162,167,70',
-'171,172,51,,119,,,,,21,20,20,22,22,,20,20,,21,21,174,22,8,47,,64,156',
-'156,156,156,,,156,31,76,76,,54,151,22,,73,64,22,,73,,22,22,23,,,31,40',
-'24,,,128,169,,11,,37,,22,47,123,123,,47,49,,37,22,22,,,17,17,,,24,63',
-'4,97,47,,,50,22,22,47,169,,92,168,117,45,46,117,6,,45,46,21,,,123,93',
-'22,,44,,,7,,,,23,44,,,36,,,22,72,21,23,,,37,24,,72,31,98,4,97,37,,24',
-'168,,168,,,,73,9,,,,39,73,97,51,,39,33,15,8,,57,,,8,,,,169,,9,73,,139',
-'139,60,,61,47,75,178,,,168,168,,21,18,,22,21,,163,163,,21,166,166,,166',
-'166,71,166,,65,73,,57,,,91,,123,,,,,,,,21,33,,,117,,117,38,,64,,10,',
-'38,,9,,64,73,,9,,41,22,,22,,41,73,,156,22,156,22,27,129,,49,,22,2,,41',
-',47,49,,22,76,,,41,41,41,57,41,,,8,,,75,,,57,,38,,,47,33,,,,,,,117,117',
-'70,33,,129,,129,41,41,73,,41,,,168,22,168,73,22,,,,7,94,22,,,,,166,166',
-'166,166,,22,,,,,,22,,168,,,57,,,72,,,57,117,65,117,41,88,,,65,41,41',
-'41,41,41,41,97,97,31,,31,,31,69,22,22,,,91,22,22,15,,22,57,97,97,166',
-'72,117,140,,,64,21,31,21,22,60,8,61,91,22,22,64,73,,,73,70,31,,,,31',
-'22,47,24,56,,168,49,,,,65,22,65,20,20,65,65,49,20,20,,,20,47,,,,,,,',
-'31,,,,41,41,41,41,,31,41,41,41,41,41,41,17,,21,,,21,17,,,,,41,22,,129',
-',129,22,22,,,,22,72,,,,21,,,,,22,69,,25,,69,,,25,,129,22,57,41,41,9',
-'31,,9,,64,,41,,,,,,,,,,,,23,,25,25,25,,41,,22,,41,,,37,22,41,,,21,,26',
-',65,21,21,26,,22,,,,20,,,,22,22,25,25,25,41,41,,,,,17,,,,,,,26,129,',
-'41,41,22,,22,22,,9,22,,,,9,9,22,122,,64,,,41,,,,25,,,124,,64,,,26,25',
-'25,,41,,,22,,,,,21,,,22,65,21,65,22,65,,127,,,97,122,21,97,,,,,97,,',
-',,124,,,124,,26,31,,,,,,,,26,26,,,65,,,65,,,,,,,,170,,,41,127,9,127',
-',21,22,,,,,,,,65,,33,25,21,,,57,,22,,,21,21,,22,,22,,73,65,,,,,,25,',
-',,,31,,,22,,9,21,21,,41,21,41,,,,,21,,9,41,,,,26,57,,9,9,,,26,,,41,65',
-',,,65,65,,,,,,,26,,,21,,9,9,,,9,25,,,,25,,,,25,25,,,,29,29,,,29,65,',
-',65,,41,,25,41,,122,,,122,41,122,25,122,,,9,,124,65,41,124,,124,,124',
-'41,,,26,,,21,26,,,65,,26,,,,,,29,29,29,29,,21,127,,127,,,21,,21,,,41',
-'41,,26,,41,41,,,41,125,125,125,,,,127,9,127,,127,,,41,,,,,41,41,170',
-'65,,170,9,170,,170,,,9,,,,,,52,,,,,52,,,,122,,122,,122,,122,,,,,,124',
-',124,,124,,124,,,,,,52,52,52,29,29,29,29,,,,,,,,,127,,127,,127,122,41',
-',,,,41,41,,,,41,124,127,,52,52,52,52,,65,41,,,,25,,25,,,,,41,25,,,,65',
-',127,170,25,170,,170,,170,,,,,,,,,,,,52,125,125,125,125,,125,,,52,52',
-'41,,,,,,,26,,26,,,,41,,170,,,,,,41,41,,,29,25,,,25,,,,,,,,,,,29,29,',
-',41,,41,41,,,41,25,,,,,41,,25,,29,,125,125,125,125,,,,,,,,,,,29,26,',
-',26,,,,52,125,,,,41,,,,,,,,,,,,,26,,,,,52,25,,,,,25,25,,,,,,,,,,,,25',
-',,,,,,,,,,25,,,,,,,,26,,,,,41,,,,,,,,,26,,,,,26,26,53,41,52,,,53,52',
-'41,,41,52,52,,,,,,,,,,,,,25,,41,52,,25,,,,53,53,53,52,,,25,,,,,,,,,',
-',,,,,29,,,,,,,,,,,,,,53,53,53,53,,,,26,,,,,26,25,,,,,,25,,,26,,,,,,',
-',,,25,,,,,,,,25,25,,53,,,,,,,,,53,53,,,,,,,,,,,,25,25,,,25,26,,,,,25',
-',,,,,,,26,,,,,,,,26,26,,,,,,,,25,,,,,,,,25,,,,25,,,,26,26,,,26,,,,,',
-'26,,,,,,,,,,,,53,,52,,52,,,,,,52,,,,,,,,52,,,26,,53,,26,,,,,,25,,,,',
-',,,,,,,,,,,,25,,,,,29,25,,25,,,29,,,,,,,,,,,,,52,,,52,,,,,,,26,,53,',
-',,53,,,,53,53,,,,52,,26,,,,,,26,,26,,53,,,,,,,,,53,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,52,,,,,52,52,,,,,29,,,,,,,52,,,,,,,,,,,52,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,52,,,,,52,,,,,,,,,,52,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,53,,53,52,,,,,53,52,,,,,,,53,,,',
-',,52,,,,,,,,52,52,,,,,,,,,,,,,,,,,,,,,,,,52,52,,,52,,,,,,52,,,,,53,',
-',53,,,,,,,,,,,,,,,,,52,,,,,53,,,52,,,,52,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,53,,,,,53,53,52,,,,,,,,,,,53,,,,,,52,,,,32,53',
-'52,,52,,,,,32,32,32,,,,,,,,,,,32,32,32,,,,,,,,,,,,,,,32,32,,,,,,,,,',
-',,,,53,,,,,53,,,,,,,,,,53,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,53',
-',,,,,53,,,,,,,,,,,,,53,,,,,,,,53,53,,,,,,,,,,,,,,,,,,,,,,,,53,53,,,53',
-',,,,,53,,,,,,,,,,,,,,32,32,32,,,32,32,,,,,53,,,,,,,,53,,32,,53,32,32',
-'32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32',
-',,,,,,,32,32,,,,,,,,32,,,,,,,32,,32,,,32,32,,53,,,,,,,,,,,,,,,,,53,',
-',,,,53,,53,,,,,,,,,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,32,,32,32,32,,,,,,,,,,,,,,,,,,,,,,,,,,32,,,,,,,,,,,,,,32,,32',
-',32,,,,,,,,,,,,,,,,32,,,,,,,,,32,32,,,,,,,,,,32,,,32,,,,,,,,,,,,,,,',
-',,,,,,,,,32,,,,,,,,,,,,,,,,,,,,32,32,,,,,,,,,,32,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,32,32,,,32,32,32,32,,,,32,32,,,32,32,,,,,,,,,,,,,,,,,',
-',,,,,,32,,,32,,,,,,,,,,,,,,,,,,,,32,,,,,,,,,,,,,,,,,32,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32,,32,,,,,,,,,,,,,,32,32,32',
-'32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,32,,,,,,,,,,,,,,,,,32,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,,,32' ]
- racc_goto_check = arr = ::Array.new(3100, nil)
- idx = 0
- clist.each do |str|
- str.split(',', -1).each do |i|
- arr[idx] = i.to_i unless i.empty?
- idx += 1
- end
- end
-
-racc_goto_pointer = [
- nil, 119, 19, nil, 50, 97, 67, 79, -314, 198,
- -496, -598, -678, nil, -359, 20, 133, -8, -190, 75,
- 58, 153, 4, -202, -333, 752, 803, -171, -63, 992,
- 23, -19, 2114, -28, nil, nil, 3, -190, 69, -219,
- -343, 499, -328, nil, 102, 58, 59, -159, nil, 10,
- 45, -255, 1170, 1458, -291, 59, -65, 23, nil, nil,
- 37, 39, -249, 24, -18, 401, -105, -706, 97, -54,
- -18, -228, 117, -12, -317, -220, -334, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 88, 100, -39, nil,
- 99, -252, -647, -482, -335, 94, -196, 51, -530, 93,
- 108, 108, -356, 110, 104, -539, 109, -538, -400, -734,
- -404, -550, -179, -188, -406, -666, -732, -350, -476, -735,
- -455, nil, 208, -455, 220, 355, -453, 247, -553, -134,
- nil, -561, -679, -767, -757, -140, -490, 141, -329, -306,
- -4, -52, nil, -61, -59, -698, -456, -579, nil, nil,
- 153, 11, 23, 149, 155, -247, -98, 156, 156, 156,
- -353, -351, -336, -287, nil, nil, -368, -440, -296, -552,
- 292, -434, -606, nil, -618, -764, nil, nil, -422 ]
-
-racc_goto_default = [
- nil, nil, nil, 3, nil, 4, 344, 291, nil, 521,
- nil, 836, nil, 288, 289, nil, nil, nil, 11, 12,
- 18, 226, 319, nil, nil, 224, 225, nil, nil, 17,
- nil, 439, 21, 22, 23, 24, nil, 675, nil, nil,
- nil, 308, nil, 25, 410, 32, nil, nil, 34, 37,
- 36, nil, 221, 222, 356, nil, 129, 418, 128, 131,
- 75, 76, nil, 90, 46, 280, nil, nil, nil, 805,
- 411, nil, 412, 423, 629, 485, 278, 264, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, nil, 265, 61,
- nil, nil, nil, nil, nil, nil, nil, 567, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 702, 549, nil, 703,
- 926, 776, 537, nil, 538, nil, nil, 539, nil, 541,
- 645, nil, nil, nil, 547, nil, nil, nil, nil, nil,
- nil, nil, 422, nil, nil, nil, nil, nil, 74, 77,
- 78, nil, nil, nil, nil, nil, 596, nil, nil, nil,
- nil, nil, nil, 820, 737, 536, nil, 540, 828, 552,
- 554, 555, 788, 558, 559, 789, 562, 565, 283 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 146, :_reduce_none,
- 2, 147, :_reduce_2,
- 0, 148, :_reduce_3,
- 1, 148, :_reduce_4,
- 3, 148, :_reduce_5,
- 2, 148, :_reduce_6,
- 1, 150, :_reduce_none,
- 4, 150, :_reduce_8,
- 4, 153, :_reduce_9,
- 2, 154, :_reduce_10,
- 0, 158, :_reduce_11,
- 1, 158, :_reduce_12,
- 3, 158, :_reduce_13,
- 2, 158, :_reduce_14,
- 1, 159, :_reduce_none,
- 4, 159, :_reduce_16,
- 0, 175, :_reduce_17,
- 4, 152, :_reduce_18,
- 3, 152, :_reduce_19,
- 3, 152, :_reduce_20,
- 3, 152, :_reduce_21,
- 2, 152, :_reduce_22,
- 3, 152, :_reduce_23,
- 3, 152, :_reduce_24,
- 3, 152, :_reduce_25,
- 3, 152, :_reduce_26,
- 3, 152, :_reduce_27,
- 4, 152, :_reduce_28,
- 1, 152, :_reduce_none,
- 3, 152, :_reduce_30,
- 3, 152, :_reduce_31,
- 6, 152, :_reduce_32,
- 5, 152, :_reduce_33,
- 5, 152, :_reduce_34,
- 5, 152, :_reduce_35,
- 5, 152, :_reduce_36,
- 3, 152, :_reduce_37,
- 3, 152, :_reduce_38,
- 3, 152, :_reduce_39,
- 1, 152, :_reduce_none,
- 3, 163, :_reduce_41,
- 3, 163, :_reduce_42,
- 1, 174, :_reduce_none,
- 3, 174, :_reduce_44,
- 3, 174, :_reduce_45,
- 3, 174, :_reduce_46,
- 2, 174, :_reduce_47,
- 1, 174, :_reduce_none,
- 1, 162, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 165, :_reduce_none,
- 1, 179, :_reduce_none,
- 4, 179, :_reduce_53,
- 0, 187, :_reduce_54,
- 5, 184, :_reduce_55,
- 1, 186, :_reduce_none,
- 2, 178, :_reduce_57,
- 3, 178, :_reduce_58,
- 4, 178, :_reduce_59,
- 5, 178, :_reduce_60,
- 4, 178, :_reduce_61,
- 5, 178, :_reduce_62,
- 2, 178, :_reduce_63,
- 2, 178, :_reduce_64,
- 2, 178, :_reduce_65,
- 2, 178, :_reduce_66,
- 2, 178, :_reduce_67,
- 1, 164, :_reduce_68,
- 3, 164, :_reduce_69,
- 1, 191, :_reduce_70,
- 3, 191, :_reduce_71,
- 1, 190, :_reduce_none,
- 2, 190, :_reduce_73,
- 3, 190, :_reduce_74,
- 5, 190, :_reduce_75,
- 2, 190, :_reduce_76,
- 4, 190, :_reduce_77,
- 2, 190, :_reduce_78,
- 4, 190, :_reduce_79,
- 1, 190, :_reduce_80,
- 3, 190, :_reduce_81,
- 1, 194, :_reduce_none,
- 3, 194, :_reduce_83,
- 2, 193, :_reduce_84,
- 3, 193, :_reduce_85,
- 1, 196, :_reduce_86,
- 3, 196, :_reduce_87,
- 1, 195, :_reduce_88,
- 1, 195, :_reduce_89,
- 4, 195, :_reduce_90,
- 3, 195, :_reduce_91,
- 3, 195, :_reduce_92,
- 3, 195, :_reduce_93,
- 3, 195, :_reduce_94,
- 2, 195, :_reduce_95,
- 1, 195, :_reduce_96,
- 1, 171, :_reduce_97,
- 1, 171, :_reduce_98,
- 4, 171, :_reduce_99,
- 3, 171, :_reduce_100,
- 3, 171, :_reduce_101,
- 3, 171, :_reduce_102,
- 3, 171, :_reduce_103,
- 2, 171, :_reduce_104,
- 1, 171, :_reduce_105,
- 1, 199, :_reduce_106,
- 1, 199, :_reduce_none,
- 2, 200, :_reduce_108,
- 1, 200, :_reduce_109,
- 3, 200, :_reduce_110,
- 1, 201, :_reduce_none,
- 1, 201, :_reduce_none,
- 1, 201, :_reduce_none,
- 1, 201, :_reduce_none,
- 1, 201, :_reduce_none,
- 1, 204, :_reduce_116,
- 1, 204, :_reduce_none,
- 1, 160, :_reduce_none,
- 1, 160, :_reduce_none,
- 1, 161, :_reduce_120,
- 0, 207, :_reduce_121,
- 4, 161, :_reduce_122,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 202, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 1, 203, :_reduce_none,
- 3, 177, :_reduce_194,
- 5, 177, :_reduce_195,
- 3, 177, :_reduce_196,
- 5, 177, :_reduce_197,
- 6, 177, :_reduce_198,
- 5, 177, :_reduce_199,
- 5, 177, :_reduce_200,
- 5, 177, :_reduce_201,
- 5, 177, :_reduce_202,
- 4, 177, :_reduce_203,
- 3, 177, :_reduce_204,
- 3, 177, :_reduce_205,
- 3, 177, :_reduce_206,
- 3, 177, :_reduce_207,
- 3, 177, :_reduce_208,
- 3, 177, :_reduce_209,
- 3, 177, :_reduce_210,
- 3, 177, :_reduce_211,
- 3, 177, :_reduce_212,
- 4, 177, :_reduce_213,
- 2, 177, :_reduce_214,
- 2, 177, :_reduce_215,
- 3, 177, :_reduce_216,
- 3, 177, :_reduce_217,
- 3, 177, :_reduce_218,
- 3, 177, :_reduce_219,
- 3, 177, :_reduce_220,
- 3, 177, :_reduce_221,
- 3, 177, :_reduce_222,
- 3, 177, :_reduce_223,
- 3, 177, :_reduce_224,
- 3, 177, :_reduce_225,
- 3, 177, :_reduce_226,
- 3, 177, :_reduce_227,
- 3, 177, :_reduce_228,
- 2, 177, :_reduce_229,
- 2, 177, :_reduce_230,
- 3, 177, :_reduce_231,
- 3, 177, :_reduce_232,
- 3, 177, :_reduce_233,
- 3, 177, :_reduce_234,
- 3, 177, :_reduce_235,
- 0, 211, :_reduce_236,
- 0, 212, :_reduce_237,
- 8, 177, :_reduce_238,
- 1, 177, :_reduce_none,
- 1, 210, :_reduce_none,
- 1, 213, :_reduce_none,
- 2, 213, :_reduce_none,
- 4, 213, :_reduce_243,
- 2, 213, :_reduce_244,
- 3, 218, :_reduce_245,
- 0, 219, :_reduce_246,
- 1, 219, :_reduce_none,
- 0, 168, :_reduce_248,
- 1, 168, :_reduce_none,
- 2, 168, :_reduce_none,
- 4, 168, :_reduce_251,
- 2, 168, :_reduce_252,
- 1, 189, :_reduce_253,
- 2, 189, :_reduce_254,
- 2, 189, :_reduce_255,
- 4, 189, :_reduce_256,
- 1, 189, :_reduce_257,
- 0, 222, :_reduce_258,
- 2, 183, :_reduce_259,
- 2, 221, :_reduce_260,
- 2, 220, :_reduce_261,
- 0, 220, :_reduce_262,
- 1, 215, :_reduce_263,
- 2, 215, :_reduce_264,
- 3, 215, :_reduce_265,
- 4, 215, :_reduce_266,
- 1, 173, :_reduce_267,
- 1, 173, :_reduce_none,
- 3, 172, :_reduce_269,
- 4, 172, :_reduce_270,
- 2, 172, :_reduce_271,
- 1, 209, :_reduce_none,
- 1, 209, :_reduce_none,
- 1, 209, :_reduce_none,
- 1, 209, :_reduce_none,
- 1, 209, :_reduce_none,
- 1, 209, :_reduce_none,
- 1, 209, :_reduce_none,
- 1, 209, :_reduce_none,
- 1, 209, :_reduce_none,
- 1, 209, :_reduce_none,
- 1, 209, :_reduce_282,
- 0, 245, :_reduce_283,
- 4, 209, :_reduce_284,
- 0, 246, :_reduce_285,
- 0, 247, :_reduce_286,
- 6, 209, :_reduce_287,
- 0, 248, :_reduce_288,
- 4, 209, :_reduce_289,
- 3, 209, :_reduce_290,
- 3, 209, :_reduce_291,
- 2, 209, :_reduce_292,
- 3, 209, :_reduce_293,
- 3, 209, :_reduce_294,
- 1, 209, :_reduce_295,
- 4, 209, :_reduce_296,
- 3, 209, :_reduce_297,
- 1, 209, :_reduce_298,
- 5, 209, :_reduce_299,
- 4, 209, :_reduce_300,
- 3, 209, :_reduce_301,
- 2, 209, :_reduce_302,
- 1, 209, :_reduce_none,
- 2, 209, :_reduce_304,
- 2, 209, :_reduce_305,
- 6, 209, :_reduce_306,
- 6, 209, :_reduce_307,
- 0, 249, :_reduce_308,
- 0, 250, :_reduce_309,
- 7, 209, :_reduce_310,
- 0, 251, :_reduce_311,
- 0, 252, :_reduce_312,
- 7, 209, :_reduce_313,
- 5, 209, :_reduce_314,
- 4, 209, :_reduce_315,
- 0, 253, :_reduce_316,
- 0, 254, :_reduce_317,
- 9, 209, :_reduce_318,
- 0, 255, :_reduce_319,
- 6, 209, :_reduce_320,
- 0, 256, :_reduce_321,
- 7, 209, :_reduce_322,
- 0, 257, :_reduce_323,
- 5, 209, :_reduce_324,
- 0, 258, :_reduce_325,
- 6, 209, :_reduce_326,
- 0, 259, :_reduce_327,
- 0, 260, :_reduce_328,
- 9, 209, :_reduce_329,
- 1, 209, :_reduce_330,
- 1, 209, :_reduce_331,
- 1, 209, :_reduce_332,
- 1, 209, :_reduce_333,
- 1, 167, :_reduce_none,
- 1, 236, :_reduce_none,
- 1, 236, :_reduce_none,
- 2, 236, :_reduce_337,
- 1, 238, :_reduce_none,
- 1, 238, :_reduce_none,
- 1, 237, :_reduce_none,
- 5, 237, :_reduce_341,
- 1, 156, :_reduce_none,
- 2, 156, :_reduce_343,
- 1, 240, :_reduce_none,
- 1, 240, :_reduce_none,
- 1, 261, :_reduce_346,
- 3, 261, :_reduce_347,
- 1, 264, :_reduce_348,
- 3, 264, :_reduce_349,
- 1, 263, :_reduce_none,
- 4, 263, :_reduce_351,
- 6, 263, :_reduce_352,
- 3, 263, :_reduce_353,
- 5, 263, :_reduce_354,
- 2, 263, :_reduce_355,
- 4, 263, :_reduce_356,
- 1, 263, :_reduce_357,
- 3, 263, :_reduce_358,
- 4, 265, :_reduce_359,
- 2, 265, :_reduce_360,
- 2, 265, :_reduce_361,
- 1, 265, :_reduce_362,
- 2, 270, :_reduce_363,
- 0, 270, :_reduce_364,
- 6, 271, :_reduce_365,
- 8, 271, :_reduce_366,
- 4, 271, :_reduce_367,
- 6, 271, :_reduce_368,
- 4, 271, :_reduce_369,
- 2, 271, :_reduce_none,
- 6, 271, :_reduce_371,
- 2, 271, :_reduce_372,
- 4, 271, :_reduce_373,
- 6, 271, :_reduce_374,
- 2, 271, :_reduce_375,
- 4, 271, :_reduce_376,
- 2, 271, :_reduce_377,
- 4, 271, :_reduce_378,
- 1, 271, :_reduce_none,
- 0, 185, :_reduce_380,
- 1, 185, :_reduce_381,
- 3, 275, :_reduce_382,
- 1, 275, :_reduce_383,
- 4, 275, :_reduce_384,
- 1, 276, :_reduce_385,
- 4, 276, :_reduce_386,
- 1, 277, :_reduce_387,
- 3, 277, :_reduce_388,
- 1, 278, :_reduce_389,
- 1, 278, :_reduce_none,
- 0, 282, :_reduce_391,
- 0, 283, :_reduce_392,
- 4, 235, :_reduce_393,
- 4, 280, :_reduce_394,
- 1, 280, :_reduce_395,
- 3, 281, :_reduce_396,
- 3, 281, :_reduce_397,
- 0, 286, :_reduce_398,
- 5, 285, :_reduce_399,
- 2, 180, :_reduce_400,
- 4, 180, :_reduce_401,
- 5, 180, :_reduce_402,
- 5, 180, :_reduce_403,
- 2, 234, :_reduce_404,
- 4, 234, :_reduce_405,
- 4, 234, :_reduce_406,
- 3, 234, :_reduce_407,
- 3, 234, :_reduce_408,
- 3, 234, :_reduce_409,
- 2, 234, :_reduce_410,
- 1, 234, :_reduce_411,
- 4, 234, :_reduce_412,
- 0, 288, :_reduce_413,
- 5, 233, :_reduce_414,
- 0, 289, :_reduce_415,
- 5, 233, :_reduce_416,
- 5, 239, :_reduce_417,
- 1, 290, :_reduce_418,
- 1, 290, :_reduce_none,
- 6, 155, :_reduce_420,
- 0, 155, :_reduce_421,
- 1, 291, :_reduce_422,
- 1, 291, :_reduce_none,
- 1, 291, :_reduce_none,
- 2, 292, :_reduce_425,
- 1, 292, :_reduce_none,
- 2, 157, :_reduce_427,
- 1, 157, :_reduce_none,
- 1, 223, :_reduce_none,
- 1, 223, :_reduce_none,
- 1, 223, :_reduce_none,
- 1, 224, :_reduce_432,
- 1, 294, :_reduce_433,
- 2, 294, :_reduce_434,
- 3, 295, :_reduce_435,
- 1, 295, :_reduce_436,
- 1, 295, :_reduce_437,
- 3, 225, :_reduce_438,
- 4, 226, :_reduce_439,
- 3, 227, :_reduce_440,
- 0, 299, :_reduce_441,
- 3, 299, :_reduce_442,
- 1, 300, :_reduce_443,
- 2, 300, :_reduce_444,
- 3, 229, :_reduce_445,
- 0, 302, :_reduce_446,
- 3, 302, :_reduce_447,
- 3, 228, :_reduce_448,
- 3, 230, :_reduce_449,
- 0, 303, :_reduce_450,
- 3, 303, :_reduce_451,
- 0, 304, :_reduce_452,
- 3, 304, :_reduce_453,
- 0, 296, :_reduce_454,
- 2, 296, :_reduce_455,
- 0, 297, :_reduce_456,
- 2, 297, :_reduce_457,
- 0, 298, :_reduce_458,
- 2, 298, :_reduce_459,
- 1, 301, :_reduce_460,
- 2, 301, :_reduce_461,
- 0, 306, :_reduce_462,
- 4, 301, :_reduce_463,
- 1, 305, :_reduce_464,
- 1, 305, :_reduce_465,
- 1, 305, :_reduce_466,
- 1, 305, :_reduce_none,
- 1, 205, :_reduce_468,
- 3, 206, :_reduce_469,
- 1, 293, :_reduce_470,
- 2, 293, :_reduce_471,
- 1, 208, :_reduce_472,
- 1, 208, :_reduce_473,
- 1, 208, :_reduce_474,
- 1, 208, :_reduce_475,
- 1, 197, :_reduce_476,
- 1, 197, :_reduce_477,
- 1, 197, :_reduce_478,
- 1, 197, :_reduce_479,
- 1, 197, :_reduce_480,
- 1, 198, :_reduce_481,
- 1, 198, :_reduce_482,
- 1, 198, :_reduce_483,
- 1, 198, :_reduce_484,
- 1, 198, :_reduce_485,
- 1, 198, :_reduce_486,
- 1, 198, :_reduce_487,
- 1, 231, :_reduce_488,
- 1, 231, :_reduce_489,
- 1, 166, :_reduce_490,
- 1, 166, :_reduce_491,
- 1, 170, :_reduce_492,
- 1, 170, :_reduce_493,
- 1, 241, :_reduce_494,
- 0, 307, :_reduce_495,
- 4, 241, :_reduce_496,
- 2, 241, :_reduce_497,
- 3, 243, :_reduce_498,
- 0, 309, :_reduce_499,
- 3, 243, :_reduce_500,
- 4, 308, :_reduce_501,
- 2, 308, :_reduce_502,
- 2, 308, :_reduce_503,
- 1, 308, :_reduce_504,
- 2, 311, :_reduce_505,
- 0, 311, :_reduce_506,
- 6, 284, :_reduce_507,
- 8, 284, :_reduce_508,
- 4, 284, :_reduce_509,
- 6, 284, :_reduce_510,
- 4, 284, :_reduce_511,
- 6, 284, :_reduce_512,
- 2, 284, :_reduce_513,
- 4, 284, :_reduce_514,
- 6, 284, :_reduce_515,
- 2, 284, :_reduce_516,
- 4, 284, :_reduce_517,
- 2, 284, :_reduce_518,
- 4, 284, :_reduce_519,
- 1, 284, :_reduce_520,
- 0, 284, :_reduce_521,
- 1, 279, :_reduce_522,
- 1, 279, :_reduce_523,
- 1, 279, :_reduce_524,
- 1, 279, :_reduce_525,
- 1, 262, :_reduce_none,
- 1, 262, :_reduce_527,
- 1, 313, :_reduce_528,
- 1, 314, :_reduce_529,
- 3, 314, :_reduce_530,
- 1, 272, :_reduce_531,
- 3, 272, :_reduce_532,
- 1, 315, :_reduce_533,
- 2, 316, :_reduce_534,
- 1, 316, :_reduce_535,
- 2, 317, :_reduce_536,
- 1, 317, :_reduce_537,
- 1, 266, :_reduce_538,
- 3, 266, :_reduce_539,
- 1, 310, :_reduce_540,
- 3, 310, :_reduce_541,
- 1, 318, :_reduce_none,
- 1, 318, :_reduce_none,
- 2, 267, :_reduce_544,
- 1, 267, :_reduce_545,
- 3, 319, :_reduce_546,
- 3, 320, :_reduce_547,
- 1, 273, :_reduce_548,
- 3, 273, :_reduce_549,
- 1, 312, :_reduce_550,
- 3, 312, :_reduce_551,
- 1, 321, :_reduce_none,
- 1, 321, :_reduce_none,
- 2, 274, :_reduce_554,
- 1, 274, :_reduce_555,
- 1, 322, :_reduce_none,
- 1, 322, :_reduce_none,
- 2, 269, :_reduce_558,
- 2, 268, :_reduce_559,
- 0, 268, :_reduce_560,
- 1, 244, :_reduce_none,
- 3, 244, :_reduce_562,
- 0, 232, :_reduce_563,
- 2, 232, :_reduce_none,
- 1, 217, :_reduce_565,
- 3, 217, :_reduce_566,
- 3, 323, :_reduce_567,
- 2, 323, :_reduce_568,
- 4, 323, :_reduce_569,
- 2, 323, :_reduce_570,
- 1, 188, :_reduce_none,
- 1, 188, :_reduce_none,
- 1, 188, :_reduce_none,
- 1, 182, :_reduce_none,
- 1, 182, :_reduce_none,
- 1, 182, :_reduce_none,
- 1, 182, :_reduce_none,
- 1, 287, :_reduce_none,
- 1, 287, :_reduce_none,
- 1, 287, :_reduce_none,
- 1, 181, :_reduce_none,
- 1, 181, :_reduce_none,
- 0, 149, :_reduce_none,
- 1, 149, :_reduce_none,
- 0, 176, :_reduce_none,
- 1, 176, :_reduce_none,
- 2, 192, :_reduce_587,
- 2, 169, :_reduce_588,
- 0, 216, :_reduce_none,
- 1, 216, :_reduce_none,
- 1, 216, :_reduce_none,
- 1, 242, :_reduce_592,
- 1, 242, :_reduce_none,
- 1, 151, :_reduce_none,
- 2, 151, :_reduce_none,
- 0, 214, :_reduce_596 ]
-
-racc_reduce_n = 597
-
-racc_shift_n = 1024
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :kCLASS => 2,
- :kMODULE => 3,
- :kDEF => 4,
- :kUNDEF => 5,
- :kBEGIN => 6,
- :kRESCUE => 7,
- :kENSURE => 8,
- :kEND => 9,
- :kIF => 10,
- :kUNLESS => 11,
- :kTHEN => 12,
- :kELSIF => 13,
- :kELSE => 14,
- :kCASE => 15,
- :kWHEN => 16,
- :kWHILE => 17,
- :kUNTIL => 18,
- :kFOR => 19,
- :kBREAK => 20,
- :kNEXT => 21,
- :kREDO => 22,
- :kRETRY => 23,
- :kIN => 24,
- :kDO => 25,
- :kDO_COND => 26,
- :kDO_BLOCK => 27,
- :kDO_LAMBDA => 28,
- :kRETURN => 29,
- :kYIELD => 30,
- :kSUPER => 31,
- :kSELF => 32,
- :kNIL => 33,
- :kTRUE => 34,
- :kFALSE => 35,
- :kAND => 36,
- :kOR => 37,
- :kNOT => 38,
- :kIF_MOD => 39,
- :kUNLESS_MOD => 40,
- :kWHILE_MOD => 41,
- :kUNTIL_MOD => 42,
- :kRESCUE_MOD => 43,
- :kALIAS => 44,
- :kDEFINED => 45,
- :klBEGIN => 46,
- :klEND => 47,
- :k__LINE__ => 48,
- :k__FILE__ => 49,
- :k__ENCODING__ => 50,
- :tIDENTIFIER => 51,
- :tFID => 52,
- :tGVAR => 53,
- :tIVAR => 54,
- :tCONSTANT => 55,
- :tLABEL => 56,
- :tCVAR => 57,
- :tNTH_REF => 58,
- :tBACK_REF => 59,
- :tSTRING_CONTENT => 60,
- :tINTEGER => 61,
- :tFLOAT => 62,
- :tREGEXP_END => 63,
- :tUPLUS => 64,
- :tUMINUS => 65,
- :tUMINUS_NUM => 66,
- :tPOW => 67,
- :tCMP => 68,
- :tEQ => 69,
- :tEQQ => 70,
- :tNEQ => 71,
- :tGEQ => 72,
- :tLEQ => 73,
- :tANDOP => 74,
- :tOROP => 75,
- :tMATCH => 76,
- :tNMATCH => 77,
- :tDOT => 78,
- :tDOT2 => 79,
- :tDOT3 => 80,
- :tAREF => 81,
- :tASET => 82,
- :tLSHFT => 83,
- :tRSHFT => 84,
- :tCOLON2 => 85,
- :tCOLON3 => 86,
- :tOP_ASGN => 87,
- :tASSOC => 88,
- :tLPAREN => 89,
- :tLPAREN2 => 90,
- :tRPAREN => 91,
- :tLPAREN_ARG => 92,
- :tLBRACK => 93,
- :tLBRACK2 => 94,
- :tRBRACK => 95,
- :tLBRACE => 96,
- :tLBRACE_ARG => 97,
- :tSTAR => 98,
- :tSTAR2 => 99,
- :tAMPER => 100,
- :tAMPER2 => 101,
- :tTILDE => 102,
- :tPERCENT => 103,
- :tDIVIDE => 104,
- :tDSTAR => 105,
- :tPLUS => 106,
- :tMINUS => 107,
- :tLT => 108,
- :tGT => 109,
- :tPIPE => 110,
- :tBANG => 111,
- :tCARET => 112,
- :tLCURLY => 113,
- :tRCURLY => 114,
- :tBACK_REF2 => 115,
- :tSYMBEG => 116,
- :tSTRING_BEG => 117,
- :tXSTRING_BEG => 118,
- :tREGEXP_BEG => 119,
- :tREGEXP_OPT => 120,
- :tWORDS_BEG => 121,
- :tQWORDS_BEG => 122,
- :tSYMBOLS_BEG => 123,
- :tQSYMBOLS_BEG => 124,
- :tSTRING_DBEG => 125,
- :tSTRING_DVAR => 126,
- :tSTRING_END => 127,
- :tSTRING_DEND => 128,
- :tSTRING => 129,
- :tSYMBOL => 130,
- :tNL => 131,
- :tEH => 132,
- :tCOLON => 133,
- :tCOMMA => 134,
- :tSPACE => 135,
- :tSEMI => 136,
- :tLAMBDA => 137,
- :tLAMBEG => 138,
- :tCHARACTER => 139,
- :tRATIONAL => 140,
- :tIMAGINARY => 141,
- :tLABEL_END => 142,
- :tEQL => 143,
- :tLOWEST => 144 }
-
-racc_nt_base = 145
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "kCLASS",
- "kMODULE",
- "kDEF",
- "kUNDEF",
- "kBEGIN",
- "kRESCUE",
- "kENSURE",
- "kEND",
- "kIF",
- "kUNLESS",
- "kTHEN",
- "kELSIF",
- "kELSE",
- "kCASE",
- "kWHEN",
- "kWHILE",
- "kUNTIL",
- "kFOR",
- "kBREAK",
- "kNEXT",
- "kREDO",
- "kRETRY",
- "kIN",
- "kDO",
- "kDO_COND",
- "kDO_BLOCK",
- "kDO_LAMBDA",
- "kRETURN",
- "kYIELD",
- "kSUPER",
- "kSELF",
- "kNIL",
- "kTRUE",
- "kFALSE",
- "kAND",
- "kOR",
- "kNOT",
- "kIF_MOD",
- "kUNLESS_MOD",
- "kWHILE_MOD",
- "kUNTIL_MOD",
- "kRESCUE_MOD",
- "kALIAS",
- "kDEFINED",
- "klBEGIN",
- "klEND",
- "k__LINE__",
- "k__FILE__",
- "k__ENCODING__",
- "tIDENTIFIER",
- "tFID",
- "tGVAR",
- "tIVAR",
- "tCONSTANT",
- "tLABEL",
- "tCVAR",
- "tNTH_REF",
- "tBACK_REF",
- "tSTRING_CONTENT",
- "tINTEGER",
- "tFLOAT",
- "tREGEXP_END",
- "tUPLUS",
- "tUMINUS",
- "tUMINUS_NUM",
- "tPOW",
- "tCMP",
- "tEQ",
- "tEQQ",
- "tNEQ",
- "tGEQ",
- "tLEQ",
- "tANDOP",
- "tOROP",
- "tMATCH",
- "tNMATCH",
- "tDOT",
- "tDOT2",
- "tDOT3",
- "tAREF",
- "tASET",
- "tLSHFT",
- "tRSHFT",
- "tCOLON2",
- "tCOLON3",
- "tOP_ASGN",
- "tASSOC",
- "tLPAREN",
- "tLPAREN2",
- "tRPAREN",
- "tLPAREN_ARG",
- "tLBRACK",
- "tLBRACK2",
- "tRBRACK",
- "tLBRACE",
- "tLBRACE_ARG",
- "tSTAR",
- "tSTAR2",
- "tAMPER",
- "tAMPER2",
- "tTILDE",
- "tPERCENT",
- "tDIVIDE",
- "tDSTAR",
- "tPLUS",
- "tMINUS",
- "tLT",
- "tGT",
- "tPIPE",
- "tBANG",
- "tCARET",
- "tLCURLY",
- "tRCURLY",
- "tBACK_REF2",
- "tSYMBEG",
- "tSTRING_BEG",
- "tXSTRING_BEG",
- "tREGEXP_BEG",
- "tREGEXP_OPT",
- "tWORDS_BEG",
- "tQWORDS_BEG",
- "tSYMBOLS_BEG",
- "tQSYMBOLS_BEG",
- "tSTRING_DBEG",
- "tSTRING_DVAR",
- "tSTRING_END",
- "tSTRING_DEND",
- "tSTRING",
- "tSYMBOL",
- "tNL",
- "tEH",
- "tCOLON",
- "tCOMMA",
- "tSPACE",
- "tSEMI",
- "tLAMBDA",
- "tLAMBEG",
- "tCHARACTER",
- "tRATIONAL",
- "tIMAGINARY",
- "tLABEL_END",
- "tEQL",
- "tLOWEST",
- "$start",
- "program",
- "top_compstmt",
- "top_stmts",
- "opt_terms",
- "top_stmt",
- "terms",
- "stmt",
- "bodystmt",
- "compstmt",
- "opt_rescue",
- "opt_else",
- "opt_ensure",
- "stmts",
- "stmt_or_begin",
- "fitem",
- "undef_list",
- "expr_value",
- "command_asgn",
- "mlhs",
- "command_call",
- "var_lhs",
- "primary_value",
- "opt_call_args",
- "rbracket",
- "backref",
- "lhs",
- "mrhs",
- "mrhs_arg",
- "expr",
- "@1",
- "opt_nl",
- "arg",
- "command",
- "block_command",
- "block_call",
- "dot_or_colon",
- "operation2",
- "command_args",
- "cmd_brace_block",
- "opt_block_param",
- "fcall",
- "@2",
- "operation",
- "call_args",
- "mlhs_basic",
- "mlhs_inner",
- "rparen",
- "mlhs_head",
- "mlhs_item",
- "mlhs_node",
- "mlhs_post",
- "user_variable",
- "keyword_variable",
- "cname",
- "cpath",
- "fname",
- "op",
- "reswords",
- "fsym",
- "symbol",
- "dsym",
- "@3",
- "simple_numeric",
- "primary",
- "arg_value",
- "@4",
- "@5",
- "aref_args",
- "none",
- "args",
- "trailer",
- "assocs",
- "paren_args",
- "opt_paren_args",
- "opt_block_arg",
- "block_arg",
- "@6",
- "literal",
- "strings",
- "xstring",
- "regexp",
- "words",
- "qwords",
- "symbols",
- "qsymbols",
- "var_ref",
- "assoc_list",
- "brace_block",
- "method_call",
- "lambda",
- "then",
- "if_tail",
- "do",
- "case_body",
- "for_var",
- "superclass",
- "term",
- "f_arglist",
- "singleton",
- "@7",
- "@8",
- "@9",
- "@10",
- "@11",
- "@12",
- "@13",
- "@14",
- "@15",
- "@16",
- "@17",
- "@18",
- "@19",
- "@20",
- "@21",
- "@22",
- "f_marg",
- "f_norm_arg",
- "f_margs",
- "f_marg_list",
- "block_args_tail",
- "f_block_kwarg",
- "f_kwrest",
- "opt_f_block_arg",
- "f_block_arg",
- "opt_block_args_tail",
- "block_param",
- "f_arg",
- "f_block_optarg",
- "f_rest_arg",
- "block_param_def",
- "opt_bv_decl",
- "bv_decls",
- "bvar",
- "f_bad_arg",
- "f_larglist",
- "lambda_body",
- "@23",
- "@24",
- "f_args",
- "do_block",
- "@25",
- "operation3",
- "@26",
- "@27",
- "cases",
- "exc_list",
- "exc_var",
- "numeric",
- "string",
- "string1",
- "string_contents",
- "xstring_contents",
- "regexp_contents",
- "word_list",
- "word",
- "string_content",
- "symbol_list",
- "qword_list",
- "qsym_list",
- "string_dvar",
- "@28",
- "@29",
- "args_tail",
- "@30",
- "f_kwarg",
- "opt_args_tail",
- "f_optarg",
- "f_arg_asgn",
- "f_arg_item",
- "f_label",
- "f_kw",
- "f_block_kw",
- "kwrest_mark",
- "f_opt",
- "f_block_opt",
- "restarg_mark",
- "blkarg_mark",
- "assoc" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-# reduce 1 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 78)
- def _reduce_2(val, _values, result)
- result = @builder.compstmt(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 83)
- def _reduce_3(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 87)
- def _reduce_4(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 91)
- def _reduce_5(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 95)
- def _reduce_6(val, _values, result)
- result = [ val[1] ]
-
- result
- end
-.,.,
-
-# reduce 7 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 101)
- def _reduce_8(val, _values, result)
- result = @builder.preexe(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 106)
- def _reduce_9(val, _values, result)
- rescue_bodies = val[1]
- else_t, else_ = val[2]
- ensure_t, ensure_ = val[3]
-
- if rescue_bodies.empty? && !else_.nil?
- diagnostic :warning, :useless_else, nil, else_t
- end
-
- result = @builder.begin_body(val[0],
- rescue_bodies,
- else_t, else_,
- ensure_t, ensure_)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 122)
- def _reduce_10(val, _values, result)
- result = @builder.compstmt(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 127)
- def _reduce_11(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 131)
- def _reduce_12(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 135)
- def _reduce_13(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 139)
- def _reduce_14(val, _values, result)
- result = [ val[1] ]
-
- result
- end
-.,.,
-
-# reduce 15 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 145)
- def _reduce_16(val, _values, result)
- diagnostic :error, :begin_in_method, nil, val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 150)
- def _reduce_17(val, _values, result)
- @lexer.state = :expr_fname
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 154)
- def _reduce_18(val, _values, result)
- result = @builder.alias(val[0], val[1], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 158)
- def _reduce_19(val, _values, result)
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.gvar(val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 164)
- def _reduce_20(val, _values, result)
- result = @builder.alias(val[0],
- @builder.gvar(val[1]),
- @builder.back_ref(val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 170)
- def _reduce_21(val, _values, result)
- diagnostic :error, :nth_ref_alias, nil, val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 174)
- def _reduce_22(val, _values, result)
- result = @builder.undef_method(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 178)
- def _reduce_23(val, _values, result)
- result = @builder.condition_mod(val[0], nil,
- val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 183)
- def _reduce_24(val, _values, result)
- result = @builder.condition_mod(nil, val[0],
- val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 188)
- def _reduce_25(val, _values, result)
- result = @builder.loop_mod(:while, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 192)
- def _reduce_26(val, _values, result)
- result = @builder.loop_mod(:until, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 196)
- def _reduce_27(val, _values, result)
- rescue_body = @builder.rescue_body(val[1],
- nil, nil, nil,
- nil, val[2])
-
- result = @builder.begin_body(val[0], [ rescue_body ])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 204)
- def _reduce_28(val, _values, result)
- result = @builder.postexe(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-# reduce 29 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 209)
- def _reduce_30(val, _values, result)
- result = @builder.multi_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 213)
- def _reduce_31(val, _values, result)
- result = @builder.op_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 217)
- def _reduce_32(val, _values, result)
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 224)
- def _reduce_33(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 231)
- def _reduce_34(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 238)
- def _reduce_35(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 245)
- def _reduce_36(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 252)
- def _reduce_37(val, _values, result)
- @builder.op_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 256)
- def _reduce_38(val, _values, result)
- result = @builder.assign(val[0], val[1],
- @builder.array(nil, val[2], nil))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 261)
- def _reduce_39(val, _values, result)
- result = @builder.multi_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-# reduce 40 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 267)
- def _reduce_41(val, _values, result)
- result = @builder.assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 271)
- def _reduce_42(val, _values, result)
- result = @builder.assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-# reduce 43 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 277)
- def _reduce_44(val, _values, result)
- result = @builder.logical_op(:and, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 281)
- def _reduce_45(val, _values, result)
- result = @builder.logical_op(:or, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 285)
- def _reduce_46(val, _values, result)
- result = @builder.not_op(val[0], nil, val[2], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 289)
- def _reduce_47(val, _values, result)
- result = @builder.not_op(val[0], nil, val[1], nil)
-
- result
- end
-.,.,
-
-# reduce 48 omitted
-
-# reduce 49 omitted
-
-# reduce 50 omitted
-
-# reduce 51 omitted
-
-# reduce 52 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 301)
- def _reduce_53(val, _values, result)
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 307)
- def _reduce_54(val, _values, result)
- @static_env.extend_dynamic
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 311)
- def _reduce_55(val, _values, result)
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-# reduce 56 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 320)
- def _reduce_57(val, _values, result)
- result = @builder.call_method(nil, nil, val[0],
- nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 325)
- def _reduce_58(val, _values, result)
- method_call = @builder.call_method(nil, nil, val[0],
- nil, val[1], nil)
-
- begin_t, args, body, end_t = val[2]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 334)
- def _reduce_59(val, _values, result)
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 339)
- def _reduce_60(val, _values, result)
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 348)
- def _reduce_61(val, _values, result)
- result = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 353)
- def _reduce_62(val, _values, result)
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 362)
- def _reduce_63(val, _values, result)
- result = @builder.keyword_cmd(:super, val[0],
- nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 367)
- def _reduce_64(val, _values, result)
- result = @builder.keyword_cmd(:yield, val[0],
- nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 372)
- def _reduce_65(val, _values, result)
- result = @builder.keyword_cmd(:return, val[0],
- nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 377)
- def _reduce_66(val, _values, result)
- result = @builder.keyword_cmd(:break, val[0],
- nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 382)
- def _reduce_67(val, _values, result)
- result = @builder.keyword_cmd(:next, val[0],
- nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 388)
- def _reduce_68(val, _values, result)
- result = @builder.multi_lhs(nil, val[0], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 392)
- def _reduce_69(val, _values, result)
- result = @builder.begin(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 397)
- def _reduce_70(val, _values, result)
- result = @builder.multi_lhs(nil, val[0], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 401)
- def _reduce_71(val, _values, result)
- result = @builder.multi_lhs(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-# reduce 72 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 407)
- def _reduce_73(val, _values, result)
- result = val[0].
- push(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 412)
- def _reduce_74(val, _values, result)
- result = val[0].
- push(@builder.splat(val[1], val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 417)
- def _reduce_75(val, _values, result)
- result = val[0].
- push(@builder.splat(val[1], val[2])).
- concat(val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 423)
- def _reduce_76(val, _values, result)
- result = val[0].
- push(@builder.splat(val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 428)
- def _reduce_77(val, _values, result)
- result = val[0].
- push(@builder.splat(val[1])).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 434)
- def _reduce_78(val, _values, result)
- result = [ @builder.splat(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 438)
- def _reduce_79(val, _values, result)
- result = [ @builder.splat(val[0], val[1]),
- *val[3] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 443)
- def _reduce_80(val, _values, result)
- result = [ @builder.splat(val[0]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 447)
- def _reduce_81(val, _values, result)
- result = [ @builder.splat(val[0]),
- *val[2] ]
-
- result
- end
-.,.,
-
-# reduce 82 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 454)
- def _reduce_83(val, _values, result)
- result = @builder.begin(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 459)
- def _reduce_84(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 463)
- def _reduce_85(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 468)
- def _reduce_86(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 472)
- def _reduce_87(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 477)
- def _reduce_88(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 481)
- def _reduce_89(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 485)
- def _reduce_90(val, _values, result)
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 489)
- def _reduce_91(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 493)
- def _reduce_92(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 497)
- def _reduce_93(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 501)
- def _reduce_94(val, _values, result)
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 506)
- def _reduce_95(val, _values, result)
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 511)
- def _reduce_96(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 516)
- def _reduce_97(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 520)
- def _reduce_98(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 524)
- def _reduce_99(val, _values, result)
- result = @builder.index_asgn(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 528)
- def _reduce_100(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 532)
- def _reduce_101(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 536)
- def _reduce_102(val, _values, result)
- result = @builder.attr_asgn(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 540)
- def _reduce_103(val, _values, result)
- result = @builder.assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 545)
- def _reduce_104(val, _values, result)
- result = @builder.assignable(
- @builder.const_global(val[0], val[1]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 550)
- def _reduce_105(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 555)
- def _reduce_106(val, _values, result)
- diagnostic :error, :module_name_const, nil, val[0]
-
- result
- end
-.,.,
-
-# reduce 107 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 561)
- def _reduce_108(val, _values, result)
- result = @builder.const_global(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 565)
- def _reduce_109(val, _values, result)
- result = @builder.const(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 569)
- def _reduce_110(val, _values, result)
- result = @builder.const_fetch(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-# reduce 111 omitted
-
-# reduce 112 omitted
-
-# reduce 113 omitted
-
-# reduce 114 omitted
-
-# reduce 115 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 578)
- def _reduce_116(val, _values, result)
- result = @builder.symbol(val[0])
-
- result
- end
-.,.,
-
-# reduce 117 omitted
-
-# reduce 118 omitted
-
-# reduce 119 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 587)
- def _reduce_120(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 591)
- def _reduce_121(val, _values, result)
- @lexer.state = :expr_fname
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 595)
- def _reduce_122(val, _values, result)
- result = val[0] << val[3]
-
- result
- end
-.,.,
-
-# reduce 123 omitted
-
-# reduce 124 omitted
-
-# reduce 125 omitted
-
-# reduce 126 omitted
-
-# reduce 127 omitted
-
-# reduce 128 omitted
-
-# reduce 129 omitted
-
-# reduce 130 omitted
-
-# reduce 131 omitted
-
-# reduce 132 omitted
-
-# reduce 133 omitted
-
-# reduce 134 omitted
-
-# reduce 135 omitted
-
-# reduce 136 omitted
-
-# reduce 137 omitted
-
-# reduce 138 omitted
-
-# reduce 139 omitted
-
-# reduce 140 omitted
-
-# reduce 141 omitted
-
-# reduce 142 omitted
-
-# reduce 143 omitted
-
-# reduce 144 omitted
-
-# reduce 145 omitted
-
-# reduce 146 omitted
-
-# reduce 147 omitted
-
-# reduce 148 omitted
-
-# reduce 149 omitted
-
-# reduce 150 omitted
-
-# reduce 151 omitted
-
-# reduce 152 omitted
-
-# reduce 153 omitted
-
-# reduce 154 omitted
-
-# reduce 155 omitted
-
-# reduce 156 omitted
-
-# reduce 157 omitted
-
-# reduce 158 omitted
-
-# reduce 159 omitted
-
-# reduce 160 omitted
-
-# reduce 161 omitted
-
-# reduce 162 omitted
-
-# reduce 163 omitted
-
-# reduce 164 omitted
-
-# reduce 165 omitted
-
-# reduce 166 omitted
-
-# reduce 167 omitted
-
-# reduce 168 omitted
-
-# reduce 169 omitted
-
-# reduce 170 omitted
-
-# reduce 171 omitted
-
-# reduce 172 omitted
-
-# reduce 173 omitted
-
-# reduce 174 omitted
-
-# reduce 175 omitted
-
-# reduce 176 omitted
-
-# reduce 177 omitted
-
-# reduce 178 omitted
-
-# reduce 179 omitted
-
-# reduce 180 omitted
-
-# reduce 181 omitted
-
-# reduce 182 omitted
-
-# reduce 183 omitted
-
-# reduce 184 omitted
-
-# reduce 185 omitted
-
-# reduce 186 omitted
-
-# reduce 187 omitted
-
-# reduce 188 omitted
-
-# reduce 189 omitted
-
-# reduce 190 omitted
-
-# reduce 191 omitted
-
-# reduce 192 omitted
-
-# reduce 193 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 616)
- def _reduce_194(val, _values, result)
- result = @builder.assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 620)
- def _reduce_195(val, _values, result)
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.assign(val[0], val[1], rescue_)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 630)
- def _reduce_196(val, _values, result)
- result = @builder.op_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 634)
- def _reduce_197(val, _values, result)
- rescue_body = @builder.rescue_body(val[3],
- nil, nil, nil,
- nil, val[4])
-
- rescue_ = @builder.begin_body(val[2], [ rescue_body ])
-
- result = @builder.op_assign(val[0], val[1], rescue_)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 644)
- def _reduce_198(val, _values, result)
- result = @builder.op_assign(
- @builder.index(
- val[0], val[1], val[2], val[3]),
- val[4], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 651)
- def _reduce_199(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 658)
- def _reduce_200(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 665)
- def _reduce_201(val, _values, result)
- result = @builder.op_assign(
- @builder.call_method(
- val[0], val[1], val[2]),
- val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 672)
- def _reduce_202(val, _values, result)
- const = @builder.const_op_assignable(
- @builder.const_fetch(val[0], val[1], val[2]))
- result = @builder.op_assign(const, val[3], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 678)
- def _reduce_203(val, _values, result)
- const = @builder.const_op_assignable(
- @builder.const_global(val[0], val[1]))
- result = @builder.op_assign(const, val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 684)
- def _reduce_204(val, _values, result)
- result = @builder.op_assign(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 688)
- def _reduce_205(val, _values, result)
- result = @builder.range_inclusive(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 692)
- def _reduce_206(val, _values, result)
- result = @builder.range_exclusive(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 696)
- def _reduce_207(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 700)
- def _reduce_208(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 704)
- def _reduce_209(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 708)
- def _reduce_210(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 712)
- def _reduce_211(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 716)
- def _reduce_212(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 720)
- def _reduce_213(val, _values, result)
- result = @builder.unary_op(val[0],
- @builder.binary_op(
- val[1], val[2], val[3]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 726)
- def _reduce_214(val, _values, result)
- result = @builder.unary_op(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 730)
- def _reduce_215(val, _values, result)
- result = @builder.unary_op(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 734)
- def _reduce_216(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 738)
- def _reduce_217(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 742)
- def _reduce_218(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 746)
- def _reduce_219(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 750)
- def _reduce_220(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 754)
- def _reduce_221(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 758)
- def _reduce_222(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 762)
- def _reduce_223(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 766)
- def _reduce_224(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 770)
- def _reduce_225(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 774)
- def _reduce_226(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 778)
- def _reduce_227(val, _values, result)
- result = @builder.match_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 782)
- def _reduce_228(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 786)
- def _reduce_229(val, _values, result)
- result = @builder.not_op(val[0], nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 790)
- def _reduce_230(val, _values, result)
- result = @builder.unary_op(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 794)
- def _reduce_231(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 798)
- def _reduce_232(val, _values, result)
- result = @builder.binary_op(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 802)
- def _reduce_233(val, _values, result)
- result = @builder.logical_op(:and, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 806)
- def _reduce_234(val, _values, result)
- result = @builder.logical_op(:or, val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 810)
- def _reduce_235(val, _values, result)
- result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 820)
- def _reduce_236(val, _values, result)
- @lexer.push_cond
- @lexer.cond.push(true)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 825)
- def _reduce_237(val, _values, result)
- @lexer.pop_cond
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 829)
- def _reduce_238(val, _values, result)
- result = @builder.ternary(val[0], val[1],
- val[3], val[5], val[7])
-
- result
- end
-.,.,
-
-# reduce 239 omitted
-
-# reduce 240 omitted
-
-# reduce 241 omitted
-
-# reduce 242 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 840)
- def _reduce_243(val, _values, result)
- result = val[0] << @builder.associate(nil, val[2], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 844)
- def _reduce_244(val, _values, result)
- result = [ @builder.associate(nil, val[0], nil) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 849)
- def _reduce_245(val, _values, result)
- result = val
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 854)
- def _reduce_246(val, _values, result)
- result = [ nil, [], nil ]
-
- result
- end
-.,.,
-
-# reduce 247 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 860)
- def _reduce_248(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-# reduce 249 omitted
-
-# reduce 250 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 866)
- def _reduce_251(val, _values, result)
- result = val[0] << @builder.associate(nil, val[2], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 870)
- def _reduce_252(val, _values, result)
- result = [ @builder.associate(nil, val[0], nil) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 875)
- def _reduce_253(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 879)
- def _reduce_254(val, _values, result)
- result = val[0].concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 883)
- def _reduce_255(val, _values, result)
- result = [ @builder.associate(nil, val[0], nil) ]
- result.concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 888)
- def _reduce_256(val, _values, result)
- assocs = @builder.associate(nil, val[2], nil)
- result = val[0] << assocs
- result.concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 894)
- def _reduce_257(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 898)
- def _reduce_258(val, _values, result)
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.push(true)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 903)
- def _reduce_259(val, _values, result)
- @lexer.cmdarg = val[0]
-
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 910)
- def _reduce_260(val, _values, result)
- result = @builder.block_pass(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 915)
- def _reduce_261(val, _values, result)
- result = [ val[1] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 919)
- def _reduce_262(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 924)
- def _reduce_263(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 928)
- def _reduce_264(val, _values, result)
- result = [ @builder.splat(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 932)
- def _reduce_265(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 936)
- def _reduce_266(val, _values, result)
- result = val[0] << @builder.splat(val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 941)
- def _reduce_267(val, _values, result)
- result = @builder.array(nil, val[0], nil)
-
- result
- end
-.,.,
-
-# reduce 268 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 947)
- def _reduce_269(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 951)
- def _reduce_270(val, _values, result)
- result = val[0] << @builder.splat(val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 955)
- def _reduce_271(val, _values, result)
- result = [ @builder.splat(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-# reduce 272 omitted
-
-# reduce 273 omitted
-
-# reduce 274 omitted
-
-# reduce 275 omitted
-
-# reduce 276 omitted
-
-# reduce 277 omitted
-
-# reduce 278 omitted
-
-# reduce 279 omitted
-
-# reduce 280 omitted
-
-# reduce 281 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 970)
- def _reduce_282(val, _values, result)
- result = @builder.call_method(nil, nil, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 974)
- def _reduce_283(val, _values, result)
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 979)
- def _reduce_284(val, _values, result)
- @lexer.cmdarg = val[1]
-
- result = @builder.begin_keyword(val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 985)
- def _reduce_285(val, _values, result)
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 990)
- def _reduce_286(val, _values, result)
- @lexer.state = :expr_endarg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 994)
- def _reduce_287(val, _values, result)
- @lexer.cmdarg = val[1]
-
- result = @builder.begin(val[0], val[2], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1000)
- def _reduce_288(val, _values, result)
- @lexer.state = :expr_endarg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1004)
- def _reduce_289(val, _values, result)
- result = @builder.begin(val[0], nil, val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1008)
- def _reduce_290(val, _values, result)
- result = @builder.begin(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1012)
- def _reduce_291(val, _values, result)
- result = @builder.const_fetch(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1016)
- def _reduce_292(val, _values, result)
- result = @builder.const_global(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1020)
- def _reduce_293(val, _values, result)
- result = @builder.array(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1024)
- def _reduce_294(val, _values, result)
- result = @builder.associate(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1028)
- def _reduce_295(val, _values, result)
- result = @builder.keyword_cmd(:return, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1032)
- def _reduce_296(val, _values, result)
- result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1036)
- def _reduce_297(val, _values, result)
- result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1040)
- def _reduce_298(val, _values, result)
- result = @builder.keyword_cmd(:yield, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1044)
- def _reduce_299(val, _values, result)
- result = @builder.keyword_cmd(:defined?, val[0],
- val[2], [ val[3] ], val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1049)
- def _reduce_300(val, _values, result)
- result = @builder.not_op(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1053)
- def _reduce_301(val, _values, result)
- result = @builder.not_op(val[0], val[1], nil, val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1057)
- def _reduce_302(val, _values, result)
- method_call = @builder.call_method(nil, nil, val[0])
-
- begin_t, args, body, end_t = val[1]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
-
- result
- end
-.,.,
-
-# reduce 303 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1066)
- def _reduce_304(val, _values, result)
- begin_t, args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1072)
- def _reduce_305(val, _values, result)
- lambda_call = @builder.call_lambda(val[0])
-
- args, (begin_t, body, end_t) = val[1]
- result = @builder.block(lambda_call,
- begin_t, args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1080)
- def _reduce_306(val, _values, result)
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1087)
- def _reduce_307(val, _values, result)
- else_t, else_ = val[4]
- result = @builder.condition(val[0], val[1], val[2],
- else_, else_t,
- val[3], val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1094)
- def _reduce_308(val, _values, result)
- @lexer.cond.push(true)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1098)
- def _reduce_309(val, _values, result)
- @lexer.cond.pop
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1102)
- def _reduce_310(val, _values, result)
- result = @builder.loop(:while, val[0], val[2], val[3],
- val[5], val[6])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1107)
- def _reduce_311(val, _values, result)
- @lexer.cond.push(true)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1111)
- def _reduce_312(val, _values, result)
- @lexer.cond.pop
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1115)
- def _reduce_313(val, _values, result)
- result = @builder.loop(:until, val[0], val[2], val[3],
- val[5], val[6])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1120)
- def _reduce_314(val, _values, result)
- *when_bodies, (else_t, else_body) = *val[3]
-
- result = @builder.case(val[0], val[1],
- when_bodies, else_t, else_body,
- val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1128)
- def _reduce_315(val, _values, result)
- *when_bodies, (else_t, else_body) = *val[2]
-
- result = @builder.case(val[0], nil,
- when_bodies, else_t, else_body,
- val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1136)
- def _reduce_316(val, _values, result)
- @lexer.cond.push(true)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1140)
- def _reduce_317(val, _values, result)
- @lexer.cond.pop
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1144)
- def _reduce_318(val, _values, result)
- result = @builder.for(val[0], val[1],
- val[2], val[4],
- val[5], val[7], val[8])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1150)
- def _reduce_319(val, _values, result)
- @static_env.extend_static
- @lexer.push_cmdarg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1155)
- def _reduce_320(val, _values, result)
- if in_def?
- diagnostic :error, :class_in_def, nil, val[0]
- end
-
- lt_t, superclass = val[2]
- result = @builder.def_class(val[0], val[1],
- lt_t, superclass,
- val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1169)
- def _reduce_321(val, _values, result)
- result = @def_level
- @def_level = 0
-
- @static_env.extend_static
- @lexer.push_cmdarg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1177)
- def _reduce_322(val, _values, result)
- result = @builder.def_sclass(val[0], val[1], val[2],
- val[5], val[6])
-
- @lexer.pop_cmdarg
- @static_env.unextend
-
- @def_level = val[4]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1187)
- def _reduce_323(val, _values, result)
- @static_env.extend_static
- @lexer.push_cmdarg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1192)
- def _reduce_324(val, _values, result)
- if in_def?
- diagnostic :error, :module_in_def, nil, val[0]
- end
-
- result = @builder.def_module(val[0], val[1],
- val[3], val[4])
-
- @lexer.pop_cmdarg
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1204)
- def _reduce_325(val, _values, result)
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1210)
- def _reduce_326(val, _values, result)
- result = @builder.def_method(val[0], val[1],
- val[3], val[4], val[5])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1219)
- def _reduce_327(val, _values, result)
- @lexer.state = :expr_fname
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1223)
- def _reduce_328(val, _values, result)
- @def_level += 1
- @static_env.extend_static
- @lexer.push_cmdarg
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1229)
- def _reduce_329(val, _values, result)
- result = @builder.def_singleton(val[0], val[1], val[2],
- val[4], val[6], val[7], val[8])
-
- @lexer.pop_cmdarg
- @static_env.unextend
- @def_level -= 1
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1238)
- def _reduce_330(val, _values, result)
- result = @builder.keyword_cmd(:break, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1242)
- def _reduce_331(val, _values, result)
- result = @builder.keyword_cmd(:next, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1246)
- def _reduce_332(val, _values, result)
- result = @builder.keyword_cmd(:redo, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1250)
- def _reduce_333(val, _values, result)
- result = @builder.keyword_cmd(:retry, val[0])
-
- result
- end
-.,.,
-
-# reduce 334 omitted
-
-# reduce 335 omitted
-
-# reduce 336 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1259)
- def _reduce_337(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-# reduce 338 omitted
-
-# reduce 339 omitted
-
-# reduce 340 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1268)
- def _reduce_341(val, _values, result)
- else_t, else_ = val[4]
- result = [ val[0],
- @builder.condition(val[0], val[1], val[2],
- val[3], else_t,
- else_, nil),
- ]
-
- result
- end
-.,.,
-
-# reduce 342 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1279)
- def _reduce_343(val, _values, result)
- result = val
-
- result
- end
-.,.,
-
-# reduce 344 omitted
-
-# reduce 345 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1287)
- def _reduce_346(val, _values, result)
- result = @builder.arg(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1291)
- def _reduce_347(val, _values, result)
- result = @builder.multi_lhs(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1296)
- def _reduce_348(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1300)
- def _reduce_349(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-# reduce 350 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1306)
- def _reduce_351(val, _values, result)
- result = val[0].
- push(@builder.restarg(val[2], val[3]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1311)
- def _reduce_352(val, _values, result)
- result = val[0].
- push(@builder.restarg(val[2], val[3])).
- concat(val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1317)
- def _reduce_353(val, _values, result)
- result = val[0].
- push(@builder.restarg(val[2]))
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1322)
- def _reduce_354(val, _values, result)
- result = val[0].
- push(@builder.restarg(val[2])).
- concat(val[4])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1328)
- def _reduce_355(val, _values, result)
- result = [ @builder.restarg(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1332)
- def _reduce_356(val, _values, result)
- result = [ @builder.restarg(val[0], val[1]),
- *val[3] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1337)
- def _reduce_357(val, _values, result)
- result = [ @builder.restarg(val[0]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1341)
- def _reduce_358(val, _values, result)
- result = [ @builder.restarg(val[0]),
- *val[2] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1347)
- def _reduce_359(val, _values, result)
- result = val[0].concat(val[2]).concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1351)
- def _reduce_360(val, _values, result)
- result = val[0].concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1355)
- def _reduce_361(val, _values, result)
- result = val[0].concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1359)
- def _reduce_362(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1365)
- def _reduce_363(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1369)
- def _reduce_364(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1374)
- def _reduce_365(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1381)
- def _reduce_366(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1389)
- def _reduce_367(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1395)
- def _reduce_368(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1402)
- def _reduce_369(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-# reduce 370 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1409)
- def _reduce_371(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1416)
- def _reduce_372(val, _values, result)
- result = val[0].concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1420)
- def _reduce_373(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1426)
- def _reduce_374(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1433)
- def _reduce_375(val, _values, result)
- result = val[0].
- concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1438)
- def _reduce_376(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1444)
- def _reduce_377(val, _values, result)
- result = val[0].
- concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1449)
- def _reduce_378(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-# reduce 379 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1457)
- def _reduce_380(val, _values, result)
- result = @builder.args(nil, [], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1461)
- def _reduce_381(val, _values, result)
- @lexer.state = :expr_value
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1466)
- def _reduce_382(val, _values, result)
- result = @builder.args(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1470)
- def _reduce_383(val, _values, result)
- result = @builder.args(val[0], [], val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1474)
- def _reduce_384(val, _values, result)
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1479)
- def _reduce_385(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1483)
- def _reduce_386(val, _values, result)
- result = val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1488)
- def _reduce_387(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1492)
- def _reduce_388(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1497)
- def _reduce_389(val, _values, result)
- result = @builder.shadowarg(val[0])
-
- result
- end
-.,.,
-
-# reduce 390 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1502)
- def _reduce_391(val, _values, result)
- @static_env.extend_dynamic
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1506)
- def _reduce_392(val, _values, result)
- result = @lexer.cmdarg.dup
- @lexer.cmdarg.clear
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1511)
- def _reduce_393(val, _values, result)
- @lexer.cmdarg = val[2]
- @lexer.cmdarg.lexpop
-
- result = [ val[1], val[3] ]
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1521)
- def _reduce_394(val, _values, result)
- result = @builder.args(val[0], val[1].concat(val[2]), val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1525)
- def _reduce_395(val, _values, result)
- result = @builder.args(nil, val[0], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1530)
- def _reduce_396(val, _values, result)
- result = [ val[0], val[1], val[2] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1534)
- def _reduce_397(val, _values, result)
- result = [ val[0], val[1], val[2] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1539)
- def _reduce_398(val, _values, result)
- @static_env.extend_dynamic
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1543)
- def _reduce_399(val, _values, result)
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1550)
- def _reduce_400(val, _values, result)
- begin_t, block_args, body, end_t = val[1]
- result = @builder.block(val[0],
- begin_t, block_args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1556)
- def _reduce_401(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1562)
- def _reduce_402(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- method_call = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1572)
- def _reduce_403(val, _values, result)
- method_call = @builder.call_method(val[0], val[1], val[2],
- nil, val[3], nil)
-
- begin_t, args, body, end_t = val[4]
- result = @builder.block(method_call,
- begin_t, args, body, end_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1582)
- def _reduce_404(val, _values, result)
- lparen_t, args, rparen_t = val[1]
- result = @builder.call_method(nil, nil, val[0],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1588)
- def _reduce_405(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1594)
- def _reduce_406(val, _values, result)
- lparen_t, args, rparen_t = val[3]
- result = @builder.call_method(val[0], val[1], val[2],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1600)
- def _reduce_407(val, _values, result)
- result = @builder.call_method(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1604)
- def _reduce_408(val, _values, result)
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1610)
- def _reduce_409(val, _values, result)
- lparen_t, args, rparen_t = val[2]
- result = @builder.call_method(val[0], val[1], nil,
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1616)
- def _reduce_410(val, _values, result)
- lparen_t, args, rparen_t = val[1]
- result = @builder.keyword_cmd(:super, val[0],
- lparen_t, args, rparen_t)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1622)
- def _reduce_411(val, _values, result)
- result = @builder.keyword_cmd(:zsuper, val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1626)
- def _reduce_412(val, _values, result)
- result = @builder.index(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1631)
- def _reduce_413(val, _values, result)
- @static_env.extend_dynamic
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1635)
- def _reduce_414(val, _values, result)
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1641)
- def _reduce_415(val, _values, result)
- @static_env.extend_dynamic
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1645)
- def _reduce_416(val, _values, result)
- result = [ val[0], val[2], val[3], val[4] ]
-
- @static_env.unextend
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1652)
- def _reduce_417(val, _values, result)
- result = [ @builder.when(val[0], val[1], val[2], val[3]),
- *val[4] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1658)
- def _reduce_418(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-# reduce 419 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1664)
- def _reduce_420(val, _values, result)
- assoc_t, exc_var = val[2]
-
- if val[1]
- exc_list = @builder.array(nil, val[1], nil)
- end
-
- result = [ @builder.rescue_body(val[0],
- exc_list, assoc_t, exc_var,
- val[3], val[4]),
- *val[5] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1677)
- def _reduce_421(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1682)
- def _reduce_422(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-# reduce 423 omitted
-
-# reduce 424 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1689)
- def _reduce_425(val, _values, result)
- result = [ val[0], val[1] ]
-
- result
- end
-.,.,
-
-# reduce 426 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1695)
- def _reduce_427(val, _values, result)
- result = [ val[0], val[1] ]
-
- result
- end
-.,.,
-
-# reduce 428 omitted
-
-# reduce 429 omitted
-
-# reduce 430 omitted
-
-# reduce 431 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1705)
- def _reduce_432(val, _values, result)
- result = @builder.string_compose(nil, val[0], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1710)
- def _reduce_433(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1714)
- def _reduce_434(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1719)
- def _reduce_435(val, _values, result)
- result = @builder.string_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1723)
- def _reduce_436(val, _values, result)
- result = @builder.string(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1727)
- def _reduce_437(val, _values, result)
- result = @builder.character(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1732)
- def _reduce_438(val, _values, result)
- result = @builder.xstring_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1737)
- def _reduce_439(val, _values, result)
- opts = @builder.regexp_options(val[3])
- result = @builder.regexp_compose(val[0], val[1], val[2], opts)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1743)
- def _reduce_440(val, _values, result)
- result = @builder.words_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1748)
- def _reduce_441(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1752)
- def _reduce_442(val, _values, result)
- result = val[0] << @builder.word(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1757)
- def _reduce_443(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1761)
- def _reduce_444(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1766)
- def _reduce_445(val, _values, result)
- result = @builder.symbols_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1771)
- def _reduce_446(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1775)
- def _reduce_447(val, _values, result)
- result = val[0] << @builder.word(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1780)
- def _reduce_448(val, _values, result)
- result = @builder.words_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1785)
- def _reduce_449(val, _values, result)
- result = @builder.symbols_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1790)
- def _reduce_450(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1794)
- def _reduce_451(val, _values, result)
- result = val[0] << @builder.string_internal(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1799)
- def _reduce_452(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1803)
- def _reduce_453(val, _values, result)
- result = val[0] << @builder.symbol_internal(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1808)
- def _reduce_454(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1812)
- def _reduce_455(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1817)
- def _reduce_456(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1821)
- def _reduce_457(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1826)
- def _reduce_458(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1830)
- def _reduce_459(val, _values, result)
- result = val[0] << val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1835)
- def _reduce_460(val, _values, result)
- result = @builder.string_internal(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1839)
- def _reduce_461(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1843)
- def _reduce_462(val, _values, result)
- @lexer.cond.push(false)
- @lexer.cmdarg.push(false)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1848)
- def _reduce_463(val, _values, result)
- @lexer.cond.lexpop
- @lexer.cmdarg.lexpop
-
- result = @builder.begin(val[0], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1856)
- def _reduce_464(val, _values, result)
- result = @builder.gvar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1860)
- def _reduce_465(val, _values, result)
- result = @builder.ivar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1864)
- def _reduce_466(val, _values, result)
- result = @builder.cvar(val[0])
-
- result
- end
-.,.,
-
-# reduce 467 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 1871)
- def _reduce_468(val, _values, result)
- result = @builder.symbol(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1876)
- def _reduce_469(val, _values, result)
- result = @builder.symbol_compose(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1881)
- def _reduce_470(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1885)
- def _reduce_471(val, _values, result)
- result = @builder.negate(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1890)
- def _reduce_472(val, _values, result)
- result = @builder.integer(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1894)
- def _reduce_473(val, _values, result)
- result = @builder.float(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1898)
- def _reduce_474(val, _values, result)
- result = @builder.rational(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1902)
- def _reduce_475(val, _values, result)
- result = @builder.complex(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1907)
- def _reduce_476(val, _values, result)
- result = @builder.ident(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1911)
- def _reduce_477(val, _values, result)
- result = @builder.ivar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1915)
- def _reduce_478(val, _values, result)
- result = @builder.gvar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1919)
- def _reduce_479(val, _values, result)
- result = @builder.const(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1923)
- def _reduce_480(val, _values, result)
- result = @builder.cvar(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1928)
- def _reduce_481(val, _values, result)
- result = @builder.nil(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1932)
- def _reduce_482(val, _values, result)
- result = @builder.self(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1936)
- def _reduce_483(val, _values, result)
- result = @builder.true(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1940)
- def _reduce_484(val, _values, result)
- result = @builder.false(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1944)
- def _reduce_485(val, _values, result)
- result = @builder.__FILE__(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1948)
- def _reduce_486(val, _values, result)
- result = @builder.__LINE__(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1952)
- def _reduce_487(val, _values, result)
- result = @builder.__ENCODING__(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1957)
- def _reduce_488(val, _values, result)
- result = @builder.accessible(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1961)
- def _reduce_489(val, _values, result)
- result = @builder.accessible(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1966)
- def _reduce_490(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1970)
- def _reduce_491(val, _values, result)
- result = @builder.assignable(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1975)
- def _reduce_492(val, _values, result)
- result = @builder.nth_ref(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1979)
- def _reduce_493(val, _values, result)
- result = @builder.back_ref(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1984)
- def _reduce_494(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1988)
- def _reduce_495(val, _values, result)
- @lexer.state = :expr_value
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1992)
- def _reduce_496(val, _values, result)
- result = [ val[0], val[2] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 1996)
- def _reduce_497(val, _values, result)
- yyerrok
- result = nil
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2002)
- def _reduce_498(val, _values, result)
- result = @builder.args(val[0], val[1], val[2])
-
- @lexer.state = :expr_value
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2007)
- def _reduce_499(val, _values, result)
- result = @lexer.in_kwarg
- @lexer.in_kwarg = true
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2012)
- def _reduce_500(val, _values, result)
- @lexer.in_kwarg = val[0]
- result = @builder.args(nil, val[1], nil)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2018)
- def _reduce_501(val, _values, result)
- result = val[0].concat(val[2]).concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2022)
- def _reduce_502(val, _values, result)
- result = val[0].concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2026)
- def _reduce_503(val, _values, result)
- result = val[0].concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2030)
- def _reduce_504(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2035)
- def _reduce_505(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2039)
- def _reduce_506(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2044)
- def _reduce_507(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2051)
- def _reduce_508(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[6]).
- concat(val[7])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2059)
- def _reduce_509(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2065)
- def _reduce_510(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2072)
- def _reduce_511(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2078)
- def _reduce_512(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2085)
- def _reduce_513(val, _values, result)
- result = val[0].
- concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2090)
- def _reduce_514(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2096)
- def _reduce_515(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[4]).
- concat(val[5])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2103)
- def _reduce_516(val, _values, result)
- result = val[0].
- concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2108)
- def _reduce_517(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2114)
- def _reduce_518(val, _values, result)
- result = val[0].
- concat(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2119)
- def _reduce_519(val, _values, result)
- result = val[0].
- concat(val[2]).
- concat(val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2125)
- def _reduce_520(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2129)
- def _reduce_521(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2134)
- def _reduce_522(val, _values, result)
- diagnostic :error, :argument_const, nil, val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2138)
- def _reduce_523(val, _values, result)
- diagnostic :error, :argument_ivar, nil, val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2142)
- def _reduce_524(val, _values, result)
- diagnostic :error, :argument_gvar, nil, val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2146)
- def _reduce_525(val, _values, result)
- diagnostic :error, :argument_cvar, nil, val[0]
-
- result
- end
-.,.,
-
-# reduce 526 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 2152)
- def _reduce_527(val, _values, result)
- @static_env.declare val[0][0]
-
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2159)
- def _reduce_528(val, _values, result)
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2164)
- def _reduce_529(val, _values, result)
- result = @builder.arg(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2168)
- def _reduce_530(val, _values, result)
- result = @builder.multi_lhs(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2173)
- def _reduce_531(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2177)
- def _reduce_532(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2182)
- def _reduce_533(val, _values, result)
- check_kwarg_name(val[0])
-
- @static_env.declare val[0][0]
-
- result = val[0]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2191)
- def _reduce_534(val, _values, result)
- result = @builder.kwoptarg(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2195)
- def _reduce_535(val, _values, result)
- result = @builder.kwarg(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2200)
- def _reduce_536(val, _values, result)
- result = @builder.kwoptarg(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2204)
- def _reduce_537(val, _values, result)
- result = @builder.kwarg(val[0])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2209)
- def _reduce_538(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2213)
- def _reduce_539(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2218)
- def _reduce_540(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2222)
- def _reduce_541(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-# reduce 542 omitted
-
-# reduce 543 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 2229)
- def _reduce_544(val, _values, result)
- @static_env.declare val[1][0]
-
- result = [ @builder.kwrestarg(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2235)
- def _reduce_545(val, _values, result)
- result = [ @builder.kwrestarg(val[0]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2240)
- def _reduce_546(val, _values, result)
- result = @builder.optarg(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2245)
- def _reduce_547(val, _values, result)
- result = @builder.optarg(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2250)
- def _reduce_548(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2254)
- def _reduce_549(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2259)
- def _reduce_550(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2263)
- def _reduce_551(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-# reduce 552 omitted
-
-# reduce 553 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 2270)
- def _reduce_554(val, _values, result)
- @static_env.declare val[1][0]
-
- result = [ @builder.restarg(val[0], val[1]) ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2276)
- def _reduce_555(val, _values, result)
- result = [ @builder.restarg(val[0]) ]
-
- result
- end
-.,.,
-
-# reduce 556 omitted
-
-# reduce 557 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 2283)
- def _reduce_558(val, _values, result)
- @static_env.declare val[1][0]
-
- result = @builder.blockarg(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2290)
- def _reduce_559(val, _values, result)
- result = [ val[1] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2294)
- def _reduce_560(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-# reduce 561 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 2300)
- def _reduce_562(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2305)
- def _reduce_563(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-# reduce 564 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 2311)
- def _reduce_565(val, _values, result)
- result = [ val[0] ]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2315)
- def _reduce_566(val, _values, result)
- result = val[0] << val[2]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2320)
- def _reduce_567(val, _values, result)
- result = @builder.pair(val[0], val[1], val[2])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2324)
- def _reduce_568(val, _values, result)
- result = @builder.pair_keyword(val[0], val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2328)
- def _reduce_569(val, _values, result)
- result = @builder.pair_quoted(val[0], val[1], val[2], val[3])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2332)
- def _reduce_570(val, _values, result)
- result = @builder.kwsplat(val[0], val[1])
-
- result
- end
-.,.,
-
-# reduce 571 omitted
-
-# reduce 572 omitted
-
-# reduce 573 omitted
-
-# reduce 574 omitted
-
-# reduce 575 omitted
-
-# reduce 576 omitted
-
-# reduce 577 omitted
-
-# reduce 578 omitted
-
-# reduce 579 omitted
-
-# reduce 580 omitted
-
-# reduce 581 omitted
-
-# reduce 582 omitted
-
-# reduce 583 omitted
-
-# reduce 584 omitted
-
-# reduce 585 omitted
-
-# reduce 586 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 2343)
- def _reduce_587(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'ruby22.y', 2347)
- def _reduce_588(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-# reduce 589 omitted
-
-# reduce 590 omitted
-
-# reduce 591 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 2353)
- def _reduce_592(val, _values, result)
- yyerrok
-
- result
- end
-.,.,
-
-# reduce 593 omitted
-
-# reduce 594 omitted
-
-# reduce 595 omitted
-
-module_eval(<<'.,.,', 'ruby22.y', 2362)
- def _reduce_596(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Ruby22
-end # module Parser
diff --git a/test/racc/regress/tp_plus b/test/racc/regress/tp_plus
deleted file mode 100644
index 34b6284db7..0000000000
--- a/test/racc/regress/tp_plus
+++ /dev/null
@@ -1,1933 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-module TPPlus
- class Parser < Racc::Parser
-
-module_eval(<<'...end tp_plus.y/module_eval...', 'tp_plus.y', 592)
-
- include TPPlus::Nodes
-
- attr_reader :interpreter
- def initialize(scanner, interpreter = TPPlus::Interpreter.new)
- @scanner = scanner
- @interpreter = interpreter
- super()
- end
-
- def next_token
- t = @scanner.next_token
- @interpreter.line_count += 1 if t && t[0] == :NEWLINE
-
- #puts t.inspect
- t
- end
-
- def parse
- #@yydebug =true
-
- do_parse
- @interpreter
- end
-
- def on_error(t, val, vstack)
- raise ParseError, sprintf("Parse error on line #{@scanner.tok_line} column #{@scanner.tok_col}: %s (%s)",
- val.inspect, token_to_str(t) || '?')
- end
-
- class ParseError < StandardError ; end
-...end tp_plus.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- 62, 62, 62, 62, 101, 122, 62, 41, 38, 130,
- 275, 265, 72, 41, 72, 98, 113, 72, 53, 114,
- 41, 67, 67, 67, 67, 234, 38, 26, 152, 151,
- 101, 36, 64, 159, 81, 82, 72, 308, 159, 81,
- 82, 72, 122, 70, 308, 60, 74, 60, 42, 308,
- 60, 43, 44, 131, 45, 31, 32, 300, 75, 34,
- 35, 46, 47, 102, 60, 273, 30, 72, 29, 28,
- 25, 63, 76, 37, 27, 24, 62, 41, 38, 37,
- 69, 69, 69, 69, 33, 61, 37, 97, 53, 102,
- 61, 37, 81, 82, 355, 61, 103, 26, 82, 72,
- 60, 36, 159, 81, 82, 72, 208, 221, 209, 371,
- 82, 72, 105, 220, 33, 81, 82, 72, 42, 72,
- 317, 43, 44, 111, 45, 31, 32, 96, 72, 34,
- 35, 46, 47, 96, 60, 223, 30, 224, 29, 28,
- 25, 63, 115, 37, 27, 24, 62, 41, 38, 72,
- 60, 81, 82, 72, 33, 61, 121, 116, 53, 61,
- 122, 88, 94, 96, 321, 117, 118, 26, 317, 352,
- 125, 36, 323, 127, 203, 349, 350, 351, 353, 303,
- 304, 96, 367, 81, 82, 72, 60, 255, 42, 209,
- 101, 43, 44, 122, 45, 31, 32, 185, 94, 34,
- 35, 46, 47, 186, 60, 191, 30, 61, 29, 28,
- 25, 63, 321, 37, 27, 24, 62, 41, 38, 188,
- 323, 122, 203, 122, 33, 61, 82, 72, 53, 336,
- 335, 182, 181, 179, 180, 177, 173, 26, 176, 174,
- 199, 36, 81, 82, 72, 81, 82, 72, 81, 82,
- 72, 81, 82, 81, 82, 72, 200, 201, 42, 203,
- 204, 43, 44, 96, 45, 31, 32, 210, 211, 34,
- 35, 46, 47, 212, 60, 213, 30, 214, 29, 28,
- 25, 63, 215, 37, 27, 24, 216, 178, 217, 175,
- 81, 82, 72, 218, 33, 61, 81, 82, 72, 219,
- 88, 317, 96, 81, 82, 72, 88, 227, 96, 81,
- 82, 72, 227, 88, 96, 96, 81, 82, 72, 88,
- 229, 96, 81, 82, 72, 60, 88, 230, 96, 231,
- 234, 60, 88, 235, 96, 238, 122, 94, 60, 81,
- 82, 72, 122, 94, 60, 321, 61, 81, 82, 72,
- 94, 60, 61, 323, 241, 203, 94, 60, 242, 61,
- 244, 245, 246, 94, 247, 61, 248, 249, 250, 94,
- 251, 252, 61, 81, 82, 72, 253, 254, 61, 81,
- 82, 72, 257, 88, 188, 96, 81, 82, 72, 88,
- 259, 96, 81, 82, 72, 269, 88, 271, 96, 81,
- 82, 72, 88, 276, 96, 122, 281, 282, 60, 88,
- 283, 96, 284, 285, 60, 286, 287, 288, 289, 290,
- 94, 60, 82, 292, 293, 294, 94, 60, 122, 61,
- 122, 72, 298, 94, 60, 61, 301, 302, 305, 94,
- 306, 313, 61, 314, 122, 122, 94, 325, 61, 135,
- 136, 139, 140, 137, 138, 61, 141, 142, 144, 145,
- 146, 148, 143, 147, 135, 136, 139, 140, 137, 138,
- 326, 141, 142, 144, 145, 146, 148, 143, 147, 327,
- 328, 188, 97, 333, 275, 122, 33, 135, 136, 139,
- 140, 137, 138, 205, 141, 142, 144, 145, 146, 148,
- 143, 147, 188, 188, 333, 122, 346, 347, 207, 135,
- 136, 139, 140, 137, 138, 348, 141, 142, 144, 145,
- 146, 148, 143, 147, 188, 356, 357, 358, 359, 360,
- 135, 136, 139, 140, 137, 138, 361, 141, 142, 144,
- 145, 146, 148, 143, 147, 135, 136, 139, 140, 137,
- 138, 362, 141, 142, 144, 145, 146, 148, 143, 147,
- 135, 136, 139, 140, 137, 138, 122, 141, 142, 144,
- 145, 146, 148, 143, 147, 135, 136, 139, 140, 137,
- 138, 364, 141, 142, 144, 145, 146, 148, 143, 147,
- 135, 136, 139, 140, 137, 138, 72, 141, 142, 144,
- 145, 146, 148, 143, 147, 135, 136, 139, 140, 137,
- 138, 33, 141, 142, 144, 145, 146, 148, 143, 147,
- 135, 136, 139, 140, 137, 138, 378, 141, 142, 144,
- 145, 146, 148, 143, 147, 135, 136, 139, 140, 137,
- 138, 379, 141, 142, 144, 145, 146, 148, 143, 147,
- 380, 381, 382, 383, 385, 386, 390, 72, 392 ]
-
-racc_action_check = [
- 3, 65, 309, 312, 72, 272, 0, 0, 0, 70,
- 240, 232, 28, 295, 29, 36, 48, 105, 0, 48,
- 296, 3, 65, 309, 312, 232, 383, 0, 95, 95,
- 36, 0, 1, 97, 97, 97, 97, 295, 186, 186,
- 186, 186, 343, 27, 296, 28, 30, 29, 0, 383,
- 105, 0, 0, 70, 0, 0, 0, 272, 31, 0,
- 0, 0, 0, 72, 0, 240, 0, 38, 0, 0,
- 0, 0, 32, 0, 0, 0, 2, 2, 2, 295,
- 3, 65, 309, 312, 0, 0, 296, 36, 2, 36,
- 97, 383, 224, 224, 343, 186, 37, 2, 358, 358,
- 38, 2, 209, 209, 209, 209, 153, 184, 153, 358,
- 229, 229, 38, 184, 41, 88, 88, 88, 2, 44,
- 301, 2, 2, 46, 2, 2, 2, 88, 47, 2,
- 2, 2, 2, 301, 2, 187, 2, 187, 2, 2,
- 2, 2, 53, 2, 2, 2, 188, 188, 188, 58,
- 88, 35, 35, 35, 2, 2, 60, 55, 188, 209,
- 63, 35, 88, 35, 301, 55, 55, 188, 337, 342,
- 64, 188, 301, 68, 301, 342, 342, 342, 342, 280,
- 280, 337, 357, 357, 357, 357, 35, 222, 188, 222,
- 99, 188, 188, 101, 188, 188, 188, 102, 35, 188,
- 188, 188, 188, 103, 188, 109, 188, 35, 188, 188,
- 188, 188, 337, 188, 188, 188, 225, 225, 225, 111,
- 337, 112, 337, 115, 188, 188, 293, 293, 225, 320,
- 320, 98, 98, 98, 98, 98, 98, 225, 98, 98,
- 117, 225, 34, 34, 34, 75, 75, 75, 234, 234,
- 234, 98, 98, 238, 238, 238, 118, 121, 225, 123,
- 132, 225, 225, 98, 225, 225, 225, 173, 174, 225,
- 225, 225, 225, 175, 225, 176, 225, 177, 225, 225,
- 225, 225, 178, 225, 225, 225, 179, 98, 180, 98,
- 42, 42, 42, 181, 225, 225, 43, 43, 43, 182,
- 42, 363, 42, 45, 45, 45, 43, 189, 43, 76,
- 76, 76, 190, 45, 363, 45, 94, 94, 94, 76,
- 191, 76, 113, 113, 113, 42, 94, 192, 94, 193,
- 194, 43, 113, 197, 113, 201, 202, 42, 45, 326,
- 326, 326, 203, 43, 76, 363, 42, 360, 360, 360,
- 45, 94, 43, 363, 204, 363, 76, 113, 205, 45,
- 210, 211, 212, 94, 213, 76, 214, 215, 216, 113,
- 217, 218, 94, 114, 114, 114, 219, 221, 113, 116,
- 116, 116, 226, 114, 227, 114, 134, 134, 134, 116,
- 228, 116, 199, 199, 199, 235, 134, 239, 134, 200,
- 200, 200, 199, 241, 199, 242, 244, 245, 114, 200,
- 246, 200, 247, 248, 116, 249, 250, 251, 252, 253,
- 114, 134, 254, 256, 260, 263, 116, 199, 265, 114,
- 266, 269, 270, 134, 200, 116, 275, 277, 291, 199,
- 292, 297, 134, 299, 300, 302, 200, 303, 199, 133,
- 133, 133, 133, 133, 133, 200, 133, 133, 133, 133,
- 133, 133, 133, 133, 150, 150, 150, 150, 150, 150,
- 304, 150, 150, 150, 150, 150, 150, 150, 150, 306,
- 307, 107, 308, 313, 315, 323, 325, 107, 107, 107,
- 107, 107, 107, 133, 107, 107, 107, 107, 107, 107,
- 107, 107, 328, 108, 331, 333, 338, 339, 150, 108,
- 108, 108, 108, 108, 108, 340, 108, 108, 108, 108,
- 108, 108, 108, 108, 110, 347, 349, 350, 351, 352,
- 110, 110, 110, 110, 110, 110, 353, 110, 110, 110,
- 110, 110, 110, 110, 110, 83, 83, 83, 83, 83,
- 83, 354, 83, 83, 83, 83, 83, 83, 83, 83,
- 195, 195, 195, 195, 195, 195, 355, 195, 195, 195,
- 195, 195, 195, 195, 195, 196, 196, 196, 196, 196,
- 196, 356, 196, 196, 196, 196, 196, 196, 196, 196,
- 198, 198, 198, 198, 198, 198, 359, 198, 198, 198,
- 198, 198, 198, 198, 198, 206, 206, 206, 206, 206,
- 206, 361, 206, 206, 206, 206, 206, 206, 206, 206,
- 236, 236, 236, 236, 236, 236, 365, 236, 236, 236,
- 236, 236, 236, 236, 236, 237, 237, 237, 237, 237,
- 237, 366, 237, 237, 237, 237, 237, 237, 237, 237,
- 368, 371, 372, 373, 376, 379, 384, 385, 387 ]
-
-racc_action_pointer = [
- 2, 32, 72, -4, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 13, -17, -15,
- 20, -16, -2, nil, 215, 124, 13, 67, 38, nil,
- nil, 32, 263, 269, 90, 276, 94, 99, -30, nil,
- nil, nil, nil, 125, nil, 127, nil, nil, 120, nil,
- 82, nil, nil, 135, 170, -3, nil, nil, 148, nil,
- -17, nil, -13, nil, nil, 218, 282, nil, nil, nil,
- nil, nil, nil, 514, nil, nil, nil, nil, 88, nil,
- nil, nil, nil, nil, 289, 1, nil, 7, 224, 173,
- nil, 168, 121, 129, nil, -12, nil, 456, 478, 154,
- 499, 194, 196, 295, 346, 198, 352, 210, 226, nil,
- nil, 231, nil, 179, nil, nil, nil, nil, nil, nil,
- nil, nil, 183, 418, 359, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- 433, nil, nil, 31, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 189, 190, 195, 197, 199, 204, 208,
- 210, 215, 221, nil, 84, nil, 12, 60, 142, 260,
- 265, 246, 279, 281, 269, 529, 544, 315, 559, 365,
- 372, 258, 311, 317, 328, 341, 574, nil, nil, 76,
- 332, 333, 334, 336, 338, 339, 340, 342, 343, 348,
- nil, 303, 112, nil, 65, 212, 334, 359, 342, 82,
- nil, nil, -36, nil, 221, 321, 589, 604, 226, 349,
- -16, 328, 380, nil, 327, 328, 331, 333, 334, 336,
- 337, 338, 339, 340, 394, nil, 346, nil, nil, nil,
- 406, nil, nil, 377, nil, 403, 405, nil, nil, 402,
- 357, nil, -20, nil, nil, 360, nil, 420, nil, nil,
- 124, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 363, 414, 198, nil, 8, 15, 366, nil, 362,
- 419, 94, 420, 373, 396, nil, 404, 405, 408, -2,
- nil, nil, -1, 466, nil, 458, nil, nil, nil, nil,
- 202, nil, nil, 460, nil, 404, 312, nil, 477, nil,
- nil, 487, nil, 480, nil, nil, nil, 142, 431, 430,
- 467, nil, 156, 17, nil, nil, nil, 499, nil, 452,
- 453, 454, 455, 462, 472, 541, 506, 156, 70, 567,
- 320, 529, nil, 275, nil, 551, 564, nil, 575, nil,
- nil, 623, 577, 576, nil, nil, 577, nil, nil, 629,
- nil, nil, nil, 20, 581, 628, nil, 583, nil, nil,
- nil, nil, nil ]
-
-racc_action_default = [
- -2, -210, -1, -188, -8, -9, -10, -11, -12, -13,
- -14, -15, -16, -17, -18, -19, -20, -21, -22, -23,
- -24, -25, -26, -27, -28, -29, -30, -210, -210, -210,
- -210, -210, -210, -45, -210, -210, -118, -210, -210, -61,
- -62, -210, -210, -210, -210, -210, -210, -210, -81, -84,
- -85, -86, -87, -210, -111, -210, -116, -117, -210, -125,
- -210, -183, -184, -190, -210, -188, -3, -185, -7, -187,
- -210, -34, -118, -35, -36, -210, -210, -46, -103, -104,
- -158, -159, -160, -47, -128, -129, -130, -131, -210, -148,
- -149, -150, -151, -152, -210, -210, -157, -52, -210, -119,
- -121, -190, -210, -210, -58, -210, -63, -210, -210, -210,
- -210, -210, -190, -210, -210, -190, -210, -210, -210, -120,
- -126, -210, -189, -210, -192, 393, -4, -6, -186, -31,
- -32, -33, -210, -210, -210, -134, -135, -136, -137, -138,
- -139, -140, -141, -142, -143, -144, -145, -146, -147, -132,
- -210, -155, -156, -210, -50, -53, -54, -55, -56, -57,
- -112, -161, -162, -163, -164, -165, -166, -167, -168, -169,
- -170, -171, -172, -210, -210, -210, -210, -210, -210, -210,
- -210, -210, -210, -122, -210, -127, -52, -210, -210, -89,
- -89, -210, -210, -210, -210, -82, -83, -210, -113, -210,
- -210, -210, -190, -190, -210, -38, -133, -153, -48, -210,
- -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
- -123, -210, -210, -59, -210, -5, -210, -210, -210, -210,
- -67, -70, -78, -72, -210, -210, -114, -115, -210, -210,
- -210, -210, -190, -51, -210, -210, -210, -210, -210, -210,
- -210, -210, -210, -210, -210, -49, -210, -64, -88, -65,
- -210, -68, -69, -210, -73, -190, -190, -75, -76, -210,
- -210, -191, -190, -194, -195, -210, -37, -39, -41, -42,
- -210, -173, -174, -175, -176, -177, -178, -179, -180, -181,
- -182, -210, -210, -210, -71, -210, -210, -210, -154, -210,
- -190, -205, -190, -210, -210, -124, -210, -210, -210, -188,
- -79, -80, -188, -210, -193, -210, -197, -198, -199, -200,
- -210, -203, -204, -190, -40, -210, -210, -60, -210, -77,
- -74, -90, -91, -190, -196, -201, -202, -205, -210, -210,
- -210, -92, -210, -190, -207, -209, -43, -210, -66, -210,
- -210, -210, -210, -210, -210, -190, -210, -210, -210, -210,
- -210, -210, -206, -205, -44, -210, -210, -110, -210, -98,
- -99, -210, -210, -210, -107, -108, -102, -208, -93, -210,
- -94, -100, -95, -210, -210, -210, -109, -210, -105, -106,
- -97, -101, -96 ]
-
-racc_goto_table = [
- 39, 106, 39, 66, 78, 65, 123, 68, 77, 184,
- 9, 2, 9, 153, 40, 261, 40, 274, 310, 310,
- 194, 189, 190, 197, 192, 193, 71, 73, 39, 39,
- 277, 260, 233, 344, 79, 1, 104, 322, 39, 332,
- 291, 128, 40, 40, 109, 78, 129, 112, 243, 132,
- 311, 311, 40, 83, 226, 228, 389, 341, 232, 377,
- 107, 108, 263, 110, 266, 126, 331, 155, 167, 68,
- 264, 309, 312, 322, 365, 79, 368, 373, 387, 261,
- 384, 160, 119, 183, 120, 149, 168, 161, 162, 163,
- 324, 164, 334, 165, 133, 307, 166, 156, 169, 322,
- 170, 171, 222, 187, 172, 39, 388, 158, 202, 272,
- 316, 343, 150, nil, nil, nil, nil, nil, nil, 40,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 195, 196, nil, 198, nil, nil, nil, nil, nil,
- nil, 258, nil, nil, 369, 239, 240, nil, nil, nil,
- 280, nil, 206, nil, nil, nil, 155, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 295, 296, nil, nil, nil, nil, 155,
- nil, nil, nil, nil, nil, nil, 156, nil, 39, nil,
- nil, nil, nil, nil, 256, nil, 158, nil, 9, 225,
- nil, nil, 40, nil, 267, nil, nil, nil, 78, 156,
- 280, nil, 270, nil, nil, 299, nil, 236, 237, 158,
- nil, nil, nil, nil, nil, 39, nil, nil, 65, 262,
- nil, nil, nil, nil, 268, 9, nil, nil, 79, 40,
- nil, 342, 340, 315, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 337, nil, nil, 297,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 338, 354, nil, nil, nil,
- nil, nil, nil, 262, nil, nil, 78, nil, 363, nil,
- 339, nil, nil, nil, nil, nil, nil, nil, nil, 329,
- nil, nil, 330, 68, nil, nil, 68, nil, nil, nil,
- nil, 376, nil, nil, nil, nil, 79, 78, nil, nil,
- 375, 366, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 79, 370, 372,
- 374, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 391 ]
-
-racc_goto_check = [
- 40, 35, 40, 4, 39, 3, 86, 7, 29, 34,
- 12, 2, 12, 37, 43, 47, 43, 89, 36, 36,
- 34, 5, 5, 34, 5, 5, 28, 28, 40, 40,
- 31, 46, 50, 94, 40, 1, 28, 75, 40, 56,
- 47, 6, 43, 43, 40, 39, 27, 40, 38, 29,
- 44, 44, 43, 30, 45, 45, 42, 56, 48, 94,
- 30, 30, 49, 30, 51, 4, 55, 39, 39, 7,
- 50, 52, 52, 75, 57, 40, 58, 59, 60, 47,
- 61, 62, 63, 67, 68, 71, 73, 76, 77, 78,
- 31, 79, 89, 80, 30, 46, 81, 40, 82, 75,
- 83, 84, 37, 28, 85, 40, 36, 12, 87, 88,
- 90, 93, 30, nil, nil, nil, nil, nil, nil, 43,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 30, 30, nil, 30, nil, nil, nil, nil, nil,
- nil, 5, nil, nil, 47, 86, 86, nil, nil, nil,
- 34, nil, 30, nil, nil, nil, 39, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 34, 34, nil, nil, nil, nil, 39,
- nil, nil, nil, nil, nil, nil, 40, nil, 40, nil,
- nil, nil, nil, nil, 39, nil, 12, nil, 12, 2,
- nil, nil, 43, nil, 39, nil, nil, nil, 39, 40,
- 34, nil, 29, nil, nil, 86, nil, 30, 30, 12,
- nil, nil, nil, nil, nil, 40, nil, nil, 3, 40,
- nil, nil, nil, nil, 40, 12, nil, nil, 40, 43,
- nil, 34, 5, 86, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 86, nil, nil, 40,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 35, 86, nil, nil, nil,
- nil, nil, nil, 40, nil, nil, 39, nil, 86, nil,
- 29, nil, nil, nil, nil, nil, nil, nil, nil, 4,
- nil, nil, 4, 7, nil, nil, 7, nil, nil, nil,
- nil, 35, nil, nil, nil, nil, 40, 39, nil, nil,
- 39, 29, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 40, 40, 40,
- 40, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 40 ]
-
-racc_goto_pointer = [
- nil, 35, 11, 3, 0, -86, -27, 4, nil, nil,
- nil, nil, 10, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, -24, -2, -26,
- 18, -212, nil, nil, -92, -40, -277, -84, -161, -30,
- 0, nil, -327, 14, -245, -135, -198, -214, -136, -170,
- -162, -170, -224, nil, nil, -247, -274, -283, -282, -283,
- -305, -296, -17, 24, nil, nil, nil, -16, 26, nil,
- nil, -3, nil, -12, nil, -264, -11, -10, -9, -7,
- -5, -2, 0, 2, 3, 6, -57, -15, -131, -223,
- -191, nil, nil, -226, -304 ]
-
-racc_goto_default = [
- nil, nil, nil, 3, nil, nil, nil, 4, 5, 6,
- 7, 8, 87, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, nil, 55, nil,
- nil, nil, 278, 279, 124, 54, 52, nil, 154, 89,
- 91, 157, 51, 92, 49, nil, nil, 80, nil, nil,
- nil, nil, nil, 48, 50, nil, nil, nil, nil, nil,
- nil, nil, nil, 56, 57, 99, 58, 100, 59, 84,
- 85, 86, 134, 90, 93, 95, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, 318, nil, nil,
- 345, 319, 320, nil, nil ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 86, :_reduce_1,
- 0, 86, :_reduce_none,
- 2, 87, :_reduce_3,
- 3, 87, :_reduce_4,
- 2, 90, :_reduce_5,
- 1, 91, :_reduce_none,
- 0, 91, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_none,
- 1, 88, :_reduce_28,
- 1, 88, :_reduce_29,
- 1, 111, :_reduce_30,
- 3, 110, :_reduce_31,
- 1, 112, :_reduce_none,
- 1, 112, :_reduce_none,
- 2, 109, :_reduce_34,
- 2, 107, :_reduce_35,
- 2, 106, :_reduce_36,
- 6, 104, :_reduce_37,
- 4, 104, :_reduce_38,
- 6, 104, :_reduce_39,
- 8, 104, :_reduce_40,
- 1, 116, :_reduce_none,
- 1, 116, :_reduce_none,
- 5, 117, :_reduce_43,
- 7, 118, :_reduce_44,
- 1, 120, :_reduce_45,
- 2, 102, :_reduce_46,
- 2, 103, :_reduce_47,
- 4, 121, :_reduce_48,
- 5, 121, :_reduce_49,
- 1, 122, :_reduce_50,
- 3, 122, :_reduce_51,
- 0, 122, :_reduce_52,
- 1, 123, :_reduce_none,
- 1, 123, :_reduce_none,
- 1, 123, :_reduce_none,
- 1, 123, :_reduce_none,
- 1, 126, :_reduce_57,
- 2, 127, :_reduce_58,
- 4, 127, :_reduce_59,
- 8, 127, :_reduce_60,
- 1, 113, :_reduce_none,
- 1, 113, :_reduce_none,
- 2, 129, :_reduce_63,
- 5, 98, :_reduce_64,
- 5, 98, :_reduce_65,
- 10, 100, :_reduce_66,
- 4, 101, :_reduce_67,
- 1, 131, :_reduce_none,
- 1, 131, :_reduce_none,
- 4, 94, :_reduce_70,
- 6, 105, :_reduce_71,
- 1, 133, :_reduce_72,
- 2, 133, :_reduce_73,
- 5, 135, :_reduce_74,
- 1, 136, :_reduce_none,
- 1, 136, :_reduce_none,
- 4, 134, :_reduce_77,
- 0, 134, :_reduce_none,
- 1, 137, :_reduce_none,
- 1, 137, :_reduce_none,
- 1, 99, :_reduce_none,
- 3, 99, :_reduce_82,
- 3, 99, :_reduce_83,
- 1, 138, :_reduce_none,
- 1, 138, :_reduce_none,
- 1, 138, :_reduce_none,
- 1, 138, :_reduce_none,
- 2, 130, :_reduce_88,
- 0, 130, :_reduce_89,
- 8, 95, :_reduce_90,
- 1, 140, :_reduce_91,
- 2, 140, :_reduce_92,
- 6, 141, :_reduce_93,
- 6, 141, :_reduce_94,
- 6, 141, :_reduce_95,
- 8, 141, :_reduce_96,
- 7, 141, :_reduce_97,
- 1, 143, :_reduce_none,
- 1, 143, :_reduce_none,
- 2, 143, :_reduce_100,
- 2, 146, :_reduce_101,
- 0, 146, :_reduce_none,
- 1, 114, :_reduce_none,
- 1, 114, :_reduce_none,
- 1, 145, :_reduce_none,
- 1, 145, :_reduce_none,
- 1, 144, :_reduce_none,
- 1, 144, :_reduce_none,
- 3, 142, :_reduce_109,
- 1, 142, :_reduce_110,
- 1, 96, :_reduce_111,
- 3, 93, :_reduce_112,
- 3, 139, :_reduce_113,
- 4, 139, :_reduce_114,
- 4, 139, :_reduce_115,
- 1, 125, :_reduce_none,
- 1, 125, :_reduce_none,
- 1, 148, :_reduce_118,
- 2, 148, :_reduce_119,
- 2, 149, :_reduce_120,
- 1, 150, :_reduce_121,
- 2, 150, :_reduce_122,
- 3, 152, :_reduce_123,
- 6, 152, :_reduce_124,
- 1, 151, :_reduce_125,
- 2, 151, :_reduce_126,
- 3, 153, :_reduce_127,
- 1, 115, :_reduce_none,
- 1, 115, :_reduce_none,
- 1, 154, :_reduce_130,
- 1, 154, :_reduce_none,
- 2, 154, :_reduce_132,
- 3, 155, :_reduce_133,
- 1, 157, :_reduce_134,
- 1, 157, :_reduce_135,
- 1, 157, :_reduce_136,
- 1, 157, :_reduce_137,
- 1, 157, :_reduce_138,
- 1, 157, :_reduce_139,
- 1, 157, :_reduce_140,
- 1, 157, :_reduce_141,
- 1, 157, :_reduce_142,
- 1, 157, :_reduce_143,
- 1, 157, :_reduce_144,
- 1, 157, :_reduce_145,
- 1, 157, :_reduce_146,
- 1, 157, :_reduce_147,
- 1, 156, :_reduce_none,
- 1, 156, :_reduce_none,
- 1, 156, :_reduce_none,
- 1, 156, :_reduce_none,
- 1, 156, :_reduce_none,
- 3, 159, :_reduce_153,
- 6, 128, :_reduce_154,
- 2, 158, :_reduce_155,
- 2, 158, :_reduce_156,
- 1, 160, :_reduce_157,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_159,
- 1, 132, :_reduce_160,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 1, 147, :_reduce_none,
- 4, 170, :_reduce_173,
- 4, 169, :_reduce_174,
- 4, 168, :_reduce_175,
- 4, 167, :_reduce_176,
- 4, 166, :_reduce_177,
- 4, 165, :_reduce_178,
- 4, 161, :_reduce_179,
- 4, 164, :_reduce_180,
- 4, 162, :_reduce_181,
- 4, 163, :_reduce_182,
- 1, 97, :_reduce_183,
- 1, 92, :_reduce_184,
- 1, 89, :_reduce_185,
- 2, 89, :_reduce_186,
- 1, 89, :_reduce_none,
- 0, 89, :_reduce_none,
- 1, 119, :_reduce_189,
- 0, 119, :_reduce_none,
- 5, 108, :_reduce_191,
- 1, 171, :_reduce_none,
- 5, 172, :_reduce_193,
- 3, 172, :_reduce_194,
- 1, 173, :_reduce_195,
- 4, 173, :_reduce_196,
- 3, 174, :_reduce_197,
- 1, 175, :_reduce_none,
- 1, 175, :_reduce_none,
- 1, 175, :_reduce_none,
- 2, 175, :_reduce_201,
- 2, 175, :_reduce_202,
- 1, 175, :_reduce_203,
- 1, 177, :_reduce_none,
- 0, 177, :_reduce_none,
- 5, 176, :_reduce_206,
- 1, 178, :_reduce_207,
- 4, 178, :_reduce_208,
- 1, 179, :_reduce_none ]
-
-racc_reduce_n = 210
-
-racc_shift_n = 393
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :ASSIGN => 2,
- :AT_SYM => 3,
- :COMMENT => 4,
- :JUMP => 5,
- :IO_METHOD => 6,
- :INPUT => 7,
- :OUTPUT => 8,
- :NUMREG => 9,
- :POSREG => 10,
- :VREG => 11,
- :SREG => 12,
- :TIME_SEGMENT => 13,
- :ARG => 14,
- :UALM => 15,
- :MOVE => 16,
- :DOT => 17,
- :TO => 18,
- :AT => 19,
- :TERM => 20,
- :OFFSET => 21,
- :SKIP => 22,
- :GROUP => 23,
- :SEMICOLON => 24,
- :NEWLINE => 25,
- :STRING => 26,
- :REAL => 27,
- :DIGIT => 28,
- :WORD => 29,
- :EQUAL => 30,
- :EEQUAL => 31,
- :NOTEQUAL => 32,
- :GTE => 33,
- :LTE => 34,
- :LT => 35,
- :GT => 36,
- :BANG => 37,
- :PLUS => 38,
- :MINUS => 39,
- :STAR => 40,
- :SLASH => 41,
- :DIV => 42,
- :AND => 43,
- :OR => 44,
- :MOD => 45,
- :IF => 46,
- :ELSE => 47,
- :END => 48,
- :UNLESS => 49,
- :FOR => 50,
- :IN => 51,
- :WHILE => 52,
- :WAIT_FOR => 53,
- :WAIT_UNTIL => 54,
- :TIMEOUT => 55,
- :AFTER => 56,
- :FANUC_USE => 57,
- :SET_SKIP_CONDITION => 58,
- :NAMESPACE => 59,
- :CASE => 60,
- :WHEN => 61,
- :INDIRECT => 62,
- :POSITION => 63,
- :EVAL => 64,
- :TIMER => 65,
- :TIMER_METHOD => 66,
- :RAISE => 67,
- :ABORT => 68,
- :POSITION_DATA => 69,
- :TRUE_FALSE => 70,
- :RUN => 71,
- :TP_HEADER => 72,
- :PAUSE => 73,
- :LPAREN => 74,
- :RPAREN => 75,
- :COLON => 76,
- :COMMA => 77,
- :LBRACK => 78,
- :RBRACK => 79,
- :LBRACE => 80,
- :RBRACE => 81,
- :LABEL => 82,
- :ADDRESS => 83,
- :false => 84 }
-
-racc_nt_base = 85
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "ASSIGN",
- "AT_SYM",
- "COMMENT",
- "JUMP",
- "IO_METHOD",
- "INPUT",
- "OUTPUT",
- "NUMREG",
- "POSREG",
- "VREG",
- "SREG",
- "TIME_SEGMENT",
- "ARG",
- "UALM",
- "MOVE",
- "DOT",
- "TO",
- "AT",
- "TERM",
- "OFFSET",
- "SKIP",
- "GROUP",
- "SEMICOLON",
- "NEWLINE",
- "STRING",
- "REAL",
- "DIGIT",
- "WORD",
- "EQUAL",
- "EEQUAL",
- "NOTEQUAL",
- "GTE",
- "LTE",
- "LT",
- "GT",
- "BANG",
- "PLUS",
- "MINUS",
- "STAR",
- "SLASH",
- "DIV",
- "AND",
- "OR",
- "MOD",
- "IF",
- "ELSE",
- "END",
- "UNLESS",
- "FOR",
- "IN",
- "WHILE",
- "WAIT_FOR",
- "WAIT_UNTIL",
- "TIMEOUT",
- "AFTER",
- "FANUC_USE",
- "SET_SKIP_CONDITION",
- "NAMESPACE",
- "CASE",
- "WHEN",
- "INDIRECT",
- "POSITION",
- "EVAL",
- "TIMER",
- "TIMER_METHOD",
- "RAISE",
- "ABORT",
- "POSITION_DATA",
- "TRUE_FALSE",
- "RUN",
- "TP_HEADER",
- "PAUSE",
- "LPAREN",
- "RPAREN",
- "COLON",
- "COMMA",
- "LBRACK",
- "RBRACK",
- "LBRACE",
- "RBRACE",
- "LABEL",
- "ADDRESS",
- "false",
- "$start",
- "program",
- "statements",
- "statement",
- "terminator",
- "block",
- "optional_newline",
- "comment",
- "definition",
- "namespace",
- "motion_statement",
- "label_definition",
- "address",
- "conditional",
- "inline_conditional",
- "forloop",
- "while_loop",
- "use_statement",
- "set_skip_statement",
- "wait_statement",
- "case_statement",
- "fanuc_eval",
- "timer_method",
- "position_data",
- "raise",
- "tp_header_definition",
- "empty_stmt",
- "tp_header_value",
- "var_or_indirect",
- "indirectable",
- "expression",
- "wait_modifier",
- "timeout_modifier",
- "after_modifier",
- "swallow_newlines",
- "label",
- "program_call",
- "args",
- "arg",
- "number",
- "var",
- "string",
- "io_method",
- "indirect_thing",
- "jump",
- "else_block",
- "minmax_val",
- "integer",
- "case_conditions",
- "case_else",
- "case_condition",
- "case_allowed_condition",
- "case_allowed_statement",
- "inlineable",
- "assignment",
- "motion_modifiers",
- "motion_modifier",
- "speed",
- "valid_terminations",
- "time",
- "time_seg_actions",
- "optional_lpos_arg",
- "definable",
- "var_without_namespaces",
- "var_with_namespaces",
- "var_method_modifiers",
- "namespaces",
- "var_method_modifier",
- "ns",
- "unary_expression",
- "binary_expression",
- "factor",
- "operator",
- "signed_number",
- "paren_expr",
- "sign",
- "numreg",
- "output",
- "input",
- "posreg",
- "position",
- "vreg",
- "argument",
- "timer",
- "ualm",
- "sreg",
- "sn",
- "hash",
- "hash_attributes",
- "hash_attribute",
- "hash_value",
- "array",
- "optional_sign",
- "array_values",
- "array_value" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 35)
- def _reduce_1(val, _values, result)
- @interpreter.nodes = val[0]
- result
- end
-.,.,
-
-# reduce 2 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 42)
- def _reduce_3(val, _values, result)
- result = [val[0]]
- result << val[1] unless val[1].nil?
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 46)
- def _reduce_4(val, _values, result)
- result = val[0] << val[1]
- result << val[2] unless val[2].nil?
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 52)
- def _reduce_5(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-# reduce 6 omitted
-
-# reduce 7 omitted
-
-# reduce 8 omitted
-
-# reduce 9 omitted
-
-# reduce 10 omitted
-
-# reduce 11 omitted
-
-# reduce 12 omitted
-
-# reduce 13 omitted
-
-# reduce 14 omitted
-
-# reduce 15 omitted
-
-# reduce 16 omitted
-
-# reduce 17 omitted
-
-# reduce 18 omitted
-
-# reduce 19 omitted
-
-# reduce 20 omitted
-
-# reduce 21 omitted
-
-# reduce 22 omitted
-
-# reduce 23 omitted
-
-# reduce 24 omitted
-
-# reduce 25 omitted
-
-# reduce 26 omitted
-
-# reduce 27 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 85)
- def _reduce_28(val, _values, result)
- result = PauseNode.new
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 86)
- def _reduce_29(val, _values, result)
- result = AbortNode.new
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 90)
- def _reduce_30(val, _values, result)
- result = EmptyStmtNode.new()
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 94)
- def _reduce_31(val, _values, result)
- result = HeaderNode.new(val[0],val[2])
- result
- end
-.,.,
-
-# reduce 32 omitted
-
-# reduce 33 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 103)
- def _reduce_34(val, _values, result)
- result = RaiseNode.new(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 107)
- def _reduce_35(val, _values, result)
- result = TimerMethodNode.new(val[0],val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 111)
- def _reduce_36(val, _values, result)
- result = EvalNode.new(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 116)
- def _reduce_37(val, _values, result)
- result = WaitForNode.new(val[2], val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 118)
- def _reduce_38(val, _values, result)
- result = WaitUntilNode.new(val[2], nil)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 120)
- def _reduce_39(val, _values, result)
- result = WaitUntilNode.new(val[2],val[5])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 122)
- def _reduce_40(val, _values, result)
- result = WaitUntilNode.new(val[2],val[5].merge(val[7]))
- result
- end
-.,.,
-
-# reduce 41 omitted
-
-# reduce 42 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 132)
- def _reduce_43(val, _values, result)
- result = { label: val[3] }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 137)
- def _reduce_44(val, _values, result)
- result = { timeout: [val[3],val[5]] }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 141)
- def _reduce_45(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 145)
- def _reduce_46(val, _values, result)
- result = UseNode.new(val[0],val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 150)
- def _reduce_47(val, _values, result)
- result = SetSkipNode.new(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 154)
- def _reduce_48(val, _values, result)
- result = CallNode.new(val[0],val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 155)
- def _reduce_49(val, _values, result)
- result = CallNode.new(val[1],val[3],async: true)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 159)
- def _reduce_50(val, _values, result)
- result = [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 160)
- def _reduce_51(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 161)
- def _reduce_52(val, _values, result)
- result = []
- result
- end
-.,.,
-
-# reduce 53 omitted
-
-# reduce 54 omitted
-
-# reduce 55 omitted
-
-# reduce 56 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 172)
- def _reduce_57(val, _values, result)
- result = StringNode.new(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 176)
- def _reduce_58(val, _values, result)
- result = IOMethodNode.new(val[0],val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 178)
- def _reduce_59(val, _values, result)
- result = IOMethodNode.new(val[0],val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 180)
- def _reduce_60(val, _values, result)
- result = IOMethodNode.new(val[0],val[2],{ pulse_time: val[4], pulse_units: val[6] })
- result
- end
-.,.,
-
-# reduce 61 omitted
-
-# reduce 62 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 190)
- def _reduce_63(val, _values, result)
- result = JumpNode.new(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 195)
- def _reduce_64(val, _values, result)
- result = ConditionalNode.new("if",val[1],val[2],val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 197)
- def _reduce_65(val, _values, result)
- result = ConditionalNode.new("unless",val[1],val[2],val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 202)
- def _reduce_66(val, _values, result)
- result = ForNode.new(val[1],val[4],val[6],val[8])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 206)
- def _reduce_67(val, _values, result)
- result = WhileNode.new(val[1],val[2])
- result
- end
-.,.,
-
-# reduce 68 omitted
-
-# reduce 69 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 215)
- def _reduce_70(val, _values, result)
- result = NamespaceNode.new(val[1],val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 222)
- def _reduce_71(val, _values, result)
- result = CaseNode.new(val[1],val[3],val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 226)
- def _reduce_72(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 228)
- def _reduce_73(val, _values, result)
- result = val[0] << val[1] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 233)
- def _reduce_74(val, _values, result)
- result = CaseConditionNode.new(val[1],val[3])
- result
- end
-.,.,
-
-# reduce 75 omitted
-
-# reduce 76 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 243)
- def _reduce_77(val, _values, result)
- result = CaseConditionNode.new(nil,val[2])
- result
- end
-.,.,
-
-# reduce 78 omitted
-
-# reduce 79 omitted
-
-# reduce 80 omitted
-
-# reduce 81 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 254)
- def _reduce_82(val, _values, result)
- result = InlineConditionalNode.new(val[1], val[2], val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 255)
- def _reduce_83(val, _values, result)
- result = InlineConditionalNode.new(val[1], val[2], val[0])
- result
- end
-.,.,
-
-# reduce 84 omitted
-
-# reduce 85 omitted
-
-# reduce 86 omitted
-
-# reduce 87 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 266)
- def _reduce_88(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 267)
- def _reduce_89(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 272)
- def _reduce_90(val, _values, result)
- result = MotionNode.new(val[0],val[5],val[7])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 276)
- def _reduce_91(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 278)
- def _reduce_92(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 283)
- def _reduce_93(val, _values, result)
- result = SpeedNode.new(val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 285)
- def _reduce_94(val, _values, result)
- result = TerminationNode.new(val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 287)
- def _reduce_95(val, _values, result)
- result = OffsetNode.new(val[2],val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 289)
- def _reduce_96(val, _values, result)
- result = TimeNode.new(val[2],val[4],val[6])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 291)
- def _reduce_97(val, _values, result)
- result = SkipNode.new(val[4],val[5])
- result
- end
-.,.,
-
-# reduce 98 omitted
-
-# reduce 99 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 298)
- def _reduce_100(val, _values, result)
- raise Racc::ParseError, sprintf("\ninvalid termination type: (%s)", val[1]) if val[1] != 1
-
- result = DigitNode.new(val[1].to_i * -1)
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 305)
- def _reduce_101(val, _values, result)
- result = val[1]
- result
- end
-.,.,
-
-# reduce 102 omitted
-
-# reduce 103 omitted
-
-# reduce 104 omitted
-
-# reduce 105 omitted
-
-# reduce 106 omitted
-
-# reduce 107 omitted
-
-# reduce 108 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 325)
- def _reduce_109(val, _values, result)
- result = { speed: val[0], units: val[2] }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 326)
- def _reduce_110(val, _values, result)
- result = { speed: val[0], units: nil }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 330)
- def _reduce_111(val, _values, result)
- result = LabelDefinitionNode.new(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 334)
- def _reduce_112(val, _values, result)
- result = DefinitionNode.new(val[0],val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 338)
- def _reduce_113(val, _values, result)
- result = AssignmentNode.new(val[0],val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 339)
- def _reduce_114(val, _values, result)
- result = AssignmentNode.new(
- val[0],
- ExpressionNode.new(val[0],"+",val[3])
- )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 344)
- def _reduce_115(val, _values, result)
- result = AssignmentNode.new(
- val[0],
- ExpressionNode.new(val[0],"-",val[3])
- )
-
- result
- end
-.,.,
-
-# reduce 116 omitted
-
-# reduce 117 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 357)
- def _reduce_118(val, _values, result)
- result = VarNode.new(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 358)
- def _reduce_119(val, _values, result)
- result = VarMethodNode.new(val[0],val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 363)
- def _reduce_120(val, _values, result)
- result = NamespacedVarNode.new(val[0],val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 367)
- def _reduce_121(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 369)
- def _reduce_122(val, _values, result)
- result = val[0].merge(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 373)
- def _reduce_123(val, _values, result)
- result = { method: val[2] }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 375)
- def _reduce_124(val, _values, result)
- result = { group: val[4] }
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 379)
- def _reduce_125(val, _values, result)
- result = [val[0]]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 380)
- def _reduce_126(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 384)
- def _reduce_127(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-# reduce 128 omitted
-
-# reduce 129 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 394)
- def _reduce_130(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-# reduce 131 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 396)
- def _reduce_132(val, _values, result)
- result = ExpressionNode.new(val[1], "!", nil)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 401)
- def _reduce_133(val, _values, result)
- result = ExpressionNode.new(val[0], val[1], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 405)
- def _reduce_134(val, _values, result)
- result = "=="
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 406)
- def _reduce_135(val, _values, result)
- result = "<>"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 407)
- def _reduce_136(val, _values, result)
- result = "<"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 408)
- def _reduce_137(val, _values, result)
- result = ">"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 409)
- def _reduce_138(val, _values, result)
- result = ">="
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 410)
- def _reduce_139(val, _values, result)
- result = "<="
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 411)
- def _reduce_140(val, _values, result)
- result = "+"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 412)
- def _reduce_141(val, _values, result)
- result = "-"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 413)
- def _reduce_142(val, _values, result)
- result = "||"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 414)
- def _reduce_143(val, _values, result)
- result = "*"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 415)
- def _reduce_144(val, _values, result)
- result = "/"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 416)
- def _reduce_145(val, _values, result)
- result = "DIV"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 417)
- def _reduce_146(val, _values, result)
- result = "%"
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 418)
- def _reduce_147(val, _values, result)
- result = "&&"
- result
- end
-.,.,
-
-# reduce 148 omitted
-
-# reduce 149 omitted
-
-# reduce 150 omitted
-
-# reduce 151 omitted
-
-# reduce 152 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 430)
- def _reduce_153(val, _values, result)
- result = ParenExpressionNode.new(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 435)
- def _reduce_154(val, _values, result)
- result = IndirectNode.new(val[2].to_sym, val[4])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 440)
- def _reduce_155(val, _values, result)
- val[1] = val[1].to_i * -1 if val[0] == "-"
- result = DigitNode.new(val[1])
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 443)
- def _reduce_156(val, _values, result)
- val[1] = val[1].to_f * -1 if val[0] == "-"; result = RealNode.new(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 447)
- def _reduce_157(val, _values, result)
- result = "-"
- result
- end
-.,.,
-
-# reduce 158 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 452)
- def _reduce_159(val, _values, result)
- result = RealNode.new(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 456)
- def _reduce_160(val, _values, result)
- result = DigitNode.new(val[0])
- result
- end
-.,.,
-
-# reduce 161 omitted
-
-# reduce 162 omitted
-
-# reduce 163 omitted
-
-# reduce 164 omitted
-
-# reduce 165 omitted
-
-# reduce 166 omitted
-
-# reduce 167 omitted
-
-# reduce 168 omitted
-
-# reduce 169 omitted
-
-# reduce 170 omitted
-
-# reduce 171 omitted
-
-# reduce 172 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 476)
- def _reduce_173(val, _values, result)
- result = StringRegisterNode.new(val[2].to_i)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 480)
- def _reduce_174(val, _values, result)
- result = UserAlarmNode.new(val[2].to_i)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 484)
- def _reduce_175(val, _values, result)
- result = TimerNode.new(val[2].to_i)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 488)
- def _reduce_176(val, _values, result)
- result = ArgumentNode.new(val[2].to_i)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 492)
- def _reduce_177(val, _values, result)
- result = VisionRegisterNode.new(val[2].to_i)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 496)
- def _reduce_178(val, _values, result)
- result = PositionNode.new(val[2].to_i)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 500)
- def _reduce_179(val, _values, result)
- result = NumregNode.new(val[2].to_i)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 504)
- def _reduce_180(val, _values, result)
- result = PosregNode.new(val[2].to_i)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 508)
- def _reduce_181(val, _values, result)
- result = IONode.new(val[0], val[2].to_i)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 512)
- def _reduce_182(val, _values, result)
- result = IONode.new(val[0], val[2].to_i)
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 516)
- def _reduce_183(val, _values, result)
- result = AddressNode.new(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 520)
- def _reduce_184(val, _values, result)
- result = CommentNode.new(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 524)
- def _reduce_185(val, _values, result)
- result = TerminatorNode.new
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 525)
- def _reduce_186(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-# reduce 187 omitted
-
-# reduce 188 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 532)
- def _reduce_189(val, _values, result)
- result = TerminatorNode.new
- result
- end
-.,.,
-
-# reduce 190 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 538)
- def _reduce_191(val, _values, result)
- result = PositionDataNode.new(val[2])
- result
- end
-.,.,
-
-# reduce 192 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 546)
- def _reduce_193(val, _values, result)
- result = val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 547)
- def _reduce_194(val, _values, result)
- result = {}
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 551)
- def _reduce_195(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 553)
- def _reduce_196(val, _values, result)
- result = val[0].merge(val[3])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 557)
- def _reduce_197(val, _values, result)
- result = { val[0].to_sym => val[2] }
- result
- end
-.,.,
-
-# reduce 198 omitted
-
-# reduce 199 omitted
-
-# reduce 200 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 564)
- def _reduce_201(val, _values, result)
- val[1] = val[1].to_i * -1 if val[0] == "-"; result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 565)
- def _reduce_202(val, _values, result)
- val[1] = val[1].to_f * -1 if val[0] == "-"; result = val[1]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 566)
- def _reduce_203(val, _values, result)
- result = val[0] == "true"
- result
- end
-.,.,
-
-# reduce 204 omitted
-
-# reduce 205 omitted
-
-module_eval(<<'.,.,', 'tp_plus.y', 575)
- def _reduce_206(val, _values, result)
- result = val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 579)
- def _reduce_207(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'tp_plus.y', 580)
- def _reduce_208(val, _values, result)
- result = val[0] << val[3]
- result
- end
-.,.,
-
-# reduce 209 omitted
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module TPPlus
diff --git a/test/racc/regress/twowaysql b/test/racc/regress/twowaysql
deleted file mode 100644
index 219f1a8b04..0000000000
--- a/test/racc/regress/twowaysql
+++ /dev/null
@@ -1,556 +0,0 @@
-#
-# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.0
-# from Racc grammar file "".
-#
-
-require 'racc/parser.rb'
-module TwoWaySQL
- class Parser < Racc::Parser
-
-module_eval(<<'...end twowaysql.y/module_eval...', 'twowaysql.y', 148)
-
-require 'strscan'
-
-def initialize(opts={})
- opts = {
- :debug => false,
- :preserve_space => true,
- :preserve_comment => false
- }.merge(opts)
- @yydebug = opts[:debug]
- @preserve_space = opts[:preserve_space]
- @preserve_comment = opts[:preserve_comment]
- @num_questions = 0
-end
-
-
-PAREN_EXAMPLE = '\([^\)]+\)'
-BEGIN_BIND_VARIABLE = '(\/|\#)\*([^\*]+)\*\1'
-BIND_VARIABLE_PATTERN = /\A#{BEGIN_BIND_VARIABLE}\s*/
-PAREN_BIND_VARIABLE_PATTERN = /\A#{BEGIN_BIND_VARIABLE}\s*#{PAREN_EXAMPLE}/
-EMBED_VARIABLE_PATTERN = /\A(\/|\#)\*\$([^\*]+)\*\1\s*/
-
-CONDITIONAL_PATTERN = /\A(\/|\#)\*(IF)\s+([^\*]+)\s*\*\1/
-BEGIN_END_PATTERN = /\A(\/|\#)\*(BEGIN|END)\s*\*\1/
-STRING_LITERAL_PATTERN = /\A(\'(?:[^\']+|\'\')*\')/ ## quoted string
-SPLIT_TOKEN_PATTERN = /\A(\S+?)(?=\s*(?:(?:\/|\#)\*|-{2,}|\(|\)|\,))/ ## stop on delimiters --,/*,#*,',',(,)
-LITERAL_PATTERN = /\A([^;\s]+)/
-SPACES_PATTERN = /\A(\s+)/
-QUESTION_PATTERN = /\A\?/
-COMMA_PATTERN = /\A\,/
-LPAREN_PATTERN = /\A\(/
-RPAREN_PATTERN = /\A\)/
-ACTUAL_COMMENT_PATTERN = /\A(\/|\#)\*(\s{1,}(?:.*?))\*\1/m ## start with spaces
-SEMICOLON_AT_INPUT_END_PATTERN = /\A\;\s*\Z/
-UNMATCHED_COMMENT_START_PATTERN = /\A(?:(?:\/|\#)\*)/
-
-#TODO: remove trailing spaces for S2Dao compatibility, but this spec sometimes causes SQL bugs...
-ELSE_PATTERN = /\A\-{2,}\s*ELSE\s*/
-AND_PATTERN = /\A(\ *AND)\b/i
-OR_PATTERN = /\A(\ *OR)\b/i
-
-
-def parse( io )
- @q = []
- io.each_line(nil) do |whole|
- @s = StringScanner.new(whole)
- end
- scan_str
-
- # @q.push [ false, nil ]
- @q.push [ false, [@s.pos, nil] ]
-
- ## call racc's private parse method
- do_parse
-end
-
-
-## called by racc
-def next_token
- @q.shift
-end
-
-
-def scan_str
- until @s.eos? do
- case
- when @s.scan(AND_PATTERN)
- @q.push [ :AND, [@s.pos, @s[1]] ]
- when @s.scan(OR_PATTERN)
- @q.push [ :OR, [@s.pos, @s[1]] ]
- when @s.scan(SPACES_PATTERN)
- @q.push [ :SPACES, [@s.pos, @s[1]] ]
- when @s.scan(QUESTION_PATTERN)
- @q.push [ :QUESTION, [@s.pos, nil] ]
- when @s.scan(COMMA_PATTERN)
- @q.push [ :COMMA, [@s.pos, ','] ]
- when @s.scan(LPAREN_PATTERN)
- @q.push [ :LPAREN, [@s.pos, '('] ]
- when @s.scan(RPAREN_PATTERN)
- @q.push [ :RPAREN, [@s.pos, ')'] ]
- when @s.scan(ELSE_PATTERN)
- @q.push [ :ELSE, [@s.pos, nil] ]
- when @s.scan(ACTUAL_COMMENT_PATTERN)
- @q.push [ :ACTUAL_COMMENT, [@s.pos, @s[1], @s[2]] ] if @preserve_comment
- when @s.scan(BEGIN_END_PATTERN)
- @q.push [ @s[2].intern, [@s.pos, nil] ]
- when @s.scan(CONDITIONAL_PATTERN)
- @q.push [ @s[2].intern, [@s.pos, @s[3]] ]
- when @s.scan(EMBED_VARIABLE_PATTERN)
- @q.push [ :EMBED_VARIABLE, [@s.pos, @s[2]] ]
- when @s.scan(PAREN_BIND_VARIABLE_PATTERN)
- @q.push [ :PAREN_BIND_VARIABLE, [@s.pos, @s[2]] ]
- when @s.scan(BIND_VARIABLE_PATTERN)
- @q.push [ :BIND_VARIABLE, [@s.pos, @s[2]] ]
- when @s.scan(STRING_LITERAL_PATTERN)
- @q.push [ :STRING_LITERAL, [@s.pos, @s[1]] ]
- when @s.scan(SPLIT_TOKEN_PATTERN)
- @q.push [ :IDENT, [@s.pos, @s[1]] ]
- when @s.scan(UNMATCHED_COMMENT_START_PATTERN) ## unmatched comment start, '/*','#*'
- raise Racc::ParseError, "unmatched comment. line:[#{line_no(@s.pos)}], str:[#{@s.rest}]"
- when @s.scan(LITERAL_PATTERN) ## other string token
- @q.push [ :IDENT, [@s.pos, @s[1]] ]
- when @s.scan(SEMICOLON_AT_INPUT_END_PATTERN)
- #drop semicolon at input end
- else
- raise Racc::ParseError, "syntax error at or near line:[#{line_no(@s.pos)}], str:[#{@s.rest}]"
- end
- end
-end
-
-
-## override racc's default on_error method
-def on_error(t, v, vstack)
- ## cursor in value-stack is an array of two items,
- ## that have position value as 0th item. like [731, "ctx[:limit] "]
- cursor = vstack.find do |tokens|
- tokens.size == 2 and tokens[0].kind_of?(Fixnum)
- end
- pos = cursor[0]
- line = line_no(pos)
- rest = @s.string[pos .. -1]
- raise Racc::ParseError, "syntax error at or near line:[#{line}], str:[#{rest}]"
-end
-
-
-def line_no(pos)
- lines = 0
- scanned = @s.string[0..(pos)]
- scanned.each_line { lines += 1 }
- lines
-end
-...end twowaysql.y/module_eval...
-##### State transition tables begin ###
-
-racc_action_table = [
- 8, 36, 9, 37, 12, 13, 10, 11, 14, 15,
- 16, 17, 18, 19, 22, 23, 24, 8, 38, 9,
- 3, 12, 13, 10, 11, 14, 15, 16, 17, 18,
- 19, 22, 23, 24, 8, 25, 9, 40, 12, 13,
- 10, 11, 14, 15, 16, 17, 18, 19, 22, 23,
- 24, 8, 45, 9, 46, 12, 13, 10, 11, 14,
- 15, 16, 17, 18, 19, 22, 23, 24, 8, nil,
- 9, nil, 12, 13, 10, 11, 14, 15, 16, 17,
- 18, 19, 22, 23, 24, 35, 33, 34, 31, 32,
- 44, 43, 31, 32 ]
-
-racc_action_check = [
- 2, 24, 2, 24, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 26, 26, 26,
- 1, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 27, 3, 27, 28, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 41, 37, 41, 39, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 42, nil,
- 42, nil, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 22, 22, 22, 9, 9,
- 34, 34, 40, 40 ]
-
-racc_action_pointer = [
- nil, 20, -2, 35, nil, nil, nil, nil, nil, 82,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, 77, nil, -7, nil, 15, 32, 32, nil,
- nil, nil, nil, nil, 82, nil, nil, 44, nil, 51,
- 86, 49, 66, nil, nil, nil, nil, nil ]
-
-racc_action_default = [
- -2, -35, -1, -35, -3, -4, -5, -6, -2, -2,
- -16, -17, -18, -19, -20, -21, -22, -23, -24, -25,
- -26, -27, -35, -32, -35, 48, -35, -13, -10, -11,
- -12, -2, -2, -28, -35, -30, -33, -35, -7, -35,
- -2, -14, -15, -29, -31, -34, -8, -9 ]
-
-racc_goto_table = [
- 2, 1, 28, 39, nil, nil, nil, nil, 26, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 41, 42, 47 ]
-
-racc_goto_check = [
- 2, 1, 7, 8, nil, nil, nil, nil, 2, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, 2, 2, 7 ]
-
-racc_goto_pointer = [
- nil, 1, 0, nil, nil, nil, nil, -7, -25, nil,
- nil, nil, nil ]
-
-racc_goto_default = [
- nil, nil, 27, 4, 5, 6, 7, nil, nil, 29,
- 30, 20, 21 ]
-
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 20, :_reduce_1,
- 0, 21, :_reduce_2,
- 2, 21, :_reduce_3,
- 1, 22, :_reduce_none,
- 1, 22, :_reduce_none,
- 1, 22, :_reduce_none,
- 3, 25, :_reduce_7,
- 4, 24, :_reduce_8,
- 2, 27, :_reduce_9,
- 0, 27, :_reduce_10,
- 1, 26, :_reduce_none,
- 1, 26, :_reduce_none,
- 1, 26, :_reduce_none,
- 2, 28, :_reduce_14,
- 2, 29, :_reduce_15,
- 1, 23, :_reduce_16,
- 1, 23, :_reduce_17,
- 1, 23, :_reduce_18,
- 1, 23, :_reduce_19,
- 1, 23, :_reduce_20,
- 1, 23, :_reduce_21,
- 1, 23, :_reduce_22,
- 1, 23, :_reduce_23,
- 1, 23, :_reduce_24,
- 1, 23, :_reduce_25,
- 1, 23, :_reduce_none,
- 1, 23, :_reduce_none,
- 2, 30, :_reduce_28,
- 3, 30, :_reduce_29,
- 2, 30, :_reduce_30,
- 3, 30, :_reduce_31,
- 1, 30, :_reduce_32,
- 2, 31, :_reduce_33,
- 3, 31, :_reduce_34 ]
-
-racc_reduce_n = 35
-
-racc_shift_n = 48
-
-racc_token_table = {
- false => 0,
- :error => 1,
- :BEGIN => 2,
- :END => 3,
- :IF => 4,
- :ELSE => 5,
- :AND => 6,
- :OR => 7,
- :IDENT => 8,
- :STRING_LITERAL => 9,
- :SPACES => 10,
- :COMMA => 11,
- :LPAREN => 12,
- :RPAREN => 13,
- :QUESTION => 14,
- :ACTUAL_COMMENT => 15,
- :BIND_VARIABLE => 16,
- :PAREN_BIND_VARIABLE => 17,
- :EMBED_VARIABLE => 18 }
-
-racc_nt_base = 19
-
-racc_use_result_var = true
-
-Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
-
-Racc_token_to_s_table = [
- "$end",
- "error",
- "BEGIN",
- "END",
- "IF",
- "ELSE",
- "AND",
- "OR",
- "IDENT",
- "STRING_LITERAL",
- "SPACES",
- "COMMA",
- "LPAREN",
- "RPAREN",
- "QUESTION",
- "ACTUAL_COMMENT",
- "BIND_VARIABLE",
- "PAREN_BIND_VARIABLE",
- "EMBED_VARIABLE",
- "$start",
- "sql",
- "stmt_list",
- "stmt",
- "primary",
- "if_stmt",
- "begin_stmt",
- "sub_stmt",
- "else_stmt",
- "and_stmt",
- "or_stmt",
- "bind_var",
- "embed_var" ]
-
-Racc_debug_parser = false
-
-##### State transition tables end #####
-
-# reduce 0 omitted
-
-module_eval(<<'.,.,', 'twowaysql.y', 20)
- def _reduce_1(val, _values, result)
- result = RootNode.new( val[0] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 25)
- def _reduce_2(val, _values, result)
- result = []
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 29)
- def _reduce_3(val, _values, result)
- result.push val[1]
-
- result
- end
-.,.,
-
-# reduce 4 omitted
-
-# reduce 5 omitted
-
-# reduce 6 omitted
-
-module_eval(<<'.,.,', 'twowaysql.y', 38)
- def _reduce_7(val, _values, result)
- result = BeginNode.new( val[1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 43)
- def _reduce_8(val, _values, result)
- result = IfNode.new( val[0][1], val[1], val[2] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 48)
- def _reduce_9(val, _values, result)
- result = val[1]
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 52)
- def _reduce_10(val, _values, result)
- result = nil
-
- result
- end
-.,.,
-
-# reduce 11 omitted
-
-# reduce 12 omitted
-
-# reduce 13 omitted
-
-module_eval(<<'.,.,', 'twowaysql.y', 61)
- def _reduce_14(val, _values, result)
- result = SubStatementNode.new( val[0][1], val[1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 66)
- def _reduce_15(val, _values, result)
- result = SubStatementNode.new( val[0][1], val[1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 71)
- def _reduce_16(val, _values, result)
- result = LiteralNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 75)
- def _reduce_17(val, _values, result)
- result = LiteralNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 79)
- def _reduce_18(val, _values, result)
- result = LiteralNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 83)
- def _reduce_19(val, _values, result)
- result = LiteralNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 87)
- def _reduce_20(val, _values, result)
- result = WhiteSpaceNode.new( val[0][1], @preserve_space )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 91)
- def _reduce_21(val, _values, result)
- result = LiteralNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 95)
- def _reduce_22(val, _values, result)
- result = LiteralNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 99)
- def _reduce_23(val, _values, result)
- result = LiteralNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 103)
- def _reduce_24(val, _values, result)
- @num_questions += 1
- result = QuestionNode.new( @num_questions )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 108)
- def _reduce_25(val, _values, result)
- result = ActualCommentNode.new( val[0][1] , val[0][2] )
-
- result
- end
-.,.,
-
-# reduce 26 omitted
-
-# reduce 27 omitted
-
-module_eval(<<'.,.,', 'twowaysql.y', 115)
- def _reduce_28(val, _values, result)
- result = BindVariableNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 119)
- def _reduce_29(val, _values, result)
- result = BindVariableNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 123)
- def _reduce_30(val, _values, result)
- result = BindVariableNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 127)
- def _reduce_31(val, _values, result)
- result = BindVariableNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 131)
- def _reduce_32(val, _values, result)
- result = ParenBindVariableNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 136)
- def _reduce_33(val, _values, result)
- result = EmbedVariableNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'twowaysql.y', 140)
- def _reduce_34(val, _values, result)
- result = EmbedVariableNode.new( val[0][1] )
-
- result
- end
-.,.,
-
-def _reduce_none(val, _values, result)
- val[0]
-end
-
- end # class Parser
-end # module TwoWaySQL
diff --git a/test/racc/scandata/brace b/test/racc/scandata/brace
deleted file mode 100644
index f6c843853e..0000000000
--- a/test/racc/scandata/brace
+++ /dev/null
@@ -1,7 +0,0 @@
-{ {
- } { } {
- { { { } } }
- { { { {} } } }
- {} {} {}
- }
-}
diff --git a/test/racc/scandata/gvar b/test/racc/scandata/gvar
deleted file mode 100644
index 50528ce97b..0000000000
--- a/test/racc/scandata/gvar
+++ /dev/null
@@ -1 +0,0 @@
-{ $' $" $& $-a $/ $\ $( $1 $2 $3 $? $-i }
diff --git a/test/racc/scandata/normal b/test/racc/scandata/normal
deleted file mode 100644
index e705131536..0000000000
--- a/test/racc/scandata/normal
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- # comment
- result = "string".match(/regexp/)[0]
-}
diff --git a/test/racc/scandata/percent b/test/racc/scandata/percent
deleted file mode 100644
index fded9a385c..0000000000
--- a/test/racc/scandata/percent
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- 3 % 5 # mod
- 3%5 # mod
- 3% 5 # mod
- i % 5 # mod
- i%5 # mod
- i% 5 # mod
- call %{str} # string
- call(%{str}) # string
- %q{string} # string
- %Q{string} # string
- %r{string} # string
- %w(array) # array
- %x{array} # command string
- %{string} # string
- %_string_ # string
- %/string/ # regexp
-}
diff --git a/test/racc/scandata/slash b/test/racc/scandata/slash
deleted file mode 100644
index 190135b3bd..0000000000
--- a/test/racc/scandata/slash
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- # here's many '/'s
- i = 5/1 # div
- re = /regex/ # regexp
- i /= 5 # div
- result = 5 / 1 # div
- result = 5/ 1 # div
- call(/regex/) # regexp
- call /regex/ # regexp
-}
diff --git a/test/racc/src.intp b/test/racc/src.intp
deleted file mode 100644
index 4d2460e8ed..0000000000
--- a/test/racc/src.intp
+++ /dev/null
@@ -1,34 +0,0 @@
-def assert( no, cond )
- if cond then
- else
- raise( 'assert ' + to_s(no) + ' failed' )
- end
-end
-
-assert( 1, concat(concat(concat('str=', 'a'), "b"), 'c') == 'str=abc' )
-assert( 2, 'operator' + ' ok' == 'operator ok' )
-assert( 3, 1 + 1 == 2 )
-assert( 4, 4 * 1 + 10 * 1 == 14 )
-
-if true then
- assert( 5, true )
-else
- assert( 6, false )
-end
-
-i = 1
-while i == 1 do
- i = false
-end
-assert( 7, i == false )
-assert( 8, nil == nil )
-
-def func
- assert( 9, true )
-end
-func
-
-def argfunc( str )
- assert( 10, str == 'ok' )
-end
-argfunc 'ok'
diff --git a/test/racc/start.y b/test/racc/start.y
deleted file mode 100644
index 86296899b8..0000000000
--- a/test/racc/start.y
+++ /dev/null
@@ -1,20 +0,0 @@
-class S
-
-start st
-
-rule
-
-n: D { result = 'no' }
-st : A B C n { result = 'ok' }
-
-end
-
----- inner
-
- def parse
- do_parse
- end
-
----- footer
-
-S.new.parse == 'ok' or raise 'start stmt not worked'
diff --git a/test/racc/test_chk_y.rb b/test/racc/test_chk_y.rb
deleted file mode 100644
index bb8b6b4fe3..0000000000
--- a/test/racc/test_chk_y.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
-
-module Racc
- class TestChkY < TestCase
- def setup
- super
- file = File.join(ASSET_DIR, 'chk.y')
- @debug_flags = Racc::DebugFlags.parse_option_string('o')
- parser = Racc::GrammarFileParser.new(@debug_flags)
- @result = parser.parse(File.read(file), File.basename(file))
- @states = Racc::States.new(@result.grammar).nfa
- @states.dfa
- end
-
- def test_compile_chk_y
- generator = Racc::ParserFileGenerator.new(@states, @result.params.dup)
-
- # it generates valid ruby
- assert Module.new {
- self.instance_eval(generator.generate_parser, __FILE__, __LINE__)
- }
-
- grammar = @states.grammar
-
- assert_equal 0, @states.n_srconflicts
- assert_equal 0, @states.n_rrconflicts
- assert_equal 0, grammar.n_useless_nonterminals
- assert_equal 0, grammar.n_useless_rules
- assert_nil grammar.n_expected_srconflicts
- end
-
- def test_compile_chk_y_line_convert
- params = @result.params.dup
- params.convert_line_all = true
-
- generator = Racc::ParserFileGenerator.new(@states, @result.params.dup)
-
- # it generates valid ruby
- assert Module.new {
- self.instance_eval(generator.generate_parser, __FILE__, __LINE__)
- }
-
- grammar = @states.grammar
-
- assert_equal 0, @states.n_srconflicts
- assert_equal 0, @states.n_rrconflicts
- assert_equal 0, grammar.n_useless_nonterminals
- assert_equal 0, grammar.n_useless_rules
- assert_nil grammar.n_expected_srconflicts
- end
- end
-end
diff --git a/test/racc/test_grammar_file_parser.rb b/test/racc/test_grammar_file_parser.rb
deleted file mode 100644
index b187bdcaec..0000000000
--- a/test/racc/test_grammar_file_parser.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
-
-module Racc
- class TestGrammarFileParser < TestCase
- def test_parse
- file = File.join(ASSET_DIR, 'yyerr.y')
-
- debug_flags = Racc::DebugFlags.parse_option_string('o')
- assert debug_flags.status_logging
-
- parser = Racc::GrammarFileParser.new(debug_flags)
- parser.parse(File.read(file), File.basename(file))
- end
- end
-end
diff --git a/test/racc/test_racc_command.rb b/test/racc/test_racc_command.rb
deleted file mode 100644
index 0d2c5829e4..0000000000
--- a/test/racc/test_racc_command.rb
+++ /dev/null
@@ -1,339 +0,0 @@
-require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
-
-module Racc
- class TestRaccCommand < TestCase
- def test_syntax_y
- assert_compile 'syntax.y', '-v'
- assert_debugfile 'syntax.y', [0,0,0,0,0]
- end
-
- def test_percent_y
- assert_compile 'percent.y'
- assert_debugfile 'percent.y', []
- assert_exec 'percent.y'
- end
-
- def test_scan_y
- assert_compile 'scan.y'
- assert_debugfile 'scan.y', []
- assert_exec 'scan.y'
- end
-
- def test_newsyn_y
- assert_compile 'newsyn.y'
- assert_debugfile 'newsyn.y', []
- end
-
- def test_normal_y
- assert_compile 'normal.y'
- assert_debugfile 'normal.y', []
-
- assert_compile 'normal.y', '-vg'
- assert_debugfile 'normal.y', []
- end
-
- def test_chk_y
- assert_compile 'chk.y', '-vg'
- assert_debugfile 'chk.y', []
- assert_exec 'chk.y'
-
- assert_compile 'chk.y', '--line-convert-all'
- assert_debugfile 'chk.y', []
- assert_exec 'chk.y'
- end
-
- def test_echk_y
- assert_compile 'echk.y', '-E'
- assert_debugfile 'echk.y', []
- assert_exec 'echk.y'
- end
-
- def test_err_y
- assert_compile 'err.y'
- assert_debugfile 'err.y', []
- assert_exec 'err.y'
- end
-
- def test_mailp_y
- assert_compile 'mailp.y'
- assert_debugfile 'mailp.y', []
- end
-
- def test_conf_y
- assert_compile 'conf.y', '-v'
- assert_debugfile 'conf.y', [4,1,1,2]
- end
-
- def test_rrconf_y
- assert_compile 'rrconf.y'
- assert_debugfile 'rrconf.y', [1,1,0,0]
- end
-
- def test_useless_y
- assert_compile 'useless.y'
- assert_debugfile 'useless.y', [0,0,1,2]
- end
-
- def test_opt_y
- assert_compile 'opt.y'
- assert_debugfile 'opt.y', []
- assert_exec 'opt.y'
- end
-
- def test_yyerr_y
- assert_compile 'yyerr.y'
- assert_debugfile 'yyerr.y', []
- assert_exec 'yyerr.y'
- end
-
- def test_recv_y
- assert_compile 'recv.y'
- assert_debugfile 'recv.y', [5,10,1,4]
- end
-
- def test_ichk_y
- assert_compile 'ichk.y'
- assert_debugfile 'ichk.y', []
- assert_exec 'ichk.y'
- end
-
- def test_intp_y
- assert_compile 'intp.y'
- assert_debugfile 'intp.y', []
- assert_exec 'intp.y'
- end
-
- def test_expect_y
- assert_compile 'expect.y'
- assert_debugfile 'expect.y', [1,0,0,0,1]
- end
-
- def test_nullbug1_y
- assert_compile 'nullbug1.y'
- assert_debugfile 'nullbug1.y', [0,0,0,0]
- end
-
- def test_nullbug2_y
- assert_compile 'nullbug2.y'
- assert_debugfile 'nullbug2.y', [0,0,0,0]
- end
-
- def test_firstline_y
- assert_compile 'firstline.y'
- assert_debugfile 'firstline.y', []
- end
-
- def test_nonass_y
- assert_compile 'nonass.y'
- assert_debugfile 'nonass.y', []
- assert_exec 'nonass.y'
- end
-
- def test_digraph_y
- assert_compile 'digraph.y'
- assert_debugfile 'digraph.y', []
- assert_exec 'digraph.y'
- end
-
- def test_noend_y
- assert_compile 'noend.y'
- assert_debugfile 'noend.y', []
- end
-
- def test_norule_y
- assert_raise(Test::Unit::AssertionFailedError) {
- assert_compile 'norule.y'
- }
- end
-
- def test_unterm_y
- assert_raise(Test::Unit::AssertionFailedError) {
- assert_compile 'unterm.y'
- }
- end
-
- # Regression test for a problem where error recovery at EOF would cause
- # a Racc-generated parser to go into an infinite loop (on some grammars)
- def test_error_recovery_y
- assert_compile 'error_recovery.y'
- Timeout.timeout(10) do
- assert_exec 'error_recovery.y'
- end
- end
-
- # .y files from `parser` gem
-
- def test_ruby18
- assert_compile 'ruby18.y', [], timeout: 60
- assert_debugfile 'ruby18.y', []
- assert_output_unchanged 'ruby18.y'
- end
-
- def test_ruby22
- assert_compile 'ruby22.y', [], timeout: 60
- assert_debugfile 'ruby22.y', []
- assert_output_unchanged 'ruby22.y'
- end
-
- # .y file from csspool gem
-
- def test_csspool
- assert_compile 'csspool.y'
- assert_debugfile 'csspool.y', [5, 3]
- assert_output_unchanged 'csspool.y'
- end
-
- # .y file from opal gem
-
- def test_opal
- assert_compile 'opal.y', [], timeout: 60
- assert_debugfile 'opal.y', []
- assert_output_unchanged 'opal.y'
- end
-
- # .y file from journey gem
-
- def test_journey
- assert_compile 'journey.y'
- assert_debugfile 'journey.y', []
- assert_output_unchanged 'journey.y'
- end
-
- # .y file from nokogiri gem
-
- def test_nokogiri_css
- assert_compile 'nokogiri-css.y'
- assert_debugfile 'nokogiri-css.y', [0, 1]
- assert_output_unchanged 'nokogiri-css.y'
- end
-
- # .y file from edtf-ruby gem
-
- def test_edtf
- assert_compile 'edtf.y'
- assert_debugfile 'edtf.y', [0, 0, 0, 0, 0]
- assert_output_unchanged 'edtf.y'
- end
-
- # .y file from namae gem
-
- def test_namae
- assert_compile 'namae.y'
- assert_debugfile 'namae.y', [0, 0, 0, 0, 0]
- assert_output_unchanged 'namae.y'
- end
-
- # .y file from liquor gem
-
- def test_liquor
- assert_compile 'liquor.y'
- assert_debugfile 'liquor.y', [0, 0, 0, 0, 15]
- assert_output_unchanged 'liquor.y'
- end
-
- # .y file from nasl gem
-
- def test_nasl
- assert_compile 'nasl.y'
- assert_debugfile 'nasl.y', [0, 0, 0, 0, 1]
- assert_output_unchanged 'nasl.y'
- end
-
- # .y file from riml gem
-
- def test_riml
- assert_compile 'riml.y'
- assert_debugfile 'riml.y', [289, 0, 0, 0]
- assert_output_unchanged 'riml.y'
- end
-
- # .y file from ruby-php-serialization gem
-
- def test_php_serialization
- assert_compile 'php_serialization.y'
- assert_debugfile 'php_serialization.y', [0, 0, 0, 0]
- assert_output_unchanged 'php_serialization.y'
- end
-
- # .y file from huia language implementation
-
- def test_huia
- assert_compile 'huia.y'
- assert_debugfile 'huia.y', [285, 0, 0, 0]
- assert_output_unchanged 'huia.y'
- end
-
- # .y file from cast gem
-
- def test_cast
- assert_compile 'cast.y'
- assert_debugfile 'cast.y', [0, 0, 0, 0, 1]
- assert_output_unchanged 'cast.y'
- end
-
- # .y file from cadenza gem
-
- def test_cadenza
- assert_compile 'cadenza.y'
- assert_debugfile 'cadenza.y', [0, 0, 0, 0, 37]
- assert_output_unchanged 'cadenza.y'
- end
-
- # .y file from mediacloth gem
-
- def test_mediacloth
- assert_compile 'mediacloth.y'
- assert_debugfile 'mediacloth.y', [0, 0, 0, 0]
- assert_output_unchanged 'mediacloth.y'
- end
-
- # .y file from twowaysql gem
-
- def test_twowaysql
- assert_compile 'twowaysql.y'
- assert_debugfile 'twowaysql.y', [4, 0, 0, 0]
- assert_output_unchanged 'twowaysql.y'
- end
-
- # .y file from machete gem
-
- def test_machete
- assert_compile 'machete.y'
- assert_debugfile 'machete.y', [0, 0, 0, 0]
- assert_output_unchanged 'machete.y'
- end
-
- # .y file from mof gem
-
- def test_mof
- assert_compile 'mof.y'
- assert_debugfile 'mof.y', [7, 4, 0, 0]
- assert_output_unchanged 'mof.y'
- end
-
- # .y file from tp_plus gem
-
- def test_tp_plus
- assert_compile 'tp_plus.y'
- assert_debugfile 'tp_plus.y', [21, 0, 0, 0]
- assert_output_unchanged 'tp_plus.y'
- end
-
- def test_ifelse
- omit if RUBY_PLATFORM =~ /java/
-
- stderr = nil
- racc "-o#{@TAB_DIR}/ifelse", "#{ASSET_DIR}/ifelse.y", stdout_filter: ->(s) { stderr = s }
- stderr = stderr.lines[1..-1].join if RUBY_PLATFORM.match?(/java/)
- assert_equal(<<~STDERR, stderr)
- 1 useless nonterminals:
- dummy
- 2 useless rules:
- #4 (dummy)
- #5 (dummy)
- 1 shift/reduce conflicts
- Turn on logging with "-v" and check ".output" file for details
- STDERR
- end
- end
-end
diff --git a/test/racc/test_scan_y.rb b/test/racc/test_scan_y.rb
deleted file mode 100644
index 4c60119119..0000000000
--- a/test/racc/test_scan_y.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
-
-module Racc
- class TestScanY < TestCase
- def setup
- super
- file = File.join(ASSET_DIR, 'scan.y')
- @debug_flags = Racc::DebugFlags.parse_option_string('o')
- parser = Racc::GrammarFileParser.new(@debug_flags)
- @result = parser.parse(File.read(file), File.basename(file))
- @states = Racc::States.new(@result.grammar).nfa
- @states.dfa
- end
-
- def test_compile
- generator = Racc::ParserFileGenerator.new(@states, @result.params.dup)
-
- # it generates valid ruby
- assert Module.new {
- self.class_eval(generator.generate_parser)
- }
-
- grammar = @states.grammar
-
- assert_equal 0, @states.n_srconflicts
- assert_equal 0, @states.n_rrconflicts
- assert_equal 0, grammar.n_useless_nonterminals
- assert_equal 0, grammar.n_useless_rules
- assert_nil grammar.n_expected_srconflicts
- end
-
- def test_compile_line_convert
- params = @result.params.dup
- params.convert_line_all = true
-
- generator = Racc::ParserFileGenerator.new(@states, @result.params.dup)
-
- # it generates valid ruby
- assert Module.new {
- self.class_eval(generator.generate_parser)
- }
-
- grammar = @states.grammar
-
- assert_equal 0, @states.n_srconflicts
- assert_equal 0, @states.n_rrconflicts
- assert_equal 0, grammar.n_useless_nonterminals
- assert_equal 0, grammar.n_useless_rules
- assert_nil grammar.n_expected_srconflicts
- end
- end
-end
diff --git a/test/racc/testscanner.rb b/test/racc/testscanner.rb
deleted file mode 100644
index d7877511ec..0000000000
--- a/test/racc/testscanner.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# racc scanner tester
-#
-
-require 'racc/raccs'
-
-
-class ScanError < StandardError; end
-
-def testdata( dir, argv )
- if argv.empty? then
- Dir.glob( dir + '/*' ) -
- Dir.glob( dir + '/*.swp' ) -
- [ dir + '/CVS' ]
- else
- argv.collect {|i| dir + '/' + i }
- end
-end
-
-
-if ARGV.delete '--print' then
- $raccs_print_type = true
- printonly = true
-else
- printonly = false
-end
-
-testdata( File.dirname($0) + '/scandata', ARGV ).each do |file|
- $stderr.print File.basename(file) + ': '
- begin
- ok = File.read(file)
- s = Racc::GrammarFileScanner.new( ok )
- sym, (val, _lineno) = s.scan
- if printonly then
- $stderr.puts
- $stderr.puts val
- next
- end
-
- val = '{' + val + "}\n"
- sym == :ACTION or raise ScanError, 'is not action!'
- val == ok or raise ScanError, "\n>>>\n#{ok}----\n#{val}<<<"
-
- $stderr.puts 'ok'
- rescue => err
- $stderr.puts 'fail (' + err.type.to_s + ')'
- $stderr.puts err.message
- $stderr.puts err.backtrace
- $stderr.puts
- end
-end