Ruby 2.7.7p221 (2022-11-24 revision 168ec2b1e5ad0e4688e963d9de019557c78feed9)
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
parse.c File Reference
#include "ruby/ruby.h"
#include "ruby/st.h"
#include "ruby/encoding.h"
#include "internal.h"
#include "node.h"
#include "parse.h"
#include "symbol.h"
#include "regenc.h"
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include "probes.h"
#include <limits.h>
#include "ruby/regex.h"
#include "ruby/util.h"
#include "lex.c"

Go to the source code of this file.

Data Structures

struct  vtable
 
struct  local_vars
 
struct  token_info
 
struct  parser_params
 
struct  rb_strterm_literal_struct
 
struct  rb_strterm_heredoc_struct
 
struct  rb_strterm_struct
 
union  yyalloc
 
struct  yypcontext_t
 
struct  magic_comment
 
struct  reg_named_capture_assign_t
 

Macros

#define YYBISON   30802
 
#define YYBISON_VERSION   "3.8.2"
 
#define YYSKELETON_NAME   "yacc.c"
 
#define YYPURE   1
 
#define YYPUSH   0
 
#define YYPULL   1
 
#define YYDEBUG   1
 
#define YYERROR_VERBOSE   1
 
#define YYSTACK_USE_ALLOCA   0
 
#define YYLTYPE   rb_code_location_t
 
#define YYLTYPE_IS_DECLARED   1
 
#define WARN_PAST_SCOPE   0
 
#define TAB_WIDTH   8
 
#define yydebug   (p->debug) /* disable the global variable definition */
 
#define YYMALLOC(size)   rb_parser_malloc(p, (size))
 
#define YYREALLOC(ptr, size)   rb_parser_realloc(p, (ptr), (size))
 
#define YYCALLOC(nelem, size)   rb_parser_calloc(p, (nelem), (size))
 
#define YYFREE(ptr)   rb_parser_free(p, (ptr))
 
#define YYFPRINTF   rb_parser_printf
 
#define YY_LOCATION_PRINT(File, loc)
 
#define YYLLOC_DEFAULT(Current, Rhs, N)
 
#define RUBY_SET_YYLLOC_FROM_STRTERM_HEREDOC(Current)    rb_parser_set_location_from_strterm_heredoc(p, &p->lex.strterm->u.heredoc, &(Current))
 
#define RUBY_SET_YYLLOC_OF_NONE(Current)    rb_parser_set_location_of_none(p, &(Current))
 
#define RUBY_SET_YYLLOC(Current)    rb_parser_set_location(p, &(Current))
 
#define RUBY_INIT_YYLLOC()
 
#define DEF_EXPR(n)   EXPR_##n = (1 << EXPR_##n##_bit)
 
#define IS_lex_state_for(x, ls)   ((x) & (ls))
 
#define IS_lex_state_all_for(x, ls)   (((x) & (ls)) == (ls))
 
#define IS_lex_state(ls)   IS_lex_state_for(p->lex.state, (ls))
 
#define IS_lex_state_all(ls)   IS_lex_state_all_for(p->lex.state, (ls))
 
#define SET_LEX_STATE(ls)
 
#define SHOW_BITSTACK(stack, name)   (p->debug ? rb_parser_show_bitstack(p, stack, name, __LINE__) : (void)0)
 
#define BITSTACK_PUSH(stack, n)   (((p->stack) = ((p->stack)<<1)|((n)&1)), SHOW_BITSTACK(p->stack, #stack"(push)"))
 
#define BITSTACK_POP(stack)   (((p->stack) = (p->stack) >> 1), SHOW_BITSTACK(p->stack, #stack"(pop)"))
 
#define BITSTACK_SET_P(stack)   (SHOW_BITSTACK(p->stack, #stack), (p->stack)&1)
 
#define BITSTACK_SET(stack, n)   ((p->stack)=(n), SHOW_BITSTACK(p->stack, #stack"(set)"))
 
#define COND_PUSH(n)   BITSTACK_PUSH(cond_stack, (n))
 
#define COND_POP()   BITSTACK_POP(cond_stack)
 
#define COND_P()   BITSTACK_SET_P(cond_stack)
 
#define COND_SET(n)   BITSTACK_SET(cond_stack, (n))
 
#define CMDARG_PUSH(n)   BITSTACK_PUSH(cmdarg_stack, (n))
 
#define CMDARG_POP()   BITSTACK_POP(cmdarg_stack)
 
#define CMDARG_P()   BITSTACK_SET_P(cmdarg_stack)
 
#define CMDARG_SET(n)   BITSTACK_SET(cmdarg_stack, (n))
 
#define NUMPARAM_ID_P(id)   numparam_id_p(id)
 
#define NUMPARAM_ID_TO_IDX(id)   (unsigned int)(((id) >> ID_SCOPE_SHIFT) - tNUMPARAM_1 + 1)
 
#define NUMPARAM_IDX_TO_ID(idx)   TOKEN2LOCALID((tNUMPARAM_1 + (idx) - 1))
 
#define DVARS_INHERIT   ((void*)1)
 
#define DVARS_TOPSCOPE   NULL
 
#define DVARS_TERMINAL_P(tbl)   ((tbl) == DVARS_INHERIT || (tbl) == DVARS_TOPSCOPE)
 
#define intern_cstr(n, l, en)   rb_intern3(n,l,en)
 
#define STR_NEW(ptr, len)   rb_enc_str_new((ptr),(len),p->enc)
 
#define STR_NEW0()   rb_enc_str_new(0,0,p->enc)
 
#define STR_NEW2(ptr)   rb_enc_str_new((ptr),strlen(ptr),p->enc)
 
#define STR_NEW3(ptr, len, e, func)   parser_str_new((ptr),(len),(e),(func),p->enc)
 
#define TOK_INTERN()   intern_cstr(tok(p), toklen(p), p->enc)
 
#define yyerror0(msg)   parser_yyerror(p, NULL, (msg))
 
#define yyerror1(loc, msg)   parser_yyerror(p, (loc), (msg))
 
#define yyerror(yylloc, p, msg)   parser_yyerror(p, yylloc, msg)
 
#define token_flush(ptr)   ((ptr)->lex.ptok = (ptr)->lex.pcur)
 
#define compile_for_eval   (p->parent_iseq != 0)
 
#define token_column   ((int)(p->lex.ptok - p->lex.pbeg))
 
#define CALL_Q_P(q)   ((q) == TOKEN2VAL(tANDDOT))
 
#define NODE_CALL_Q(q)   (CALL_Q_P(q) ? NODE_QCALL : NODE_CALL)
 
#define NEW_QCALL(q, r, m, a, loc)   NEW_NODE(NODE_CALL_Q(q),r,m,a,loc)
 
#define lambda_beginning_p()   (p->lex.lpar_beg == p->lex.paren_nest)
 
#define rb_node_newnode(type, a1, a2, a3, loc)   node_newnode(p, (type), (a1), (a2), (a3), (loc))
 
#define yyparse   ruby_yyparse
 
#define new_nil(loc)   NEW_NIL(loc)
 
#define value_expr(node)   value_expr_gen(p, (node) = remove_begin(node))
 
#define make_list(list, loc)   ((list) ? (nd_set_loc(list, loc), list) : NEW_ZLIST(loc))
 
#define get_id(id)   (id)
 
#define get_value(val)   (val)
 
#define get_num(num)   (num)
 
#define dyna_var(p, id)   local_var(p, id)
 
#define METHOD_NOT   '!'
 
#define idFWD_REST   '*'
 
#define idFWD_KWREST   0
 
#define idFWD_BLOCK   '&'
 
#define RE_OPTION_ONCE   (1<<16)
 
#define RE_OPTION_ENCODING_SHIFT   8
 
#define RE_OPTION_ENCODING(e)   (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
 
#define RE_OPTION_ENCODING_IDX(o)   (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
 
#define RE_OPTION_ENCODING_NONE(o)   ((o)&RE_OPTION_ARG_ENCODING_NONE)
 
#define RE_OPTION_MASK   0xff
 
#define RE_OPTION_ARG_ENCODING_NONE   32
 
#define HERETERM_LENGTH_BITS   ((SIZEOF_VALUE - 1) * CHAR_BIT - 1)
 
#define HERETERM_LENGTH_MAX   ((1U << HERETERM_LENGTH_BITS) - 1)
 
#define STRTERM_HEREDOC   IMEMO_FL_USER0
 
#define yytnamerr(yyres, yystr)   (YYSIZE_T)rb_yytnamerr(p, yyres, yystr)
 
#define TOKEN2ID(tok)
 
#define ID2VAL(id)   (id)
 
#define TOKEN2VAL(t)   ID2VAL(t)
 
#define KWD2EID(t, v)   keyword_##t
 
#define Qnone   0
 
#define Qnull   0
 
#define ifndef_ripper(x)   (x)
 
#define rb_warn0(fmt)   WARN_CALL(WARN_ARGS(fmt, 1))
 
#define rb_warn1(fmt, a)   WARN_CALL(WARN_ARGS(fmt, 2), (a))
 
#define rb_warn2(fmt, a, b)   WARN_CALL(WARN_ARGS(fmt, 3), (a), (b))
 
#define rb_warn3(fmt, a, b, c)   WARN_CALL(WARN_ARGS(fmt, 4), (a), (b), (c))
 
#define rb_warn4(fmt, a, b, c, d)   WARN_CALL(WARN_ARGS(fmt, 5), (a), (b), (c), (d))
 
#define rb_warning0(fmt)   WARNING_CALL(WARNING_ARGS(fmt, 1))
 
#define rb_warning1(fmt, a)   WARNING_CALL(WARNING_ARGS(fmt, 2), (a))
 
#define rb_warning2(fmt, a, b)   WARNING_CALL(WARNING_ARGS(fmt, 3), (a), (b))
 
#define rb_warning3(fmt, a, b, c)   WARNING_CALL(WARNING_ARGS(fmt, 4), (a), (b), (c))
 
#define rb_warning4(fmt, a, b, c, d)   WARNING_CALL(WARNING_ARGS(fmt, 5), (a), (b), (c), (d))
 
#define rb_warn0L(l, fmt)   WARN_CALL(WARN_ARGS_L(l, fmt, 1))
 
#define rb_warn1L(l, fmt, a)   WARN_CALL(WARN_ARGS_L(l, fmt, 2), (a))
 
#define rb_warn2L(l, fmt, a, b)   WARN_CALL(WARN_ARGS_L(l, fmt, 3), (a), (b))
 
#define rb_warn3L(l, fmt, a, b, c)   WARN_CALL(WARN_ARGS_L(l, fmt, 4), (a), (b), (c))
 
#define rb_warn4L(l, fmt, a, b, c, d)   WARN_CALL(WARN_ARGS_L(l, fmt, 5), (a), (b), (c), (d))
 
#define rb_warning0L(l, fmt)   WARNING_CALL(WARNING_ARGS_L(l, fmt, 1))
 
#define rb_warning1L(l, fmt, a)   WARNING_CALL(WARNING_ARGS_L(l, fmt, 2), (a))
 
#define rb_warning2L(l, fmt, a, b)   WARNING_CALL(WARNING_ARGS_L(l, fmt, 3), (a), (b))
 
#define rb_warning3L(l, fmt, a, b, c)   WARNING_CALL(WARNING_ARGS_L(l, fmt, 4), (a), (b), (c))
 
#define rb_warning4L(l, fmt, a, b, c, d)   WARNING_CALL(WARNING_ARGS_L(l, fmt, 5), (a), (b), (c), (d))
 
#define WARN_S_L(s, l)   s
 
#define WARN_S(s)   s
 
#define WARN_I(i)   i
 
#define WARN_ID(i)   rb_id2name(i)
 
#define WARN_IVAL(i)   NUM2INT(i)
 
#define PRIsWARN   PRIsVALUE
 
#define WARN_ARGS(fmt, n)   WARN_ARGS_L(p->ruby_sourceline,fmt,n)
 
#define WARN_ARGS_L(l, fmt, n)   p->ruby_sourcefile, (l), (fmt)
 
#define WARN_CALL   rb_compile_warn
 
#define WARNING_ARGS(fmt, n)   WARN_ARGS(fmt,n)
 
#define WARNING_ARGS_L(l, fmt, n)   WARN_ARGS_L(l,fmt,n)
 
#define WARNING_CALL   rb_compile_warning
 
#define compile_error   parser_compile_error
 
#define WARN_EOL(tok)
 
#define YY_CAST(Type, Val)   ((Type) (Val))
 
#define YY_REINTERPRET_CAST(Type, Val)   ((Type) (Val))
 
#define YY_NULLPTR   ((void*)0)
 
#define YY_YY_Y_TAB_H_INCLUDED
 
#define YYPTRDIFF_T   long
 
#define YYPTRDIFF_MAXIMUM   LONG_MAX
 
#define YYSIZE_T   unsigned
 
#define YYSIZE_MAXIMUM
 
#define YYSIZEOF(X)   YY_CAST (YYPTRDIFF_T, sizeof (X))
 
#define YY_(Msgid)   Msgid
 
#define YY_ATTRIBUTE_PURE
 
#define YY_ATTRIBUTE_UNUSED
 
#define YY_USE(E)   ((void) (E))
 
#define YY_INITIAL_VALUE(Value)   Value
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
 
#define YY_IGNORE_USELESS_CAST_BEGIN
 
#define YY_IGNORE_USELESS_CAST_END
 
#define YY_ASSERT(E)   ((void) (0 && (E)))
 
#define YYSTACK_ALLOC   YYMALLOC
 
#define YYSTACK_FREE   YYFREE
 
#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM
 
#define YYSTACK_GAP_MAXIMUM   (YYSIZEOF (union yyalloc) - 1)
 
#define YYSTACK_BYTES(N)
 
#define YYCOPY_NEEDED   1
 
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
 
#define YYCOPY(Dst, Src, Count)
 
#define YYFINAL   3
 
#define YYLAST   13883
 
#define YYNTOKENS   154
 
#define YYNNTS   266
 
#define YYNRULES   761
 
#define YYNSTATES   1251
 
#define YYMAXUTOK   353
 
#define YYTRANSLATE(YYX)
 
#define YY_ACCESSING_SYMBOL(State)   YY_CAST (yysymbol_kind_t, yystos[State])
 Accessing symbol of state STATE. More...
 
#define YYPACT_NINF   (-1040)
 
#define yypact_value_is_default(Yyn)    ((Yyn) == YYPACT_NINF)
 
#define YYTABLE_NINF   (-762)
 
#define yytable_value_is_error(Yyn)    ((Yyn) == YYTABLE_NINF)
 
#define yyerrok   (yyerrstatus = 0)
 
#define yyclearin   (yychar = YYEMPTY)
 
#define YYACCEPT   goto yyacceptlab
 
#define YYABORT   goto yyabortlab
 
#define YYERROR   goto yyerrorlab
 
#define YYNOMEM   goto yyexhaustedlab
 
#define YYRECOVERING()   (!!yyerrstatus)
 
#define YYBACKUP(Token, Value)
 
#define YYERRCODE   YYUNDEF
 
#define YYRHSLOC(Rhs, K)   ((Rhs)[K])
 
#define YYDPRINTF(Args)
 
#define YYLOCATION_PRINT(File, Loc)   YY_LOCATION_PRINT(File, *(Loc))
 
#define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
 
#define yy_stack_print(b, t)   ruby_parser_yy_stack_print(b, t, p)
 
#define YY_STACK_PRINT(Bottom, Top)
 
#define YY_REDUCE_PRINT(Rule)
 
#define YYINITDEPTH   200
 
#define YYMAXDEPTH   10000
 
#define YYCASE_(N, S)
 
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
 
#define yylval   (*p->lval)
 
#define set_yylval_node(x)
 
#define set_yylval_str(x)
 
#define set_yylval_literal(x)
 
#define set_yylval_num(x)   (yylval.num = (x))
 
#define set_yylval_id(x)   (yylval.id = (x))
 
#define set_yylval_name(x)   (yylval.id = (x))
 
#define yylval_id()   (yylval.id)
 
#define set_yylval_noname()   set_yylval_id(keyword_nil)
 
#define literal_flush(p, ptr)   ((p)->lex.ptok = (ptr))
 
#define dispatch_scan_event(p, t)   ((void)0)
 
#define dispatch_delayed_token(p, t)   ((void)0)
 
#define has_delayed_token(p)   (0)
 
#define CSI_BEGIN   "\033["
 
#define CSI_SGR   "m"
 
#define vtable_alloc(prev)   vtable_alloc_gen(p, __LINE__, prev)
 
#define vtable_free(tbl)   vtable_free_gen(p, __LINE__, #tbl, tbl)
 
#define vtable_add(tbl, id)   vtable_add_gen(p, __LINE__, #tbl, tbl, id)
 
#define vtable_pop(tbl, n)   vtable_pop_gen(p, __LINE__, #tbl, tbl, n)
 
#define RUBY_DTRACE_PARSE_HOOK(name)
 
#define STR_FUNC_ESCAPE   0x01
 
#define STR_FUNC_EXPAND   0x02
 
#define STR_FUNC_REGEXP   0x04
 
#define STR_FUNC_QWORDS   0x08
 
#define STR_FUNC_SYMBOL   0x10
 
#define STR_FUNC_INDENT   0x20
 
#define STR_FUNC_LABEL   0x40
 
#define STR_FUNC_LIST   0x4000
 
#define STR_FUNC_TERM   0x8000
 
#define lex_goto_eol(p)   ((p)->lex.pcur = (p)->lex.pend)
 
#define lex_eol_p(p)   ((p)->lex.pcur >= (p)->lex.pend)
 
#define lex_eol_n_p(p, n)   ((p)->lex.pcur+(n) >= (p)->lex.pend)
 
#define peek(p, c)   peek_n(p, (c), 0)
 
#define peek_n(p, c, n)   (!lex_eol_n_p(p, n) && (c) == (unsigned char)(p)->lex.pcur[n])
 
#define peekc(p)   peekc_n(p, 0)
 
#define peekc_n(p, n)   (lex_eol_n_p(p, n) ? -1 : (unsigned char)(p)->lex.pcur[n])
 
#define add_delayed_token(p, tok, end)   ((void)(tok), (void)(end))
 
#define was_bol(p)   ((p)->lex.pcur == (p)->lex.pbeg + 1)
 
#define tokfix(p)   ((p)->tokenbuf[(p)->tokidx]='\0')
 
#define tok(p)   (p)->tokenbuf
 
#define toklen(p)   (p)->tokidx
 
#define tokcopy(p, n)   memcpy(tokspace(p, n), (p)->lex.pcur - (n), (n))
 
#define WARN_SPACE_CHAR(c, prefix)    rb_warn1("invalid character syntax; use "prefix"\\%c", WARN_I(c2))
 
#define ESCAPE_CONTROL   1
 
#define ESCAPE_META   2
 
#define mixed_error(enc1, enc2)    (void)(erred || (parser_mixed_error(p, enc1, enc2), erred = true))
 
#define mixed_escape(beg, enc1, enc2)    (void)(erred || (parser_mixed_escape(p, beg, enc1, enc2), erred = true))
 
#define NEW_STRTERM(func, term, paren)    new_strterm((VALUE)(func), (VALUE)(paren), (VALUE)(term), 0)
 
#define flush_string_content(p, enc)   ((void)(enc))
 
#define BIT(c, idx)   (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
 
#define SPECIAL_PUNCT(idx)
 
#define IS_ARG()   IS_lex_state(EXPR_ARG_ANY)
 
#define IS_END()   IS_lex_state(EXPR_END_ANY)
 
#define IS_BEG()   (IS_lex_state(EXPR_BEG_ANY) || IS_lex_state_all(EXPR_ARG|EXPR_LABELED))
 
#define IS_SPCARG(c)   (IS_ARG() && space_seen && !ISSPACE(c))
 
#define IS_LABEL_POSSIBLE()
 
#define IS_LABEL_SUFFIX(n)   (peek_n(p, ':',(n)) && !peek_n(p, ':', (n)+1))
 
#define IS_AFTER_OPERATOR()   IS_lex_state(EXPR_FNAME | EXPR_DOT)
 
#define unterminated_literal(mesg)   yyerror0(mesg)
 
#define NUM_SUFFIX_R   (1<<0)
 
#define NUM_SUFFIX_I   (1<<1)
 
#define NUM_SUFFIX_ALL   3
 
#define dispatch_heredoc_end(p)   ((void)0)
 
#define str_copy(_s, _p, _n)
 
#define ambiguous_operator(tok, op, syn)
 
#define warn_balanced(tok, op, syn)
 
#define LVAR_USED   ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
 
#define nd_once_body(node)   (nd_type(node) == NODE_ONCE ? (node)->nd_body : node)
 
#define WARN_LOCATION(type)
 
#define subnodes(n1, n2)
 
#define SWITCH_BY_COND_TYPE(t, w, arg)
 
#define HEAPCNT(n, size)   ((n) * (size) / sizeof(YYSTYPE))
 
#define NEWHEAP()   rb_imemo_tmpbuf_parser_heap(0, p->heap, 0)
 
#define ADD2HEAP(new, cnt, ptr)
 

Typedefs

typedef VALUE stack_type
 
typedef struct token_info token_info
 
typedef struct rb_strterm_struct rb_strterm_t
 
typedef struct rb_strterm_heredoc_struct rb_strterm_heredoc_t
 
typedef struct rb_strterm_literal_struct rb_strterm_literal_t
 
typedef enum yysymbol_kind_t yysymbol_kind_t
 
typedef signed char yytype_int8
 
typedef short yytype_int16
 
typedef unsigned char yytype_uint8
 
typedef unsigned short yytype_uint16
 
typedef yytype_int16 yy_state_t
 
typedef int yy_state_fast_t
 
typedef long(* rb_magic_comment_length_t) (struct parser_params *p, const char *name, long len)
 
typedef void(* rb_magic_comment_setter_t) (struct parser_params *p, const char *name, const char *val)
 

Enumerations

enum  lex_state_bits {
  EXPR_BEG_bit , EXPR_END_bit , EXPR_ENDARG_bit , EXPR_ENDFN_bit ,
  EXPR_ARG_bit , EXPR_CMDARG_bit , EXPR_MID_bit , EXPR_FNAME_bit ,
  EXPR_DOT_bit , EXPR_CLASS_bit , EXPR_LABEL_bit , EXPR_LABELED_bit ,
  EXPR_FITEM_bit , EXPR_MAX_STATE , EXPR_BEG_bit , EXPR_END_bit ,
  EXPR_ENDARG_bit , EXPR_ENDFN_bit , EXPR_ARG_bit , EXPR_CMDARG_bit ,
  EXPR_MID_bit , EXPR_FNAME_bit , EXPR_DOT_bit , EXPR_CLASS_bit ,
  EXPR_LABEL_bit , EXPR_LABELED_bit , EXPR_FITEM_bit , EXPR_MAX_STATE
}
 
enum  lex_state_e {
  DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) ,
  DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) ,
  DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) ,
  DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , EXPR_VALUE = EXPR_BEG , EXPR_BEG_ANY = (EXPR_BEG | EXPR_MID | EXPR_CLASS) ,
  EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG) , EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN) , EXPR_NONE = 0 , DEF_EXPR =(BEG) ,
  DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) ,
  DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) ,
  DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) , DEF_EXPR =(BEG) ,
  DEF_EXPR =(BEG) , EXPR_VALUE = EXPR_BEG , EXPR_BEG_ANY = (EXPR_BEG | EXPR_MID | EXPR_CLASS) , EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG) ,
  EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN) , EXPR_NONE = 0
}
 
enum  { ORDINAL_PARAM = -1 , NO_PARAM = 0 , NUMPARAM_MAX = 9 }
 
enum  yysymbol_kind_t {
  YYSYMBOL_YYEMPTY = -2 , YYSYMBOL_YYEOF = 0 , YYSYMBOL_YYerror = 1 , YYSYMBOL_YYUNDEF = 2 ,
  YYSYMBOL_keyword_class = 3 , YYSYMBOL_keyword_module = 4 , YYSYMBOL_keyword_def = 5 , YYSYMBOL_keyword_undef = 6 ,
  YYSYMBOL_keyword_begin = 7 , YYSYMBOL_keyword_rescue = 8 , YYSYMBOL_keyword_ensure = 9 , YYSYMBOL_keyword_end = 10 ,
  YYSYMBOL_keyword_if = 11 , YYSYMBOL_keyword_unless = 12 , YYSYMBOL_keyword_then = 13 , YYSYMBOL_keyword_elsif = 14 ,
  YYSYMBOL_keyword_else = 15 , YYSYMBOL_keyword_case = 16 , YYSYMBOL_keyword_when = 17 , YYSYMBOL_keyword_while = 18 ,
  YYSYMBOL_keyword_until = 19 , YYSYMBOL_keyword_for = 20 , YYSYMBOL_keyword_break = 21 , YYSYMBOL_keyword_next = 22 ,
  YYSYMBOL_keyword_redo = 23 , YYSYMBOL_keyword_retry = 24 , YYSYMBOL_keyword_in = 25 , YYSYMBOL_keyword_do = 26 ,
  YYSYMBOL_keyword_do_cond = 27 , YYSYMBOL_keyword_do_block = 28 , YYSYMBOL_keyword_do_LAMBDA = 29 , YYSYMBOL_keyword_return = 30 ,
  YYSYMBOL_keyword_yield = 31 , YYSYMBOL_keyword_super = 32 , YYSYMBOL_keyword_self = 33 , YYSYMBOL_keyword_nil = 34 ,
  YYSYMBOL_keyword_true = 35 , YYSYMBOL_keyword_false = 36 , YYSYMBOL_keyword_and = 37 , YYSYMBOL_keyword_or = 38 ,
  YYSYMBOL_keyword_not = 39 , YYSYMBOL_modifier_if = 40 , YYSYMBOL_modifier_unless = 41 , YYSYMBOL_modifier_while = 42 ,
  YYSYMBOL_modifier_until = 43 , YYSYMBOL_modifier_rescue = 44 , YYSYMBOL_keyword_alias = 45 , YYSYMBOL_keyword_defined = 46 ,
  YYSYMBOL_keyword_BEGIN = 47 , YYSYMBOL_keyword_END = 48 , YYSYMBOL_keyword__LINE__ = 49 , YYSYMBOL_keyword__FILE__ = 50 ,
  YYSYMBOL_keyword__ENCODING__ = 51 , YYSYMBOL_tIDENTIFIER = 52 , YYSYMBOL_tFID = 53 , YYSYMBOL_tGVAR = 54 ,
  YYSYMBOL_tIVAR = 55 , YYSYMBOL_tCONSTANT = 56 , YYSYMBOL_tCVAR = 57 , YYSYMBOL_tLABEL = 58 ,
  YYSYMBOL_tINTEGER = 59 , YYSYMBOL_tFLOAT = 60 , YYSYMBOL_tRATIONAL = 61 , YYSYMBOL_tIMAGINARY = 62 ,
  YYSYMBOL_tCHAR = 63 , YYSYMBOL_tNTH_REF = 64 , YYSYMBOL_tBACK_REF = 65 , YYSYMBOL_tSTRING_CONTENT = 66 ,
  YYSYMBOL_tREGEXP_END = 67 , YYSYMBOL_68_ = 68 , YYSYMBOL_69_backslash_ = 69 , YYSYMBOL_tSP = 70 ,
  YYSYMBOL_71_escaped_horizontal_tab_ = 71 , YYSYMBOL_72_escaped_form_feed_ = 72 , YYSYMBOL_73_escaped_carriage_return_ = 73 , YYSYMBOL_74_escaped_vertical_tab_ = 74 ,
  YYSYMBOL_tUPLUS = 75 , YYSYMBOL_tUMINUS = 76 , YYSYMBOL_tPOW = 77 , YYSYMBOL_tCMP = 78 ,
  YYSYMBOL_tEQ = 79 , YYSYMBOL_tEQQ = 80 , YYSYMBOL_tNEQ = 81 , YYSYMBOL_tGEQ = 82 ,
  YYSYMBOL_tLEQ = 83 , YYSYMBOL_tANDOP = 84 , YYSYMBOL_tOROP = 85 , YYSYMBOL_tMATCH = 86 ,
  YYSYMBOL_tNMATCH = 87 , YYSYMBOL_tDOT2 = 88 , YYSYMBOL_tDOT3 = 89 , YYSYMBOL_tBDOT2 = 90 ,
  YYSYMBOL_tBDOT3 = 91 , YYSYMBOL_tAREF = 92 , YYSYMBOL_tASET = 93 , YYSYMBOL_tLSHFT = 94 ,
  YYSYMBOL_tRSHFT = 95 , YYSYMBOL_tANDDOT = 96 , YYSYMBOL_tCOLON2 = 97 , YYSYMBOL_tCOLON3 = 98 ,
  YYSYMBOL_tOP_ASGN = 99 , YYSYMBOL_tASSOC = 100 , YYSYMBOL_tLPAREN = 101 , YYSYMBOL_tLPAREN_ARG = 102 ,
  YYSYMBOL_tRPAREN = 103 , YYSYMBOL_tLBRACK = 104 , YYSYMBOL_tLBRACE = 105 , YYSYMBOL_tLBRACE_ARG = 106 ,
  YYSYMBOL_tSTAR = 107 , YYSYMBOL_tDSTAR = 108 , YYSYMBOL_tAMPER = 109 , YYSYMBOL_tLAMBDA = 110 ,
  YYSYMBOL_tSYMBEG = 111 , YYSYMBOL_tSTRING_BEG = 112 , YYSYMBOL_tXSTRING_BEG = 113 , YYSYMBOL_tREGEXP_BEG = 114 ,
  YYSYMBOL_tWORDS_BEG = 115 , YYSYMBOL_tQWORDS_BEG = 116 , YYSYMBOL_tSYMBOLS_BEG = 117 , YYSYMBOL_tQSYMBOLS_BEG = 118 ,
  YYSYMBOL_tSTRING_END = 119 , YYSYMBOL_tSTRING_DEND = 120 , YYSYMBOL_tSTRING_DBEG = 121 , YYSYMBOL_tSTRING_DVAR = 122 ,
  YYSYMBOL_tLAMBEG = 123 , YYSYMBOL_tLABEL_END = 124 , YYSYMBOL_tLOWEST = 125 , YYSYMBOL_126_ = 126 ,
  YYSYMBOL_127_ = 127 , YYSYMBOL_128_ = 128 , YYSYMBOL_129_ = 129 , YYSYMBOL_130_ = 130 ,
  YYSYMBOL_131_ = 131 , YYSYMBOL_132_ = 132 , YYSYMBOL_133_ = 133 , YYSYMBOL_134_ = 134 ,
  YYSYMBOL_135_ = 135 , YYSYMBOL_136_ = 136 , YYSYMBOL_137_ = 137 , YYSYMBOL_138_ = 138 ,
  YYSYMBOL_tUMINUS_NUM = 139 , YYSYMBOL_140_ = 140 , YYSYMBOL_141_ = 141 , YYSYMBOL_tLAST_TOKEN = 142 ,
  YYSYMBOL_143_ = 143 , YYSYMBOL_144_ = 144 , YYSYMBOL_145_ = 145 , YYSYMBOL_146_ = 146 ,
  YYSYMBOL_147_ = 147 , YYSYMBOL_148_ = 148 , YYSYMBOL_149_ = 149 , YYSYMBOL_150_ = 150 ,
  YYSYMBOL_151_ = 151 , YYSYMBOL_152_ = 152 , YYSYMBOL_153_n_ = 153 , YYSYMBOL_YYACCEPT = 154 ,
  YYSYMBOL_program = 155 , YYSYMBOL_156_1 = 156 , YYSYMBOL_top_compstmt = 157 , YYSYMBOL_top_stmts = 158 ,
  YYSYMBOL_top_stmt = 159 , YYSYMBOL_begin_block = 160 , YYSYMBOL_bodystmt = 161 , YYSYMBOL_162_2 = 162 ,
  YYSYMBOL_compstmt = 163 , YYSYMBOL_stmts = 164 , YYSYMBOL_stmt_or_begin = 165 , YYSYMBOL_166_3 = 166 ,
  YYSYMBOL_stmt = 167 , YYSYMBOL_168_4 = 168 , YYSYMBOL_command_asgn = 169 , YYSYMBOL_command_rhs = 170 ,
  YYSYMBOL_expr = 171 , YYSYMBOL_172_5 = 172 , YYSYMBOL_173_6 = 173 , YYSYMBOL_174_7 = 174 ,
  YYSYMBOL_expr_value = 175 , YYSYMBOL_expr_value_do = 176 , YYSYMBOL_177_8 = 177 , YYSYMBOL_178_9 = 178 ,
  YYSYMBOL_command_call = 179 , YYSYMBOL_block_command = 180 , YYSYMBOL_cmd_brace_block = 181 , YYSYMBOL_fcall = 182 ,
  YYSYMBOL_command = 183 , YYSYMBOL_mlhs = 184 , YYSYMBOL_mlhs_inner = 185 , YYSYMBOL_mlhs_basic = 186 ,
  YYSYMBOL_mlhs_item = 187 , YYSYMBOL_mlhs_head = 188 , YYSYMBOL_mlhs_post = 189 , YYSYMBOL_mlhs_node = 190 ,
  YYSYMBOL_lhs = 191 , YYSYMBOL_cname = 192 , YYSYMBOL_cpath = 193 , YYSYMBOL_fname = 194 ,
  YYSYMBOL_fitem = 195 , YYSYMBOL_undef_list = 196 , YYSYMBOL_197_10 = 197 , YYSYMBOL_op = 198 ,
  YYSYMBOL_reswords = 199 , YYSYMBOL_arg = 200 , YYSYMBOL_201_11 = 201 , YYSYMBOL_relop = 202 ,
  YYSYMBOL_rel_expr = 203 , YYSYMBOL_arg_value = 204 , YYSYMBOL_aref_args = 205 , YYSYMBOL_arg_rhs = 206 ,
  YYSYMBOL_paren_args = 207 , YYSYMBOL_opt_paren_args = 208 , YYSYMBOL_opt_call_args = 209 , YYSYMBOL_call_args = 210 ,
  YYSYMBOL_command_args = 211 , YYSYMBOL_212_12 = 212 , YYSYMBOL_block_arg = 213 , YYSYMBOL_opt_block_arg = 214 ,
  YYSYMBOL_args = 215 , YYSYMBOL_mrhs_arg = 216 , YYSYMBOL_mrhs = 217 , YYSYMBOL_primary = 218 ,
  YYSYMBOL_219_13 = 219 , YYSYMBOL_220_14 = 220 , YYSYMBOL_221_15 = 221 , YYSYMBOL_222_16 = 222 ,
  YYSYMBOL_223_17 = 223 , YYSYMBOL_224_18 = 224 , YYSYMBOL_225_19 = 225 , YYSYMBOL_226_20 = 226 ,
  YYSYMBOL_227_21 = 227 , YYSYMBOL_228_22 = 228 , YYSYMBOL_229_23 = 229 , YYSYMBOL_230_24 = 230 ,
  YYSYMBOL_231_25 = 231 , YYSYMBOL_232_26 = 232 , YYSYMBOL_primary_value = 233 , YYSYMBOL_k_begin = 234 ,
  YYSYMBOL_k_if = 235 , YYSYMBOL_k_unless = 236 , YYSYMBOL_k_while = 237 , YYSYMBOL_k_until = 238 ,
  YYSYMBOL_k_case = 239 , YYSYMBOL_k_for = 240 , YYSYMBOL_k_class = 241 , YYSYMBOL_k_module = 242 ,
  YYSYMBOL_k_def = 243 , YYSYMBOL_k_do = 244 , YYSYMBOL_k_do_block = 245 , YYSYMBOL_k_rescue = 246 ,
  YYSYMBOL_k_ensure = 247 , YYSYMBOL_k_when = 248 , YYSYMBOL_k_else = 249 , YYSYMBOL_k_elsif = 250 ,
  YYSYMBOL_k_end = 251 , YYSYMBOL_k_return = 252 , YYSYMBOL_then = 253 , YYSYMBOL_do = 254 ,
  YYSYMBOL_if_tail = 255 , YYSYMBOL_opt_else = 256 , YYSYMBOL_for_var = 257 , YYSYMBOL_f_marg = 258 ,
  YYSYMBOL_f_marg_list = 259 , YYSYMBOL_f_margs = 260 , YYSYMBOL_f_rest_marg = 261 , YYSYMBOL_block_args_tail = 262 ,
  YYSYMBOL_opt_block_args_tail = 263 , YYSYMBOL_block_param = 264 , YYSYMBOL_opt_block_param = 265 , YYSYMBOL_block_param_def = 266 ,
  YYSYMBOL_opt_bv_decl = 267 , YYSYMBOL_bv_decls = 268 , YYSYMBOL_bvar = 269 , YYSYMBOL_lambda = 270 ,
  YYSYMBOL_271_27 = 271 , YYSYMBOL_272_28 = 272 , YYSYMBOL_273_29 = 273 , YYSYMBOL_274_30 = 274 ,
  YYSYMBOL_275_31 = 275 , YYSYMBOL_f_larglist = 276 , YYSYMBOL_lambda_body = 277 , YYSYMBOL_do_block = 278 ,
  YYSYMBOL_block_call = 279 , YYSYMBOL_method_call = 280 , YYSYMBOL_brace_block = 281 , YYSYMBOL_brace_body = 282 ,
  YYSYMBOL_283_32 = 283 , YYSYMBOL_284_33 = 284 , YYSYMBOL_285_34 = 285 , YYSYMBOL_do_body = 286 ,
  YYSYMBOL_287_35 = 287 , YYSYMBOL_288_36 = 288 , YYSYMBOL_289_37 = 289 , YYSYMBOL_case_args = 290 ,
  YYSYMBOL_case_body = 291 , YYSYMBOL_cases = 292 , YYSYMBOL_p_case_body = 293 , YYSYMBOL_294_38 = 294 ,
  YYSYMBOL_295_39 = 295 , YYSYMBOL_296_40 = 296 , YYSYMBOL_297_41 = 297 , YYSYMBOL_298_42 = 298 ,
  YYSYMBOL_299_43 = 299 , YYSYMBOL_p_cases = 300 , YYSYMBOL_p_top_expr = 301 , YYSYMBOL_p_top_expr_body = 302 ,
  YYSYMBOL_p_expr = 303 , YYSYMBOL_p_as = 304 , YYSYMBOL_p_alt = 305 , YYSYMBOL_p_lparen = 306 ,
  YYSYMBOL_p_lbracket = 307 , YYSYMBOL_p_expr_basic = 308 , YYSYMBOL_309_44 = 309 , YYSYMBOL_310_45 = 310 ,
  YYSYMBOL_311_46 = 311 , YYSYMBOL_p_args = 312 , YYSYMBOL_p_args_head = 313 , YYSYMBOL_p_args_tail = 314 ,
  YYSYMBOL_p_args_post = 315 , YYSYMBOL_p_arg = 316 , YYSYMBOL_p_kwargs = 317 , YYSYMBOL_p_kwarg = 318 ,
  YYSYMBOL_p_kw = 319 , YYSYMBOL_p_kw_label = 320 , YYSYMBOL_p_kwrest = 321 , YYSYMBOL_p_kwnorest = 322 ,
  YYSYMBOL_p_value = 323 , YYSYMBOL_p_primitive = 324 , YYSYMBOL_325_47 = 325 , YYSYMBOL_p_variable = 326 ,
  YYSYMBOL_p_var_ref = 327 , YYSYMBOL_p_const = 328 , YYSYMBOL_opt_rescue = 329 , YYSYMBOL_exc_list = 330 ,
  YYSYMBOL_exc_var = 331 , YYSYMBOL_opt_ensure = 332 , YYSYMBOL_literal = 333 , YYSYMBOL_strings = 334 ,
  YYSYMBOL_string = 335 , YYSYMBOL_string1 = 336 , YYSYMBOL_xstring = 337 , YYSYMBOL_regexp = 338 ,
  YYSYMBOL_words = 339 , YYSYMBOL_word_list = 340 , YYSYMBOL_word = 341 , YYSYMBOL_symbols = 342 ,
  YYSYMBOL_symbol_list = 343 , YYSYMBOL_qwords = 344 , YYSYMBOL_qsymbols = 345 , YYSYMBOL_qword_list = 346 ,
  YYSYMBOL_qsym_list = 347 , YYSYMBOL_string_contents = 348 , YYSYMBOL_xstring_contents = 349 , YYSYMBOL_regexp_contents = 350 ,
  YYSYMBOL_string_content = 351 , YYSYMBOL_352_48 = 352 , YYSYMBOL_353_49 = 353 , YYSYMBOL_354_50 = 354 ,
  YYSYMBOL_355_51 = 355 , YYSYMBOL_356_52 = 356 , YYSYMBOL_357_53 = 357 , YYSYMBOL_string_dvar = 358 ,
  YYSYMBOL_symbol = 359 , YYSYMBOL_ssym = 360 , YYSYMBOL_sym = 361 , YYSYMBOL_dsym = 362 ,
  YYSYMBOL_numeric = 363 , YYSYMBOL_simple_numeric = 364 , YYSYMBOL_user_variable = 365 , YYSYMBOL_keyword_variable = 366 ,
  YYSYMBOL_var_ref = 367 , YYSYMBOL_var_lhs = 368 , YYSYMBOL_backref = 369 , YYSYMBOL_superclass = 370 ,
  YYSYMBOL_371_54 = 371 , YYSYMBOL_f_arglist = 372 , YYSYMBOL_373_55 = 373 , YYSYMBOL_args_tail = 374 ,
  YYSYMBOL_opt_args_tail = 375 , YYSYMBOL_f_args = 376 , YYSYMBOL_args_forward = 377 , YYSYMBOL_f_bad_arg = 378 ,
  YYSYMBOL_f_norm_arg = 379 , YYSYMBOL_f_arg_asgn = 380 , YYSYMBOL_f_arg_item = 381 , YYSYMBOL_f_arg = 382 ,
  YYSYMBOL_f_label = 383 , YYSYMBOL_f_kw = 384 , YYSYMBOL_f_block_kw = 385 , YYSYMBOL_f_block_kwarg = 386 ,
  YYSYMBOL_f_kwarg = 387 , YYSYMBOL_kwrest_mark = 388 , YYSYMBOL_f_no_kwarg = 389 , YYSYMBOL_f_kwrest = 390 ,
  YYSYMBOL_f_opt = 391 , YYSYMBOL_f_block_opt = 392 , YYSYMBOL_f_block_optarg = 393 , YYSYMBOL_f_optarg = 394 ,
  YYSYMBOL_restarg_mark = 395 , YYSYMBOL_f_rest_arg = 396 , YYSYMBOL_blkarg_mark = 397 , YYSYMBOL_f_block_arg = 398 ,
  YYSYMBOL_opt_f_block_arg = 399 , YYSYMBOL_singleton = 400 , YYSYMBOL_401_56 = 401 , YYSYMBOL_assoc_list = 402 ,
  YYSYMBOL_assocs = 403 , YYSYMBOL_assoc = 404 , YYSYMBOL_operation = 405 , YYSYMBOL_operation2 = 406 ,
  YYSYMBOL_operation3 = 407 , YYSYMBOL_dot_or_colon = 408 , YYSYMBOL_call_op = 409 , YYSYMBOL_call_op2 = 410 ,
  YYSYMBOL_opt_terms = 411 , YYSYMBOL_opt_nl = 412 , YYSYMBOL_rparen = 413 , YYSYMBOL_rbracket = 414 ,
  YYSYMBOL_rbrace = 415 , YYSYMBOL_trailer = 416 , YYSYMBOL_term = 417 , YYSYMBOL_terms = 418 ,
  YYSYMBOL_none = 419 , YYSYMBOL_YYEMPTY = -2 , YYSYMBOL_YYEOF = 0 , YYSYMBOL_YYerror = 1 ,
  YYSYMBOL_YYUNDEF = 2 , YYSYMBOL_keyword_class = 3 , YYSYMBOL_keyword_module = 4 , YYSYMBOL_keyword_def = 5 ,
  YYSYMBOL_keyword_undef = 6 , YYSYMBOL_keyword_begin = 7 , YYSYMBOL_keyword_rescue = 8 , YYSYMBOL_keyword_ensure = 9 ,
  YYSYMBOL_keyword_end = 10 , YYSYMBOL_keyword_if = 11 , YYSYMBOL_keyword_unless = 12 , YYSYMBOL_keyword_then = 13 ,
  YYSYMBOL_keyword_elsif = 14 , YYSYMBOL_keyword_else = 15 , YYSYMBOL_keyword_case = 16 , YYSYMBOL_keyword_when = 17 ,
  YYSYMBOL_keyword_while = 18 , YYSYMBOL_keyword_until = 19 , YYSYMBOL_keyword_for = 20 , YYSYMBOL_keyword_break = 21 ,
  YYSYMBOL_keyword_next = 22 , YYSYMBOL_keyword_redo = 23 , YYSYMBOL_keyword_retry = 24 , YYSYMBOL_keyword_in = 25 ,
  YYSYMBOL_keyword_do = 26 , YYSYMBOL_keyword_do_cond = 27 , YYSYMBOL_keyword_do_block = 28 , YYSYMBOL_keyword_do_LAMBDA = 29 ,
  YYSYMBOL_keyword_return = 30 , YYSYMBOL_keyword_yield = 31 , YYSYMBOL_keyword_super = 32 , YYSYMBOL_keyword_self = 33 ,
  YYSYMBOL_keyword_nil = 34 , YYSYMBOL_keyword_true = 35 , YYSYMBOL_keyword_false = 36 , YYSYMBOL_keyword_and = 37 ,
  YYSYMBOL_keyword_or = 38 , YYSYMBOL_keyword_not = 39 , YYSYMBOL_modifier_if = 40 , YYSYMBOL_modifier_unless = 41 ,
  YYSYMBOL_modifier_while = 42 , YYSYMBOL_modifier_until = 43 , YYSYMBOL_modifier_rescue = 44 , YYSYMBOL_keyword_alias = 45 ,
  YYSYMBOL_keyword_defined = 46 , YYSYMBOL_keyword_BEGIN = 47 , YYSYMBOL_keyword_END = 48 , YYSYMBOL_keyword__LINE__ = 49 ,
  YYSYMBOL_keyword__FILE__ = 50 , YYSYMBOL_keyword__ENCODING__ = 51 , YYSYMBOL_tIDENTIFIER = 52 , YYSYMBOL_tFID = 53 ,
  YYSYMBOL_tGVAR = 54 , YYSYMBOL_tIVAR = 55 , YYSYMBOL_tCONSTANT = 56 , YYSYMBOL_tCVAR = 57 ,
  YYSYMBOL_tLABEL = 58 , YYSYMBOL_tINTEGER = 59 , YYSYMBOL_tFLOAT = 60 , YYSYMBOL_tRATIONAL = 61 ,
  YYSYMBOL_tIMAGINARY = 62 , YYSYMBOL_tCHAR = 63 , YYSYMBOL_tNTH_REF = 64 , YYSYMBOL_tBACK_REF = 65 ,
  YYSYMBOL_tSTRING_CONTENT = 66 , YYSYMBOL_tREGEXP_END = 67 , YYSYMBOL_68_ = 68 , YYSYMBOL_69_backslash_ = 69 ,
  YYSYMBOL_tSP = 70 , YYSYMBOL_71_escaped_horizontal_tab_ = 71 , YYSYMBOL_72_escaped_form_feed_ = 72 , YYSYMBOL_73_escaped_carriage_return_ = 73 ,
  YYSYMBOL_74_escaped_vertical_tab_ = 74 , YYSYMBOL_tUPLUS = 75 , YYSYMBOL_tUMINUS = 76 , YYSYMBOL_tPOW = 77 ,
  YYSYMBOL_tCMP = 78 , YYSYMBOL_tEQ = 79 , YYSYMBOL_tEQQ = 80 , YYSYMBOL_tNEQ = 81 ,
  YYSYMBOL_tGEQ = 82 , YYSYMBOL_tLEQ = 83 , YYSYMBOL_tANDOP = 84 , YYSYMBOL_tOROP = 85 ,
  YYSYMBOL_tMATCH = 86 , YYSYMBOL_tNMATCH = 87 , YYSYMBOL_tDOT2 = 88 , YYSYMBOL_tDOT3 = 89 ,
  YYSYMBOL_tBDOT2 = 90 , YYSYMBOL_tBDOT3 = 91 , YYSYMBOL_tAREF = 92 , YYSYMBOL_tASET = 93 ,
  YYSYMBOL_tLSHFT = 94 , YYSYMBOL_tRSHFT = 95 , YYSYMBOL_tANDDOT = 96 , YYSYMBOL_tCOLON2 = 97 ,
  YYSYMBOL_tCOLON3 = 98 , YYSYMBOL_tOP_ASGN = 99 , YYSYMBOL_tASSOC = 100 , YYSYMBOL_tLPAREN = 101 ,
  YYSYMBOL_tLPAREN_ARG = 102 , YYSYMBOL_tRPAREN = 103 , YYSYMBOL_tLBRACK = 104 , YYSYMBOL_tLBRACE = 105 ,
  YYSYMBOL_tLBRACE_ARG = 106 , YYSYMBOL_tSTAR = 107 , YYSYMBOL_tDSTAR = 108 , YYSYMBOL_tAMPER = 109 ,
  YYSYMBOL_tLAMBDA = 110 , YYSYMBOL_tSYMBEG = 111 , YYSYMBOL_tSTRING_BEG = 112 , YYSYMBOL_tXSTRING_BEG = 113 ,
  YYSYMBOL_tREGEXP_BEG = 114 , YYSYMBOL_tWORDS_BEG = 115 , YYSYMBOL_tQWORDS_BEG = 116 , YYSYMBOL_tSYMBOLS_BEG = 117 ,
  YYSYMBOL_tQSYMBOLS_BEG = 118 , YYSYMBOL_tSTRING_END = 119 , YYSYMBOL_tSTRING_DEND = 120 , YYSYMBOL_tSTRING_DBEG = 121 ,
  YYSYMBOL_tSTRING_DVAR = 122 , YYSYMBOL_tLAMBEG = 123 , YYSYMBOL_tLABEL_END = 124 , YYSYMBOL_tLOWEST = 125 ,
  YYSYMBOL_126_ = 126 , YYSYMBOL_127_ = 127 , YYSYMBOL_128_ = 128 , YYSYMBOL_129_ = 129 ,
  YYSYMBOL_130_ = 130 , YYSYMBOL_131_ = 131 , YYSYMBOL_132_ = 132 , YYSYMBOL_133_ = 133 ,
  YYSYMBOL_134_ = 134 , YYSYMBOL_135_ = 135 , YYSYMBOL_136_ = 136 , YYSYMBOL_137_ = 137 ,
  YYSYMBOL_138_ = 138 , YYSYMBOL_tUMINUS_NUM = 139 , YYSYMBOL_140_ = 140 , YYSYMBOL_141_ = 141 ,
  YYSYMBOL_tLAST_TOKEN = 142 , YYSYMBOL_143_ = 143 , YYSYMBOL_144_ = 144 , YYSYMBOL_145_ = 145 ,
  YYSYMBOL_146_ = 146 , YYSYMBOL_147_ = 147 , YYSYMBOL_148_ = 148 , YYSYMBOL_149_ = 149 ,
  YYSYMBOL_150_ = 150 , YYSYMBOL_151_ = 151 , YYSYMBOL_152_ = 152 , YYSYMBOL_153_n_ = 153 ,
  YYSYMBOL_YYACCEPT = 154 , YYSYMBOL_program = 155 , YYSYMBOL_156_1 = 156 , YYSYMBOL_top_compstmt = 157 ,
  YYSYMBOL_top_stmts = 158 , YYSYMBOL_top_stmt = 159 , YYSYMBOL_begin_block = 160 , YYSYMBOL_bodystmt = 161 ,
  YYSYMBOL_162_2 = 162 , YYSYMBOL_compstmt = 163 , YYSYMBOL_stmts = 164 , YYSYMBOL_stmt_or_begin = 165 ,
  YYSYMBOL_166_3 = 166 , YYSYMBOL_stmt = 167 , YYSYMBOL_168_4 = 168 , YYSYMBOL_command_asgn = 169 ,
  YYSYMBOL_command_rhs = 170 , YYSYMBOL_expr = 171 , YYSYMBOL_172_5 = 172 , YYSYMBOL_173_6 = 173 ,
  YYSYMBOL_174_7 = 174 , YYSYMBOL_expr_value = 175 , YYSYMBOL_expr_value_do = 176 , YYSYMBOL_177_8 = 177 ,
  YYSYMBOL_178_9 = 178 , YYSYMBOL_command_call = 179 , YYSYMBOL_block_command = 180 , YYSYMBOL_cmd_brace_block = 181 ,
  YYSYMBOL_fcall = 182 , YYSYMBOL_command = 183 , YYSYMBOL_mlhs = 184 , YYSYMBOL_mlhs_inner = 185 ,
  YYSYMBOL_mlhs_basic = 186 , YYSYMBOL_mlhs_item = 187 , YYSYMBOL_mlhs_head = 188 , YYSYMBOL_mlhs_post = 189 ,
  YYSYMBOL_mlhs_node = 190 , YYSYMBOL_lhs = 191 , YYSYMBOL_cname = 192 , YYSYMBOL_cpath = 193 ,
  YYSYMBOL_fname = 194 , YYSYMBOL_fitem = 195 , YYSYMBOL_undef_list = 196 , YYSYMBOL_197_10 = 197 ,
  YYSYMBOL_op = 198 , YYSYMBOL_reswords = 199 , YYSYMBOL_arg = 200 , YYSYMBOL_201_11 = 201 ,
  YYSYMBOL_relop = 202 , YYSYMBOL_rel_expr = 203 , YYSYMBOL_arg_value = 204 , YYSYMBOL_aref_args = 205 ,
  YYSYMBOL_arg_rhs = 206 , YYSYMBOL_paren_args = 207 , YYSYMBOL_opt_paren_args = 208 , YYSYMBOL_opt_call_args = 209 ,
  YYSYMBOL_call_args = 210 , YYSYMBOL_command_args = 211 , YYSYMBOL_212_12 = 212 , YYSYMBOL_block_arg = 213 ,
  YYSYMBOL_opt_block_arg = 214 , YYSYMBOL_args = 215 , YYSYMBOL_mrhs_arg = 216 , YYSYMBOL_mrhs = 217 ,
  YYSYMBOL_primary = 218 , YYSYMBOL_219_13 = 219 , YYSYMBOL_220_14 = 220 , YYSYMBOL_221_15 = 221 ,
  YYSYMBOL_222_16 = 222 , YYSYMBOL_223_17 = 223 , YYSYMBOL_224_18 = 224 , YYSYMBOL_225_19 = 225 ,
  YYSYMBOL_226_20 = 226 , YYSYMBOL_227_21 = 227 , YYSYMBOL_228_22 = 228 , YYSYMBOL_229_23 = 229 ,
  YYSYMBOL_230_24 = 230 , YYSYMBOL_231_25 = 231 , YYSYMBOL_232_26 = 232 , YYSYMBOL_primary_value = 233 ,
  YYSYMBOL_k_begin = 234 , YYSYMBOL_k_if = 235 , YYSYMBOL_k_unless = 236 , YYSYMBOL_k_while = 237 ,
  YYSYMBOL_k_until = 238 , YYSYMBOL_k_case = 239 , YYSYMBOL_k_for = 240 , YYSYMBOL_k_class = 241 ,
  YYSYMBOL_k_module = 242 , YYSYMBOL_k_def = 243 , YYSYMBOL_k_do = 244 , YYSYMBOL_k_do_block = 245 ,
  YYSYMBOL_k_rescue = 246 , YYSYMBOL_k_ensure = 247 , YYSYMBOL_k_when = 248 , YYSYMBOL_k_else = 249 ,
  YYSYMBOL_k_elsif = 250 , YYSYMBOL_k_end = 251 , YYSYMBOL_k_return = 252 , YYSYMBOL_then = 253 ,
  YYSYMBOL_do = 254 , YYSYMBOL_if_tail = 255 , YYSYMBOL_opt_else = 256 , YYSYMBOL_for_var = 257 ,
  YYSYMBOL_f_marg = 258 , YYSYMBOL_f_marg_list = 259 , YYSYMBOL_f_margs = 260 , YYSYMBOL_f_rest_marg = 261 ,
  YYSYMBOL_block_args_tail = 262 , YYSYMBOL_opt_block_args_tail = 263 , YYSYMBOL_block_param = 264 , YYSYMBOL_opt_block_param = 265 ,
  YYSYMBOL_block_param_def = 266 , YYSYMBOL_opt_bv_decl = 267 , YYSYMBOL_bv_decls = 268 , YYSYMBOL_bvar = 269 ,
  YYSYMBOL_lambda = 270 , YYSYMBOL_271_27 = 271 , YYSYMBOL_272_28 = 272 , YYSYMBOL_273_29 = 273 ,
  YYSYMBOL_274_30 = 274 , YYSYMBOL_275_31 = 275 , YYSYMBOL_f_larglist = 276 , YYSYMBOL_lambda_body = 277 ,
  YYSYMBOL_do_block = 278 , YYSYMBOL_block_call = 279 , YYSYMBOL_method_call = 280 , YYSYMBOL_brace_block = 281 ,
  YYSYMBOL_brace_body = 282 , YYSYMBOL_283_32 = 283 , YYSYMBOL_284_33 = 284 , YYSYMBOL_285_34 = 285 ,
  YYSYMBOL_do_body = 286 , YYSYMBOL_287_35 = 287 , YYSYMBOL_288_36 = 288 , YYSYMBOL_289_37 = 289 ,
  YYSYMBOL_case_args = 290 , YYSYMBOL_case_body = 291 , YYSYMBOL_cases = 292 , YYSYMBOL_p_case_body = 293 ,
  YYSYMBOL_294_38 = 294 , YYSYMBOL_295_39 = 295 , YYSYMBOL_296_40 = 296 , YYSYMBOL_297_41 = 297 ,
  YYSYMBOL_298_42 = 298 , YYSYMBOL_299_43 = 299 , YYSYMBOL_p_cases = 300 , YYSYMBOL_p_top_expr = 301 ,
  YYSYMBOL_p_top_expr_body = 302 , YYSYMBOL_p_expr = 303 , YYSYMBOL_p_as = 304 , YYSYMBOL_p_alt = 305 ,
  YYSYMBOL_p_lparen = 306 , YYSYMBOL_p_lbracket = 307 , YYSYMBOL_p_expr_basic = 308 , YYSYMBOL_309_44 = 309 ,
  YYSYMBOL_310_45 = 310 , YYSYMBOL_311_46 = 311 , YYSYMBOL_p_args = 312 , YYSYMBOL_p_args_head = 313 ,
  YYSYMBOL_p_args_tail = 314 , YYSYMBOL_p_args_post = 315 , YYSYMBOL_p_arg = 316 , YYSYMBOL_p_kwargs = 317 ,
  YYSYMBOL_p_kwarg = 318 , YYSYMBOL_p_kw = 319 , YYSYMBOL_p_kw_label = 320 , YYSYMBOL_p_kwrest = 321 ,
  YYSYMBOL_p_kwnorest = 322 , YYSYMBOL_p_value = 323 , YYSYMBOL_p_primitive = 324 , YYSYMBOL_325_47 = 325 ,
  YYSYMBOL_p_variable = 326 , YYSYMBOL_p_var_ref = 327 , YYSYMBOL_p_const = 328 , YYSYMBOL_opt_rescue = 329 ,
  YYSYMBOL_exc_list = 330 , YYSYMBOL_exc_var = 331 , YYSYMBOL_opt_ensure = 332 , YYSYMBOL_literal = 333 ,
  YYSYMBOL_strings = 334 , YYSYMBOL_string = 335 , YYSYMBOL_string1 = 336 , YYSYMBOL_xstring = 337 ,
  YYSYMBOL_regexp = 338 , YYSYMBOL_words = 339 , YYSYMBOL_word_list = 340 , YYSYMBOL_word = 341 ,
  YYSYMBOL_symbols = 342 , YYSYMBOL_symbol_list = 343 , YYSYMBOL_qwords = 344 , YYSYMBOL_qsymbols = 345 ,
  YYSYMBOL_qword_list = 346 , YYSYMBOL_qsym_list = 347 , YYSYMBOL_string_contents = 348 , YYSYMBOL_xstring_contents = 349 ,
  YYSYMBOL_regexp_contents = 350 , YYSYMBOL_string_content = 351 , YYSYMBOL_352_48 = 352 , YYSYMBOL_353_49 = 353 ,
  YYSYMBOL_354_50 = 354 , YYSYMBOL_355_51 = 355 , YYSYMBOL_356_52 = 356 , YYSYMBOL_357_53 = 357 ,
  YYSYMBOL_string_dvar = 358 , YYSYMBOL_symbol = 359 , YYSYMBOL_ssym = 360 , YYSYMBOL_sym = 361 ,
  YYSYMBOL_dsym = 362 , YYSYMBOL_numeric = 363 , YYSYMBOL_simple_numeric = 364 , YYSYMBOL_user_variable = 365 ,
  YYSYMBOL_keyword_variable = 366 , YYSYMBOL_var_ref = 367 , YYSYMBOL_var_lhs = 368 , YYSYMBOL_backref = 369 ,
  YYSYMBOL_superclass = 370 , YYSYMBOL_371_54 = 371 , YYSYMBOL_f_arglist = 372 , YYSYMBOL_373_55 = 373 ,
  YYSYMBOL_args_tail = 374 , YYSYMBOL_opt_args_tail = 375 , YYSYMBOL_f_args = 376 , YYSYMBOL_args_forward = 377 ,
  YYSYMBOL_f_bad_arg = 378 , YYSYMBOL_f_norm_arg = 379 , YYSYMBOL_f_arg_asgn = 380 , YYSYMBOL_f_arg_item = 381 ,
  YYSYMBOL_f_arg = 382 , YYSYMBOL_f_label = 383 , YYSYMBOL_f_kw = 384 , YYSYMBOL_f_block_kw = 385 ,
  YYSYMBOL_f_block_kwarg = 386 , YYSYMBOL_f_kwarg = 387 , YYSYMBOL_kwrest_mark = 388 , YYSYMBOL_f_no_kwarg = 389 ,
  YYSYMBOL_f_kwrest = 390 , YYSYMBOL_f_opt = 391 , YYSYMBOL_f_block_opt = 392 , YYSYMBOL_f_block_optarg = 393 ,
  YYSYMBOL_f_optarg = 394 , YYSYMBOL_restarg_mark = 395 , YYSYMBOL_f_rest_arg = 396 , YYSYMBOL_blkarg_mark = 397 ,
  YYSYMBOL_f_block_arg = 398 , YYSYMBOL_opt_f_block_arg = 399 , YYSYMBOL_singleton = 400 , YYSYMBOL_401_56 = 401 ,
  YYSYMBOL_assoc_list = 402 , YYSYMBOL_assocs = 403 , YYSYMBOL_assoc = 404 , YYSYMBOL_operation = 405 ,
  YYSYMBOL_operation2 = 406 , YYSYMBOL_operation3 = 407 , YYSYMBOL_dot_or_colon = 408 , YYSYMBOL_call_op = 409 ,
  YYSYMBOL_call_op2 = 410 , YYSYMBOL_opt_terms = 411 , YYSYMBOL_opt_nl = 412 , YYSYMBOL_rparen = 413 ,
  YYSYMBOL_rbracket = 414 , YYSYMBOL_rbrace = 415 , YYSYMBOL_trailer = 416 , YYSYMBOL_term = 417 ,
  YYSYMBOL_terms = 418 , YYSYMBOL_none = 419
}
 
enum  { YYENOMEM = -2 }
 
enum  string_type {
  str_label = STR_FUNC_LABEL , str_squote = (0) , str_dquote = (STR_FUNC_EXPAND) , str_xquote = (STR_FUNC_EXPAND) ,
  str_regexp = (STR_FUNC_REGEXP|STR_FUNC_ESCAPE|STR_FUNC_EXPAND) , str_sword = (STR_FUNC_QWORDS|STR_FUNC_LIST) , str_dword = (STR_FUNC_QWORDS|STR_FUNC_EXPAND|STR_FUNC_LIST) , str_ssym = (STR_FUNC_SYMBOL) ,
  str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND) , str_label = STR_FUNC_LABEL , str_squote = (0) , str_dquote = (STR_FUNC_EXPAND) ,
  str_xquote = (STR_FUNC_EXPAND) , str_regexp = (STR_FUNC_REGEXP|STR_FUNC_ESCAPE|STR_FUNC_EXPAND) , str_sword = (STR_FUNC_QWORDS|STR_FUNC_LIST) , str_dword = (STR_FUNC_QWORDS|STR_FUNC_EXPAND|STR_FUNC_LIST) ,
  str_ssym = (STR_FUNC_SYMBOL) , str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND)
}
 
enum  cond_type {
  COND_IN_OP , COND_IN_COND , COND_IN_FF , COND_IN_OP ,
  COND_IN_COND , COND_IN_FF
}
 

Functions

RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_parser_reg_compile (struct parser_params *p, VALUE str, int options)
 
int rb_reg_fragment_setenc (struct parser_params *, VALUE, int)
 
enum lex_state_e rb_parser_trace_lex_state (struct parser_params *, enum lex_state_e, enum lex_state_e, int)
 
VALUE rb_parser_lex_state_name (enum lex_state_e state)
 
void rb_parser_show_bitstack (struct parser_params *, stack_type, const char *, int)
 
 PRINTF_ARGS (void rb_parser_fatal(struct parser_params *p, const char *fmt,...), 2, 3)
 
YYLTYPErb_parser_set_location_from_strterm_heredoc (struct parser_params *p, rb_strterm_heredoc_t *here, YYLTYPE *yylloc)
 
YYLTYPErb_parser_set_location_of_none (struct parser_params *p, YYLTYPE *yylloc)
 
YYLTYPErb_parser_set_location (struct parser_params *p, YYLTYPE *yylloc)
 
 STATIC_ASSERT (rb_strterm_heredoc_t, sizeof(rb_strterm_heredoc_t)<=4 *SIZEOF_VALUE)
 
void rb_strterm_mark (VALUE obj)
 
size_t rb_yytnamerr (struct parser_params *p, char *yyres, const char *yystr)
 
 PRINTF_ARGS (static void parser_compile_error(struct parser_params *, const char *fmt,...), 2, 3)
 
int yyparse (struct parser_params *p)
 
rb_ast_trb_parser_compile_string (VALUE vparser, const char *f, VALUE s, int line)
 
rb_ast_trb_parser_compile_string_path (VALUE vparser, VALUE f, VALUE s, int line)
 
VALUE rb_io_gets_internal (VALUE io)
 
rb_ast_trb_parser_compile_file_path (VALUE vparser, VALUE fname, VALUE file, int start)
 
rb_ast_trb_parser_compile_generic (VALUE vparser, VALUE(*lex_gets)(VALUE, int), VALUE fname, VALUE input, int start)
 
void rb_parser_fatal (struct parser_params *p, const char *fmt,...)
 
void rb_parser_set_options (VALUE vparser, int print, int loop, int chomp, int split)
 
void rb_parser_warn_location (VALUE vparser, int warn)
 
void rb_init_parse (void)
 
const struct kwtablerb_reserved_word (const char *str, unsigned int len)
 
VALUE rb_parser_new (void)
 
VALUE rb_parser_set_context (VALUE vparser, const struct rb_iseq_struct *base, int main)
 
VALUE rb_parser_end_seen_p (VALUE vparser)
 
VALUE rb_parser_encoding (VALUE vparser)
 
VALUE rb_parser_set_yydebug (VALUE self, VALUE flag)
 
VALUE rb_parser_get_debug_output (VALUE self)
 
VALUE rb_parser_set_debug_output (VALUE self, VALUE output)
 
voidrb_parser_malloc (struct parser_params *p, size_t size)
 
voidrb_parser_calloc (struct parser_params *p, size_t nelem, size_t size)
 
voidrb_parser_realloc (struct parser_params *p, void *ptr, size_t size)
 
void rb_parser_free (struct parser_params *p, void *ptr)
 
void rb_parser_printf (struct parser_params *p, const char *fmt,...)
 

Variables

RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits [(0x7e - 0x20+31)/32]
 

Macro Definition Documentation

◆ ADD2HEAP

#define ADD2HEAP (   new,
  cnt,
  ptr 
)
Value:
((p->heap = (new))->ptr = (ptr), \
(new)->cnt = (cnt), (ptr))
struct RIMemo * ptr
Definition: debug.c:65
rb_atomic_t cnt[RUBY_NSIG]
Definition: signal.c:503

Definition at line 20131 of file parse.c.

◆ add_delayed_token

#define add_delayed_token (   p,
  tok,
  end 
)    ((void)(tok), (void)(end))

Definition at line 13808 of file parse.c.

◆ ambiguous_operator

#define ambiguous_operator (   tok,
  op,
  syn 
)
Value:
( \
rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \
rb_warning0("even though it seems like "syn""))

Definition at line 15641 of file parse.c.

◆ BIT

#define BIT (   c,
  idx 
)    (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)

Definition at line 14582 of file parse.c.

◆ BITSTACK_POP

#define BITSTACK_POP (   stack)    (((p->stack) = (p->stack) >> 1), SHOW_BITSTACK(p->stack, #stack"(pop)"))

Definition at line 193 of file parse.c.

◆ BITSTACK_PUSH

#define BITSTACK_PUSH (   stack,
  n 
)    (((p->stack) = ((p->stack)<<1)|((n)&1)), SHOW_BITSTACK(p->stack, #stack"(push)"))

Definition at line 192 of file parse.c.

◆ BITSTACK_SET

#define BITSTACK_SET (   stack,
  n 
)    ((p->stack)=(n), SHOW_BITSTACK(p->stack, #stack"(set)"))

Definition at line 195 of file parse.c.

◆ BITSTACK_SET_P

#define BITSTACK_SET_P (   stack)    (SHOW_BITSTACK(p->stack, #stack), (p->stack)&1)

Definition at line 194 of file parse.c.

◆ CALL_Q_P

#define CALL_Q_P (   q)    ((q) == TOKEN2VAL(tANDDOT))

Definition at line 431 of file parse.c.

◆ CMDARG_P

#define CMDARG_P ( )    BITSTACK_SET_P(cmdarg_stack)

Definition at line 208 of file parse.c.

◆ CMDARG_POP

#define CMDARG_POP ( )    BITSTACK_POP(cmdarg_stack)

Definition at line 207 of file parse.c.

◆ CMDARG_PUSH

#define CMDARG_PUSH (   n)    BITSTACK_PUSH(cmdarg_stack, (n))

Definition at line 206 of file parse.c.

◆ CMDARG_SET

#define CMDARG_SET (   n)    BITSTACK_SET(cmdarg_stack, (n))

Definition at line 209 of file parse.c.

◆ compile_error

#define compile_error   parser_compile_error

Definition at line 1011 of file parse.c.

◆ compile_for_eval

#define compile_for_eval   (p->parent_iseq != 0)

Definition at line 426 of file parse.c.

◆ COND_P

#define COND_P ( )    BITSTACK_SET_P(cond_stack)

Definition at line 201 of file parse.c.

◆ COND_POP

#define COND_POP ( )    BITSTACK_POP(cond_stack)

Definition at line 200 of file parse.c.

◆ COND_PUSH

#define COND_PUSH (   n)    BITSTACK_PUSH(cond_stack, (n))

Definition at line 199 of file parse.c.

◆ COND_SET

#define COND_SET (   n)    BITSTACK_SET(cond_stack, (n))

Definition at line 202 of file parse.c.

◆ CSI_BEGIN

#define CSI_BEGIN   "\033["

◆ CSI_SGR

#define CSI_SGR   "m"

◆ DEF_EXPR

#define DEF_EXPR (   n)    EXPR_##n = (1 << EXPR_##n##_bit)

Definition at line 156 of file parse.c.

◆ dispatch_delayed_token

#define dispatch_delayed_token (   p,
 
)    ((void)0)

Definition at line 13087 of file parse.c.

◆ dispatch_heredoc_end

#define dispatch_heredoc_end (   p)    ((void)0)

Definition at line 15066 of file parse.c.

◆ dispatch_scan_event

#define dispatch_scan_event (   p,
 
)    ((void)0)

Definition at line 13086 of file parse.c.

◆ DVARS_INHERIT

#define DVARS_INHERIT   ((void*)1)

Definition at line 251 of file parse.c.

◆ DVARS_TERMINAL_P

#define DVARS_TERMINAL_P (   tbl)    ((tbl) == DVARS_INHERIT || (tbl) == DVARS_TOPSCOPE)

Definition at line 253 of file parse.c.

◆ DVARS_TOPSCOPE

#define DVARS_TOPSCOPE   NULL

Definition at line 252 of file parse.c.

◆ dyna_var

#define dyna_var (   p,
  id 
)    local_var(p, id)

Definition at line 680 of file parse.c.

◆ ESCAPE_CONTROL

#define ESCAPE_CONTROL   1

Definition at line 14100 of file parse.c.

◆ ESCAPE_META

#define ESCAPE_META   2

Definition at line 14101 of file parse.c.

◆ flush_string_content

#define flush_string_content (   p,
  enc 
)    ((void)(enc))

Definition at line 14575 of file parse.c.

◆ get_id

#define get_id (   id)    (id)

Definition at line 591 of file parse.c.

◆ get_num

#define get_num (   num)    (num)

Definition at line 593 of file parse.c.

◆ get_value

#define get_value (   val)    (val)

Definition at line 592 of file parse.c.

◆ has_delayed_token

#define has_delayed_token (   p)    (0)

Definition at line 13088 of file parse.c.

◆ HEAPCNT

#define HEAPCNT (   n,
  size 
)    ((n) * (size) / sizeof(YYSTYPE))

Definition at line 20127 of file parse.c.

◆ HERETERM_LENGTH_BITS

#define HERETERM_LENGTH_BITS   ((SIZEOF_VALUE - 1) * CHAR_BIT - 1)

Definition at line 732 of file parse.c.

◆ HERETERM_LENGTH_MAX

#define HERETERM_LENGTH_MAX   ((1U << HERETERM_LENGTH_BITS) - 1)

◆ ID2VAL

#define ID2VAL (   id)    (id)

Definition at line 938 of file parse.c.

◆ idFWD_BLOCK

#define idFWD_BLOCK   '&'

Definition at line 702 of file parse.c.

◆ idFWD_KWREST

#define idFWD_KWREST   0

Definition at line 700 of file parse.c.

◆ idFWD_REST

#define idFWD_REST   '*'

Definition at line 696 of file parse.c.

◆ ifndef_ripper

#define ifndef_ripper (   x)    (x)

Definition at line 946 of file parse.c.

◆ intern_cstr

#define intern_cstr (   n,
  l,
  en 
)    rb_intern3(n,l,en)

Definition at line 379 of file parse.c.

◆ IS_AFTER_OPERATOR

#define IS_AFTER_OPERATOR ( )    IS_lex_state(EXPR_FNAME | EXPR_DOT)

Definition at line 14643 of file parse.c.

◆ IS_ARG

#define IS_ARG ( )    IS_lex_state(EXPR_ARG_ANY)

Definition at line 14635 of file parse.c.

◆ IS_BEG

#define IS_BEG ( )    (IS_lex_state(EXPR_BEG_ANY) || IS_lex_state_all(EXPR_ARG|EXPR_LABELED))

Definition at line 14637 of file parse.c.

◆ IS_END

#define IS_END ( )    IS_lex_state(EXPR_END_ANY)

Definition at line 14636 of file parse.c.

◆ IS_LABEL_POSSIBLE

#define IS_LABEL_POSSIBLE ( )
Value:
(\
(IS_lex_state(EXPR_LABEL|EXPR_ENDFN) && !cmd_state) || \
IS_ARG())
#define IS_lex_state(ls)
Definition: parse.c:178
#define IS_ARG()
Definition: parse.c:14635

Definition at line 14639 of file parse.c.

◆ IS_LABEL_SUFFIX

#define IS_LABEL_SUFFIX (   n)    (peek_n(p, ':',(n)) && !peek_n(p, ':', (n)+1))

Definition at line 14642 of file parse.c.

◆ IS_lex_state

#define IS_lex_state (   ls)    IS_lex_state_for(p->lex.state, (ls))

Definition at line 178 of file parse.c.

◆ IS_lex_state_all

#define IS_lex_state_all (   ls)    IS_lex_state_all_for(p->lex.state, (ls))

Definition at line 179 of file parse.c.

◆ IS_lex_state_all_for

#define IS_lex_state_all_for (   x,
  ls 
)    (((x) & (ls)) == (ls))

Definition at line 177 of file parse.c.

◆ IS_lex_state_for

#define IS_lex_state_for (   x,
  ls 
)    ((x) & (ls))

Definition at line 176 of file parse.c.

◆ IS_SPCARG

#define IS_SPCARG (   c)    (IS_ARG() && space_seen && !ISSPACE(c))

Definition at line 14638 of file parse.c.

◆ KWD2EID

#define KWD2EID (   t,
  v 
)    keyword_##t

Definition at line 940 of file parse.c.

◆ lambda_beginning_p

#define lambda_beginning_p ( )    (p->lex.lpar_beg == p->lex.paren_nest)

Definition at line 435 of file parse.c.

◆ lex_eol_n_p

#define lex_eol_n_p (   p,
  n 
)    ((p)->lex.pcur+(n) >= (p)->lex.pend)

Definition at line 13786 of file parse.c.

◆ lex_eol_p

#define lex_eol_p (   p)    ((p)->lex.pcur >= (p)->lex.pend)

Definition at line 13785 of file parse.c.

◆ lex_goto_eol

#define lex_goto_eol (   p)    ((p)->lex.pcur = (p)->lex.pend)

Definition at line 13784 of file parse.c.

◆ literal_flush

#define literal_flush (   p,
  ptr 
)    ((p)->lex.ptok = (ptr))

Definition at line 13085 of file parse.c.

◆ LVAR_USED

#define LVAR_USED   ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))

Definition at line 17114 of file parse.c.

◆ make_list

#define make_list (   list,
  loc 
)    ((list) ? (nd_set_loc(list, loc), list) : NEW_ZLIST(loc))

Definition at line 571 of file parse.c.

◆ METHOD_NOT

#define METHOD_NOT   '!'

Definition at line 693 of file parse.c.

◆ mixed_error

#define mixed_error (   enc1,
  enc2 
)     (void)(erred || (parser_mixed_error(p, enc1, enc2), erred = true))

◆ mixed_escape

#define mixed_escape (   beg,
  enc1,
  enc2 
)     (void)(erred || (parser_mixed_escape(p, beg, enc1, enc2), erred = true))

◆ nd_once_body

#define nd_once_body (   node)    (nd_type(node) == NODE_ONCE ? (node)->nd_body : node)

Definition at line 17455 of file parse.c.

◆ new_nil

#define new_nil (   loc)    NEW_NIL(loc)

Definition at line 491 of file parse.c.

◆ NEW_QCALL

#define NEW_QCALL (   q,
  r,
  m,
  a,
  loc 
)    NEW_NODE(NODE_CALL_Q(q),r,m,a,loc)

Definition at line 433 of file parse.c.

◆ NEW_STRTERM

#define NEW_STRTERM (   func,
  term,
  paren 
)     new_strterm((VALUE)(func), (VALUE)(paren), (VALUE)(term), 0)

Definition at line 14550 of file parse.c.

◆ NEWHEAP

#define NEWHEAP ( )    rb_imemo_tmpbuf_parser_heap(0, p->heap, 0)

Definition at line 20130 of file parse.c.

◆ NODE_CALL_Q

#define NODE_CALL_Q (   q)    (CALL_Q_P(q) ? NODE_QCALL : NODE_CALL)

Definition at line 432 of file parse.c.

◆ NUM_SUFFIX_ALL

#define NUM_SUFFIX_ALL   3

Definition at line 14996 of file parse.c.

◆ NUM_SUFFIX_I

#define NUM_SUFFIX_I   (1<<1)

Definition at line 14995 of file parse.c.

◆ NUM_SUFFIX_R

#define NUM_SUFFIX_R   (1<<0)

Definition at line 14994 of file parse.c.

◆ NUMPARAM_ID_P

#define NUMPARAM_ID_P (   id)    numparam_id_p(id)

Definition at line 239 of file parse.c.

◆ NUMPARAM_ID_TO_IDX

#define NUMPARAM_ID_TO_IDX (   id)    (unsigned int)(((id) >> ID_SCOPE_SHIFT) - tNUMPARAM_1 + 1)

Definition at line 240 of file parse.c.

◆ NUMPARAM_IDX_TO_ID

#define NUMPARAM_IDX_TO_ID (   idx)    TOKEN2LOCALID((tNUMPARAM_1 + (idx) - 1))

Definition at line 241 of file parse.c.

◆ peek

#define peek (   p,
 
)    peek_n(p, (c), 0)

Definition at line 13787 of file parse.c.

◆ peek_n

#define peek_n (   p,
  c,
  n 
)    (!lex_eol_n_p(p, n) && (c) == (unsigned char)(p)->lex.pcur[n])

Definition at line 13788 of file parse.c.

◆ peekc

#define peekc (   p)    peekc_n(p, 0)

Definition at line 13789 of file parse.c.

◆ peekc_n

#define peekc_n (   p,
  n 
)    (lex_eol_n_p(p, n) ? -1 : (unsigned char)(p)->lex.pcur[n])

Definition at line 13790 of file parse.c.

◆ PRIsWARN

#define PRIsWARN   PRIsVALUE

Definition at line 1003 of file parse.c.

◆ Qnone

#define Qnone   0

Definition at line 944 of file parse.c.

◆ Qnull

#define Qnull   0

Definition at line 945 of file parse.c.

◆ rb_node_newnode

#define rb_node_newnode (   type,
  a1,
  a2,
  a3,
  loc 
)    node_newnode(p, (type), (a1), (a2), (a3), (loc))

Definition at line 463 of file parse.c.

◆ rb_warn0

#define rb_warn0 (   fmt)    WARN_CALL(WARN_ARGS(fmt, 1))

Definition at line 953 of file parse.c.

◆ rb_warn0L

#define rb_warn0L (   l,
  fmt 
)    WARN_CALL(WARN_ARGS_L(l, fmt, 1))

Definition at line 963 of file parse.c.

◆ rb_warn1

#define rb_warn1 (   fmt,
 
)    WARN_CALL(WARN_ARGS(fmt, 2), (a))

Definition at line 954 of file parse.c.

◆ rb_warn1L

#define rb_warn1L (   l,
  fmt,
 
)    WARN_CALL(WARN_ARGS_L(l, fmt, 2), (a))

Definition at line 964 of file parse.c.

◆ rb_warn2

#define rb_warn2 (   fmt,
  a,
 
)    WARN_CALL(WARN_ARGS(fmt, 3), (a), (b))

Definition at line 955 of file parse.c.

◆ rb_warn2L

#define rb_warn2L (   l,
  fmt,
  a,
 
)    WARN_CALL(WARN_ARGS_L(l, fmt, 3), (a), (b))

Definition at line 965 of file parse.c.

◆ rb_warn3

#define rb_warn3 (   fmt,
  a,
  b,
 
)    WARN_CALL(WARN_ARGS(fmt, 4), (a), (b), (c))

Definition at line 956 of file parse.c.

◆ rb_warn3L

#define rb_warn3L (   l,
  fmt,
  a,
  b,
 
)    WARN_CALL(WARN_ARGS_L(l, fmt, 4), (a), (b), (c))

Definition at line 966 of file parse.c.

◆ rb_warn4

#define rb_warn4 (   fmt,
  a,
  b,
  c,
 
)    WARN_CALL(WARN_ARGS(fmt, 5), (a), (b), (c), (d))

Definition at line 957 of file parse.c.

◆ rb_warn4L

#define rb_warn4L (   l,
  fmt,
  a,
  b,
  c,
 
)    WARN_CALL(WARN_ARGS_L(l, fmt, 5), (a), (b), (c), (d))

Definition at line 967 of file parse.c.

◆ rb_warning0

#define rb_warning0 (   fmt)    WARNING_CALL(WARNING_ARGS(fmt, 1))

Definition at line 958 of file parse.c.

◆ rb_warning0L

#define rb_warning0L (   l,
  fmt 
)    WARNING_CALL(WARNING_ARGS_L(l, fmt, 1))

Definition at line 968 of file parse.c.

◆ rb_warning1

#define rb_warning1 (   fmt,
 
)    WARNING_CALL(WARNING_ARGS(fmt, 2), (a))

Definition at line 959 of file parse.c.

◆ rb_warning1L

#define rb_warning1L (   l,
  fmt,
 
)    WARNING_CALL(WARNING_ARGS_L(l, fmt, 2), (a))

Definition at line 969 of file parse.c.

◆ rb_warning2

#define rb_warning2 (   fmt,
  a,
 
)    WARNING_CALL(WARNING_ARGS(fmt, 3), (a), (b))

Definition at line 960 of file parse.c.

◆ rb_warning2L

#define rb_warning2L (   l,
  fmt,
  a,
 
)    WARNING_CALL(WARNING_ARGS_L(l, fmt, 3), (a), (b))

Definition at line 970 of file parse.c.

◆ rb_warning3

#define rb_warning3 (   fmt,
  a,
  b,
 
)    WARNING_CALL(WARNING_ARGS(fmt, 4), (a), (b), (c))

Definition at line 961 of file parse.c.

◆ rb_warning3L

#define rb_warning3L (   l,
  fmt,
  a,
  b,
 
)    WARNING_CALL(WARNING_ARGS_L(l, fmt, 4), (a), (b), (c))

Definition at line 971 of file parse.c.

◆ rb_warning4

#define rb_warning4 (   fmt,
  a,
  b,
  c,
 
)    WARNING_CALL(WARNING_ARGS(fmt, 5), (a), (b), (c), (d))

Definition at line 962 of file parse.c.

◆ rb_warning4L

#define rb_warning4L (   l,
  fmt,
  a,
  b,
  c,
 
)    WARNING_CALL(WARNING_ARGS_L(l, fmt, 5), (a), (b), (c), (d))

Definition at line 972 of file parse.c.

◆ RE_OPTION_ARG_ENCODING_NONE

#define RE_OPTION_ARG_ENCODING_NONE   32

Definition at line 710 of file parse.c.

◆ RE_OPTION_ENCODING

#define RE_OPTION_ENCODING (   e)    (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)

Definition at line 706 of file parse.c.

◆ RE_OPTION_ENCODING_IDX

#define RE_OPTION_ENCODING_IDX (   o)    (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)

Definition at line 707 of file parse.c.

◆ RE_OPTION_ENCODING_NONE

#define RE_OPTION_ENCODING_NONE (   o)    ((o)&RE_OPTION_ARG_ENCODING_NONE)

Definition at line 708 of file parse.c.

◆ RE_OPTION_ENCODING_SHIFT

#define RE_OPTION_ENCODING_SHIFT   8

Definition at line 705 of file parse.c.

◆ RE_OPTION_MASK

#define RE_OPTION_MASK   0xff

Definition at line 709 of file parse.c.

◆ RE_OPTION_ONCE

#define RE_OPTION_ONCE   (1<<16)

Definition at line 704 of file parse.c.

◆ RUBY_DTRACE_PARSE_HOOK

#define RUBY_DTRACE_PARSE_HOOK (   name)
Value:
if (RUBY_DTRACE_PARSE_##name##_ENABLED()) { \
RUBY_DTRACE_PARSE_##name(p->ruby_sourcefile, p->ruby_sourceline); \
}
const char * name
Definition: nkf.c:208

◆ RUBY_INIT_YYLLOC

#define RUBY_INIT_YYLLOC ( )
Value:
{ \
{p->ruby_sourceline, (int)(p->lex.ptok - p->lex.pbeg)}, \
{p->ruby_sourceline, (int)(p->lex.pcur - p->lex.pbeg)}, \
}
__inline__ int

Definition at line 132 of file parse.c.

◆ RUBY_SET_YYLLOC

#define RUBY_SET_YYLLOC (   Current)     rb_parser_set_location(p, &(Current))

Definition at line 130 of file parse.c.

◆ RUBY_SET_YYLLOC_FROM_STRTERM_HEREDOC

#define RUBY_SET_YYLLOC_FROM_STRTERM_HEREDOC (   Current)     rb_parser_set_location_from_strterm_heredoc(p, &p->lex.strterm->u.heredoc, &(Current))

Definition at line 126 of file parse.c.

◆ RUBY_SET_YYLLOC_OF_NONE

#define RUBY_SET_YYLLOC_OF_NONE (   Current)     rb_parser_set_location_of_none(p, &(Current))

Definition at line 128 of file parse.c.

◆ SET_LEX_STATE

#define SET_LEX_STATE (   ls)
Value:
(p->lex.state = \
(p->debug ? \
rb_parser_trace_lex_state(p, p->lex.state, (ls), __LINE__) : \
(enum lex_state_e)(ls)))
lex_state_e
Definition: ripper.c:155

Definition at line 181 of file parse.c.

◆ set_yylval_id

#define set_yylval_id (   x)    (yylval.id = (x))

Definition at line 13063 of file parse.c.

◆ set_yylval_literal

#define set_yylval_literal (   x)
Value:
do { \
set_yylval_node(NEW_LIT(x, &_cur_loc)); \
RB_OBJ_WRITTEN(p->ast, Qnil, x); \
} while(0)
#define Qnil
#define NEW_LIT(l, loc)

Definition at line 13057 of file parse.c.

◆ set_yylval_name

#define set_yylval_name (   x)    (yylval.id = (x))

Definition at line 13064 of file parse.c.

◆ set_yylval_node

#define set_yylval_node (   x)
Value:
{ \
YYLTYPE _cur_loc; \
rb_parser_set_location(p, &_cur_loc); \
yylval.node = (x); \
}

Definition at line 13047 of file parse.c.

◆ set_yylval_noname

#define set_yylval_noname ( )    set_yylval_id(keyword_nil)

Definition at line 13082 of file parse.c.

◆ set_yylval_num

#define set_yylval_num (   x)    (yylval.num = (x))

Definition at line 13062 of file parse.c.

◆ set_yylval_str

#define set_yylval_str (   x)
Value:
do { \
set_yylval_node(NEW_STR(x, &_cur_loc)); \
RB_OBJ_WRITTEN(p->ast, Qnil, x); \
} while(0)
#define NEW_STR(s, loc)

Definition at line 13052 of file parse.c.

◆ SHOW_BITSTACK

#define SHOW_BITSTACK (   stack,
  name 
)    (p->debug ? rb_parser_show_bitstack(p, stack, name, __LINE__) : (void)0)

Definition at line 191 of file parse.c.

◆ SPECIAL_PUNCT

#define SPECIAL_PUNCT (   idx)
Value:
( \
BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
BIT('0', idx))
#define BIT(c, idx)
Definition: parse.c:14582

Definition at line 14583 of file parse.c.

◆ str_copy

#define str_copy (   _s,
  _p,
  _n 
)
Value:
((_s) \
? (void)(rb_str_resize((_s), (_n)), \
MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
: (void)((_s) = STR_NEW((_p), (_n))))
#define STR_NEW(ptr, len)
Definition: parse.c:381
VALUE rb_str_resize(VALUE, long)
Definition: string.c:2709
#define RSTRING_PTR(str)

◆ STR_FUNC_ESCAPE

#define STR_FUNC_ESCAPE   0x01

Definition at line 13745 of file parse.c.

◆ STR_FUNC_EXPAND

#define STR_FUNC_EXPAND   0x02

Definition at line 13746 of file parse.c.

◆ STR_FUNC_INDENT

#define STR_FUNC_INDENT   0x20

Definition at line 13750 of file parse.c.

◆ STR_FUNC_LABEL

#define STR_FUNC_LABEL   0x40

Definition at line 13751 of file parse.c.

◆ STR_FUNC_LIST

#define STR_FUNC_LIST   0x4000

Definition at line 13752 of file parse.c.

◆ STR_FUNC_QWORDS

#define STR_FUNC_QWORDS   0x08

Definition at line 13748 of file parse.c.

◆ STR_FUNC_REGEXP

#define STR_FUNC_REGEXP   0x04

Definition at line 13747 of file parse.c.

◆ STR_FUNC_SYMBOL

#define STR_FUNC_SYMBOL   0x10

Definition at line 13749 of file parse.c.

◆ STR_FUNC_TERM

#define STR_FUNC_TERM   0x8000

Definition at line 13753 of file parse.c.

◆ STR_NEW

#define STR_NEW (   ptr,
  len 
)    rb_enc_str_new((ptr),(len),p->enc)

Definition at line 381 of file parse.c.

◆ STR_NEW0

#define STR_NEW0 ( )    rb_enc_str_new(0,0,p->enc)

Definition at line 382 of file parse.c.

◆ STR_NEW2

#define STR_NEW2 (   ptr)    rb_enc_str_new((ptr),strlen(ptr),p->enc)

Definition at line 383 of file parse.c.

◆ STR_NEW3

#define STR_NEW3 (   ptr,
  len,
  e,
  func 
)    parser_str_new((ptr),(len),(e),(func),p->enc)

Definition at line 384 of file parse.c.

◆ STRTERM_HEREDOC

#define STRTERM_HEREDOC   IMEMO_FL_USER0

Definition at line 756 of file parse.c.

◆ subnodes

#define subnodes (   n1,
  n2 
)
Value:
((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
(!node->n2) ? (body = &node->n1, 1) : \
(reduce_nodes(p, &node->n1), body = &node->n2, 1))

◆ SWITCH_BY_COND_TYPE

#define SWITCH_BY_COND_TYPE (   t,
  w,
  arg 
)
Value:
switch (t) { \
case COND_IN_OP: break; \
case COND_IN_COND: rb_##w##0(arg "literal in condition"); break; \
case COND_IN_FF: rb_##w##0(arg "literal in flip-flop"); break; \
}
@ COND_IN_COND
Definition: parse.c:18622
@ COND_IN_OP
Definition: parse.c:18621
@ COND_IN_FF
Definition: parse.c:18623

Definition at line 18626 of file parse.c.

◆ TAB_WIDTH

#define TAB_WIDTH   8

Definition at line 99 of file parse.c.

◆ tok

#define tok (   p)    (p)->tokenbuf

Definition at line 13894 of file parse.c.

◆ TOK_INTERN

#define TOK_INTERN ( )    intern_cstr(tok(p), toklen(p), p->enc)

Definition at line 385 of file parse.c.

◆ tokcopy

#define tokcopy (   p,
  n 
)    memcpy(tokspace(p, n), (p)->lex.pcur - (n), (n))

Definition at line 13964 of file parse.c.

◆ TOKEN2ID

#define TOKEN2ID (   tok)
Value:
( \
tTOKEN_LOCAL_BEGIN<(tok)&&(tok)<tTOKEN_LOCAL_END ? TOKEN2LOCALID(tok) : \
((tok) / ((tok)<tPRESERVED_ID_END && ((tok)>=128 || rb_ispunct(tok)))))
#define tok(p)
Definition: parse.c:13894
#define TOKEN2CLASSID(tok)
@ tTOKEN_ATTRSET_BEGIN
@ tTOKEN_INSTANCE_BEGIN
#define TOKEN2CONSTID(tok)
#define TOKEN2LOCALID(tok)
#define TOKEN2INSTANCEID(tok)
#define TOKEN2ATTRSETID(tok)
#define TOKEN2GLOBALID(tok)

Definition at line 781 of file parse.c.

◆ TOKEN2VAL

#define TOKEN2VAL (   t)    ID2VAL(t)

Definition at line 939 of file parse.c.

◆ token_column

#define token_column   ((int)(p->lex.ptok - p->lex.pbeg))

Definition at line 429 of file parse.c.

◆ token_flush

#define token_flush (   ptr)    ((ptr)->lex.ptok = (ptr)->lex.pcur)

Definition at line 421 of file parse.c.

◆ tokfix

#define tokfix (   p)    ((p)->tokenbuf[(p)->tokidx]='\0')

Definition at line 13893 of file parse.c.

◆ toklen

#define toklen (   p)    (p)->tokidx

Definition at line 13895 of file parse.c.

◆ unterminated_literal

#define unterminated_literal (   mesg)    yyerror0(mesg)

◆ value_expr

#define value_expr (   node)    value_expr_gen(p, (node) = remove_begin(node))

Definition at line 503 of file parse.c.

◆ vtable_add

#define vtable_add (   tbl,
  id 
)    vtable_add_gen(p, __LINE__, #tbl, tbl, id)

Definition at line 13476 of file parse.c.

◆ vtable_alloc

#define vtable_alloc (   prev)    vtable_alloc_gen(p, __LINE__, prev)

Definition at line 13436 of file parse.c.

◆ vtable_free

#define vtable_free (   tbl)    vtable_free_gen(p, __LINE__, #tbl, tbl)

Definition at line 13454 of file parse.c.

◆ vtable_pop

#define vtable_pop (   tbl,
  n 
)    vtable_pop_gen(p, __LINE__, #tbl, tbl, n)

Definition at line 13493 of file parse.c.

◆ WARN_ARGS

#define WARN_ARGS (   fmt,
  n 
)    WARN_ARGS_L(p->ruby_sourceline,fmt,n)

Definition at line 1004 of file parse.c.

◆ WARN_ARGS_L

#define WARN_ARGS_L (   l,
  fmt,
  n 
)    p->ruby_sourcefile, (l), (fmt)

Definition at line 1005 of file parse.c.

◆ warn_balanced

#define warn_balanced (   tok,
  op,
  syn 
)
Value:
((void) \
(!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN) && \
space_seen && !ISSPACE(c) && \
(ambiguous_operator(tok, op, syn), 0)), \
(enum yytokentype)(tok))
#define IS_lex_state_for(x, ls)
Definition: parse.c:176
#define ambiguous_operator(tok, op, syn)
Definition: parse.c:15641
yytokentype
Definition: parse.h:52
#define ISSPACE(c)

Definition at line 15648 of file parse.c.

◆ WARN_CALL

#define WARN_CALL   rb_compile_warn

Definition at line 1006 of file parse.c.

◆ WARN_EOL

#define WARN_EOL (   tok)
Value:
(looking_at_eol_p(p) ? \
(void)rb_warning0("`" tok "' at the end of line without an expression") : \
(void)0)
#define rb_warning0(fmt)
Definition: parse.c:958

Definition at line 1019 of file parse.c.

◆ WARN_I

#define WARN_I (   i)    i

Definition at line 1000 of file parse.c.

◆ WARN_ID

#define WARN_ID (   i)    rb_id2name(i)

Definition at line 1001 of file parse.c.

◆ WARN_IVAL

#define WARN_IVAL (   i)    NUM2INT(i)

Definition at line 1002 of file parse.c.

◆ WARN_LOCATION

#define WARN_LOCATION (   type)
Value:
do { \
if (p->warn_location) { \
int line; \
VALUE file = rb_source_location(&line); \
rb_warn3(type" in eval may not return location in binding;" \
" use Binding#source_location instead\n" \
"%"PRIsWARN":%d: warning: in `%"PRIsWARN"'", \
file, WARN_I(line), rb_id2str(rb_frame_this_func())); \
} \
} while (0)
ID rb_frame_this_func(void)
The original name of the current method.
Definition: eval.c:1183
VALUE type(ANYARGS)
ANYARGS-ed function type.
Definition: cxxanyargs.hpp:39
#define PRIsWARN
Definition: parse.c:1003
#define WARN_I(i)
Definition: parse.c:1000
VALUE rb_source_location(int *pline)
Definition: vm.c:1360
#define rb_id2str(id)
Definition: vm_backtrace.c:30

Definition at line 17517 of file parse.c.

◆ WARN_PAST_SCOPE

#define WARN_PAST_SCOPE   0

Definition at line 96 of file parse.c.

◆ WARN_S

#define WARN_S (   s)    s

Definition at line 999 of file parse.c.

◆ WARN_S_L

#define WARN_S_L (   s,
 
)    s

Definition at line 998 of file parse.c.

◆ WARN_SPACE_CHAR

#define WARN_SPACE_CHAR (   c,
  prefix 
)     rb_warn1("invalid character syntax; use "prefix"\\%c", WARN_I(c2))

Definition at line 13993 of file parse.c.

◆ WARNING_ARGS

#define WARNING_ARGS (   fmt,
  n 
)    WARN_ARGS(fmt,n)

Definition at line 1007 of file parse.c.

◆ WARNING_ARGS_L

#define WARNING_ARGS_L (   l,
  fmt,
  n 
)    WARN_ARGS_L(l,fmt,n)

Definition at line 1008 of file parse.c.

◆ WARNING_CALL

#define WARNING_CALL   rb_compile_warning

Definition at line 1009 of file parse.c.

◆ was_bol

#define was_bol (   p)    ((p)->lex.pcur == (p)->lex.pbeg + 1)

Definition at line 13891 of file parse.c.

◆ YY_

#define YY_ (   Msgid)    Msgid

Definition at line 1790 of file parse.c.

◆ YY_ACCESSING_SYMBOL

#define YY_ACCESSING_SYMBOL (   State)    YY_CAST (yysymbol_kind_t, yystos[State])

Accessing symbol of state STATE.


Definition at line 2140 of file parse.c.

◆ YY_ASSERT

#define YY_ASSERT (   E)    ((void) (0 && (E)))

Definition at line 1856 of file parse.c.

◆ YY_ATTRIBUTE_PURE

#define YY_ATTRIBUTE_PURE

Definition at line 1799 of file parse.c.

◆ YY_ATTRIBUTE_UNUSED

#define YY_ATTRIBUTE_UNUSED

Definition at line 1807 of file parse.c.

◆ YY_CAST

#define YY_CAST (   Type,
  Val 
)    ((Type) (Val))

Definition at line 1032 of file parse.c.

◆ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

Definition at line 1836 of file parse.c.

◆ YY_IGNORE_MAYBE_UNINITIALIZED_END

#define YY_IGNORE_MAYBE_UNINITIALIZED_END

Definition at line 1837 of file parse.c.

◆ YY_IGNORE_USELESS_CAST_BEGIN

#define YY_IGNORE_USELESS_CAST_BEGIN

Definition at line 1851 of file parse.c.

◆ YY_IGNORE_USELESS_CAST_END

#define YY_IGNORE_USELESS_CAST_END

Definition at line 1852 of file parse.c.

◆ YY_INITIAL_VALUE

#define YY_INITIAL_VALUE (   Value)    Value

Definition at line 1833 of file parse.c.

◆ YY_LOCATION_PRINT

#define YY_LOCATION_PRINT (   File,
  loc 
)
Value:
rb_parser_printf(p, "%d.%d-%d.%d", \
(loc).beg_pos.lineno, (loc).beg_pos.column,\
(loc).end_pos.lineno, (loc).end_pos.column)
void rb_parser_printf(struct parser_params *p, const char *fmt,...)
Definition: parse.c:20192

Definition at line 108 of file parse.c.

◆ YY_NULLPTR

#define YY_NULLPTR   ((void*)0)

Definition at line 1044 of file parse.c.

◆ YY_REDUCE_PRINT

#define YY_REDUCE_PRINT (   Rule)
Value:
do { \
if (yydebug) \
yy_reduce_print (yyssp, yyvsp, yylsp, Rule, p); \
} while (0)
#define yydebug
Definition: parse.c:101

Definition at line 6094 of file parse.c.

◆ YY_REINTERPRET_CAST

#define YY_REINTERPRET_CAST (   Type,
  Val 
)    ((Type) (Val))

Definition at line 1033 of file parse.c.

◆ yy_stack_print

#define yy_stack_print (   b,
 
)    ruby_parser_yy_stack_print(b, t, p)

◆ YY_STACK_PRINT

#define YY_STACK_PRINT (   Bottom,
  Top 
)
Value:
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (0)

Definition at line 6062 of file parse.c.

◆ YY_SYMBOL_PRINT

#define YY_SYMBOL_PRINT (   Title,
  Kind,
  Value,
  Location 
)
Value:
do { \
if (yydebug) \
{ \
YYFPRINTF (p, "%s ", Title); \
yy_symbol_print (stderr, \
Kind, Value, Location, p); \
YYFPRINTF (p, "\n"); \
} \
} while (0)
#define stderr

Definition at line 5799 of file parse.c.

◆ YY_USE

#define YY_USE (   E)    ((void) (E))

Definition at line 1813 of file parse.c.

◆ YY_YY_Y_TAB_H_INCLUDED

#define YY_YY_Y_TAB_H_INCLUDED

Definition at line 1051 of file parse.c.

◆ YYABORT

#define YYABORT   goto yyabortlab

Definition at line 5670 of file parse.c.

◆ YYACCEPT

#define YYACCEPT   goto yyacceptlab

Definition at line 5669 of file parse.c.

◆ YYBACKUP

#define YYBACKUP (   Token,
  Value 
)
Value:
if (yychar == YYEMPTY) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (&yylloc, p, YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
#define YY_(Msgid)
Definition: parse.c:1790
@ YYEMPTY
Definition: parse.h:53
if((__builtin_expect(!!(!me), 0)))

Definition at line 5677 of file parse.c.

◆ YYBISON

#define YYBISON   30802

Definition at line 49 of file parse.c.

◆ YYBISON_VERSION

#define YYBISON_VERSION   "3.8.2"

Definition at line 52 of file parse.c.

◆ YYCALLOC

#define YYCALLOC (   nelem,
  size 
)    rb_parser_calloc(p, (nelem), (size))

Definition at line 105 of file parse.c.

◆ YYCASE_

#define YYCASE_ (   N,
  S 
)
Value:
case N: \
yyformat = S; \
break
#define S(s)
#define N
Definition: lgamma_r.c:20

◆ yyclearin

#define yyclearin   (yychar = YYEMPTY)

Definition at line 5667 of file parse.c.

◆ YYCOPY

#define YYCOPY (   Dst,
  Src,
  Count 
)
Value:
do \
{ \
YYPTRDIFF_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (0)

Definition at line 1976 of file parse.c.

◆ YYCOPY_NEEDED

#define YYCOPY_NEEDED   1

Definition at line 1948 of file parse.c.

◆ YYDEBUG

#define YYDEBUG   1

Definition at line 76 of file parse.c.

◆ yydebug

#define yydebug   (p->debug) /* disable the global variable definition */

Definition at line 101 of file parse.c.

◆ YYDPRINTF

#define YYDPRINTF (   Args)
Value:
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (0)

Definition at line 5733 of file parse.c.

◆ YYERRCODE

#define YYERRCODE   YYUNDEF

Definition at line 5696 of file parse.c.

◆ yyerrok

#define yyerrok   (yyerrstatus = 0)

Definition at line 5666 of file parse.c.

◆ yyerror

#define yyerror (   yylloc,
  p,
  msg 
)    parser_yyerror(p, yylloc, msg)

Definition at line 420 of file parse.c.

◆ YYERROR

#define YYERROR   goto yyerrorlab

Definition at line 5671 of file parse.c.

◆ yyerror0

#define yyerror0 (   msg)    parser_yyerror(p, NULL, (msg))

Definition at line 418 of file parse.c.

◆ yyerror1

#define yyerror1 (   loc,
  msg 
)    parser_yyerror(p, (loc), (msg))

Definition at line 419 of file parse.c.

◆ YYERROR_VERBOSE

#define YYERROR_VERBOSE   1

Definition at line 77 of file parse.c.

◆ YYFINAL

#define YYFINAL   3

Definition at line 1989 of file parse.c.

◆ YYFPRINTF

#define YYFPRINTF   rb_parser_printf

Definition at line 107 of file parse.c.

◆ YYFREE

#define YYFREE (   ptr)    rb_parser_free(p, (ptr))

Definition at line 106 of file parse.c.

◆ YYINITDEPTH

#define YYINITDEPTH   200

Definition at line 6115 of file parse.c.

◆ YYLAST

#define YYLAST   13883

Definition at line 1991 of file parse.c.

◆ YYLLOC_DEFAULT

#define YYLLOC_DEFAULT (   Current,
  Rhs,
  N 
)
Value:
if (N) \
{ \
(Current).beg_pos = YYRHSLOC(Rhs, 1).beg_pos; \
(Current).end_pos = YYRHSLOC(Rhs, N).end_pos; \
} \
else \
{ \
(Current).beg_pos = YYRHSLOC(Rhs, 0).end_pos; \
(Current).end_pos = YYRHSLOC(Rhs, 0).end_pos; \
} \
while (0)
#define YYRHSLOC(Rhs, K)
Definition: parse.c:5722

Definition at line 112 of file parse.c.

◆ YYLOCATION_PRINT

#define YYLOCATION_PRINT (   File,
  Loc 
)    YY_LOCATION_PRINT(File, *(Loc))

Definition at line 5750 of file parse.c.

◆ YYLTYPE

Definition at line 79 of file parse.c.

◆ YYLTYPE_IS_DECLARED

#define YYLTYPE_IS_DECLARED   1

Definition at line 80 of file parse.c.

◆ yylval

#define yylval   (*p->lval)

Definition at line 13038 of file parse.c.

◆ yylval_id

#define yylval_id ( )    (yylval.id)

Definition at line 13065 of file parse.c.

◆ YYMALLOC

#define YYMALLOC (   size)    rb_parser_malloc(p, (size))

Definition at line 103 of file parse.c.

◆ YYMAXDEPTH

#define YYMAXDEPTH   10000

Definition at line 6126 of file parse.c.

◆ YYMAXUTOK

#define YYMAXUTOK   353

Definition at line 2003 of file parse.c.

◆ YYNNTS

#define YYNNTS   266

Definition at line 1996 of file parse.c.

◆ YYNOMEM

#define YYNOMEM   goto yyexhaustedlab

Definition at line 5672 of file parse.c.

◆ YYNRULES

#define YYNRULES   761

Definition at line 1998 of file parse.c.

◆ YYNSTATES

#define YYNSTATES   1251

Definition at line 2000 of file parse.c.

◆ YYNTOKENS

#define YYNTOKENS   154

Definition at line 1994 of file parse.c.

◆ YYPACT_NINF

#define YYPACT_NINF   (-1040)

Definition at line 2239 of file parse.c.

◆ yypact_value_is_default

#define yypact_value_is_default (   Yyn)     ((Yyn) == YYPACT_NINF)

Definition at line 2241 of file parse.c.

◆ yyparse

#define yyparse   ruby_yyparse

Definition at line 487 of file parse.c.

◆ YYPOPSTACK

#define YYPOPSTACK (   N)    (yyvsp -= (N), yyssp -= (N), yylsp -= (N))

◆ YYPTRDIFF_MAXIMUM

#define YYPTRDIFF_MAXIMUM   LONG_MAX

Definition at line 1750 of file parse.c.

◆ YYPTRDIFF_T

#define YYPTRDIFF_T   long

Definition at line 1749 of file parse.c.

◆ YYPULL

#define YYPULL   1

Definition at line 64 of file parse.c.

◆ YYPURE

#define YYPURE   1

Definition at line 58 of file parse.c.

◆ YYPUSH

#define YYPUSH   0

Definition at line 61 of file parse.c.

◆ YYREALLOC

#define YYREALLOC (   ptr,
  size 
)    rb_parser_realloc(p, (ptr), (size))

Definition at line 104 of file parse.c.

◆ YYRECOVERING

#define YYRECOVERING ( )    (!!yyerrstatus)

Definition at line 5675 of file parse.c.

◆ YYRHSLOC

#define YYRHSLOC (   Rhs,
 
)    ((Rhs)[K])

Definition at line 5722 of file parse.c.

◆ YYSIZE_MAXIMUM

#define YYSIZE_MAXIMUM
Value:
: YY_CAST (YYSIZE_T, -1)))
#define YYPTRDIFF_MAXIMUM
Definition: parse.c:1750
#define YY_CAST(Type, Val)
Definition: parse.c:1032
#define YYSIZE_T
Definition: parse.c:1763
#define YYPTRDIFF_T
Definition: parse.c:1749

Definition at line 1767 of file parse.c.

◆ YYSIZE_T

#define YYSIZE_T   unsigned

Definition at line 1763 of file parse.c.

◆ YYSIZEOF

#define YYSIZEOF (   X)    YY_CAST (YYPTRDIFF_T, sizeof (X))

Definition at line 1773 of file parse.c.

◆ YYSKELETON_NAME

#define YYSKELETON_NAME   "yacc.c"

Definition at line 55 of file parse.c.

◆ YYSTACK_ALLOC

#define YYSTACK_ALLOC   YYMALLOC

Definition at line 1897 of file parse.c.

◆ YYSTACK_ALLOC_MAXIMUM

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 1900 of file parse.c.

◆ YYSTACK_BYTES

#define YYSTACK_BYTES (   N)
Value:
#define YYSIZEOF(X)
Definition: parse.c:1773
#define YYSTACK_GAP_MAXIMUM
Definition: parse.c:1939
yytype_int16 yy_state_t
Definition: ripper.c:1774
Definition: parse.h:204
Definition: parse.h:183

Definition at line 1943 of file parse.c.

◆ YYSTACK_FREE

#define YYSTACK_FREE   YYFREE

Definition at line 1898 of file parse.c.

◆ YYSTACK_GAP_MAXIMUM

#define YYSTACK_GAP_MAXIMUM   (YYSIZEOF (union yyalloc) - 1)

Definition at line 1939 of file parse.c.

◆ YYSTACK_RELOCATE

#define YYSTACK_RELOCATE (   Stack_alloc,
  Stack 
)
Value:
do \
{ \
YYPTRDIFF_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / YYSIZEOF (*yyptr); \
} \
while (0)

Definition at line 1955 of file parse.c.

◆ YYSTACK_USE_ALLOCA

#define YYSTACK_USE_ALLOCA   0

Definition at line 78 of file parse.c.

◆ YYTABLE_NINF

#define YYTABLE_NINF   (-762)

Definition at line 2244 of file parse.c.

◆ yytable_value_is_error

#define yytable_value_is_error (   Yyn)     ((Yyn) == YYTABLE_NINF)

Definition at line 2246 of file parse.c.

◆ yytnamerr

#define yytnamerr (   yyres,
  yystr 
)    (YYSIZE_T)rb_yytnamerr(p, yyres, yystr)

Definition at line 778 of file parse.c.

◆ YYTRANSLATE

#define YYTRANSLATE (   YYX)
Value:
(0 <= (YYX) && (YYX) <= YYMAXUTOK \
? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
@ YYSYMBOL_YYUNDEF
Definition: parse.c:1243
#define YYMAXUTOK
Definition: parse.c:2003
yysymbol_kind_t
Definition: ripper.c:1236

Definition at line 2008 of file parse.c.

Typedef Documentation

◆ rb_magic_comment_length_t

typedef long(* rb_magic_comment_length_t) (struct parser_params *p, const char *name, long len)

Definition at line 15352 of file parse.c.

◆ rb_magic_comment_setter_t

typedef void(* rb_magic_comment_setter_t) (struct parser_params *p, const char *name, const char *val)

Definition at line 15353 of file parse.c.

◆ rb_strterm_heredoc_t

Definition at line 647 of file parse.c.

◆ rb_strterm_literal_t

◆ rb_strterm_t

Definition at line 263 of file parse.c.

◆ stack_type

typedef VALUE stack_type

Definition at line 187 of file parse.c.

◆ token_info

typedef struct token_info token_info

◆ yy_state_fast_t

Definition at line 1780 of file parse.c.

◆ yy_state_t

Definition at line 1777 of file parse.c.

◆ yysymbol_kind_t

Definition at line 1662 of file parse.c.

◆ yytype_int16

Definition at line 1701 of file parse.c.

◆ yytype_int8

Definition at line 1693 of file parse.c.

◆ yytype_uint16

Definition at line 1733 of file parse.c.

◆ yytype_uint8

Definition at line 1722 of file parse.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ORDINAL_PARAM 
NO_PARAM 
NUMPARAM_MAX 

Definition at line 233 of file parse.c.

◆ anonymous enum

anonymous enum
Enumerator
YYENOMEM 

Definition at line 5664 of file parse.c.

◆ cond_type

enum cond_type
Enumerator
COND_IN_OP 
COND_IN_COND 
COND_IN_FF 
COND_IN_OP 
COND_IN_COND 
COND_IN_FF 

Definition at line 18620 of file parse.c.

◆ lex_state_bits

Enumerator
EXPR_BEG_bit 
EXPR_END_bit 
EXPR_ENDARG_bit 
EXPR_ENDFN_bit 
EXPR_ARG_bit 
EXPR_CMDARG_bit 
EXPR_MID_bit 
EXPR_FNAME_bit 
EXPR_DOT_bit 
EXPR_CLASS_bit 
EXPR_LABEL_bit 
EXPR_LABELED_bit 
EXPR_FITEM_bit 
EXPR_MAX_STATE 
EXPR_BEG_bit 
EXPR_END_bit 
EXPR_ENDARG_bit 
EXPR_ENDFN_bit 
EXPR_ARG_bit 
EXPR_CMDARG_bit 
EXPR_MID_bit 
EXPR_FNAME_bit 
EXPR_DOT_bit 
EXPR_CLASS_bit 
EXPR_LABEL_bit 
EXPR_LABELED_bit 
EXPR_FITEM_bit 
EXPR_MAX_STATE 

Definition at line 138 of file parse.c.

◆ lex_state_e

Enumerator
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
EXPR_VALUE 
EXPR_BEG_ANY 
EXPR_ARG_ANY 
EXPR_END_ANY 
EXPR_NONE 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
EXPR_VALUE 
EXPR_BEG_ANY 
EXPR_ARG_ANY 
EXPR_END_ANY 
EXPR_NONE 

Definition at line 155 of file parse.c.

◆ string_type

Enumerator
str_label 
str_squote 
str_dquote 
str_xquote 
str_regexp 
str_sword 
str_dword 
str_ssym 
str_dsym 
str_label 
str_squote 
str_dquote 
str_xquote 
str_regexp 
str_sword 
str_dword 
str_ssym 
str_dsym 

Definition at line 13755 of file parse.c.

◆ yysymbol_kind_t

Enumerator
YYSYMBOL_YYEMPTY 
YYSYMBOL_YYEOF 
YYSYMBOL_YYerror 
YYSYMBOL_YYUNDEF 
YYSYMBOL_keyword_class 
YYSYMBOL_keyword_module 
YYSYMBOL_keyword_def 
YYSYMBOL_keyword_undef 
YYSYMBOL_keyword_begin 
YYSYMBOL_keyword_rescue 
YYSYMBOL_keyword_ensure 
YYSYMBOL_keyword_end 
YYSYMBOL_keyword_if 
YYSYMBOL_keyword_unless 
YYSYMBOL_keyword_then 
YYSYMBOL_keyword_elsif 
YYSYMBOL_keyword_else 
YYSYMBOL_keyword_case 
YYSYMBOL_keyword_when 
YYSYMBOL_keyword_while 
YYSYMBOL_keyword_until 
YYSYMBOL_keyword_for 
YYSYMBOL_keyword_break 
YYSYMBOL_keyword_next 
YYSYMBOL_keyword_redo 
YYSYMBOL_keyword_retry 
YYSYMBOL_keyword_in 
YYSYMBOL_keyword_do 
YYSYMBOL_keyword_do_cond 
YYSYMBOL_keyword_do_block 
YYSYMBOL_keyword_do_LAMBDA 
YYSYMBOL_keyword_return 
YYSYMBOL_keyword_yield 
YYSYMBOL_keyword_super 
YYSYMBOL_keyword_self 
YYSYMBOL_keyword_nil 
YYSYMBOL_keyword_true 
YYSYMBOL_keyword_false 
YYSYMBOL_keyword_and 
YYSYMBOL_keyword_or 
YYSYMBOL_keyword_not 
YYSYMBOL_modifier_if 
YYSYMBOL_modifier_unless 
YYSYMBOL_modifier_while 
YYSYMBOL_modifier_until 
YYSYMBOL_modifier_rescue 
YYSYMBOL_keyword_alias 
YYSYMBOL_keyword_defined 
YYSYMBOL_keyword_BEGIN 
YYSYMBOL_keyword_END 
YYSYMBOL_keyword__LINE__ 
YYSYMBOL_keyword__FILE__ 
YYSYMBOL_keyword__ENCODING__ 
YYSYMBOL_tIDENTIFIER 
YYSYMBOL_tFID 
YYSYMBOL_tGVAR 
YYSYMBOL_tIVAR 
YYSYMBOL_tCONSTANT 
YYSYMBOL_tCVAR 
YYSYMBOL_tLABEL 
YYSYMBOL_tINTEGER 
YYSYMBOL_tFLOAT 
YYSYMBOL_tRATIONAL 
YYSYMBOL_tIMAGINARY 
YYSYMBOL_tCHAR 
YYSYMBOL_tNTH_REF 
YYSYMBOL_tBACK_REF 
YYSYMBOL_tSTRING_CONTENT 
YYSYMBOL_tREGEXP_END 
YYSYMBOL_68_ 
YYSYMBOL_69_backslash_ 
YYSYMBOL_tSP 
YYSYMBOL_71_escaped_horizontal_tab_ 
YYSYMBOL_72_escaped_form_feed_ 
YYSYMBOL_73_escaped_carriage_return_ 
YYSYMBOL_74_escaped_vertical_tab_ 
YYSYMBOL_tUPLUS 
YYSYMBOL_tUMINUS 
YYSYMBOL_tPOW 
YYSYMBOL_tCMP 
YYSYMBOL_tEQ 
YYSYMBOL_tEQQ 
YYSYMBOL_tNEQ 
YYSYMBOL_tGEQ 
YYSYMBOL_tLEQ 
YYSYMBOL_tANDOP 
YYSYMBOL_tOROP 
YYSYMBOL_tMATCH 
YYSYMBOL_tNMATCH 
YYSYMBOL_tDOT2 
YYSYMBOL_tDOT3 
YYSYMBOL_tBDOT2 
YYSYMBOL_tBDOT3 
YYSYMBOL_tAREF 
YYSYMBOL_tASET 
YYSYMBOL_tLSHFT 
YYSYMBOL_tRSHFT 
YYSYMBOL_tANDDOT 
YYSYMBOL_tCOLON2 
YYSYMBOL_tCOLON3 
YYSYMBOL_tOP_ASGN 
YYSYMBOL_tASSOC 
YYSYMBOL_tLPAREN 
YYSYMBOL_tLPAREN_ARG 
YYSYMBOL_tRPAREN 
YYSYMBOL_tLBRACK 
YYSYMBOL_tLBRACE 
YYSYMBOL_tLBRACE_ARG 
YYSYMBOL_tSTAR 
YYSYMBOL_tDSTAR 
YYSYMBOL_tAMPER 
YYSYMBOL_tLAMBDA 
YYSYMBOL_tSYMBEG 
YYSYMBOL_tSTRING_BEG 
YYSYMBOL_tXSTRING_BEG 
YYSYMBOL_tREGEXP_BEG 
YYSYMBOL_tWORDS_BEG 
YYSYMBOL_tQWORDS_BEG 
YYSYMBOL_tSYMBOLS_BEG 
YYSYMBOL_tQSYMBOLS_BEG 
YYSYMBOL_tSTRING_END 
YYSYMBOL_tSTRING_DEND 
YYSYMBOL_tSTRING_DBEG 
YYSYMBOL_tSTRING_DVAR 
YYSYMBOL_tLAMBEG 
YYSYMBOL_tLABEL_END 
YYSYMBOL_tLOWEST 
YYSYMBOL_126_ 
YYSYMBOL_127_ 
YYSYMBOL_128_ 
YYSYMBOL_129_ 
YYSYMBOL_130_ 
YYSYMBOL_131_ 
YYSYMBOL_132_ 
YYSYMBOL_133_ 
YYSYMBOL_134_ 
YYSYMBOL_135_ 
YYSYMBOL_136_ 
YYSYMBOL_137_ 
YYSYMBOL_138_ 
YYSYMBOL_tUMINUS_NUM 
YYSYMBOL_140_ 
YYSYMBOL_141_ 
YYSYMBOL_tLAST_TOKEN 
YYSYMBOL_143_ 
YYSYMBOL_144_ 
YYSYMBOL_145_ 
YYSYMBOL_146_ 
YYSYMBOL_147_ 
YYSYMBOL_148_ 
YYSYMBOL_149_ 
YYSYMBOL_150_ 
YYSYMBOL_151_ 
YYSYMBOL_152_ 
YYSYMBOL_153_n_ 
YYSYMBOL_YYACCEPT 
YYSYMBOL_program 
YYSYMBOL_156_1 
YYSYMBOL_top_compstmt 
YYSYMBOL_top_stmts 
YYSYMBOL_top_stmt 
YYSYMBOL_begin_block 
YYSYMBOL_bodystmt 
YYSYMBOL_162_2 
YYSYMBOL_compstmt 
YYSYMBOL_stmts 
YYSYMBOL_stmt_or_begin 
YYSYMBOL_166_3 
YYSYMBOL_stmt 
YYSYMBOL_168_4 
YYSYMBOL_command_asgn 
YYSYMBOL_command_rhs 
YYSYMBOL_expr 
YYSYMBOL_172_5 
YYSYMBOL_173_6 
YYSYMBOL_174_7 
YYSYMBOL_expr_value 
YYSYMBOL_expr_value_do 
YYSYMBOL_177_8 
YYSYMBOL_178_9 
YYSYMBOL_command_call 
YYSYMBOL_block_command 
YYSYMBOL_cmd_brace_block 
YYSYMBOL_fcall 
YYSYMBOL_command 
YYSYMBOL_mlhs 
YYSYMBOL_mlhs_inner 
YYSYMBOL_mlhs_basic 
YYSYMBOL_mlhs_item 
YYSYMBOL_mlhs_head 
YYSYMBOL_mlhs_post 
YYSYMBOL_mlhs_node 
YYSYMBOL_lhs 
YYSYMBOL_cname 
YYSYMBOL_cpath 
YYSYMBOL_fname 
YYSYMBOL_fitem 
YYSYMBOL_undef_list 
YYSYMBOL_197_10 
YYSYMBOL_op 
YYSYMBOL_reswords 
YYSYMBOL_arg 
YYSYMBOL_201_11 
YYSYMBOL_relop 
YYSYMBOL_rel_expr 
YYSYMBOL_arg_value 
YYSYMBOL_aref_args 
YYSYMBOL_arg_rhs 
YYSYMBOL_paren_args 
YYSYMBOL_opt_paren_args 
YYSYMBOL_opt_call_args 
YYSYMBOL_call_args 
YYSYMBOL_command_args 
YYSYMBOL_212_12 
YYSYMBOL_block_arg 
YYSYMBOL_opt_block_arg 
YYSYMBOL_args 
YYSYMBOL_mrhs_arg 
YYSYMBOL_mrhs 
YYSYMBOL_primary 
YYSYMBOL_219_13 
YYSYMBOL_220_14 
YYSYMBOL_221_15 
YYSYMBOL_222_16 
YYSYMBOL_223_17 
YYSYMBOL_224_18 
YYSYMBOL_225_19 
YYSYMBOL_226_20 
YYSYMBOL_227_21 
YYSYMBOL_228_22 
YYSYMBOL_229_23 
YYSYMBOL_230_24 
YYSYMBOL_231_25 
YYSYMBOL_232_26 
YYSYMBOL_primary_value 
YYSYMBOL_k_begin 
YYSYMBOL_k_if 
YYSYMBOL_k_unless 
YYSYMBOL_k_while 
YYSYMBOL_k_until 
YYSYMBOL_k_case 
YYSYMBOL_k_for 
YYSYMBOL_k_class 
YYSYMBOL_k_module 
YYSYMBOL_k_def 
YYSYMBOL_k_do 
YYSYMBOL_k_do_block 
YYSYMBOL_k_rescue 
YYSYMBOL_k_ensure 
YYSYMBOL_k_when 
YYSYMBOL_k_else 
YYSYMBOL_k_elsif 
YYSYMBOL_k_end 
YYSYMBOL_k_return 
YYSYMBOL_then 
YYSYMBOL_do 
YYSYMBOL_if_tail 
YYSYMBOL_opt_else 
YYSYMBOL_for_var 
YYSYMBOL_f_marg 
YYSYMBOL_f_marg_list 
YYSYMBOL_f_margs 
YYSYMBOL_f_rest_marg 
YYSYMBOL_block_args_tail 
YYSYMBOL_opt_block_args_tail 
YYSYMBOL_block_param 
YYSYMBOL_opt_block_param 
YYSYMBOL_block_param_def 
YYSYMBOL_opt_bv_decl 
YYSYMBOL_bv_decls 
YYSYMBOL_bvar 
YYSYMBOL_lambda 
YYSYMBOL_271_27 
YYSYMBOL_272_28 
YYSYMBOL_273_29 
YYSYMBOL_274_30 
YYSYMBOL_275_31 
YYSYMBOL_f_larglist 
YYSYMBOL_lambda_body 
YYSYMBOL_do_block 
YYSYMBOL_block_call 
YYSYMBOL_method_call 
YYSYMBOL_brace_block 
YYSYMBOL_brace_body 
YYSYMBOL_283_32 
YYSYMBOL_284_33 
YYSYMBOL_285_34 
YYSYMBOL_do_body 
YYSYMBOL_287_35 
YYSYMBOL_288_36 
YYSYMBOL_289_37 
YYSYMBOL_case_args 
YYSYMBOL_case_body 
YYSYMBOL_cases 
YYSYMBOL_p_case_body 
YYSYMBOL_294_38 
YYSYMBOL_295_39 
YYSYMBOL_296_40 
YYSYMBOL_297_41 
YYSYMBOL_298_42 
YYSYMBOL_299_43 
YYSYMBOL_p_cases 
YYSYMBOL_p_top_expr 
YYSYMBOL_p_top_expr_body 
YYSYMBOL_p_expr 
YYSYMBOL_p_as 
YYSYMBOL_p_alt 
YYSYMBOL_p_lparen 
YYSYMBOL_p_lbracket 
YYSYMBOL_p_expr_basic 
YYSYMBOL_309_44 
YYSYMBOL_310_45 
YYSYMBOL_311_46 
YYSYMBOL_p_args 
YYSYMBOL_p_args_head 
YYSYMBOL_p_args_tail 
YYSYMBOL_p_args_post 
YYSYMBOL_p_arg 
YYSYMBOL_p_kwargs 
YYSYMBOL_p_kwarg 
YYSYMBOL_p_kw 
YYSYMBOL_p_kw_label 
YYSYMBOL_p_kwrest 
YYSYMBOL_p_kwnorest 
YYSYMBOL_p_value 
YYSYMBOL_p_primitive 
YYSYMBOL_325_47 
YYSYMBOL_p_variable 
YYSYMBOL_p_var_ref 
YYSYMBOL_p_const 
YYSYMBOL_opt_rescue 
YYSYMBOL_exc_list 
YYSYMBOL_exc_var 
YYSYMBOL_opt_ensure 
YYSYMBOL_literal 
YYSYMBOL_strings 
YYSYMBOL_string 
YYSYMBOL_string1 
YYSYMBOL_xstring 
YYSYMBOL_regexp 
YYSYMBOL_words 
YYSYMBOL_word_list 
YYSYMBOL_word 
YYSYMBOL_symbols 
YYSYMBOL_symbol_list 
YYSYMBOL_qwords 
YYSYMBOL_qsymbols 
YYSYMBOL_qword_list 
YYSYMBOL_qsym_list 
YYSYMBOL_string_contents 
YYSYMBOL_xstring_contents 
YYSYMBOL_regexp_contents 
YYSYMBOL_string_content 
YYSYMBOL_352_48 
YYSYMBOL_353_49 
YYSYMBOL_354_50 
YYSYMBOL_355_51 
YYSYMBOL_356_52 
YYSYMBOL_357_53 
YYSYMBOL_string_dvar 
YYSYMBOL_symbol 
YYSYMBOL_ssym 
YYSYMBOL_sym 
YYSYMBOL_dsym 
YYSYMBOL_numeric 
YYSYMBOL_simple_numeric 
YYSYMBOL_user_variable 
YYSYMBOL_keyword_variable 
YYSYMBOL_var_ref 
YYSYMBOL_var_lhs 
YYSYMBOL_backref 
YYSYMBOL_superclass 
YYSYMBOL_371_54 
YYSYMBOL_f_arglist 
YYSYMBOL_373_55 
YYSYMBOL_args_tail 
YYSYMBOL_opt_args_tail 
YYSYMBOL_f_args 
YYSYMBOL_args_forward 
YYSYMBOL_f_bad_arg 
YYSYMBOL_f_norm_arg 
YYSYMBOL_f_arg_asgn 
YYSYMBOL_f_arg_item 
YYSYMBOL_f_arg 
YYSYMBOL_f_label 
YYSYMBOL_f_kw 
YYSYMBOL_f_block_kw 
YYSYMBOL_f_block_kwarg 
YYSYMBOL_f_kwarg 
YYSYMBOL_kwrest_mark 
YYSYMBOL_f_no_kwarg 
YYSYMBOL_f_kwrest 
YYSYMBOL_f_opt 
YYSYMBOL_f_block_opt 
YYSYMBOL_f_block_optarg 
YYSYMBOL_f_optarg 
YYSYMBOL_restarg_mark 
YYSYMBOL_f_rest_arg 
YYSYMBOL_blkarg_mark 
YYSYMBOL_f_block_arg 
YYSYMBOL_opt_f_block_arg 
YYSYMBOL_singleton 
YYSYMBOL_401_56 
YYSYMBOL_assoc_list 
YYSYMBOL_assocs 
YYSYMBOL_assoc 
YYSYMBOL_operation 
YYSYMBOL_operation2 
YYSYMBOL_operation3 
YYSYMBOL_dot_or_colon 
YYSYMBOL_call_op 
YYSYMBOL_call_op2 
YYSYMBOL_opt_terms 
YYSYMBOL_opt_nl 
YYSYMBOL_rparen 
YYSYMBOL_rbracket 
YYSYMBOL_rbrace 
YYSYMBOL_trailer 
YYSYMBOL_term 
YYSYMBOL_terms 
YYSYMBOL_none 
YYSYMBOL_YYEMPTY 
YYSYMBOL_YYEOF 
YYSYMBOL_YYerror 
YYSYMBOL_YYUNDEF 
YYSYMBOL_keyword_class 
YYSYMBOL_keyword_module 
YYSYMBOL_keyword_def 
YYSYMBOL_keyword_undef 
YYSYMBOL_keyword_begin 
YYSYMBOL_keyword_rescue 
YYSYMBOL_keyword_ensure 
YYSYMBOL_keyword_end 
YYSYMBOL_keyword_if 
YYSYMBOL_keyword_unless 
YYSYMBOL_keyword_then 
YYSYMBOL_keyword_elsif 
YYSYMBOL_keyword_else 
YYSYMBOL_keyword_case 
YYSYMBOL_keyword_when 
YYSYMBOL_keyword_while 
YYSYMBOL_keyword_until 
YYSYMBOL_keyword_for 
YYSYMBOL_keyword_break 
YYSYMBOL_keyword_next 
YYSYMBOL_keyword_redo 
YYSYMBOL_keyword_retry 
YYSYMBOL_keyword_in 
YYSYMBOL_keyword_do 
YYSYMBOL_keyword_do_cond 
YYSYMBOL_keyword_do_block 
YYSYMBOL_keyword_do_LAMBDA 
YYSYMBOL_keyword_return 
YYSYMBOL_keyword_yield 
YYSYMBOL_keyword_super 
YYSYMBOL_keyword_self 
YYSYMBOL_keyword_nil 
YYSYMBOL_keyword_true 
YYSYMBOL_keyword_false 
YYSYMBOL_keyword_and 
YYSYMBOL_keyword_or 
YYSYMBOL_keyword_not 
YYSYMBOL_modifier_if 
YYSYMBOL_modifier_unless 
YYSYMBOL_modifier_while 
YYSYMBOL_modifier_until 
YYSYMBOL_modifier_rescue 
YYSYMBOL_keyword_alias 
YYSYMBOL_keyword_defined 
YYSYMBOL_keyword_BEGIN 
YYSYMBOL_keyword_END 
YYSYMBOL_keyword__LINE__ 
YYSYMBOL_keyword__FILE__ 
YYSYMBOL_keyword__ENCODING__ 
YYSYMBOL_tIDENTIFIER 
YYSYMBOL_tFID 
YYSYMBOL_tGVAR 
YYSYMBOL_tIVAR 
YYSYMBOL_tCONSTANT 
YYSYMBOL_tCVAR 
YYSYMBOL_tLABEL 
YYSYMBOL_tINTEGER 
YYSYMBOL_tFLOAT 
YYSYMBOL_tRATIONAL 
YYSYMBOL_tIMAGINARY 
YYSYMBOL_tCHAR 
YYSYMBOL_tNTH_REF 
YYSYMBOL_tBACK_REF 
YYSYMBOL_tSTRING_CONTENT 
YYSYMBOL_tREGEXP_END 
YYSYMBOL_68_ 
YYSYMBOL_69_backslash_ 
YYSYMBOL_tSP 
YYSYMBOL_71_escaped_horizontal_tab_ 
YYSYMBOL_72_escaped_form_feed_ 
YYSYMBOL_73_escaped_carriage_return_ 
YYSYMBOL_74_escaped_vertical_tab_ 
YYSYMBOL_tUPLUS 
YYSYMBOL_tUMINUS 
YYSYMBOL_tPOW 
YYSYMBOL_tCMP 
YYSYMBOL_tEQ 
YYSYMBOL_tEQQ 
YYSYMBOL_tNEQ 
YYSYMBOL_tGEQ 
YYSYMBOL_tLEQ 
YYSYMBOL_tANDOP 
YYSYMBOL_tOROP 
YYSYMBOL_tMATCH 
YYSYMBOL_tNMATCH 
YYSYMBOL_tDOT2 
YYSYMBOL_tDOT3 
YYSYMBOL_tBDOT2 
YYSYMBOL_tBDOT3 
YYSYMBOL_tAREF 
YYSYMBOL_tASET 
YYSYMBOL_tLSHFT 
YYSYMBOL_tRSHFT 
YYSYMBOL_tANDDOT 
YYSYMBOL_tCOLON2 
YYSYMBOL_tCOLON3 
YYSYMBOL_tOP_ASGN 
YYSYMBOL_tASSOC 
YYSYMBOL_tLPAREN 
YYSYMBOL_tLPAREN_ARG 
YYSYMBOL_tRPAREN 
YYSYMBOL_tLBRACK 
YYSYMBOL_tLBRACE 
YYSYMBOL_tLBRACE_ARG 
YYSYMBOL_tSTAR 
YYSYMBOL_tDSTAR 
YYSYMBOL_tAMPER 
YYSYMBOL_tLAMBDA 
YYSYMBOL_tSYMBEG 
YYSYMBOL_tSTRING_BEG 
YYSYMBOL_tXSTRING_BEG 
YYSYMBOL_tREGEXP_BEG 
YYSYMBOL_tWORDS_BEG 
YYSYMBOL_tQWORDS_BEG 
YYSYMBOL_tSYMBOLS_BEG 
YYSYMBOL_tQSYMBOLS_BEG 
YYSYMBOL_tSTRING_END 
YYSYMBOL_tSTRING_DEND 
YYSYMBOL_tSTRING_DBEG 
YYSYMBOL_tSTRING_DVAR 
YYSYMBOL_tLAMBEG 
YYSYMBOL_tLABEL_END 
YYSYMBOL_tLOWEST 
YYSYMBOL_126_ 
YYSYMBOL_127_ 
YYSYMBOL_128_ 
YYSYMBOL_129_ 
YYSYMBOL_130_ 
YYSYMBOL_131_ 
YYSYMBOL_132_ 
YYSYMBOL_133_ 
YYSYMBOL_134_ 
YYSYMBOL_135_ 
YYSYMBOL_136_ 
YYSYMBOL_137_ 
YYSYMBOL_138_ 
YYSYMBOL_tUMINUS_NUM 
YYSYMBOL_140_ 
YYSYMBOL_141_ 
YYSYMBOL_tLAST_TOKEN 
YYSYMBOL_143_ 
YYSYMBOL_144_ 
YYSYMBOL_145_ 
YYSYMBOL_146_ 
YYSYMBOL_147_ 
YYSYMBOL_148_ 
YYSYMBOL_149_ 
YYSYMBOL_150_ 
YYSYMBOL_151_ 
YYSYMBOL_152_ 
YYSYMBOL_153_n_ 
YYSYMBOL_YYACCEPT 
YYSYMBOL_program 
YYSYMBOL_156_1 
YYSYMBOL_top_compstmt 
YYSYMBOL_top_stmts 
YYSYMBOL_top_stmt 
YYSYMBOL_begin_block 
YYSYMBOL_bodystmt 
YYSYMBOL_162_2 
YYSYMBOL_compstmt 
YYSYMBOL_stmts 
YYSYMBOL_stmt_or_begin 
YYSYMBOL_166_3 
YYSYMBOL_stmt 
YYSYMBOL_168_4 
YYSYMBOL_command_asgn 
YYSYMBOL_command_rhs 
YYSYMBOL_expr 
YYSYMBOL_172_5 
YYSYMBOL_173_6 
YYSYMBOL_174_7 
YYSYMBOL_expr_value 
YYSYMBOL_expr_value_do 
YYSYMBOL_177_8 
YYSYMBOL_178_9 
YYSYMBOL_command_call 
YYSYMBOL_block_command 
YYSYMBOL_cmd_brace_block 
YYSYMBOL_fcall 
YYSYMBOL_command 
YYSYMBOL_mlhs 
YYSYMBOL_mlhs_inner 
YYSYMBOL_mlhs_basic 
YYSYMBOL_mlhs_item 
YYSYMBOL_mlhs_head 
YYSYMBOL_mlhs_post 
YYSYMBOL_mlhs_node 
YYSYMBOL_lhs 
YYSYMBOL_cname 
YYSYMBOL_cpath 
YYSYMBOL_fname 
YYSYMBOL_fitem 
YYSYMBOL_undef_list 
YYSYMBOL_197_10 
YYSYMBOL_op 
YYSYMBOL_reswords 
YYSYMBOL_arg 
YYSYMBOL_201_11 
YYSYMBOL_relop 
YYSYMBOL_rel_expr 
YYSYMBOL_arg_value 
YYSYMBOL_aref_args 
YYSYMBOL_arg_rhs 
YYSYMBOL_paren_args 
YYSYMBOL_opt_paren_args 
YYSYMBOL_opt_call_args 
YYSYMBOL_call_args 
YYSYMBOL_command_args 
YYSYMBOL_212_12 
YYSYMBOL_block_arg 
YYSYMBOL_opt_block_arg 
YYSYMBOL_args 
YYSYMBOL_mrhs_arg 
YYSYMBOL_mrhs 
YYSYMBOL_primary 
YYSYMBOL_219_13 
YYSYMBOL_220_14 
YYSYMBOL_221_15 
YYSYMBOL_222_16 
YYSYMBOL_223_17 
YYSYMBOL_224_18 
YYSYMBOL_225_19 
YYSYMBOL_226_20 
YYSYMBOL_227_21 
YYSYMBOL_228_22 
YYSYMBOL_229_23 
YYSYMBOL_230_24 
YYSYMBOL_231_25 
YYSYMBOL_232_26 
YYSYMBOL_primary_value 
YYSYMBOL_k_begin 
YYSYMBOL_k_if 
YYSYMBOL_k_unless 
YYSYMBOL_k_while 
YYSYMBOL_k_until 
YYSYMBOL_k_case 
YYSYMBOL_k_for 
YYSYMBOL_k_class 
YYSYMBOL_k_module 
YYSYMBOL_k_def 
YYSYMBOL_k_do 
YYSYMBOL_k_do_block 
YYSYMBOL_k_rescue 
YYSYMBOL_k_ensure 
YYSYMBOL_k_when 
YYSYMBOL_k_else 
YYSYMBOL_k_elsif 
YYSYMBOL_k_end 
YYSYMBOL_k_return 
YYSYMBOL_then 
YYSYMBOL_do 
YYSYMBOL_if_tail 
YYSYMBOL_opt_else 
YYSYMBOL_for_var 
YYSYMBOL_f_marg 
YYSYMBOL_f_marg_list 
YYSYMBOL_f_margs 
YYSYMBOL_f_rest_marg 
YYSYMBOL_block_args_tail 
YYSYMBOL_opt_block_args_tail 
YYSYMBOL_block_param 
YYSYMBOL_opt_block_param 
YYSYMBOL_block_param_def 
YYSYMBOL_opt_bv_decl 
YYSYMBOL_bv_decls 
YYSYMBOL_bvar 
YYSYMBOL_lambda 
YYSYMBOL_271_27 
YYSYMBOL_272_28 
YYSYMBOL_273_29 
YYSYMBOL_274_30 
YYSYMBOL_275_31 
YYSYMBOL_f_larglist 
YYSYMBOL_lambda_body 
YYSYMBOL_do_block 
YYSYMBOL_block_call 
YYSYMBOL_method_call 
YYSYMBOL_brace_block 
YYSYMBOL_brace_body 
YYSYMBOL_283_32 
YYSYMBOL_284_33 
YYSYMBOL_285_34 
YYSYMBOL_do_body 
YYSYMBOL_287_35 
YYSYMBOL_288_36 
YYSYMBOL_289_37 
YYSYMBOL_case_args 
YYSYMBOL_case_body 
YYSYMBOL_cases 
YYSYMBOL_p_case_body 
YYSYMBOL_294_38 
YYSYMBOL_295_39 
YYSYMBOL_296_40 
YYSYMBOL_297_41 
YYSYMBOL_298_42 
YYSYMBOL_299_43 
YYSYMBOL_p_cases 
YYSYMBOL_p_top_expr 
YYSYMBOL_p_top_expr_body 
YYSYMBOL_p_expr 
YYSYMBOL_p_as 
YYSYMBOL_p_alt 
YYSYMBOL_p_lparen 
YYSYMBOL_p_lbracket 
YYSYMBOL_p_expr_basic 
YYSYMBOL_309_44 
YYSYMBOL_310_45 
YYSYMBOL_311_46 
YYSYMBOL_p_args 
YYSYMBOL_p_args_head 
YYSYMBOL_p_args_tail 
YYSYMBOL_p_args_post 
YYSYMBOL_p_arg 
YYSYMBOL_p_kwargs 
YYSYMBOL_p_kwarg 
YYSYMBOL_p_kw 
YYSYMBOL_p_kw_label 
YYSYMBOL_p_kwrest 
YYSYMBOL_p_kwnorest 
YYSYMBOL_p_value 
YYSYMBOL_p_primitive 
YYSYMBOL_325_47 
YYSYMBOL_p_variable 
YYSYMBOL_p_var_ref 
YYSYMBOL_p_const 
YYSYMBOL_opt_rescue 
YYSYMBOL_exc_list 
YYSYMBOL_exc_var 
YYSYMBOL_opt_ensure 
YYSYMBOL_literal 
YYSYMBOL_strings 
YYSYMBOL_string 
YYSYMBOL_string1 
YYSYMBOL_xstring 
YYSYMBOL_regexp 
YYSYMBOL_words 
YYSYMBOL_word_list 
YYSYMBOL_word 
YYSYMBOL_symbols 
YYSYMBOL_symbol_list 
YYSYMBOL_qwords 
YYSYMBOL_qsymbols 
YYSYMBOL_qword_list 
YYSYMBOL_qsym_list 
YYSYMBOL_string_contents 
YYSYMBOL_xstring_contents 
YYSYMBOL_regexp_contents 
YYSYMBOL_string_content 
YYSYMBOL_352_48 
YYSYMBOL_353_49 
YYSYMBOL_354_50 
YYSYMBOL_355_51 
YYSYMBOL_356_52 
YYSYMBOL_357_53 
YYSYMBOL_string_dvar 
YYSYMBOL_symbol 
YYSYMBOL_ssym 
YYSYMBOL_sym 
YYSYMBOL_dsym 
YYSYMBOL_numeric 
YYSYMBOL_simple_numeric 
YYSYMBOL_user_variable 
YYSYMBOL_keyword_variable 
YYSYMBOL_var_ref 
YYSYMBOL_var_lhs 
YYSYMBOL_backref 
YYSYMBOL_superclass 
YYSYMBOL_371_54 
YYSYMBOL_f_arglist 
YYSYMBOL_373_55 
YYSYMBOL_args_tail 
YYSYMBOL_opt_args_tail 
YYSYMBOL_f_args 
YYSYMBOL_args_forward 
YYSYMBOL_f_bad_arg 
YYSYMBOL_f_norm_arg 
YYSYMBOL_f_arg_asgn 
YYSYMBOL_f_arg_item 
YYSYMBOL_f_arg 
YYSYMBOL_f_label 
YYSYMBOL_f_kw 
YYSYMBOL_f_block_kw 
YYSYMBOL_f_block_kwarg 
YYSYMBOL_f_kwarg 
YYSYMBOL_kwrest_mark 
YYSYMBOL_f_no_kwarg 
YYSYMBOL_f_kwrest 
YYSYMBOL_f_opt 
YYSYMBOL_f_block_opt 
YYSYMBOL_f_block_optarg 
YYSYMBOL_f_optarg 
YYSYMBOL_restarg_mark 
YYSYMBOL_f_rest_arg 
YYSYMBOL_blkarg_mark 
YYSYMBOL_f_block_arg 
YYSYMBOL_opt_f_block_arg 
YYSYMBOL_singleton 
YYSYMBOL_401_56 
YYSYMBOL_assoc_list 
YYSYMBOL_assocs 
YYSYMBOL_assoc 
YYSYMBOL_operation 
YYSYMBOL_operation2 
YYSYMBOL_operation3 
YYSYMBOL_dot_or_colon 
YYSYMBOL_call_op 
YYSYMBOL_call_op2 
YYSYMBOL_opt_terms 
YYSYMBOL_opt_nl 
YYSYMBOL_rparen 
YYSYMBOL_rbracket 
YYSYMBOL_rbrace 
YYSYMBOL_trailer 
YYSYMBOL_term 
YYSYMBOL_terms 
YYSYMBOL_none 

Definition at line 1238 of file parse.c.

Function Documentation

◆ PRINTF_ARGS() [1/2]

PRINTF_ARGS ( static void   parser_compile_errorstruct parser_params *, const char *fmt,...,
,
 
)

◆ PRINTF_ARGS() [2/2]

PRINTF_ARGS ( void   rb_parser_fatalstruct parser_params *p, const char *fmt,...,
,
 
)

◆ rb_init_parse()

void rb_init_parse ( void  )

Definition at line 19846 of file parse.c.

References void.

◆ rb_io_gets_internal()

VALUE rb_io_gets_internal ( VALUE  io)

Definition at line 3583 of file io.c.

◆ rb_parser_calloc()

void * rb_parser_calloc ( struct parser_params p,
size_t  nelem,
size_t  size 
)

Definition at line 20145 of file parse.c.

References ADD2HEAP, cnt, HEAPCNT, n, NEWHEAP, ptr, size, and xcalloc.

◆ rb_parser_compile_file_path()

rb_ast_t * rb_parser_compile_file_path ( VALUE  vparser,
VALUE  fname,
VALUE  file,
int  start 
)

Definition at line 13710 of file parse.c.

References TypedData_Get_Struct.

◆ rb_parser_compile_generic()

rb_ast_t * rb_parser_compile_generic ( VALUE  vparser,
VALUE(*)(VALUE, int lex_gets,
VALUE  fname,
VALUE  input,
int  start 
)

Definition at line 13730 of file parse.c.

References TypedData_Get_Struct.

◆ rb_parser_compile_string()

rb_ast_t * rb_parser_compile_string ( VALUE  vparser,
const char f,
VALUE  s,
int  line 
)

Definition at line 13689 of file parse.c.

References f, rb_filesystem_str_new_cstr(), and rb_parser_compile_string_path().

◆ rb_parser_compile_string_path()

rb_ast_t * rb_parser_compile_string_path ( VALUE  vparser,
VALUE  f,
VALUE  s,
int  line 
)

Definition at line 13695 of file parse.c.

Referenced by rb_parser_compile_string().

◆ rb_parser_encoding()

VALUE rb_parser_encoding ( VALUE  vparser)

Definition at line 20054 of file parse.c.

References TypedData_Get_Struct.

◆ rb_parser_end_seen_p()

VALUE rb_parser_end_seen_p ( VALUE  vparser)

Definition at line 20039 of file parse.c.

References TypedData_Get_Struct.

◆ rb_parser_fatal()

void rb_parser_fatal ( struct parser_params p,
const char fmt,
  ... 
)

Definition at line 17932 of file parse.c.

References fmt, rb_str_new_cstr, rb_str_vcatf(), va_end, and va_start.

◆ rb_parser_free()

void rb_parser_free ( struct parser_params p,
void ptr 
)

Definition at line 20175 of file parse.c.

References parser_params::heap, n, NULL, ptr, rb_gc_force_recycle(), and xfree.

◆ rb_parser_get_debug_output()

VALUE rb_parser_get_debug_output ( VALUE  self)

Definition at line 20102 of file parse.c.

References TypedData_Get_Struct.

◆ rb_parser_lex_state_name()

VALUE rb_parser_lex_state_name ( enum lex_state_e  state)

Definition at line 17903 of file parse.c.

References rb_fstring().

◆ rb_parser_malloc()

void * rb_parser_malloc ( struct parser_params p,
size_t  size 
)

Definition at line 20135 of file parse.c.

References ADD2HEAP, cnt, HEAPCNT, n, NEWHEAP, ptr, size, and xmalloc.

◆ rb_parser_new()

VALUE rb_parser_new ( void  )

Definition at line 19981 of file parse.c.

References TypedData_Make_Struct.

Referenced by rb_load_file_str().

◆ rb_parser_printf()

void rb_parser_printf ( struct parser_params p,
const char fmt,
  ... 
)

◆ rb_parser_realloc()

void * rb_parser_realloc ( struct parser_params p,
void ptr,
size_t  size 
)

Definition at line 20155 of file parse.c.

References ADD2HEAP, cnt, parser_params::heap, HEAPCNT, n, NEWHEAP, NULL, ptr, size, and xrealloc.

◆ rb_parser_reg_compile()

RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_parser_reg_compile ( struct parser_params p,
VALUE  str,
int  options 
)

Definition at line 19752 of file parse.c.

◆ rb_parser_set_context()

VALUE rb_parser_set_context ( VALUE  vparser,
const struct rb_iseq_struct base,
int  main 
)

Definition at line 19991 of file parse.c.

References TypedData_Get_Struct.

◆ rb_parser_set_debug_output()

VALUE rb_parser_set_debug_output ( VALUE  self,
VALUE  output 
)

Definition at line 20117 of file parse.c.

◆ rb_parser_set_location()

YYLTYPE * rb_parser_set_location ( struct parser_params p,
YYLTYPE yylloc 
)

◆ rb_parser_set_location_from_strterm_heredoc()

YYLTYPE * rb_parser_set_location_from_strterm_heredoc ( struct parser_params p,
rb_strterm_heredoc_t here,
YYLTYPE yylloc 
)

◆ rb_parser_set_location_of_none()

YYLTYPE * rb_parser_set_location_of_none ( struct parser_params p,
YYLTYPE yylloc 
)

◆ rb_parser_set_options()

void rb_parser_set_options ( VALUE  vparser,
int  print,
int  loop,
int  chomp,
int  split 
)

Definition at line 19793 of file parse.c.

References TypedData_Get_Struct.

◆ rb_parser_set_yydebug()

VALUE rb_parser_set_yydebug ( VALUE  self,
VALUE  flag 
)

Definition at line 20086 of file parse.c.

References TypedData_Get_Struct.

◆ rb_parser_show_bitstack()

void rb_parser_show_bitstack ( struct parser_params p,
stack_type  stack,
const char name,
int  line 
)

Definition at line 17922 of file parse.c.

References name, and rb_sprintf().

◆ rb_parser_trace_lex_state()

enum lex_state_e rb_parser_trace_lex_state ( struct parser_params p,
enum lex_state_e  from,
enum lex_state_e  to,
int  line 
)

Definition at line 17889 of file parse.c.

References rb_str_new_cstr.

◆ rb_parser_warn_location()

void rb_parser_warn_location ( VALUE  vparser,
int  warn 
)

Definition at line 19804 of file parse.c.

References TypedData_Get_Struct.

◆ rb_reg_fragment_setenc()

int rb_reg_fragment_setenc ( struct parser_params p,
VALUE  str,
int  options 
)

Definition at line 19637 of file parse.c.

◆ rb_reserved_word()

const struct kwtable * rb_reserved_word ( const char str,
unsigned int  len 
)

Definition at line 19975 of file parse.c.

◆ rb_strterm_mark()

void rb_strterm_mark ( VALUE  obj)

◆ rb_yytnamerr()

size_t rb_yytnamerr ( struct parser_params p,
char yyres,
const char yystr 
)

Definition at line 20239 of file parse.c.

◆ STATIC_ASSERT()

STATIC_ASSERT ( rb_strterm_heredoc_t  ,
sizeof(rb_strterm_heredoc_t)<=4 *  SIZEOF_VALUE 
)

◆ yyparse()

int yyparse ( struct parser_params p)

Variable Documentation

◆ ruby_global_name_punct_bits

const unsigned int ruby_global_name_punct_bits[]
Initial value:
= {
}
#define SPECIAL_PUNCT(idx)
Definition: parse.c:14583

Definition at line 14578 of file parse.c.