$accept

program END_OF_INPUT

$@1

option_terms

terms

compstmt_top_stmts

top_stmts option_terms

program

$@1 compstmt_top_stmts

top_stmts

none top_stmt top_stmts terms top_stmt

top_stmt

stmt keyword_BEGIN begin_block

block_open

'{'

begin_block

block_open compstmt_top_stmts '}'

compstmt_stmts

stmts option_terms

$@2

$@3

bodystmt

compstmt_stmts lex_ctxt opt_rescue k_else $@2 compstmt_stmts $@3 opt_ensure compstmt_stmts lex_ctxt opt_rescue $@4 opt_ensure

$@4

stmts

none stmt_or_begin stmts terms stmt_or_begin

stmt_or_begin

stmt keyword_BEGIN $@5 begin_block

$@5

allow_exits

k_END

keyword_END lex_ctxt

$@6

stmt

keyword_alias fitem $@6 fitem keyword_alias tGVAR tGVAR keyword_alias tGVAR tBACK_REF keyword_alias tGVAR tNTH_REF keyword_undef undef_list stmt modifier_if expr_value stmt modifier_unless expr_value stmt modifier_while expr_value stmt modifier_until expr_value stmt modifier_rescue after_rescue stmt k_END allow_exits '{' compstmt_stmts '}' command_asgn mlhs '=' lex_ctxt command_call_value asgn_lhs_mrhs mlhs '=' lex_ctxt mrhs_arg modifier_rescue after_rescue stmt mlhs '=' lex_ctxt mrhs_arg expr YYerror

asgn_lhs_mrhs

lhs '=' lex_ctxt mrhs

asgn_lhs_command_rhs

lhs '=' lex_ctxt command_rhs

command_asgn

asgn_lhs_command_rhs op_asgn_command_rhs def_endless_method_endless_command

op_asgn_command_rhs

var_lhs tOP_ASGN lex_ctxt command_rhs primary_value '[' opt_call_args rbracket tOP_ASGN lex_ctxt command_rhs primary_value call_op tIDENTIFIER tOP_ASGN lex_ctxt command_rhs primary_value call_op tCONSTANT tOP_ASGN lex_ctxt command_rhs primary_value tCOLON2 tIDENTIFIER tOP_ASGN lex_ctxt command_rhs primary_value tCOLON2 tCONSTANT tOP_ASGN lex_ctxt command_rhs tCOLON3 tCONSTANT tOP_ASGN lex_ctxt command_rhs backref tOP_ASGN lex_ctxt command_rhs

def_endless_method_endless_command

defn_head f_opt_paren_args '=' endless_command defs_head f_opt_paren_args '=' endless_command

endless_command

command endless_command modifier_rescue after_rescue arg keyword_not option_'\n' endless_command

option_'\n'

'\n'

command_rhs

command_call_value command_call_value modifier_rescue after_rescue stmt command_asgn

expr

command_call expr keyword_and expr expr keyword_or expr keyword_not option_'\n' expr '!' command_call arg tASSOC $@7 p_in_kwarg p_pvtbl p_pktbl p_top_expr_body arg keyword_in $@8 p_in_kwarg p_pvtbl p_pktbl p_top_expr_body arg

$@7

$@8

def_name

fname

defn_head

k_def def_name

$@9

defs_head

k_def singleton dot_or_colon $@9 def_name

value_expr_expr

expr

expr_value

value_expr_expr YYerror

$@10

$@11

expr_value_do

$@10 expr_value do $@11

command_call

command block_command

value_expr_command_call

command_call

command_call_value

value_expr_command_call

block_command

block_call block_call call_op2 operation2 command_args

cmd_brace_block

tLBRACE_ARG brace_body '}'

fcall

tIDENTIFIER tCONSTANT tFID

command

fcall command_args fcall command_args cmd_brace_block primary_value call_op operation2 command_args primary_value call_op operation2 command_args cmd_brace_block primary_value tCOLON2 operation2 command_args primary_value tCOLON2 operation2 command_args cmd_brace_block primary_value tCOLON2 tCONSTANT '{' brace_body '}' keyword_super command_args k_yield command_args k_return call_args keyword_break call_args keyword_next call_args

mlhs

mlhs_basic tLPAREN mlhs_inner rparen

mlhs_inner

mlhs_basic tLPAREN mlhs_inner rparen

mlhs_basic

mlhs_head mlhs_head mlhs_item mlhs_head tSTAR mlhs_node mlhs_head tSTAR mlhs_node ',' mlhs_mlhs_item mlhs_head tSTAR mlhs_head tSTAR ',' mlhs_mlhs_item tSTAR mlhs_node tSTAR mlhs_node ',' mlhs_mlhs_item tSTAR tSTAR ',' mlhs_mlhs_item

mlhs_mlhs_item

mlhs_item mlhs_mlhs_item ',' mlhs_item

mlhs_item

mlhs_node tLPAREN mlhs_inner rparen

mlhs_head

mlhs_item ',' mlhs_head mlhs_item ','

mlhs_node

user_variable keyword_variable primary_value '[' opt_call_args rbracket primary_value call_op tIDENTIFIER primary_value call_op tCONSTANT primary_value tCOLON2 tIDENTIFIER primary_value tCOLON2 tCONSTANT tCOLON3 tCONSTANT backref

lhs

user_variable keyword_variable primary_value '[' opt_call_args rbracket primary_value call_op tIDENTIFIER primary_value call_op tCONSTANT primary_value tCOLON2 tIDENTIFIER primary_value tCOLON2 tCONSTANT tCOLON3 tCONSTANT backref

cname

tIDENTIFIER tCONSTANT

cpath

tCOLON3 cname cname primary_value tCOLON2 cname

fname

tIDENTIFIER tCONSTANT tFID op reswords

fitem

fname symbol

undef_list

fitem undef_list ',' $@12 fitem

$@12

op

'|' '^' '&' tCMP tEQ tEQQ tMATCH tNMATCH '>' tGEQ '<' tLEQ tNEQ tLSHFT tRSHFT '+' '-' '*' tSTAR '/' '%' tPOW tDSTAR '!' '~' tUPLUS tUMINUS tAREF tASET '`'

reswords

keyword__LINE__ keyword__FILE__ keyword__ENCODING__ keyword_BEGIN keyword_END keyword_alias keyword_and keyword_begin keyword_break keyword_case keyword_class keyword_def keyword_defined keyword_do keyword_else keyword_elsif keyword_end keyword_ensure keyword_false keyword_for keyword_in keyword_module keyword_next keyword_nil keyword_not keyword_or keyword_redo keyword_rescue keyword_retry keyword_return keyword_self keyword_super keyword_then keyword_true keyword_undef keyword_when keyword_yield keyword_if keyword_unless keyword_while keyword_until

asgn_lhs_arg_rhs

lhs '=' lex_ctxt arg_rhs

arg

asgn_lhs_arg_rhs op_asgn_arg_rhs arg tDOT2 arg arg tDOT3 arg arg tDOT2 arg tDOT3 tBDOT2 arg tBDOT3 arg arg '+' arg arg '-' arg arg '*' arg arg '/' arg arg '%' arg arg tPOW arg tUMINUS_NUM simple_numeric tPOW arg tUPLUS arg tUMINUS arg arg '|' arg arg '^' arg arg '&' arg arg tCMP arg rel_expr arg tEQ arg arg tEQQ arg arg tNEQ arg arg tMATCH arg arg tNMATCH arg '!' arg '~' arg arg tLSHFT arg arg tRSHFT arg arg tANDOP arg arg tOROP arg keyword_defined option_'\n' begin_defined arg arg '?' arg option_'\n' ':' arg def_endless_method_endless_arg primary

op_asgn_arg_rhs

var_lhs tOP_ASGN lex_ctxt arg_rhs primary_value '[' opt_call_args rbracket tOP_ASGN lex_ctxt arg_rhs primary_value call_op tIDENTIFIER tOP_ASGN lex_ctxt arg_rhs primary_value call_op tCONSTANT tOP_ASGN lex_ctxt arg_rhs primary_value tCOLON2 tIDENTIFIER tOP_ASGN lex_ctxt arg_rhs primary_value tCOLON2 tCONSTANT tOP_ASGN lex_ctxt arg_rhs tCOLON3 tCONSTANT tOP_ASGN lex_ctxt arg_rhs backref tOP_ASGN lex_ctxt arg_rhs

def_endless_method_endless_arg

defn_head f_opt_paren_args '=' endless_arg defs_head f_opt_paren_args '=' endless_arg

endless_arg

arg endless_arg modifier_rescue after_rescue arg keyword_not option_'\n' endless_arg

relop

'>' '<' tGEQ tLEQ

rel_expr

arg relop arg rel_expr relop arg

lex_ctxt

none

begin_defined

lex_ctxt

after_rescue

lex_ctxt

value_expr_arg

arg

arg_value

value_expr_arg

aref_args

none args trailer args ',' assocs trailer assocs trailer

arg_rhs

arg arg modifier_rescue after_rescue arg

paren_args

'(' opt_call_args rparen '(' args ',' args_forward rparen '(' args_forward rparen

opt_paren_args

none paren_args

opt_call_args

none call_args args ',' args ',' assocs ',' assocs ','

value_expr_command

command

call_args

value_expr_command args opt_block_arg assocs opt_block_arg args ',' assocs opt_block_arg block_arg

$@13

command_args

$@13 call_args

block_arg

tAMPER arg_value tAMPER

opt_block_arg

',' block_arg none

args

arg_value arg_splat args ',' arg_value args ',' arg_splat

arg_splat

tSTAR arg_value tSTAR

mrhs_arg

mrhs arg_value

mrhs

args ',' arg_value args ',' tSTAR arg_value tSTAR arg_value

primary

literal strings xstring regexp words qwords symbols qsymbols var_ref backref tFID k_begin $@14 bodystmt k_end tLPAREN_ARG compstmt_stmts $@15 ')' tLPAREN compstmt_stmts ')' primary_value tCOLON2 tCONSTANT tCOLON3 tCONSTANT tLBRACK aref_args ']' tLBRACE assoc_list '}' k_return k_yield '(' call_args rparen k_yield '(' rparen k_yield keyword_defined option_'\n' '(' begin_defined expr rparen keyword_not '(' expr rparen keyword_not '(' rparen fcall brace_block method_call method_call brace_block lambda k_if expr_value then compstmt_stmts if_tail k_end k_unless expr_value then compstmt_stmts opt_else k_end k_while expr_value_do compstmt_stmts k_end k_until expr_value_do compstmt_stmts k_end k_case expr_value option_terms @16 case_body k_end k_case option_terms @17 case_body k_end k_case expr_value option_terms p_case_body k_end k_for for_var keyword_in $@18 expr_value do $@19 compstmt_stmts k_end k_class cpath superclass $@20 bodystmt k_end k_class tLSHFT expr_value $@21 term bodystmt k_end k_module cpath $@22 bodystmt k_end defn_head f_arglist $@23 bodystmt k_end defs_head f_arglist $@24 bodystmt k_end keyword_break keyword_next keyword_redo keyword_retry

$@14

$@15

@16

@17

$@18

$@19

$@20

$@21

$@22

$@23

$@24

value_expr_primary

primary

primary_value

value_expr_primary

k_begin

keyword_begin

k_if

keyword_if

k_unless

keyword_unless

k_while

keyword_while allow_exits

k_until

keyword_until allow_exits

k_case

keyword_case

k_for

keyword_for allow_exits

k_class

keyword_class

k_module

keyword_module

k_def

keyword_def

k_do

keyword_do

k_do_block

keyword_do_block

k_rescue

keyword_rescue

k_ensure

keyword_ensure

k_when

keyword_when

k_else

keyword_else

k_elsif

keyword_elsif

k_end

keyword_end tDUMNY_END

k_return

keyword_return

k_yield

keyword_yield

then

term keyword_then term keyword_then

do

term keyword_do_cond

if_tail

opt_else k_elsif expr_value then compstmt_stmts if_tail

opt_else

none k_else compstmt_stmts

for_var

lhs mlhs

f_marg

f_norm_arg tLPAREN f_margs rparen

mlhs_f_marg

f_marg mlhs_f_marg ',' f_marg

f_margs

mlhs_f_marg mlhs_f_marg ',' f_rest_marg mlhs_f_marg ',' f_rest_marg ',' mlhs_f_marg f_rest_marg f_rest_marg ',' mlhs_f_marg

f_rest_marg

tSTAR f_norm_arg tSTAR

f_any_kwrest

f_kwrest f_no_kwarg

$@25

f_eq

$@25 '='

f_kw_primary_value

f_label primary_value f_label

f_kwarg_primary_value

f_kw_primary_value f_kwarg_primary_value ',' f_kw_primary_value

args_tail_basic_primary_value

f_kwarg_primary_value ',' f_kwrest opt_f_block_arg f_kwarg_primary_value opt_f_block_arg f_any_kwrest opt_f_block_arg f_block_arg

block_args_tail

args_tail_basic_primary_value

excessed_comma

','

f_opt_primary_value

f_arg_asgn f_eq primary_value

f_optarg_primary_value

f_opt_primary_value f_optarg_primary_value ',' f_opt_primary_value

opt_args_tail_block_args_tail

',' block_args_tail

block_param

f_arg ',' f_optarg_primary_value ',' f_rest_arg opt_args_tail_block_args_tail f_arg ',' f_optarg_primary_value ',' f_rest_arg ',' f_arg opt_args_tail_block_args_tail f_arg ',' f_optarg_primary_value opt_args_tail_block_args_tail f_arg ',' f_optarg_primary_value ',' f_arg opt_args_tail_block_args_tail f_arg ',' f_rest_arg opt_args_tail_block_args_tail f_arg excessed_comma f_arg ',' f_rest_arg ',' f_arg opt_args_tail_block_args_tail f_arg opt_args_tail_block_args_tail f_optarg_primary_value ',' f_rest_arg opt_args_tail_block_args_tail f_optarg_primary_value ',' f_rest_arg ',' f_arg opt_args_tail_block_args_tail f_optarg_primary_value opt_args_tail_block_args_tail f_optarg_primary_value ',' f_arg opt_args_tail_block_args_tail f_rest_arg opt_args_tail_block_args_tail f_rest_arg ',' f_arg opt_args_tail_block_args_tail block_args_tail

opt_block_param_def

none block_param_def

block_param_def

'|' opt_block_param opt_bv_decl '|'

opt_block_param

block_param

opt_bv_decl

option_'\n' option_'\n' ';' bv_decls option_'\n'

bv_decls

bvar bv_decls ',' bvar

bvar

tIDENTIFIER f_bad_arg

max_numparam

numparam

it_id

@26

$@27

lambda

tLAMBDA @26 max_numparam numparam it_id allow_exits f_larglist $@27 lambda_body

f_larglist

'(' f_args opt_bv_decl ')' f_args

lambda_body

tLAMBEG compstmt_stmts '}' keyword_do_LAMBDA $@28 bodystmt k_end

$@28

do_block

k_do_block do_body k_end

block_call

command do_block block_call call_op2 operation2 opt_paren_args block_call call_op2 operation2 opt_paren_args brace_block block_call call_op2 operation2 command_args do_block

method_call

fcall paren_args primary_value call_op operation2 opt_paren_args primary_value tCOLON2 operation2 paren_args primary_value tCOLON2 operation3 primary_value call_op paren_args primary_value tCOLON2 paren_args keyword_super paren_args keyword_super primary_value '[' opt_call_args rbracket

brace_block

'{' brace_body '}' k_do do_body k_end

@29

brace_body

@29 max_numparam numparam it_id allow_exits opt_block_param_def compstmt_stmts

@30

do_body

@30 max_numparam numparam it_id allow_exits opt_block_param_def bodystmt

case_args

arg_value tSTAR arg_value case_args ',' arg_value case_args ',' tSTAR arg_value

case_body

k_when case_args then compstmt_stmts cases

cases

opt_else case_body

p_pvtbl

p_pktbl

p_in_kwarg

$@31

p_case_body

keyword_in p_in_kwarg p_pvtbl p_pktbl p_top_expr then $@31 compstmt_stmts p_cases

p_cases

opt_else p_case_body

p_top_expr

p_top_expr_body p_top_expr_body modifier_if expr_value p_top_expr_body modifier_unless expr_value

p_top_expr_body

p_expr p_expr ',' p_expr ',' p_args p_find p_args_tail p_kwargs

p_expr

p_as

p_as

p_expr tASSOC p_variable p_alt

p_alt

p_alt '|' p_expr_basic p_expr_basic

p_lparen

'(' p_pktbl

p_lbracket

'[' p_pktbl

p_expr_basic

p_value p_variable p_const p_lparen p_args rparen p_const p_lparen p_find rparen p_const p_lparen p_kwargs rparen p_const '(' rparen p_const p_lbracket p_args rbracket p_const p_lbracket p_find rbracket p_const p_lbracket p_kwargs rbracket p_const '[' rbracket tLBRACK p_args rbracket tLBRACK p_find rbracket tLBRACK rbracket tLBRACE p_pktbl lex_ctxt $@32 p_kwargs rbrace tLBRACE rbrace tLPAREN p_pktbl p_expr rparen

$@32

p_args

p_expr p_args_head p_args_head p_arg p_args_head p_rest p_args_head p_rest ',' p_args_post p_args_tail

p_args_head

p_arg ',' p_args_head p_arg ','

p_args_tail

p_rest p_rest ',' p_args_post

p_find

p_rest ',' p_args_post ',' p_rest

p_rest

tSTAR tIDENTIFIER tSTAR

p_args_post

p_arg p_args_post ',' p_arg

p_arg

p_expr

p_kwargs

p_kwarg ',' p_any_kwrest p_kwarg p_kwarg ',' p_any_kwrest

p_kwarg

p_kw p_kwarg ',' p_kw

p_kw

p_kw_label p_expr p_kw_label

p_kw_label

tLABEL tSTRING_BEG string_contents tLABEL_END

p_kwrest

kwrest_mark tIDENTIFIER kwrest_mark

p_kwnorest

kwrest_mark keyword_nil

p_any_kwrest

p_kwrest p_kwnorest

p_value

p_primitive p_primitive_value tDOT2 p_primitive_value p_primitive_value tDOT3 p_primitive_value p_primitive_value tDOT2 p_primitive_value tDOT3 p_var_ref p_expr_ref p_const tBDOT2 p_primitive_value tBDOT3 p_primitive_value

p_primitive

literal strings xstring regexp words qwords symbols qsymbols keyword_variable lambda

value_expr_p_primitive

p_primitive

p_primitive_value

value_expr_p_primitive

p_variable

tIDENTIFIER

p_var_ref

'^' tIDENTIFIER '^' nonlocal_var

p_expr_ref

'^' tLPAREN expr_value rparen

p_const

tCOLON3 cname p_const tCOLON2 cname tCONSTANT

opt_rescue

k_rescue exc_list exc_var then compstmt_stmts opt_rescue none

exc_list

arg_value mrhs none

exc_var

tASSOC lhs none

opt_ensure

k_ensure stmts option_terms none

literal

numeric symbol

strings

string

string

tCHAR string1 string string1

string1

tSTRING_BEG string_contents tSTRING_END

xstring

tXSTRING_BEG xstring_contents tSTRING_END

regexp

tREGEXP_BEG regexp_contents tREGEXP_END

nonempty_list_' '

' ' nonempty_list_' ' ' '

words_tWORDS_BEG_word_list

tWORDS_BEG nonempty_list_' ' word_list tSTRING_END

words

words_tWORDS_BEG_word_list

word_list

word_list word nonempty_list_' '

word

string_content word string_content

words_tSYMBOLS_BEG_symbol_list

tSYMBOLS_BEG nonempty_list_' ' symbol_list tSTRING_END

symbols

words_tSYMBOLS_BEG_symbol_list

symbol_list

symbol_list word nonempty_list_' '

words_tQWORDS_BEG_qword_list

tQWORDS_BEG nonempty_list_' ' qword_list tSTRING_END

qwords

words_tQWORDS_BEG_qword_list

words_tQSYMBOLS_BEG_qsym_list

tQSYMBOLS_BEG nonempty_list_' ' qsym_list tSTRING_END

qsymbols

words_tQSYMBOLS_BEG_qsym_list

qword_list

qword_list tSTRING_CONTENT nonempty_list_' '

qsym_list

qsym_list tSTRING_CONTENT nonempty_list_' '

string_contents

string_contents string_content

xstring_contents

xstring_contents string_content

regexp_contents

regexp_contents string_content

string_content

tSTRING_CONTENT tSTRING_DVAR @33 string_dvar tSTRING_DBEG @34 @35 @36 compstmt_stmts string_dend

@33

@34

@35

@36

string_dend

tSTRING_DEND END_OF_INPUT

string_dvar

nonlocal_var backref

symbol

ssym dsym

ssym

tSYMBEG sym

sym

fname nonlocal_var

dsym

tSYMBEG string_contents tSTRING_END

numeric

simple_numeric tUMINUS_NUM simple_numeric

simple_numeric

tINTEGER tFLOAT tRATIONAL tIMAGINARY

nonlocal_var

tIVAR tGVAR tCVAR

user_variable

tIDENTIFIER tCONSTANT nonlocal_var

keyword_variable

keyword_nil keyword_self keyword_true keyword_false keyword__FILE__ keyword__LINE__ keyword__ENCODING__

var_ref

user_variable keyword_variable

var_lhs

user_variable keyword_variable

backref

tNTH_REF tBACK_REF

$@37

superclass

'<' $@37 expr_value term none

f_opt_paren_args

f_paren_args none

f_paren_args

'(' f_args rparen

f_arglist

f_paren_args @38 f_args term

@38

f_kw_arg_value

f_label arg_value f_label

f_kwarg_arg_value

f_kw_arg_value f_kwarg_arg_value ',' f_kw_arg_value

args_tail_basic_arg_value

f_kwarg_arg_value ',' f_kwrest opt_f_block_arg f_kwarg_arg_value opt_f_block_arg f_any_kwrest opt_f_block_arg f_block_arg

args_tail

args_tail_basic_arg_value args_forward

f_opt_arg_value

f_arg_asgn f_eq arg_value

f_optarg_arg_value

f_opt_arg_value f_optarg_arg_value ',' f_opt_arg_value

opt_args_tail_args_tail

',' args_tail

f_args

f_arg ',' f_optarg_arg_value ',' f_rest_arg opt_args_tail_args_tail f_arg ',' f_optarg_arg_value ',' f_rest_arg ',' f_arg opt_args_tail_args_tail f_arg ',' f_optarg_arg_value opt_args_tail_args_tail f_arg ',' f_optarg_arg_value ',' f_arg opt_args_tail_args_tail f_arg ',' f_rest_arg opt_args_tail_args_tail f_arg ',' f_rest_arg ',' f_arg opt_args_tail_args_tail f_arg opt_args_tail_args_tail f_optarg_arg_value ',' f_rest_arg opt_args_tail_args_tail f_optarg_arg_value ',' f_rest_arg ',' f_arg opt_args_tail_args_tail f_optarg_arg_value opt_args_tail_args_tail f_optarg_arg_value ',' f_arg opt_args_tail_args_tail f_rest_arg opt_args_tail_args_tail f_rest_arg ',' f_arg opt_args_tail_args_tail args_tail

args_forward

tBDOT3

f_bad_arg

tCONSTANT tIVAR tGVAR tCVAR

f_norm_arg

f_bad_arg tIDENTIFIER

f_arg_asgn

f_norm_arg

f_arg_item

f_arg_asgn tLPAREN f_margs rparen

f_arg

f_arg_item f_arg ',' f_arg_item

f_label

tLABEL

kwrest_mark

tPOW tDSTAR

f_no_kwarg

p_kwnorest

f_kwrest

kwrest_mark tIDENTIFIER kwrest_mark

restarg_mark

'*' tSTAR

f_rest_arg

restarg_mark tIDENTIFIER restarg_mark

blkarg_mark

'&' tAMPER

f_block_arg

blkarg_mark tIDENTIFIER blkarg_mark

opt_f_block_arg

',' f_block_arg none

value_expr_singleton_expr

singleton_expr

singleton

value_expr_singleton_expr

singleton_expr

var_ref '(' $@39 expr rparen

$@39

assoc_list

none assocs trailer

assocs

assoc assocs ',' assoc

assoc

arg_value tASSOC arg_value tLABEL arg_value tLABEL tSTRING_BEG string_contents tLABEL_END arg_value tDSTAR arg_value tDSTAR

operation2

tIDENTIFIER tCONSTANT tFID op

operation3

tIDENTIFIER tFID op

dot_or_colon

'.' tCOLON2

call_op

'.' tANDDOT

call_op2

call_op tCOLON2

rparen

option_'\n' ')'

rbracket

option_'\n' ']'

rbrace

option_'\n' '}'

trailer

option_'\n' ','

term

';' '\n'

terms

term terms ';'

none