Ruby 2.0.0p353(2013-11-22revision43784)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

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 "id.h"`
`#include "regenc.h"`
`#include <stdio.h>`
`#include <errno.h>`
`#include <ctype.h>`
`#include "probes.h"`
`#include "id.c"`
`#include "ruby/regex.h"`
`#include "ruby/util.h"`
`#include "lex.c"`
Include dependency graph for parse.c:

Go to the source code of this file.

## Data Structures
struct | vtable
struct | local_vars
struct | token_info
struct | parser_params
union | yyalloc
struct | magic_comment
struct | reg_named_capture_assign_t
struct | symbols

## Macros
#define | YYBISON 1
#define | YYBISON_VERSION "2.5"
#define | YYSKELETON_NAME "yacc.c"
#define | YYPURE 1
#define | YYPUSH 0
#define | YYPULL 1
#define | YYLSP_NEEDED 0
#define | PARSER_DEBUG 0
#define | YYDEBUG 1
#define | YYERROR_VERBOSE 1
#define | YYSTACK_USE_ALLOCA 0
#define | numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
#define | YYMALLOC(size) rb_parser_malloc(parser, (size))
#define | YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size))
#define | YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size))
#define | YYFREE(ptr) rb_parser_free(parser, (ptr))
#define | malloc YYMALLOC
#define | realloc YYREALLOC
#define | calloc YYCALLOC
#define | free YYFREE
#define | REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc)
#define | is_notop_id(id) ((id)>tLAST_OP_ID)
#define | is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
#define | is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
#define | is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
#define | is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
#define | is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
#define | is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
#define | is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
#define | id_type(id) (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1)
#define | is_asgn_or_id(id)
#define | DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit)
#define | IS_lex_state_for(x, ls) ((x) & (ls))
#define | IS_lex_state(ls) IS_lex_state_for(lex_state, (ls))
#define | BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
#define | BITSTACK_POP(stack) ((stack) = (stack) >> 1)
#define | BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
#define | BITSTACK_SET_P(stack) ((stack)&1)
#define | COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
#define | COND_POP() BITSTACK_POP(cond_stack)
#define | COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
#define | COND_P() BITSTACK_SET_P(cond_stack)
#define | CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
#define | CMDARG_POP() BITSTACK_POP(cmdarg_stack)
#define | CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
#define | CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
#define | DVARS_INHERIT ((void*)1)
#define | DVARS_TOPSCOPE NULL
#define | DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
#define | POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
#define | VTBL_DEBUG 0
#define | STR_NEW(p, n) rb_enc_str_new((p),(n),current_enc)
#define | STR_NEW0() rb_enc_str_new(0,0,current_enc)
#define | STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc)
#define | STR_NEW3(p, n, e, func) parser_str_new((p),(n),(e),(func),current_enc)
#define | ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
#define | TOK_INTERN(mb) rb_intern3(tok(), toklen(), current_enc)
#define | yyerror(msg) parser_yyerror(parser, (msg))
#define | lex_strterm (parser->parser_lex_strterm)
#define | lex_state (parser->parser_lex_state)
#define | cond_stack (parser->parser_cond_stack)
#define | cmdarg_stack (parser->parser_cmdarg_stack)
#define | class_nest (parser->parser_class_nest)
#define | paren_nest (parser->parser_paren_nest)
#define | lpar_beg (parser->parser_lpar_beg)
#define | brace_nest (parser->parser_brace_nest)
#define | in_single (parser->parser_in_single)
#define | in_def (parser->parser_in_def)
#define | compile_for_eval (parser->parser_compile_for_eval)
#define | cur_mid (parser->parser_cur_mid)
#define | in_defined (parser->parser_in_defined)
#define | tokenbuf (parser->parser_tokenbuf)
#define | tokidx (parser->parser_tokidx)
#define | toksiz (parser->parser_toksiz)
#define | tokline (parser->parser_tokline)
#define | lex_input (parser->parser_lex_input)
#define | lex_lastline (parser->parser_lex_lastline)
#define | lex_nextline (parser->parser_lex_nextline)
#define | lex_pbeg (parser->parser_lex_pbeg)
#define | lex_p (parser->parser_lex_p)
#define | lex_pend (parser->parser_lex_pend)
#define | heredoc_end (parser->parser_heredoc_end)
#define | command_start (parser->parser_command_start)
#define | deferred_nodes (parser->parser_deferred_nodes)
#define | lex_gets_ptr (parser->parser_lex_gets_ptr)
#define | lex_gets (parser->parser_lex_gets)
#define | lvtbl (parser->parser_lvtbl)
#define | ruby__end__seen (parser->parser_ruby__end__seen)
#define | ruby_sourceline (parser->parser_ruby_sourceline)
#define | ruby_sourcefile (parser->parser_ruby_sourcefile)
#define | current_enc (parser->enc)
#define | yydebug (parser->parser_yydebug)
#define | ruby_eval_tree (parser->parser_eval_tree)
#define | ruby_eval_tree_begin (parser->parser_eval_tree_begin)
#define | ruby_debug_lines (parser->debug_lines)
#define | ruby_coverage (parser->coverage)
#define | yyparse ruby_yyparse
#define | rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
#define | cond(node) cond_gen(parser, (node))
#define | logop(type, node1, node2) logop_gen(parser, (type), (node1), (node2))
#define | value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
#define | void_expr0(node) void_expr_gen(parser, (node))
#define | void_expr(node) void_expr0((node) = remove_begin(node))
#define | void_stmts(node) void_stmts_gen(parser, (node))
#define | reduce_nodes(n) reduce_nodes_gen(parser,(n))
#define | block_dup_check(n1, n2) block_dup_check_gen(parser,(n1),(n2))
#define | block_append(h, t) block_append_gen(parser,(h),(t))
#define | list_append(l, i) list_append_gen(parser,(l),(i))
#define | list_concat(h, t) list_concat_gen(parser,(h),(t))
#define | arg_append(h, t) arg_append_gen(parser,(h),(t))
#define | arg_concat(h, t) arg_concat_gen(parser,(h),(t))
#define | literal_concat(h, t) literal_concat_gen(parser,(h),(t))
#define | new_evstr(n) new_evstr_gen(parser,(n))
#define | evstr2dstr(n) evstr2dstr_gen(parser,(n))
#define | call_bin_op(recv, id, arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
#define | call_uni_op(recv, id) call_uni_op_gen(parser, (recv),(id))
#define | new_args(f, o, r, p, t) new_args_gen(parser, (f),(o),(r),(p),(t))
#define | new_args_tail(k, kr, b) new_args_tail_gen(parser, (k),(kr),(b))
#define | ret_args(node) ret_args_gen(parser, (node))
#define | new_yield(node) new_yield_gen(parser, (node))
#define | dsym_node(node) dsym_node_gen(parser, (node))
#define | gettable(id) gettable_gen(parser,(id))
#define | assignable(id, node) assignable_gen(parser, (id), (node))
#define | aryset(node1, node2) aryset_gen(parser, (node1), (node2))
#define | attrset(node, id) attrset_gen(parser, (node), (id))
#define | rb_backref_error(n) rb_backref_error_gen(parser,(n))
#define | node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
#define | new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs))
#define | new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs))
#define | match_op(node1, node2) match_op_gen(parser, (node1), (node2))
#define | local_tbl() local_tbl_gen(parser)
#define | reg_compile(str, options) reg_compile_gen(parser, (str), (options))
#define | reg_fragment_setenc(str, options) reg_fragment_setenc_gen(parser, (str), (options))
#define | reg_fragment_check(str, options) reg_fragment_check_gen(parser, (str), (options))
#define | reg_named_capture_assign(regexp, match) reg_named_capture_assign_gen(parser,(regexp),(match))
#define | get_id(id) (id)
#define | get_value(val) (val)
#define | new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs))
#define | formal_argument(id) formal_argument_gen(parser, (id))
#define | shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
#define | new_bv(id) new_bv_gen(parser, (id))
#define | local_push(top) local_push_gen(parser,(top))
#define | local_pop() local_pop_gen(parser)
#define | local_var(id) local_var_gen(parser, (id))
#define | arg_var(id) arg_var_gen(parser, (id))
#define | local_id(id) local_id_gen(parser, (id))
#define | internal_id() internal_id_gen(parser)
#define | dyna_push() dyna_push_gen(parser)
#define | dyna_pop(node) dyna_pop_gen(parser, (node))
#define | dyna_in_block() dyna_in_block_gen(parser)
#define | dyna_var(id) local_var(id)
#define | dvar_defined(id) dvar_defined_gen(parser, (id), 0)
#define | dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
#define | dvar_curr(id) dvar_curr_gen(parser, (id))
#define | lvar_defined(id) lvar_defined_gen(parser, (id))
#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 | NODE_STRTERM NODE_ZARRAY /* nothing to gc */
#define | NODE_HEREDOC NODE_ARRAY /* 1, 3 to gc */
#define | SIGN_EXTEND(x, n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
#define | nd_func u1.id
#define | nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
#define | nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
#define | nd_nest u3.cnt
#define | Qnone 0
#define | ifndef_ripper(x) (x)
#define | rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
#define | rb_warnI(fmt, a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
#define | rb_warnS(fmt, a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
#define | rb_warn4S(file, line, fmt, a) rb_compile_warn((file), (line), (fmt), (a))
#define | rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
#define | rb_warningS(fmt, a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
#define | rb_compile_error rb_compile_error_with_enc
#define | compile_error parser->nerr++,rb_compile_error_with_enc
#define | PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
#define | token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
#define | token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
#define | YYERROR_VERBOSE 1
#define | YYTOKEN_TABLE 0
#define | YYSIZE_T unsigned int
#define | YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#define | YY_(msgid) msgid
#define | YYUSE(e) ((void) (e))
#define | YYID(n) (n)
#define | YYSTACK_ALLOC YYMALLOC
#define | YYSTACK_FREE YYFREE
#define | YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
#define | YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
#define | YYSTACK_BYTES(N)
#define | YYCOPY_NEEDED 1
#define | YYSTACK_RELOCATE(Stack_alloc, Stack)
#define | YYCOPY(To, From, Count)
#define | YYFINAL 3
#define | YYLAST 11084
#define | YYNTOKENS 142
#define | YYNNTS 198
#define | YYNRULES 619
#define | YYNSTATES 1056
#define | YYUNDEFTOK 2
#define | YYMAXUTOK 352
#define | YYTRANSLATE(YYX) ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
#define | YYPACT_NINF -810
#define | YYTABLE_NINF -620
#define | yypact_value_is_default(yystate) ((yystate) == (-810))
#define | yytable_value_is_error(yytable_value) ((yytable_value) == (-620))
#define | yyerrok (yyerrstatus = 0)
#define | yyclearin (yychar = YYEMPTY)
#define | YYEMPTY (-2)
#define | YYEOF 0
#define | YYACCEPT goto yyacceptlab
#define | YYABORT goto yyabortlab
#define | YYERROR goto yyerrorlab
#define | YYFAIL goto yyerrlab
#define | YYRECOVERING() (!!yyerrstatus)
#define | YYBACKUP(Token, Value)
#define | YYTERROR 1
#define | YYERRCODE 256
#define | YYRHSLOC(Rhs, K) ((Rhs)[K])
#define | YYLLOC_DEFAULT(Current, Rhs, N)
#define | YY_LOCATION_PRINT(File, Loc) ((void) 0)
#define | YYLEX yylex (&yylval, parser)
#define | YYFPRINTF fprintf
#define | YYDPRINTF(Args)
#define | YY_SYMBOL_PRINT(Title, Type, Value, Location)
#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))
#define | YYSYNTAX_ERROR
#define | yylval (*((YYSTYPE*)(parser->parser_yylval)))
#define | nextc() parser_nextc(parser)
#define | pushback(c) parser_pushback(parser, (c))
#define | newtok() parser_newtok(parser)
#define | tokspace(n) parser_tokspace(parser, (n))
#define | tokadd(c) parser_tokadd(parser, (c))
#define | tok_hex(numlen) parser_tok_hex(parser, (numlen))
#define | read_escape(flags, e) parser_read_escape(parser, (flags), (e))
#define | tokadd_escape(e) parser_tokadd_escape(parser, (e))
#define | regx_options() parser_regx_options(parser)
#define | tokadd_string(f, t, p, n, e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
#define | parse_string(n) parser_parse_string(parser,(n))
#define | tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
#define | here_document(n) parser_here_document(parser,(n))
#define | heredoc_identifier() parser_heredoc_identifier(parser)
#define | heredoc_restore(n) parser_heredoc_restore(parser,(n))
#define | whole_match_p(e, l, i) parser_whole_match_p(parser,(e),(l),(i))
#define | set_yylval_str(x) (yylval.node = NEW_STR(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 | set_yylval_literal(x) (yylval.node = NEW_LIT(x))
#define | set_yylval_node(x) (yylval.node = (x))
#define | yylval_id() (yylval.id)
#define | ripper_flush(p) (void)(p)
#define | SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
#define | parser_encoding_name() (current_enc->name)
#define | parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
#define | parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
#define | is_identchar(p, e, enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
#define | parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
#define | parser_isascii() ISASCII(*(lex_p-1))
#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 | lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
#define | lex_eol_p() (lex_p >= lex_pend)
#define | peek(c) peek_n((c), 0)
#define | peek_n(c, n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
#define | was_bol() (lex_p == lex_pbeg + 1)
#define | tokfix() (tokenbuf[tokidx]='\0')
#define | tok() tokenbuf
#define | toklen() tokidx
#define | toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
#define | tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
#define | ESCAPE_CONTROL 1
#define | ESCAPE_META 2
#define | tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
#define | mixed_error(enc1, enc2)
#define | mixed_escape(beg, enc1, enc2)
#define | NEW_STRTERM(func, term, paren) rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
#define | flush_string_content(enc) ((void)(enc))
#define | BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
#define | SPECIAL_PUNCT(idx)
#define | dispatch_heredoc_end() ((void)0)
#define | arg_ambiguous() (arg_ambiguous_gen(parser), 1)
#define | str_copy(_s, _p, _n)
#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)
#define | IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
#define | IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
#define | IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
#define | IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
#define | ambiguous_operator(op, syn)
#define | warn_balanced(op, syn)
#define | no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
#define | parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
#define | parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
#define | assignable_result(x) (x)
#define | LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
#define | subnodes(n1, n2)
#define | op_tbl_count numberof(op_tbl)
#define | ENABLE_SELECTOR_NAMESPACE 0
#define | HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
#define | NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
#define | ADD2HEAP(n, c, p)

## Typedefs
typedef VALUE | stack_type
typedef struct token_info | token_info
typedef unsigned char | yytype_uint8
typedef short int | yytype_int8
typedef unsigned short int | yytype_uint16
typedef short int | yytype_int16
typedef long(* | rb_magic_comment_length_t )(struct parser_params *parser, const char *name, long len)
typedef void(* | rb_magic_comment_setter_t )(struct parser_params *parser, 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_VALUE_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_VALUE_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_VALUE_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_VALUE_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), EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN), 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_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN), 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_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN), 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_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN) }
enum | string_type { 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_dword = (STR_FUNC_QWORDS|STR_FUNC_EXPAND), str_ssym = (STR_FUNC_SYMBOL), str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND), 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_dword = (STR_FUNC_QWORDS|STR_FUNC_EXPAND), str_ssym = (STR_FUNC_SYMBOL), str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND) }

## Functions
static ID | register_symid (ID, const char *, long, rb_encoding *)
static ID | register_symid_str (ID, VALUE)
static int | vtable_size (const struct vtable *tbl)
static struct vtable * | vtable_alloc (struct vtable *prev)
static void | vtable_free (struct vtable *tbl)
static void | vtable_add (struct vtable *tbl, ID id)
static int | vtable_included (const struct vtable *tbl, ID id)
static int | parser_yyerror (struct parser_params *, const char *)
static int | yylex (void *, void *)
static NODE * | node_newnode (struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
static NODE * | cond_gen (struct parser_params *, NODE *)
static NODE * | logop_gen (struct parser_params *, enum node_type, NODE *, NODE *)
static NODE * | newline_node (NODE *)
static void | fixpos (NODE *, NODE *)
static int | value_expr_gen (struct parser_params *, NODE *)
static void | void_expr_gen (struct parser_params *, NODE *)
static NODE * | remove_begin (NODE *)
static void | void_stmts_gen (struct parser_params *, NODE *)
static void | reduce_nodes_gen (struct parser_params *, NODE **)
static void | block_dup_check_gen (struct parser_params *, NODE *, NODE *)
static NODE * | block_append_gen (struct parser_params *, NODE *, NODE *)
static NODE * | list_append_gen (struct parser_params *, NODE *, NODE *)
static NODE * | list_concat_gen (struct parser_params *, NODE *, NODE *)
static NODE * | arg_append_gen (struct parser_params *, NODE *, NODE *)
static NODE * | arg_concat_gen (struct parser_params *, NODE *, NODE *)
static NODE * | literal_concat_gen (struct parser_params *, NODE *, NODE *)
static int | literal_concat0 (struct parser_params *, VALUE, VALUE)
static NODE * | new_evstr_gen (struct parser_params *, NODE *)
static NODE * | evstr2dstr_gen (struct parser_params *, NODE *)
static NODE * | splat_array (NODE *)
static NODE * | call_bin_op_gen (struct parser_params *, NODE *, ID, NODE *)
static NODE * | call_uni_op_gen (struct parser_params *, NODE *, ID)
static NODE * | new_args_gen (struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
static NODE * | new_args_tail_gen (struct parser_params *, NODE *, ID, ID)
static NODE * | negate_lit (NODE *)
static NODE * | ret_args_gen (struct parser_params *, NODE *)
static NODE * | arg_blk_pass (NODE *, NODE *)
static NODE * | new_yield_gen (struct parser_params *, NODE *)
static NODE * | dsym_node_gen (struct parser_params *, NODE *)
static NODE * | gettable_gen (struct parser_params *, ID)
static NODE * | assignable_gen (struct parser_params *, ID, NODE *)
static NODE * | aryset_gen (struct parser_params *, NODE *, NODE *)
static NODE * | attrset_gen (struct parser_params *, NODE *, ID)
static void | rb_backref_error_gen (struct parser_params *, NODE *)
static NODE * | node_assign_gen (struct parser_params *, NODE *, NODE *)
static NODE * | new_op_assign_gen (struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
static NODE * | new_attr_op_assign_gen (struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
static NODE * | new_const_op_assign_gen (struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
static NODE * | match_op_gen (struct parser_params *, NODE *, NODE *)
static ID * | local_tbl_gen (struct parser_params *)
static void | fixup_nodes (NODE **)
static VALUE | reg_compile_gen (struct parser_params *, VALUE, int)
static void | reg_fragment_setenc_gen (struct parser_params *, VALUE, int)
static int | reg_fragment_check_gen (struct parser_params *, VALUE, int)
static NODE * | reg_named_capture_assign_gen (struct parser_params *parser, VALUE regexp, NODE *match)
static ID | formal_argument_gen (struct parser_params *, ID)
static ID | shadowing_lvar_gen (struct parser_params *, ID)
static void | new_bv_gen (struct parser_params *, ID)
static void | local_push_gen (struct parser_params *, int)
static void | local_pop_gen (struct parser_params *)
static int | local_var_gen (struct parser_params *, ID)
static int | arg_var_gen (struct parser_params *, ID)
static int | local_id_gen (struct parser_params *, ID)
static ID | internal_id_gen (struct parser_params *)
static struct vtable * | dyna_push_gen (struct parser_params *)
static void | dyna_pop_gen (struct parser_params *, const struct vtable *)
static int | dyna_in_block_gen (struct parser_params *)
static int | dvar_defined_gen (struct parser_params *, ID, int)
static int | dvar_curr_gen (struct parser_params *, ID)
static int | lvar_defined_gen (struct parser_params *, ID)
static void | token_info_push (struct parser_params *, const char *token)
static void | token_info_pop (struct parser_params *, const char *token)
| YYUSE (parser)
| YYUSE (yyoutput)
| switch (yytype)
else | YYFPRINTF (yyoutput,"nterm %s (", yytname[yytype])
| yy_symbol_value_print (yyoutput, yytype, yyvaluep, parser)
| YYFPRINTF (yyoutput,")")
| for (;yybottom<=yytop;yybottom++)
| YYFPRINTF (stderr,"\n")
| YYFPRINTF (stderr,"Reducing stack by rule %d (line %lu):\n", yyrule-1, yylno)
| for (yyi=0;yyi< yynrhs;yyi++)
static YYSIZE_T | yytnamerr (char *yyres, const char *yystr)
static int | yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
| YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp)
int | yyparse ()
| YYDPRINTF ((stderr,"Starting parse\n"))
| if (yyss+yystacksize-1<=yyssp)
| YYDPRINTF ((stderr,"Entering state %d\n", yystate))
| if (yychar==YYEMPTY)
| if (yychar<=YYEOF)
| YY_SYMBOL_PRINT ("Next token is", yytoken,&yylval,&yylloc)
| if (yyn<=0)
| YY_SYMBOL_PRINT ("Shifting", yytoken,&yylval,&yylloc)
| YY_REDUCE_PRINT (yyn)
| switch (yyn)
| YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn],&yyval,&yyloc)
| YYPOPSTACK (yylen)
| YY_STACK_PRINT (yyss, yyssp)
| if (!yyerrstatus)
| if (yyerrstatus==3)
| for (;;)
| YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp)
yyexhaustedlab | YY_ ("memory exhausted"))
| yydestruct ("Cleanup: discarding lookahead", yytoken,&yylval, parser)
| while (yyssp!=yyss)
| YYSTACK_FREE (yyss)
| YYSTACK_FREE (yymsg)
return | YYID (yyresult)
static int | parser_regx_options (struct parser_params *)
static int | parser_tokadd_string (struct parser_params *, int, int, int, long *, rb_encoding **)
static void | parser_tokaddmbc (struct parser_params *parser, int c, rb_encoding *enc)
static int | parser_parse_string (struct parser_params *, NODE *)
static int | parser_here_document (struct parser_params *, NODE *)
static int | token_info_get_column (struct parser_params *parser, const char *token)
static int | token_info_has_nonspaces (struct parser_params *parser, const char *token)
static void | parser_prepare (struct parser_params *parser)
static VALUE | debug_lines (const char *f)
static VALUE | coverage (const char *f, int n)
static int | e_option_supplied (struct parser_params *parser)
static VALUE | yycompile0 (VALUE arg)
static NODE * | yycompile (struct parser_params *parser, const char *f, int line)
static rb_encoding * | must_be_ascii_compatible (VALUE s)
static VALUE | lex_get_str (struct parser_params *parser, VALUE s)
static VALUE | lex_getline (struct parser_params *parser)
static NODE * | parser_compile_string (volatile VALUE vparser, const char *f, VALUE s, int line)
NODE * | rb_compile_string (const char *f, VALUE s, int line)
NODE * | rb_parser_compile_string (volatile VALUE vparser, const char *f, VALUE s, int line)
NODE * | rb_compile_cstr (const char *f, const char *s, int len, int line)
NODE * | rb_parser_compile_cstr (volatile VALUE vparser, const char *f, const char *s, int len, int line)
static VALUE | lex_io_gets (struct parser_params *parser, VALUE io)
NODE * | rb_compile_file (const char *f, VALUE file, int start)
NODE * | rb_parser_compile_file (volatile VALUE vparser, const char *f, VALUE file, int start)
static VALUE | parser_str_new (const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
static int | parser_nextc (struct parser_params *parser)
static void | parser_pushback (struct parser_params *parser, int c)
static char * | parser_newtok (struct parser_params *parser)
static char * | parser_tokspace (struct parser_params *parser, int n)
static void | parser_tokadd (struct parser_params *parser, int c)
static int | parser_tok_hex (struct parser_params *parser, size_t *numlen)
static int | parser_tokadd_utf8 (struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
static int | parser_read_escape (struct parser_params *parser, int flags, rb_encoding **encp)
static int | parser_tokadd_escape (struct parser_params *parser, rb_encoding **encp)
static void | dispose_string (VALUE str)
static int | parser_tokadd_mbchar (struct parser_params *parser, int c)
static int | simple_re_meta (int c)
static int | is_global_name_punct (const char c)
static int | parser_peek_variable_name (struct parser_params *parser)
static int | parser_heredoc_identifier (struct parser_params *parser)
static void | parser_heredoc_restore (struct parser_params *parser, NODE *here)
static int | parser_whole_match_p (struct parser_params *parser, const char *eos, long len, int indent)
static void | arg_ambiguous_gen (struct parser_params *parser)
static long | parser_encode_length (struct parser_params *parser, const char *name, long len)
static void | parser_set_encode (struct parser_params *parser, const char *name)
static int | comment_at_top (struct parser_params *parser)
static void | magic_comment_encoding (struct parser_params *parser, const char *name, const char *val)
static void | parser_set_token_info (struct parser_params *parser, const char *name, const char *val)
static const char * | magic_comment_marker (const char *str, long len)
static int | parser_magic_comment (struct parser_params *parser, const char *str, long len)
static void | set_file_encoding (struct parser_params *parser, const char *str, const char *send)
static int | parser_yylex (struct parser_params *parser)
static enum node_type | nodetype (NODE *node)
static int | nodeline (NODE *node)
static void | parser_warning (struct parser_params *parser, NODE *node, const char *mesg)
static void | parser_warn (struct parser_params *parser, NODE *node, const char *mesg)
static NODE * | switch (id)
| switch (id_type(id))
static int | is_private_local_id (ID name)
ID | rb_id_attrset (ID id)
static int | is_static_content (NODE *node)
static int | assign_in_cond (struct parser_params *parser, NODE *node)
static void | warn_unless_e_option (struct parser_params *parser, NODE *node, const char *str)
static void | warning_unless_e_option (struct parser_params *parser, NODE *node, const char *str)
static NODE * | cond0 (struct parser_params *, NODE *)
static NODE * | range_op (struct parser_params *parser, NODE *node)
static int | literal_node (NODE *node)
static void | no_blockarg (struct parser_params *parser, NODE *node)
static void | warn_unused_var (struct parser_params *parser, struct local_vars *local)
static ID * | vtable_tblcpy (ID *buf, const struct vtable *src)
static void | dyna_pop_1 (struct parser_params *parser)
static int | reg_named_capture_assign_iter (const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
void | rb_gc_mark_parser (void)
NODE * | rb_parser_append_print (VALUE vparser, NODE *node)
NODE * | rb_parser_while_loop (VALUE vparser, NODE *node, int chop, int split)
void | Init_sym (void)
void | rb_gc_mark_symbols (void)
static int | is_special_global_name (const char *m, const char *e, rb_encoding *enc)
int | rb_symname_p (const char *name)
int | rb_enc_symname_p (const char *name, rb_encoding *enc)
static int | rb_enc_symname_type (const char *name, long len, rb_encoding *enc)
int | rb_enc_symname2_p (const char *name, long len, rb_encoding *enc)
static int | rb_str_symname_type (VALUE name)
static int | sym_check_asciionly (VALUE str)
static ID | intern_str (VALUE str)
ID | rb_intern3 (const char *name, long len, rb_encoding *enc)
ID | rb_intern2 (const char *name, long len)
ID | rb_intern (const char *name)
ID | rb_intern_str (VALUE str)
VALUE | rb_id2str (ID id)
const char * | rb_id2name (ID id)
static int | symbols_i (VALUE sym, ID value, VALUE ary)
VALUE | rb_sym_all_symbols (void)
int | rb_is_const_id (ID id)
int | rb_is_class_id (ID id)
int | rb_is_global_id (ID id)
int | rb_is_instance_id (ID id)
int | rb_is_attrset_id (ID id)
int | rb_is_local_id (ID id)
int | rb_is_junk_id (ID id)
ID | rb_check_id (volatile VALUE *namep)
| Returns ID for the given name if it is interned already, or 0. More...
ID | rb_check_id_cstr (const char *ptr, long len, rb_encoding *enc)
int | rb_is_const_name (VALUE name)
int | rb_is_class_name (VALUE name)
int | rb_is_global_name (VALUE name)
int | rb_is_instance_name (VALUE name)
int | rb_is_attrset_name (VALUE name)
int | rb_is_local_name (VALUE name)
int | rb_is_method_name (VALUE name)
int | rb_is_junk_name (VALUE name)
static void | parser_initialize (struct parser_params *parser)
static void | parser_mark (void *ptr)
static void | parser_free (void *ptr)
static size_t | parser_memsize (const void *ptr)
struct kwtable * | rb_reserved_word (const char *str, unsigned int len)
static struct parser_params * | parser_new (void)
VALUE | rb_parser_new (void)
VALUE | rb_parser_end_seen_p (VALUE vparser)
VALUE | rb_parser_encoding (VALUE vparser)
VALUE | rb_parser_get_yydebug (VALUE self)
VALUE | rb_parser_set_yydebug (VALUE self, VALUE flag)
void * | rb_parser_malloc (struct parser_params *parser, size_t size)
void * | rb_parser_calloc (struct parser_params *parser, size_t nelem, size_t size)
void * | rb_parser_realloc (struct parser_params *parser, void *ptr, size_t size)
void | rb_parser_free (struct parser_params *parser, void *ptr)

## Variables
static const yytype_uint8 | yytranslate []
static const yytype_uint16 | yyprhs []
static const yytype_int16 | yyrhs []
static const yytype_uint16 | yyrline []
static const char *const | yytname []
static const yytype_uint16 | yyr1 []
static const yytype_uint8 | yyr2 []
static const yytype_uint16 | yydefact []
static const yytype_int16 | yydefgoto []
static const yytype_int16 | yypact []
static const yytype_int16 | yypgoto []
static const yytype_int16 | yytable []
static const yytype_int16 | yycheck []
static const yytype_uint16 | yystos []
static void FILE * | yyoutput
int | yytype
YYSTYPE const *const | yyvaluep
struct parser_params * | parser
static void yytype_int16 * | yybottom
yytype_int16 * | yytop
static void YYSTYPE * | yyvsp = yyvs
int | yyrule
int | yyi
unsigned long int | yylno = yyrline[yyrule]
static YYSIZE_T const char * | yystr
| continue
return | yylen = 0
static char *char * | yydest
const char * | yysrc
const char * | yys = yysrc
return | yyd
static void const char * | yymsg = "Deleting"
YYSTYPE | yylval
int | yynerrs = 0
int | yystate = 0
int | yyerrstatus = 0
yytype_int16 | yyssa [YYINITDEPTH]
yytype_int16 * | yyss = yyssa
yytype_int16 * | yyssp = yyss
YYSTYPE | yyvsa [YYINITDEPTH]
YYSTYPE * | yyvs = yyvsa
YYSIZE_T | yystacksize = YYINITDEPTH
int | yyn = yytoken
int | yyresult = 2
int | yytoken = 0
YYSTYPE | yyval = yyvsp[1-yylen]
char | yymsgbuf [128]
YYSIZE_T | yymsg_alloc = sizeof yymsgbuf
| yychar = YYEMPTY
goto | yysetstate
yynewstate | __pad0__
yysetstate | __pad1__
| YYACCEPT
goto | yybackup
yybackup | __pad2__
goto | yydefault
| else
goto | yynewstate
yydefault | __pad3__
goto | yyerrlab
goto | yyreduce
yyreduce | __pad4__
yyerrlab | __pad5__
goto | yyerrlab1
yyerrorlab | __pad6__
yyerrlab1 | __pad7__
yyacceptlab | __pad8__
goto | yyreturn
yyabortlab | __pad9__
yyexhaustedlab | __pad10__
yyreturn | __pad11__
static const rb_data_type_t | parser_data_type
RUBY_FUNC_EXPORTED const unsigned int | ruby_global_name_punct_bits [(0x7e-0x20+31)/32]
static struct magic_comment | magic_comments []
static | int
int | t = parser_yylex(parser)
parser | parser_yylval = lval
parser parser_yylval | val = Qundef
error | __pad12__
struct {
ID token
const char * name
} | op_tbl []
static struct symbols | global_symbols = {tLAST_TOKEN}
static struct st_hash_type | symhash

## Macro Definition Documentation

#define ADD2HEAP | ( |  | n,
|  |  | c,
|  |  | p
| ) |  |

Value:
((parser->heap = (n))->u1.node = (p), \
(n)->u3.cnt = (c), (p))
n
ssize_t n
Definition: bigdecimal.c:5655
p
Win32OLEIDispatch * p
Definition: win32ole.c:786
c
VpDivd * c
Definition: bigdecimal.c:1205
parser
struct parser_params * parser
Definition: ripper.c:4507
parser_params::heap
NODE * heap
Definition: ripper.c:289

Definition at line 17362 of file parse.c.

Referenced by rb_parser_calloc(), rb_parser_malloc(), and rb_parser_realloc().

#define ambiguous_operator | ( |  | op,
|  |  | syn
| ) |  |

Value:
( \
rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
rb_warning0("even though it seems like "syn""))
rb_warning0
#define rb_warning0(fmt)
Definition: parse.c:696

Definition at line 13321 of file parse.c.

#define arg_ambiguous | ( |  | ) | (arg_ambiguous_gen(parser), 1)

Definition at line 12985 of file parse.c.

Referenced by arg_ambiguous_gen(), and parser_yylex().

#define arg_append | ( |  | h,
|  |  | t
| ) |  | arg_append_gen(parser,(h),(t))

Definition at line 449 of file parse.c.

Referenced by arg_append_gen(), node_assign_gen(), and switch().

#define arg_concat | ( |  | h,
|  |  | t
| ) |  | arg_concat_gen(parser,(h),(t))

Definition at line 451 of file parse.c.

Referenced by arg_concat_gen(), and switch().

#define arg_var | ( |  | id | ) | arg_var_gen(parser, (id))

Definition at line 558 of file parse.c.

Referenced by new_args_tail_gen(), and switch().

#define aryset | ( |  | node1,
|  |  | node2
| ) |  | aryset_gen(parser, (node1), (node2))

Definition at line 486 of file parse.c.

Referenced by switch().

#define assignable | ( |  | id,
|  |  | node
| ) |  | assignable_gen(parser, (id), (node))

Definition at line 483 of file parse.c.

Referenced by reg_named_capture_assign_iter(), and switch().

#define assignable_result | ( |  | x | ) | (x)

Referenced by switch().

#define attrset | ( |  | node,
|  |  | id
| ) |  | attrset_gen(parser, (node), (id))

Definition at line 488 of file parse.c.

Referenced by switch().

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

Definition at line 12645 of file parse.c.

#define BITSTACK_LEXPOP | ( |  | stack | ) | ((stack) = ((stack) >> 1) | ((stack) & 1))

Definition at line 168 of file parse.c.

#define BITSTACK_POP | ( |  | stack | ) | ((stack) = (stack) >> 1)

Definition at line 167 of file parse.c.

#define BITSTACK_PUSH | ( |  | stack,
|  |  | n
| ) |  | ((stack) = ((stack)<<1)|((n)&1))

Definition at line 166 of file parse.c.

#define BITSTACK_SET_P | ( |  | stack | ) | ((stack)&1)

Definition at line 169 of file parse.c.

#define block_append | ( |  | h,
|  |  | t
| ) |  | block_append_gen(parser,(h),(t))

Definition at line 443 of file parse.c.

Referenced by rb_parser_append_print(), rb_parser_while_loop(), reg_named_capture_assign_gen(), reg_named_capture_assign_iter(), and switch().

#define block_dup_check | ( |  | n1,
|  |  | n2
| ) |  | block_dup_check_gen(parser,(n1),(n2))

Definition at line 440 of file parse.c.

Referenced by switch().

#define brace_nest (parser->parser_brace_nest)

Definition at line 374 of file parse.c.

Referenced by parser_yylex(), and switch().

#define call_bin_op | ( |  | recv,
|  |  | id,
|  |  | arg1
| ) |  | call_bin_op_gen(parser, (recv),(id),(arg1))

Definition at line 462 of file parse.c.

Referenced by switch().

#define call_uni_op | ( |  | recv,
|  |  | id
| ) |  | call_uni_op_gen(parser, (recv),(id))

Definition at line 464 of file parse.c.

Referenced by switch().

#define calloc YYCALLOC

Definition at line 100 of file parse.c.

#define class_nest (parser->parser_class_nest)

Definition at line 371 of file parse.c.

#define CMDARG_LEXPOP | ( |  | ) | BITSTACK_LEXPOP(cmdarg_stack)

Definition at line 178 of file parse.c.

Referenced by parser_yylex().

#define CMDARG_P | ( |  | ) | BITSTACK_SET_P(cmdarg_stack)

Definition at line 179 of file parse.c.

Referenced by parser_yylex().

#define CMDARG_POP | ( |  | ) | BITSTACK_POP(cmdarg_stack)

Definition at line 177 of file parse.c.

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

Definition at line 176 of file parse.c.

Referenced by parser_yylex(), and switch().

#define cmdarg_stack (parser->parser_cmdarg_stack)

Definition at line 370 of file parse.c.

Referenced by switch().

#define command_start (parser->parser_command_start)

Definition at line 391 of file parse.c.

#define compile_error parser->nerr++,rb_compile_error_with_enc

Definition at line 719 of file parse.c.

Referenced by block_dup_check_gen(), gettable_gen(), literal_concat0(), new_bv_gen(), no_blockarg(), parser_here_document(), parser_heredoc_identifier(), parser_parse_string(), parser_regx_options(), parser_tokadd_mbchar(), parser_yyerror(), parser_yylex(), rb_backref_error_gen(), reg_compile_gen(), reg_fragment_check_gen(), reg_fragment_setenc_gen(), and switch().

#define compile_for_eval (parser->parser_compile_for_eval)

Definition at line 377 of file parse.c.

Referenced by local_push_gen(), parser_compile_string(), rb_parser_compile_file(), switch(), and yycompile0().

#define cond | ( |  | node | ) | cond_gen(parser, (node))

Definition at line 422 of file parse.c.

Referenced by switch(), and value_expr_gen().

#define COND_LEXPOP | ( |  | ) | BITSTACK_LEXPOP(cond_stack)

Definition at line 173 of file parse.c.

Referenced by parser_yylex().

#define COND_P | ( |  | ) | BITSTACK_SET_P(cond_stack)

Definition at line 174 of file parse.c.

Referenced by parser_yylex().

#define COND_POP | ( |  | ) | BITSTACK_POP(cond_stack)

Definition at line 172 of file parse.c.

Referenced by switch().

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

Definition at line 171 of file parse.c.

Referenced by parser_yylex(), and switch().

#define cond_stack (parser->parser_cond_stack)

Definition at line 369 of file parse.c.

Referenced by switch().

#define cur_mid (parser->parser_cur_mid)

Definition at line 378 of file parse.c.

Referenced by switch().

#define current_enc (parser->enc)

Definition at line 399 of file parse.c.

Referenced by gettable_gen(), lex_getline(), parser_here_document(), parser_nextc(), parser_parse_string(), parser_yylex(), rb_parser_encoding(), and reg_fragment_setenc_gen().

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

Definition at line 141 of file parse.c.

#define deferred_nodes (parser->parser_deferred_nodes)

Definition at line 392 of file parse.c.

#define dispatch_heredoc_end | ( |  | ) | ((void)0)

Definition at line 12870 of file parse.c.

Referenced by parser_here_document().

#define dsym_node | ( |  | node | ) | dsym_node_gen(parser, (node))

Definition at line 478 of file parse.c.

Referenced by switch().

#define dvar_curr | ( |  | id | ) | dvar_curr_gen(parser, (id))

Definition at line 575 of file parse.c.

Referenced by shadowing_lvar_gen(), and switch().

#define dvar_defined | ( |  | id | ) | dvar_defined_gen(parser, (id), 0)

Definition at line 572 of file parse.c.

Referenced by gettable_gen(), reg_named_capture_assign_iter(), and switch().

#define dvar_defined_get | ( |  | id | ) | dvar_defined_gen(parser, (id), 1)

Definition at line 573 of file parse.c.

Referenced by lvar_defined_gen(), and shadowing_lvar_gen().

#define DVARS_INHERIT ((void*)1)

Definition at line 195 of file parse.c.

Referenced by dvar_defined_gen(), local_id_gen(), and local_push_gen().

#define DVARS_SPECIAL_P | ( |  | tbl | ) | (!POINTER_P(tbl))

Definition at line 197 of file parse.c.

#define DVARS_TOPSCOPE NULL

Definition at line 196 of file parse.c.

Referenced by dyna_in_block_gen(), and local_push_gen().

#define dyna_in_block | ( |  | ) | dyna_in_block_gen(parser)

Definition at line 569 of file parse.c.

Referenced by gettable_gen(), lvar_defined_gen(), shadowing_lvar_gen(), and switch().

#define dyna_pop | ( |  | node | ) | dyna_pop_gen(parser, (node))

Definition at line 567 of file parse.c.

#define dyna_push | ( |  | ) | dyna_push_gen(parser)

Definition at line 565 of file parse.c.

Referenced by switch().

#define dyna_var | ( |  | id | ) | local_var(id)

Definition at line 570 of file parse.c.

Referenced by new_bv_gen(), and switch().

#define ENABLE_SELECTOR_NAMESPACE 0

Definition at line 16434 of file parse.c.

#define ENC_SINGLE | ( |  | cr | ) | ((cr)==ENC_CODERANGE_7BIT)

Definition at line 361 of file parse.c.

Referenced by parser_yylex().

#define ESCAPE_CONTROL 1

Definition at line 12239 of file parse.c.

Referenced by parser_read_escape(), and parser_tokadd_escape().

#define ESCAPE_META 2

Definition at line 12240 of file parse.c.

Referenced by parser_read_escape(), and parser_tokadd_escape().

#define evstr2dstr | ( |  | n | ) | evstr2dstr_gen(parser,(n))

Definition at line 458 of file parse.c.

Referenced by switch().

#define flush_string_content | ( |  | enc | ) | ((void)(enc))

Definition at line 12638 of file parse.c.

Referenced by parser_here_document(), and parser_parse_string().

#define formal_argument | ( |  | id | ) | formal_argument_gen(parser, (id))

Definition at line 545 of file parse.c.

Referenced by switch().

#define free YYFREE

Definition at line 101 of file parse.c.

#define get_id | ( |  | id | ) | (id)

Definition at line 518 of file parse.c.

Referenced by switch().

#define get_value | ( |  | val | ) | (val)

Definition at line 519 of file parse.c.

#define gettable | ( |  | id | ) | gettable_gen(parser,(id))

Definition at line 481 of file parse.c.

Referenced by new_op_assign_gen(), reg_named_capture_assign_gen(), reg_named_capture_assign_iter(), and switch().

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

Definition at line 17360 of file parse.c.

Referenced by rb_parser_calloc(), rb_parser_malloc(), and rb_parser_realloc().

#define here_document | ( |  | n | ) | parser_here_document(parser,(n))

Definition at line 11514 of file parse.c.

Referenced by parser_yylex().

#define heredoc_end (parser->parser_heredoc_end)

Definition at line 390 of file parse.c.

Referenced by parser_heredoc_restore(), and parser_nextc().

#define heredoc_identifier | ( |  | ) | parser_heredoc_identifier(parser)

Definition at line 11515 of file parse.c.

Referenced by parser_yylex().

#define heredoc_restore | ( |  | n | ) | parser_heredoc_restore(parser,(n))

Definition at line 11516 of file parse.c.

Referenced by parser_here_document().

#define id_type | ( |  | id | ) | (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1)

Definition at line 118 of file parse.c.

Referenced by gettable_gen().

#define ifndef_ripper | ( |  | x | ) | (x)

Definition at line 685 of file parse.c.

Referenced by local_push_gen(), and switch().

#define in_def (parser->parser_in_def)

Definition at line 376 of file parse.c.

Referenced by switch().

#define in_defined (parser->parser_in_defined)

Definition at line 379 of file parse.c.

Referenced by switch().

#define in_single (parser->parser_in_single)

Definition at line 375 of file parse.c.

Referenced by switch().

#define internal_id | ( |  | ) | internal_id_gen(parser)

Definition at line 562 of file parse.c.

Referenced by new_args_tail_gen(), and switch().

#define IS_AFTER_OPERATOR | ( |  | ) | IS_lex_state(EXPR_FNAME | EXPR_DOT)

Definition at line 13318 of file parse.c.

Referenced by parser_yylex().

#define IS_ARG | ( |  | ) | IS_lex_state(EXPR_ARG_ANY)

Definition at line 13312 of file parse.c.

Referenced by parser_yylex().

#define is_asgn_or_id | ( |  | id | ) |

Value:
((is_notop_id(id)) && \
(((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
((id)&ID_SCOPE_MASK) == ID_CLASS))
is_notop_id
#define is_notop_id(id)
Definition: parse.c:110
ID_INSTANCE
#define ID_INSTANCE
ID_GLOBAL
#define ID_GLOBAL
ID_CLASS
#define ID_CLASS
id
const int id
Definition: nkf.c:209
ID_SCOPE_MASK
#define ID_SCOPE_MASK

Definition at line 120 of file parse.c.

Referenced by new_op_assign_gen().

#define is_attrset_id | ( |  | id | ) | (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)

Definition at line 114 of file parse.c.

Referenced by intern_str(), rb_id2str(), and rb_is_attrset_id().

#define IS_BEG | ( |  | ) | IS_lex_state(EXPR_BEG_ANY)

Definition at line 13314 of file parse.c.

Referenced by parser_yylex().

#define is_class_id | ( |  | id | ) | (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)

Definition at line 116 of file parse.c.

Referenced by rb_is_class_id().

#define is_const_id | ( |  | id | ) | (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)

Definition at line 115 of file parse.c.

Referenced by rb_is_const_id().

#define IS_END | ( |  | ) | IS_lex_state(EXPR_END_ANY)

Definition at line 13313 of file parse.c.

Referenced by parser_yylex().

#define is_global_id | ( |  | id | ) | (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)

Definition at line 112 of file parse.c.

Referenced by rb_is_global_id().

#define is_identchar | ( |  | p,
|  |  | e,
|  |  | enc
| ) |  | (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))

Definition at line 11613 of file parse.c.

Referenced by intern_str(), is_special_global_name(), parser_yylex(), and rb_enc_symname_type().

#define is_instance_id | ( |  | id | ) | (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)

Definition at line 113 of file parse.c.

Referenced by rb_is_instance_id().

#define is_junk_id | ( |  | id | ) | (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)

Definition at line 117 of file parse.c.

Referenced by rb_is_junk_id().

#define IS_LABEL_POSSIBLE | ( |  | ) | ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())

Definition at line 13316 of file parse.c.

Referenced by parser_yylex().

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

Definition at line 13317 of file parse.c.

Referenced by parser_yylex().

#define IS_lex_state | ( |  | ls | ) | IS_lex_state_for(lex_state, (ls))

Definition at line 158 of file parse.c.

Referenced by parser_yylex().

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

Definition at line 157 of file parse.c.

Referenced by parser_yylex().

#define is_local_id | ( |  | id | ) | (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)

Definition at line 111 of file parse.c.

Referenced by formal_argument_gen(), is_private_local_id(), new_bv_gen(), parser_yylex(), rb_id2str(), rb_is_local_id(), and switch().

#define is_notop_id | ( |  | id | ) | ((id)>tLAST_OP_ID)

Definition at line 110 of file parse.c.

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

Definition at line 13315 of file parse.c.

Referenced by parser_yylex().

#define lex_eol_p | ( |  | ) | (lex_p >= lex_pend)

Definition at line 12035 of file parse.c.

Referenced by parser_yylex().

#define lex_gets (parser->parser_lex_gets)

Definition at line 394 of file parse.c.

Referenced by parser_compile_string(), and rb_parser_compile_file().

#define lex_gets_ptr (parser->parser_lex_gets_ptr)

Definition at line 393 of file parse.c.

Referenced by lex_get_str(), and parser_compile_string().

#define lex_goto_eol | ( |  | parser | ) | ((parser)->parser_lex_p = (parser)->parser_lex_pend)

Definition at line 12034 of file parse.c.

Referenced by parser_here_document(), parser_heredoc_identifier(), parser_nextc(), and parser_yylex().

#define lex_input (parser->parser_lex_input)

Definition at line 384 of file parse.c.

Referenced by parser_compile_string(), parser_nextc(), and rb_parser_compile_file().

#define lex_lastline (parser->parser_lex_lastline)

Definition at line 385 of file parse.c.

Referenced by parser_here_document(), parser_heredoc_identifier(), parser_heredoc_restore(), parser_nextc(), parser_prepare(), parser_yyerror(), parser_yylex(), and yycompile0().

#define lex_nextline (parser->parser_lex_nextline)

Definition at line 386 of file parse.c.

Referenced by parser_nextc(), parser_yylex(), and yycompile0().

#define lex_p (parser->parser_lex_p)

Definition at line 388 of file parse.c.

Referenced by comment_at_top(), parser_compile_string(), parser_here_document(), parser_heredoc_identifier(), parser_heredoc_restore(), parser_nextc(), parser_peek_variable_name(), parser_prepare(), parser_pushback(), parser_read_escape(), parser_tok_hex(), parser_tokadd_escape(), parser_tokadd_mbchar(), parser_tokadd_string(), parser_tokadd_utf8(), parser_yyerror(), parser_yylex(), rb_parser_compile_file(), token_info_get_column(), token_info_has_nonspaces(), and yycompile0().

#define lex_pbeg (parser->parser_lex_pbeg)

Definition at line 387 of file parse.c.

Referenced by comment_at_top(), parser_compile_string(), parser_heredoc_identifier(), parser_heredoc_restore(), parser_nextc(), parser_prepare(), parser_pushback(), parser_whole_match_p(), parser_yyerror(), rb_parser_compile_file(), token_info_get_column(), token_info_has_nonspaces(), and yycompile0().

#define lex_pend (parser->parser_lex_pend)

Definition at line 389 of file parse.c.

Referenced by parser_compile_string(), parser_here_document(), parser_heredoc_restore(), parser_nextc(), parser_peek_variable_name(), parser_prepare(), parser_tokadd_string(), parser_whole_match_p(), parser_yyerror(), parser_yylex(), rb_parser_compile_file(), and yycompile0().

#define lex_state (parser->parser_lex_state)

Definition at line 368 of file parse.c.

#define lex_strterm (parser->parser_lex_strterm)

Definition at line 367 of file parse.c.

Referenced by parser_here_document(), parser_heredoc_identifier(), parser_yylex(), switch(), and yycompile0().

#define list_append | ( |  | l,
|  |  | i
| ) |  | list_append_gen(parser,(l),(i))

Definition at line 445 of file parse.c.

Referenced by arg_append_gen(), evstr2dstr_gen(), literal_concat_gen(), and switch().

#define list_concat | ( |  | h,
|  |  | t
| ) |  | list_concat_gen(parser,(h),(t))

Definition at line 447 of file parse.c.

Referenced by arg_concat_gen(), literal_concat_gen(), and switch().

#define literal_concat | ( |  | h,
|  |  | t
| ) |  | literal_concat_gen(parser,(h),(t))

Definition at line 453 of file parse.c.

Referenced by switch().

#define local_id | ( |  | id | ) | local_id_gen(parser, (id))

Definition at line 560 of file parse.c.

Referenced by gettable_gen(), lvar_defined_gen(), reg_named_capture_assign_iter(), shadowing_lvar_gen(), and switch().

#define local_pop | ( |  | ) | local_pop_gen(parser)

Definition at line 554 of file parse.c.

Referenced by switch().

#define local_push | ( |  | top | ) | local_push_gen(parser,(top))

Definition at line 552 of file parse.c.

Referenced by switch().

#define local_tbl | ( |  | ) | local_tbl_gen(parser)

Definition at line 505 of file parse.c.

#define local_var | ( |  | id | ) | local_var_gen(parser, (id))

Definition at line 556 of file parse.c.

Referenced by switch().

#define logop | ( |  | type,
|  |  | node1,
|  |  | node2
| ) |  | logop_gen(parser, (type), (node1), (node2))

Definition at line 424 of file parse.c.

Referenced by switch().

#define lpar_beg (parser->parser_lpar_beg)

Definition at line 373 of file parse.c.

Referenced by parser_yylex(), and switch().

#define lvar_defined | ( |  | id | ) | lvar_defined_gen(parser, (id))

Definition at line 578 of file parse.c.

Referenced by parser_yylex().

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

Definition at line 15118 of file parse.c.

Referenced by dvar_defined_gen(), local_id_gen(), shadowing_lvar_gen(), and warn_unused_var().

#define lvtbl (parser->parser_lvtbl)

Definition at line 395 of file parse.c.

Referenced by arg_var_gen(), dvar_curr_gen(), dvar_defined_gen(), dyna_in_block_gen(), dyna_pop_1(), dyna_pop_gen(), dyna_push_gen(), internal_id_gen(), local_id_gen(), local_pop_gen(), local_push_gen(), local_tbl_gen(), local_var_gen(), and shadowing_lvar_gen().

#define malloc YYMALLOC

Definition at line 98 of file parse.c.

#define match_op | ( |  | node1,
|  |  | node2
| ) |  | match_op_gen(parser, (node1), (node2))

Definition at line 502 of file parse.c.

Referenced by switch().

#define mixed_error | ( |  | enc1,
|  |  | enc2
| ) |  |

Value:
if (!errbuf) { \
size_t len = sizeof(mixed_msg) - 4; \
len += strlen(rb_enc_name(enc1)); \
len += strlen(rb_enc_name(enc2)); \
errbuf = ALLOCA_N(char, len); \
snprintf(errbuf, len, mixed_msg, \
rb_enc_name(enc1), \
rb_enc_name(enc2)); \
yyerror(errbuf); \
}
strlen
size_t strlen(const char *)
enc2
gz enc2
Definition: zlib.c:2274
rb_enc_name
#define rb_enc_name(enc)
ALLOCA_N
#define ALLOCA_N(type, n)
yyerror
#define yyerror(msg)
Definition: parse.c:365
snprintf
#define snprintf
len
size_t len
Definition: tcltklib.c:3568

Referenced by parser_tokadd_string().

#define mixed_escape | ( |  | beg,
|  |  | enc1,
|  |  | enc2
| ) |  |

Value:
do { \
const char *pos = lex_p; \
lex_p = (beg); \
mixed_error((enc1), (enc2)); \
lex_p = pos; \
} while (0)
enc2
gz enc2
Definition: zlib.c:2274
mixed_error
#define mixed_error(enc1, enc2)
const
#define const
Definition: strftime.c:102
lex_p
#define lex_p
Definition: parse.c:388

Referenced by parser_tokadd_string().

#define nd_func u1.id

Definition at line 591 of file parse.c.

#define nd_nest u3.cnt

Definition at line 598 of file parse.c.

#define nd_paren | ( |  | node | ) | (char)((node)->u2.id >> CHAR_BIT*2)

Definition at line 597 of file parse.c.

Referenced by parser_parse_string().

#define nd_term | ( |  | node | ) | SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)

Definition at line 595 of file parse.c.

Referenced by parser_parse_string().

#define new_args | ( |  | f,
|  |  | o,
|  |  | r,
|  |  | p,
|  |  | t
| ) |  | new_args_gen(parser, (f),(o),(r),(p),(t))

Definition at line 467 of file parse.c.

Referenced by switch().

#define new_args_tail | ( |  | k,
|  |  | kr,
|  |  | b
| ) |  | new_args_tail_gen(parser, (k),(kr),(b))

Definition at line 469 of file parse.c.

Referenced by switch().

#define new_attr_op_assign | ( |  | lhs,
|  |  | type,
|  |  | attr,
|  |  | op,
|  |  | rhs
| ) |  | new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs))

Definition at line 497 of file parse.c.

Referenced by switch().

#define new_bv | ( |  | id | ) | new_bv_gen(parser, (id))

Definition at line 549 of file parse.c.

Referenced by switch().

#define new_const_op_assign | ( |  | lhs,
|  |  | op,
|  |  | rhs
| ) |  | new_const_op_assign_gen(parser, (lhs), (op), (rhs))

Definition at line 499 of file parse.c.

Referenced by switch().

#define new_evstr | ( |  | n | ) | new_evstr_gen(parser,(n))

Definition at line 456 of file parse.c.

Referenced by switch().

#define new_op_assign | ( |  | lhs,
|  |  | op,
|  |  | rhs
| ) |  | new_op_assign_gen(parser, (lhs), (op), (rhs))

Definition at line 542 of file parse.c.

Referenced by switch().

#define NEW_STRTERM | ( |  | func,
|  |  | term,
|  |  | paren
| ) |  | rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)

Definition at line 12619 of file parse.c.

Referenced by parser_here_document(), and parser_yylex().

#define new_yield | ( |  | node | ) | new_yield_gen(parser, (node))

Definition at line 476 of file parse.c.

Referenced by switch().

#define NEWHEAP | ( |  | ) | rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)

Definition at line 17361 of file parse.c.

Referenced by rb_parser_calloc(), rb_parser_malloc(), and rb_parser_realloc().

#define newtok | ( |  | ) | parser_newtok(parser)

Definition at line 11504 of file parse.c.

Referenced by parser_here_document(), parser_heredoc_identifier(), parser_parse_string(), parser_regx_options(), and parser_yylex().

#define nextc | ( |  | ) | parser_nextc(parser)

Definition at line 11502 of file parse.c.

Referenced by parser_here_document(), parser_heredoc_identifier(), parser_parse_string(), parser_prepare(), parser_read_escape(), parser_regx_options(), parser_tokadd_escape(), parser_tokadd_string(), parser_tokadd_utf8(), and parser_yylex().

#define no_digits | ( |  | ) | do {yyerror("numeric literal without digits"); return 0;} while (0)

Referenced by parser_yylex().

#define node_assign | ( |  | node1,
|  |  | node2
| ) |  | node_assign_gen(parser, (node1), (node2))

Definition at line 493 of file parse.c.

Referenced by reg_named_capture_assign_iter(), and switch().

#define NODE_HEREDOC NODE_ARRAY /* 1, 3 to gc */

Definition at line 589 of file parse.c.

Referenced by parser_heredoc_identifier(), and parser_yylex().

#define NODE_STRTERM NODE_ZARRAY /* nothing to gc */

Definition at line 588 of file parse.c.

#define numberof | ( |  | array | ) | (int)(sizeof(array) / sizeof((array)[0]))

Definition at line 92 of file parse.c.

Referenced by parser_magic_comment(), and rb_gc_mark_symbols().

#define op_tbl_count numberof(op_tbl)

Definition at line 16431 of file parse.c.

Referenced by intern_str(), and rb_id2str().

#define paren_nest (parser->parser_paren_nest)

Definition at line 372 of file parse.c.

Referenced by parser_yylex(), and switch().

#define parse_string | ( |  | n | ) | parser_parse_string(parser,(n))

Definition at line 11512 of file parse.c.

Referenced by parser_yylex().

#define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,

Definition at line 720 of file parse.c.

Referenced by block_dup_check_gen(), gettable_gen(), literal_concat0(), new_bv_gen(), no_blockarg(), parser_here_document(), parser_heredoc_identifier(), parser_parse_string(), parser_regx_options(), parser_tokadd_mbchar(), parser_yyerror(), parser_yylex(), rb_backref_error_gen(), reg_compile_gen(), reg_fragment_check_gen(), reg_fragment_setenc_gen(), and switch().

#define PARSER_DEBUG 0

Definition at line 73 of file parse.c.

#define parser_encoding_name | ( |  | ) | (current_enc->name)

Definition at line 11610 of file parse.c.

Referenced by parser_tokadd_mbchar().

#define parser_is_identchar | ( |  | ) | (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))

Definition at line 11614 of file parse.c.

Referenced by parser_heredoc_identifier(), and parser_yylex().

#define parser_isascii | ( |  | ) | ISASCII(*(lex_p-1))

Definition at line 11616 of file parse.c.

Referenced by parser_tokadd_string(), and parser_yylex().

#define parser_mbclen | ( |  | ) | mbclen((lex_p-1),lex_pend,current_enc)

Definition at line 11611 of file parse.c.

#define parser_precise_mbclen | ( |  | ) | rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)

Definition at line 11612 of file parse.c.

Referenced by parser_tokadd_mbchar().

#define parser_warn | ( |  | node,
|  |  | mesg
| ) |  | parser_warn(parser, (node), (mesg))

Definition at line 14680 of file parse.c.

#define parser_warning | ( |  | node,
|  |  | mesg
| ) |  | parser_warning(parser, (node), (mesg))

Definition at line 14673 of file parse.c.

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

Definition at line 12036 of file parse.c.

Referenced by parser_nextc(), parser_prepare(), parser_read_escape(), parser_tokadd_utf8(), and parser_yylex().

#define peek_n | ( |  | c,
|  |  | n
| ) |  | (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])

Definition at line 12037 of file parse.c.

Referenced by parser_yylex().

#define POINTER_P | ( |  | val | ) | ((VALUE)(val) & ~(VALUE)3)

Definition at line 198 of file parse.c.

Referenced by dvar_defined_gen(), dyna_in_block_gen(), local_id_gen(), vtable_add(), vtable_free(), vtable_included(), and vtable_size().

#define pushback | ( |  | c | ) | parser_pushback(parser, (c))

Definition at line 11503 of file parse.c.

Referenced by parser_here_document(), parser_heredoc_identifier(), parser_parse_string(), parser_prepare(), parser_read_escape(), parser_regx_options(), parser_tokadd_escape(), parser_tokadd_string(), and parser_yylex().

#define Qnone 0

Definition at line 684 of file parse.c.

Referenced by switch().

#define rb_backref_error | ( |  | n | ) | rb_backref_error_gen(parser,(n))

Definition at line 491 of file parse.c.

Referenced by switch().

#define rb_compile_error rb_compile_error_with_enc

Definition at line 718 of file parse.c.

#define rb_node_newnode | ( |  | type,
|  |  | a1,
|  |  | a2,
|  |  | a3
| ) |  | node_newnode(parser, (type), (a1), (a2), (a3))

Definition at line 419 of file parse.c.

#define rb_warn0 | ( |  | fmt | ) | rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))

Definition at line 692 of file parse.c.

Referenced by cond0(), and switch().

#define rb_warn4S | ( |  | file,
|  |  | line,
|  |  | fmt,
|  |  | a
| ) |  | rb_compile_warn((file), (line), (fmt), (a))

Definition at line 695 of file parse.c.

Referenced by warn_unused_var().

#define rb_warnI | ( |  | fmt,
|  |  | a
| ) |  | rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))

Definition at line 693 of file parse.c.

Referenced by parser_yylex().

#define rb_warning0 | ( |  | fmt | ) | rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))

Definition at line 696 of file parse.c.

Referenced by arg_ambiguous_gen(), parser_yylex(), and value_expr_gen().

#define rb_warningS | ( |  | fmt,
|  |  | a
| ) |  | rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))

Definition at line 697 of file parse.c.

Referenced by parser_yylex(), reg_named_capture_assign_iter(), and shadowing_lvar_gen().

#define rb_warnS | ( |  | fmt,
|  |  | a
| ) |  | rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))

Definition at line 694 of file parse.c.

Referenced by void_expr_gen().

#define RE_OPTION_ARG_ENCODING_NONE 32

Definition at line 586 of file parse.c.

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

Definition at line 582 of file parse.c.

Referenced by parser_regx_options().

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

Definition at line 583 of file parse.c.

Referenced by reg_fragment_setenc_gen().

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

Definition at line 584 of file parse.c.

Referenced by reg_fragment_setenc_gen().

#define RE_OPTION_ENCODING_SHIFT 8

Definition at line 581 of file parse.c.

#define RE_OPTION_MASK 0xff

Definition at line 585 of file parse.c.

Referenced by reg_compile_gen(), and switch().

#define RE_OPTION_ONCE (1<<16)

Definition at line 580 of file parse.c.

Referenced by parser_regx_options(), and switch().

#define read_escape | ( |  | flags,
|  |  | e
| ) |  | parser_read_escape(parser, (flags), (e))

Definition at line 11508 of file parse.c.

Referenced by parser_read_escape(), parser_tokadd_string(), and parser_yylex().

#define realloc YYREALLOC

Definition at line 99 of file parse.c.

#define reduce_nodes | ( |  | n | ) | reduce_nodes_gen(parser,(n))

Definition at line 438 of file parse.c.

Referenced by switch().

#define reg_compile | ( |  | str,
|  |  | options
| ) |  | reg_compile_gen(parser, (str), (options))

Definition at line 510 of file parse.c.

Referenced by switch().

#define reg_fragment_check | ( |  | str,
|  |  | options
| ) |  | reg_fragment_check_gen(parser, (str), (options))

Definition at line 514 of file parse.c.

Referenced by switch().

#define reg_fragment_setenc | ( |  | str,
|  |  | options
| ) |  | reg_fragment_setenc_gen(parser, (str), (options))

Definition at line 512 of file parse.c.

Referenced by reg_compile_gen(), and reg_fragment_check_gen().

#define reg_named_capture_assign | ( |  | regexp,
|  |  | match
| ) |  | reg_named_capture_assign_gen(parser,(regexp),(match))

Definition at line 516 of file parse.c.

Referenced by switch().

#define REGISTER_SYMID | ( |  | id,
|  |  | name
| ) |  | register_symid((id), (name), strlen(name), enc)

Definition at line 106 of file parse.c.

#define regx_options | ( |  | ) | parser_regx_options(parser)

Definition at line 11510 of file parse.c.

Referenced by parser_parse_string().

#define ret_args | ( |  | node | ) | ret_args_gen(parser, (node))

Definition at line 473 of file parse.c.

Referenced by switch().

#define ripper_flush | ( |  | p | ) | (void)(p)

Definition at line 11543 of file parse.c.

Referenced by parser_heredoc_identifier(), parser_heredoc_restore(), and parser_nextc().

#define ruby__end__seen (parser->parser_ruby__end__seen)

Definition at line 396 of file parse.c.

Referenced by parser_yylex(), and rb_parser_end_seen_p().

#define ruby_coverage (parser->coverage)

Definition at line 406 of file parse.c.

Referenced by lex_getline(), and yycompile0().

#define ruby_debug_lines (parser->debug_lines)

Definition at line 405 of file parse.c.

Referenced by lex_getline(), parser_set_encode(), and yycompile0().

#define ruby_eval_tree (parser->parser_eval_tree)

Definition at line 403 of file parse.c.

Referenced by switch(), and yycompile0().

#define ruby_eval_tree_begin (parser->parser_eval_tree_begin)

Definition at line 404 of file parse.c.

Referenced by switch(), and yycompile0().

#define ruby_sourcefile (parser->parser_ruby_sourcefile)

Definition at line 398 of file parse.c.

#define ruby_sourceline (parser->parser_ruby_sourceline)

Definition at line 397 of file parse.c.

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

Definition at line 11522 of file parse.c.

Referenced by parser_yylex().

#define set_yylval_literal | ( |  | x | ) | (yylval.node = NEW_LIT(x))

Definition at line 11524 of file parse.c.

Referenced by parser_yylex().

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

Definition at line 11523 of file parse.c.

Referenced by parser_yylex().

#define set_yylval_node | ( |  | x | ) | (yylval.node = (x))

Definition at line 11525 of file parse.c.

Referenced by parser_yylex().

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

Definition at line 11521 of file parse.c.

Referenced by parser_parse_string().

#define set_yylval_str | ( |  | x | ) | (yylval.node = NEW_STR(x))

Definition at line 11520 of file parse.c.

Referenced by parser_here_document(), parser_parse_string(), and parser_yylex().

#define shadowing_lvar | ( |  | name | ) | shadowing_lvar_gen(parser, (name))

Definition at line 547 of file parse.c.

Referenced by formal_argument_gen(), new_bv_gen(), and switch().

#define SIGN_EXTEND | ( |  | x,
|  |  | n
| ) |  | (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))

Definition at line 590 of file parse.c.

#define SIGN_EXTEND_CHAR | ( |  | c | ) | ((((unsigned char)(c)) ^ 128) - 128)

Definition at line 11607 of file parse.c.

#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))
idx
int idx
Definition: tcltklib.c:9716
BIT
#define BIT(c, idx)
Definition: parse.c:12645

Definition at line 12646 of file parse.c.

#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))))
RSTRING_PTR
#define RSTRING_PTR(str)
rb_str_resize
VALUE rb_str_resize(VALUE, long)
Definition: string.c:1853
void
VP_EXPORT void
Definition: bigdecimal.c:5083
MEMCPY
#define MEMCPY(p1, p2, type, n)
STR_NEW
#define STR_NEW(p, n)
Definition: parse.c:357

Referenced by parser_magic_comment().

#define STR_FUNC_ESCAPE 0x01

Definition at line 11999 of file parse.c.

Referenced by parser_tokadd_string().

#define STR_FUNC_EXPAND 0x02

Definition at line 12000 of file parse.c.

Referenced by parser_here_document(), parser_parse_string(), and parser_tokadd_string().

#define STR_FUNC_INDENT 0x20

Definition at line 12004 of file parse.c.

Referenced by parser_here_document(), and parser_heredoc_identifier().

#define STR_FUNC_QWORDS 0x08

Definition at line 12002 of file parse.c.

Referenced by parser_parse_string(), and parser_tokadd_string().

#define STR_FUNC_REGEXP 0x04

Definition at line 12001 of file parse.c.

Referenced by parser_parse_string(), parser_str_new(), and parser_tokadd_string().

#define STR_FUNC_SYMBOL 0x10

Definition at line 12003 of file parse.c.

Referenced by parser_tokadd_string().

#define STR_NEW | ( |  | p,
|  |  | n
| ) |  | rb_enc_str_new((p),(n),current_enc)

Definition at line 357 of file parse.c.

Referenced by parser_here_document(), and parser_heredoc_identifier().

#define STR_NEW0 | ( |  | ) | rb_enc_str_new(0,0,current_enc)

Definition at line 358 of file parse.c.

Referenced by switch(), and yycompile0().

#define STR_NEW2 | ( |  | p | ) | rb_enc_str_new((p),strlen(p),current_enc)

Definition at line 359 of file parse.c.

Referenced by parser_yyerror().

#define STR_NEW3 | ( |  | p,
|  |  | n,
|  |  | e,
|  |  | func
| ) |  | parser_str_new((p),(n),(e),(func),current_enc)

Definition at line 360 of file parse.c.

Referenced by parser_here_document(), parser_parse_string(), and parser_yylex().

#define subnodes | ( |  | n1,
|  |  | n2
| ) |  |

Value:
((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
(!node->n2) ? (body = &node->n1, 1) : \
(reduce_nodes(&node->n1), body = &node->n2, 1))
reduce_nodes
#define reduce_nodes(n)
Definition: parse.c:438

Referenced by reduce_nodes_gen().

#define tok | ( |  | ) | tokenbuf

Definition at line 12108 of file parse.c.

Referenced by parser_here_document(), parser_heredoc_identifier(), parser_parse_string(), parser_regx_options(), and parser_yylex().

#define tok_hex | ( |  | numlen | ) | parser_tok_hex(parser, (numlen))

Definition at line 11507 of file parse.c.

Referenced by parser_read_escape(), and parser_tokadd_escape().

#define TOK_INTERN | ( |  | mb | ) | rb_intern3(tok(), toklen(), current_enc)

Definition at line 362 of file parse.c.

Referenced by parser_yylex().

#define tokadd | ( |  | c | ) | parser_tokadd(parser, (c))

Definition at line 11506 of file parse.c.

Referenced by parser_here_document(), parser_heredoc_identifier(), parser_parse_string(), parser_regx_options(), parser_tokadd_escape(), parser_tokadd_mbchar(), parser_tokadd_string(), parser_tokadd_utf8(), and parser_yylex().

#define tokadd_escape | ( |  | e | ) | parser_tokadd_escape(parser, (e))

Definition at line 11509 of file parse.c.

Referenced by parser_tokadd_string().

#define tokadd_mbchar | ( |  | c | ) | parser_tokadd_mbchar(parser, (c))

Definition at line 12470 of file parse.c.

Referenced by parser_heredoc_identifier(), parser_tokadd_string(), and parser_yylex().

#define tokadd_string | ( |  | f,
|  |  | t,
|  |  | p,
|  |  | n,
|  |  | e
| ) |  | parser_tokadd_string(parser,(f),(t),(p),(n),(e))

Definition at line 11511 of file parse.c.

Referenced by parser_here_document(), and parser_parse_string().

#define tokaddmbc | ( |  | c,
|  |  | enc
| ) |  | parser_tokaddmbc(parser, (c), (enc))

Definition at line 11513 of file parse.c.

Referenced by parser_tokadd_utf8(), and parser_yylex().

#define tokcopy | ( |  | n | ) | memcpy(tokspace(n), lex_p - (n), (n))

Definition at line 12164 of file parse.c.

Referenced by parser_tokadd_escape(), parser_tokadd_mbchar(), and parser_tokadd_utf8().

#define token_info_pop | ( |  | token | ) | (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)

Definition at line 736 of file parse.c.

#define token_info_push | ( |  | token | ) | (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)

Definition at line 735 of file parse.c.

#define tokenbuf (parser->parser_tokenbuf)

Definition at line 380 of file parse.c.

Referenced by parser_newtok(), parser_tokadd(), and parser_tokspace().

#define tokfix | ( |  | ) | (tokenbuf[tokidx]='\0')

Definition at line 12107 of file parse.c.

Referenced by parser_heredoc_identifier(), parser_parse_string(), parser_regx_options(), and parser_yylex().

#define tokidx (parser->parser_tokidx)

Definition at line 381 of file parse.c.

Referenced by parser_newtok(), parser_tokadd(), parser_tokspace(), and parser_yylex().

#define toklast | ( |  | ) | (tokidx>0?tokenbuf[tokidx-1]:0)

Definition at line 12110 of file parse.c.

Referenced by parser_yylex().

#define toklen | ( |  | ) | tokidx

Definition at line 12109 of file parse.c.

Referenced by parser_here_document(), parser_heredoc_identifier(), parser_parse_string(), parser_regx_options(), and parser_yylex().

#define tokline (parser->parser_tokline)

Definition at line 383 of file parse.c.

Referenced by gettable_gen(), parser_newtok(), and switch().

#define toksiz (parser->parser_toksiz)

Definition at line 382 of file parse.c.

Referenced by parser_newtok(), parser_tokadd(), and parser_tokspace().

#define tokspace | ( |  | n | ) | parser_tokspace(parser, (n))

Definition at line 11505 of file parse.c.

Referenced by parser_tokaddmbc().

#define value_expr | ( |  | node | ) | value_expr_gen(parser, (node) = remove_begin(node))

Definition at line 432 of file parse.c.

Referenced by call_bin_op_gen(), call_uni_op_gen(), logop_gen(), match_op_gen(), range_op(), switch(), and value_expr_gen().

#define void_expr | ( |  | node | ) | void_expr0((node) = remove_begin(node))

Definition at line 434 of file parse.c.

Referenced by switch().

#define void_expr0 | ( |  | node | ) | void_expr_gen(parser, (node))

Definition at line 433 of file parse.c.

Referenced by void_stmts_gen().

#define void_stmts | ( |  | node | ) | void_stmts_gen(parser, (node))

Definition at line 436 of file parse.c.

Referenced by switch().

#define VTBL_DEBUG 0

Definition at line 211 of file parse.c.

Referenced by vtable_add(), vtable_alloc(), and vtable_free().

#define warn_balanced | ( |  | op,
|  |  | syn
| ) |  |

Value:
((void) \
(!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
space_seen && !ISSPACE(c) && \
(ambiguous_operator(op, syn), 0)))
ambiguous_operator
#define ambiguous_operator(op, syn)
Definition: parse.c:13321
void
VP_EXPORT void
Definition: bigdecimal.c:5083
IS_lex_state_for
#define IS_lex_state_for(x, ls)
Definition: parse.c:157
c
VpDivd * c
Definition: bigdecimal.c:1205
ISSPACE
#define ISSPACE(c)
Definition: ruby.h:1632

Definition at line 13327 of file parse.c.

#define was_bol | ( |  | ) | (lex_p == lex_pbeg + 1)

Definition at line 12105 of file parse.c.

Referenced by parser_here_document(), and parser_yylex().

#define whole_match_p | ( |  | e,
|  |  | l,
|  |  | i
| ) |  | parser_whole_match_p(parser,(e),(l),(i))

Definition at line 11517 of file parse.c.

Referenced by parser_here_document(), and parser_yylex().

#define YY_ | ( |  | msgid | ) | msgid

Definition at line 974 of file parse.c.

#define YY_LOCATION_PRINT | ( |  | File,
|  |  | Loc
| ) |  | ((void) 0)

Definition at line 4454 of file parse.c.

#define YY_REDUCE_PRINT | ( |  | Rule | ) |

Value:
do { \
if (yydebug) \
yy_reduce_print (yyvsp, Rule, parser); \
} while (YYID (0))
yydebug
#define yydebug
Definition: parse.c:400
YYID
#define YYID(n)
Definition: ripper.c:987
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186
parser
struct parser_params * parser
Definition: ripper.c:4507
yyvsp
static void YYSTYPE * yyvsp
Definition: parse.c:4596

Definition at line 4617 of file parse.c.

#define YY_STACK_PRINT | ( |  | Bottom,
|  |  | Top
| ) |  |

Value:
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (YYID (0))
yydebug
#define yydebug
Definition: parse.c:400
YYID
#define YYID(n)
Definition: ripper.c:987
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186

Definition at line 4578 of file parse.c.

#define YY_SYMBOL_PRINT | ( |  | Title,
|  |  | Type,
|  |  | Value,
|  |  | Location
| ) |  |

Value:
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yy_symbol_print (stderr, \
Type, Value, parser); \
YYFPRINTF (stderr, "\n"); \
} \
} while (YYID (0))
yydebug
#define yydebug
Definition: parse.c:400
YYID
#define YYID(n)
Definition: ripper.c:987
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186
parser
struct parser_params * parser
Definition: ripper.c:4507
YYFPRINTF
#define YYFPRINTF
Definition: ripper.c:4471

Definition at line 4480 of file parse.c.

#define YYABORT goto yyabortlab

Definition at line 4383 of file parse.c.

Referenced by for(), and if().

#define YYACCEPT goto yyacceptlab

Definition at line 4382 of file parse.c.

#define YYBACKUP | ( |  | Token,
|  |  | Value
| ) |  |

Value:
do \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
{ \
parser_yyerror (parser, YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
YY_
#define YY_(msgid)
Definition: ripper.c:974
YYPOPSTACK
#define YYPOPSTACK(N)
Definition: ripper.c:5014
YYID
#define YYID(n)
Definition: ripper.c:987
while
while(a->frac[0]/shift==0)
Definition: bigdecimal.c:5117
yylval
#define yylval
Definition: ripper.c:11583
yylen
return yylen
Definition: ripper.c:4673
YYERROR
#define YYERROR
Definition: parse.c:4384
parser_yyerror
static int parser_yyerror(struct parser_params *, const char *)
Definition: parse.c:11693
YYEMPTY
#define YYEMPTY
Definition: parse.c:4379
else
else
Definition: bigdecimal.c:1192
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186
yybackup
goto yybackup
Definition: ripper.c:5118
parser
struct parser_params * parser
Definition: ripper.c:4507
yychar
yychar
Definition: ripper.c:5030

Definition at line 4404 of file parse.c.

#define YYBISON 1

Definition at line 44 of file parse.c.

#define YYBISON_VERSION "2.5"

Definition at line 47 of file parse.c.

#define YYCALLOC | ( |  | nelem,
|  |  | size
| ) |  | rb_parser_calloc(parser, (nelem), (size))

Definition at line 96 of file parse.c.

#define YYCASE_ | ( |  | N,
|  |  | S
| ) |  |

Value:
case N: \
yyformat = S; \
break
S
static unsigned char S[8][64]
Definition: crypt.c:382
N
#define N
Definition: lgamma_r.c:20

Referenced by yysyntax_error().

#define yyclearin (yychar = YYEMPTY)

Definition at line 4378 of file parse.c.

#define YYCOPY | ( |  | To,
|  |  | From,
|  |  | Count
| ) |  |

Value:
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (YYID (0))
YYID
#define YYID(n)
Definition: ripper.c:987
yyi
int yyi
Definition: ripper.c:4600
while
while(a->frac[0]/shift==0)
Definition: bigdecimal.c:5117
for
for(v/=shifter=1)
Definition: bigdecimal.c:5677
YYSIZE_T
#define YYSIZE_T
Definition: parse.c:960

Definition at line 1121 of file parse.c.

#define YYCOPY_NEEDED 1

Definition at line 1093 of file parse.c.

#define YYDEBUG 1

Definition at line 75 of file parse.c.

#define yydebug (parser->parser_yydebug)

Definition at line 400 of file parse.c.

#define YYDPRINTF | ( |  | Args | ) |

Value:
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (YYID (0))
yydebug
#define yydebug
Definition: parse.c:400
YYID
#define YYID(n)
Definition: ripper.c:987
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186
YYFPRINTF
#define YYFPRINTF
Definition: ripper.c:4471

Definition at line 4474 of file parse.c.

#define YYEMPTY (-2)

Definition at line 4379 of file parse.c.

Referenced by if(), and yysyntax_error().

#define YYEOF 0

Definition at line 4380 of file parse.c.

Referenced by if().

#define YYERRCODE 256

Definition at line 4422 of file parse.c.

#define yyerrok (yyerrstatus = 0)

Definition at line 4377 of file parse.c.

Referenced by switch().

#define yyerror | ( |  | msg | ) | parser_yyerror(parser, (msg))

Definition at line 365 of file parse.c.

Referenced by assign_in_cond(), formal_argument_gen(), parser_read_escape(), parser_tok_hex(), parser_tokadd_escape(), parser_tokadd_utf8(), parser_yylex(), shadowing_lvar_gen(), switch(), and value_expr_gen().

#define YYERROR goto yyerrorlab

Definition at line 4384 of file parse.c.

#define YYERROR_VERBOSE 1

Definition at line 754 of file parse.c.

#define YYERROR_VERBOSE 1

Definition at line 754 of file parse.c.

#define YYFAIL goto yyerrlab

Definition at line 4394 of file parse.c.

#define YYFINAL 3

Definition at line 1134 of file parse.c.

#define YYFPRINTF fprintf

Definition at line 4471 of file parse.c.

#define YYFREE | ( |  | ptr | ) | rb_parser_free(parser, (ptr))

Definition at line 97 of file parse.c.

#define YYID | ( |  | n | ) | (n)

Definition at line 987 of file parse.c.

#define YYINITDEPTH 200

Definition at line 4638 of file parse.c.

#define YYLAST 11084

Definition at line 1136 of file parse.c.

Referenced by for(), and yysyntax_error().

#define YYLEX yylex (&yylval, parser)

Definition at line 4463 of file parse.c.

Referenced by if().

#define YYLLOC_DEFAULT | ( |  | Current,
|  |  | Rhs,
|  |  | N
| ) |  |

Value:
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
N
#define N
Definition: lgamma_r.c:20
YYRHSLOC
#define YYRHSLOC(Rhs, K)
Definition: parse.c:4429
YYID
#define YYID(n)
Definition: ripper.c:987
while
while(a->frac[0]/shift==0)
Definition: bigdecimal.c:5117
else
else
Definition: bigdecimal.c:1192
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186

Definition at line 4431 of file parse.c.

#define YYLSP_NEEDED 0

Definition at line 62 of file parse.c.

#define yylval (*((YYSTYPE*)(parser->parser_yylval)))

Definition at line 11493 of file parse.c.

#define yylval_id | ( |  | ) | (yylval.id)

Definition at line 11526 of file parse.c.

#define YYMALLOC | ( |  | size | ) | rb_parser_malloc(parser, (size))

Definition at line 94 of file parse.c.

#define YYMAXDEPTH 10000

Definition at line 4649 of file parse.c.

Referenced by if().

#define YYMAXUTOK 352

Definition at line 1149 of file parse.c.

#define YYNNTS 198

Definition at line 1141 of file parse.c.

#define YYNRULES 619

Definition at line 1143 of file parse.c.

#define YYNSTATES 1056

Definition at line 1145 of file parse.c.

#define YYNTOKENS 142

Definition at line 1139 of file parse.c.

Referenced by yysyntax_error().

#define YYPACT_NINF -810

Definition at line 1893 of file parse.c.

#define yypact_value_is_default | ( |  | yystate | ) | ((yystate) == (-810))

Definition at line 3146 of file parse.c.

Referenced by for(), and yysyntax_error().

#define yyparse ruby_yyparse

Definition at line 416 of file parse.c.

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

Definition at line 5014 of file parse.c.

#define YYPULL 1

Definition at line 59 of file parse.c.

#define YYPURE 1

Definition at line 53 of file parse.c.

#define YYPUSH 0

Definition at line 56 of file parse.c.

#define YYREALLOC | ( |  | ptr,
|  |  | size
| ) |  | rb_parser_realloc(parser, (ptr), (size))

Definition at line 95 of file parse.c.

#define YYRECOVERING | ( |  | ) | (!!yyerrstatus)

Definition at line 4402 of file parse.c.

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

Definition at line 4429 of file parse.c.

#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)

Definition at line 964 of file parse.c.

#define YYSIZE_T unsigned int

Definition at line 960 of file parse.c.

Referenced by if(), yysyntax_error(), and yytnamerr().

#define YYSKELETON_NAME "yacc.c"

Definition at line 50 of file parse.c.

#define YYSTACK_ALLOC YYMALLOC

Definition at line 1042 of file parse.c.

Referenced by if().

#define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM

Definition at line 1045 of file parse.c.

Referenced by yysyntax_error().

#define YYSTACK_BYTES | ( |  | N | ) |

Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
YYSTYPE
union YYSTYPE YYSTYPE
N
#define N
Definition: lgamma_r.c:20
YYSTACK_GAP_MAXIMUM
#define YYSTACK_GAP_MAXIMUM
Definition: parse.c:1085
yytype_int16
short int yytype_int16
Definition: ripper.c:947

Definition at line 1089 of file parse.c.

Referenced by if().

#define YYSTACK_FREE YYFREE

Definition at line 1043 of file parse.c.

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

Definition at line 1085 of file parse.c.

#define YYSTACK_RELOCATE | ( |  | Stack_alloc,
|  |  | Stack
| ) |  |

Value:
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (YYID (0))
YYCOPY
#define YYCOPY(To, From, Count)
Definition: parse.c:1121
YYSTACK_GAP_MAXIMUM
#define YYSTACK_GAP_MAXIMUM
Definition: parse.c:1085
YYID
#define YYID(n)
Definition: ripper.c:987
while
while(a->frac[0]/shift==0)
Definition: bigdecimal.c:5117
YYSIZE_T
#define YYSIZE_T
Definition: parse.c:960
yystacksize
YYSIZE_T yystacksize
Definition: ripper.c:4997

Definition at line 1100 of file parse.c.

Referenced by if().

#define YYSTACK_USE_ALLOCA 0

Definition at line 77 of file parse.c.

#define YYSYNTAX_ERROR

Value:
yysyntax_error (&yymsg_alloc, &yymsg, \
yyssp, yytoken)
yyssp
yytype_int16 * yyssp
Definition: ripper.c:4990
yytoken
int yytoken
Definition: ripper.c:5002
yymsg_alloc
YYSIZE_T yymsg_alloc
Definition: ripper.c:5011
yymsg
static void const char * yymsg
Definition: parse.c:4903
yysyntax_error
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
Definition: parse.c:4763

Referenced by if().

#define YYTABLE_NINF -620

Definition at line 2032 of file parse.c.

#define yytable_value_is_error | ( |  | yytable_value | ) | ((yytable_value) == (-620))

Definition at line 3149 of file parse.c.

Referenced by if(), and yysyntax_error().

#define YYTERROR 1

Definition at line 4421 of file parse.c.

Referenced by for(), and yysyntax_error().

#define YYTOKEN_TABLE 0

Definition at line 761 of file parse.c.

#define YYTRANSLATE | ( |  | YYX | ) | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

Definition at line 1151 of file parse.c.

#define YYUNDEFTOK 2

Definition at line 1148 of file parse.c.

#define YYUSE | ( |  | e | ) | ((void) (e))

Definition at line 980 of file parse.c.

## Typedef Documentation

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

Definition at line 13070 of file parse.c.

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

Definition at line 13071 of file parse.c.

typedef VALUE stack_type

Definition at line 164 of file parse.c.

typedef struct token_info token_info

typedef short int yytype_int16

Definition at line 947 of file parse.c.

typedef short int yytype_int8

Definition at line 935 of file parse.c.

typedef unsigned short int yytype_uint16

Definition at line 941 of file parse.c.

typedef unsigned char yytype_uint8

Definition at line 926 of file parse.c.

## Enumeration Type Documentation

enum 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_VALUE_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_VALUE_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_VALUE_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_VALUE_bit |
EXPR_MAX_STATE |

Definition at line 125 of file parse.c.

enum 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 |
EXPR_BEG_ANY |
EXPR_ARG_ANY |
EXPR_END_ANY |
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_BEG_ANY |
EXPR_ARG_ANY |
EXPR_END_ANY |
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_BEG_ANY |
EXPR_ARG_ANY |
EXPR_END_ANY |
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_BEG_ANY |
EXPR_ARG_ANY |
EXPR_END_ANY |

Definition at line 140 of file parse.c.

enum string_type

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

Definition at line 12006 of file parse.c.

## Function Documentation

static void arg_ambiguous_gen | ( | struct parser_params * | parser | ) |
| static

Definition at line 12977 of file parse.c.

References arg_ambiguous, dispatch0(), and rb_warning0.

static NODE * arg_append_gen | ( | struct parser_params * | parser,
|  | NODE * | node1,
|  | NODE * | node2
| ) |  |
| static

Definition at line 15229 of file parse.c.

References arg_append, list_append, nd_set_type, nd_type, NEW_ARGSPUSH, NEW_LIST, NODE_ARGSCAT, NODE_ARGSPUSH, NODE_ARRAY, and NODE_BLOCK_PASS.

static NODE * arg_blk_pass | ( | NODE * | node1,
|  | NODE * | node2
| ) |  |
| static

Definition at line 15793 of file parse.c.

Referenced by switch().

static NODE * arg_concat_gen | ( | struct parser_params * | parser,
|  | NODE * | node1,
|  | NODE * | node2
| ) |  |
| static

Definition at line 15204 of file parse.c.

References arg_concat, list_concat, nd_set_type, nd_type, NEW_ARGSCAT, NEW_LIST, NODE_ARGSCAT, NODE_ARGSPUSH, NODE_ARRAY, and NODE_BLOCK_PASS.

static int arg_var_gen | ( | struct parser_params * | parser,
|  | ID | id
| ) |  |
| static

Definition at line 16038 of file parse.c.

References lvtbl, vtable_add(), and vtable_size().

static NODE * aryset_gen | ( | struct parser_params * | parser,
|  | NODE * | recv,
|  | NODE * | idx
| ) |  |
| static

Definition at line 15159 of file parse.c.

References nd_type, NEW_ATTRASGN, NODE_SELF, and tASET.

static int assign_in_cond | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15546 of file parse.c.

References is_static_content(), nd_type, NODE_DASGN, NODE_DASGN_CURR, NODE_GASGN, NODE_IASGN, NODE_LASGN, NODE_MASGN, parser_warn, and yyerror.

Referenced by cond0().

static NODE* assignable_gen | ( | struct parser_params * | ,
|  | ID | ,
|  | NODE * |
| ) |  |
| static

static NODE * attrset_gen | ( | struct parser_params * | parser,
|  | NODE * | recv,
|  | ID | id
| ) |  |
| static

Definition at line 15183 of file parse.c.

References nd_type, NEW_ATTRASGN, NODE_SELF, and rb_id_attrset().

static NODE * block_append_gen | ( | struct parser_params * | parser,
|  | NODE * | head,
|  | NODE * | tail
| ) |  |
| static

Definition at line 14683 of file parse.c.

References end, fixpos(), head, nd_type, NEW_BLOCK, NODE_BLOCK, NODE_BREAK, NODE_FALSE, NODE_LIT, NODE_NEXT, NODE_NIL, NODE_REDO, NODE_RETRY, NODE_RETURN, NODE_SELF, NODE_STR, NODE_TRUE, parser_warning, RTEST, ruby_verbose, and tail.

static void block_dup_check_gen | ( | struct parser_params * | parser,
|  | NODE * | node1,
|  | NODE * | node2
| ) |  |
| static

Definition at line 15167 of file parse.c.

References compile_error, nd_type, NODE_BLOCK_PASS, and PARSER_ARG.

static NODE * call_bin_op_gen | ( | struct parser_params * | parser,
|  | NODE * | recv,
|  | ID | id,
|  | NODE * | arg1
| ) |  |
| static

Definition at line 14902 of file parse.c.

References NEW_CALL, NEW_LIST, and value_expr.

static NODE * call_uni_op_gen | ( | struct parser_params * | parser,
|  | NODE * | recv,
|  | ID | id
| ) |  |
| static

Definition at line 14910 of file parse.c.

References NEW_CALL, and value_expr.

static int comment_at_top | ( | struct parser_params * | parser | ) |
| static

Definition at line 13058 of file parse.c.

References parser_params::has_shebang, ISSPACE, lex_p, lex_pbeg, and parser_params::line_count.

Referenced by magic_comment_encoding(), and parser_yylex().

static NODE * cond0 | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15653 of file parse.c.

References assign_in_cond(), e, e_option_supplied(), literal_node(), nd_set_type, nd_type, NEW_GVAR, NEW_MATCH2, NODE_AND, NODE_DOT2, NODE_DOT3, NODE_DREGX, NODE_DREGX_ONCE, NODE_DSTR, NODE_DSYM, NODE_EVSTR, NODE_FLIP2, NODE_FLIP3, NODE_LIT, NODE_MATCH, NODE_OR, NODE_STR, parser_warn, parser_warning, range_op(), rb_intern, RB_TYPE_P, rb_warn0, RTEST, ruby_verbose, T_REGEXP, warn_unless_e_option(), and warning_unless_e_option().

Referenced by cond_gen(), and range_op().

static NODE * cond_gen | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15710 of file parse.c.

References cond0().

static VALUE coverage | ( | const char * | f,
|  | int | n
| ) |  |
| static

Definition at line 11775 of file parse.c.

References i, klass, n, Qnil, RARRAY, RARRAY_PTR(), rb_ary_new2(), rb_external_str_new_with_enc(), rb_filesystem_encoding(), rb_get_coverages(), rb_hash_aset(), RBASIC, RTEST, and strlen().

Referenced by yycompile0().

static VALUE debug_lines | ( | const char * | f | ) |
| static

Definition at line 11758 of file parse.c.

References CONST_ID, hash, rb_ary_new(), rb_cObject, rb_const_defined_at(), rb_const_get_at(), rb_external_str_new_with_enc(), rb_filesystem_encoding(), rb_hash_aset(), RB_TYPE_P, strlen(), and T_HASH.

Referenced by yycompile0().

static void dispose_string | ( | VALUE | str | ) |
| static

Definition at line 12450 of file parse.c.

References rb_gc_force_recycle(), and rb_str_free().

Referenced by parser_here_document(), and parser_heredoc_restore().

static NODE * dsym_node_gen | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15851 of file parse.c.

References ID2SYM, idNULL, nd_set_type, nd_type, NEW_LIST, NEW_LIT, NEW_NODE, NODE_DSTR, NODE_DSYM, NODE_LIT, NODE_STR, Qnil, and rb_intern_str.

static int dvar_curr_gen | ( | struct parser_params * | parser,
|  | ID | id
| ) |  |
| static

Definition at line 16163 of file parse.c.

References lvtbl, and vtable_included().

static int dvar_defined_gen | ( | struct parser_params * | parser,
|  | ID | id,
|  | int | get
| ) |  |
| static

Definition at line 16132 of file parse.c.

References args, DVARS_INHERIT, i, LVAR_USED, lvtbl, POINTER_P, vtable::prev, rb_dvar_defined(), vtable::tbl, and vtable_included().

static int dyna_in_block_gen | ( | struct parser_params * | parser | ) |
| static

Definition at line 16126 of file parse.c.

References DVARS_TOPSCOPE, lvtbl, and POINTER_P.

static void dyna_pop_1 | ( | struct parser_params * | parser | ) |
| static

Definition at line 16094 of file parse.c.

References lvtbl, tmp, vtable_free(), and warn_unused_var().

Referenced by dyna_pop_gen().

static void dyna_pop_gen | ( | struct parser_params * | parser,
|  | const struct vtable * | lvargs
| ) |  |
| static

Definition at line 16112 of file parse.c.

References dyna_pop_1(), lvtbl, and xfree.

static struct vtable * dyna_push_gen | ( | struct parser_params * | parser | ) |
| static

Definition at line 16083 of file parse.c.

References lvtbl, and vtable_alloc().

static int e_option_supplied | ( | struct parser_params * | parser | ) |
| static

Definition at line 11792 of file parse.c.

References ruby_sourcefile.

Referenced by cond0(), local_push_gen(), warn_unless_e_option(), warning_unless_e_option(), and yycompile0().

static NODE * evstr2dstr_gen | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 14879 of file parse.c.

References list_append, nd_type, NEW_DSTR, NODE_EVSTR, and Qnil.

static void fixpos | ( | NODE * | node,
|  | NODE * | orig
| ) |  |
| static

Definition at line 14660 of file parse.c.

References nd_line, and nd_set_line.

static void fixup_nodes | ( | NODE ** | rootnode | ) |
| static

Definition at line 15585 of file parse.c.

References head, nd_set_type, nd_type, NODE_DOT2, NODE_DOT3, NODE_LIT, rb_gc_force_recycle(), rb_range_new(), type, and val.

Referenced by switch().

for | ( | ;yybottom<=yytop;yybottom++ |  | ) |

Definition at line 4570 of file parse.c.

References yybottom, and YYFPRINTF.

for | ( |  | ) |

Definition at line 4607 of file parse.c.

References YYFPRINTF.

for | ( | ;; |  | ) |

Definition at line 11394 of file parse.c.

References YY_STACK_PRINT, YYABORT, yydestruct(), YYLAST, yyn, yypact_value_is_default, YYPOPSTACK, yyssp, yystate, and YYTERROR.

static ID formal_argument_gen | ( | struct parser_params * | parser,
|  | ID | lhs
| ) |  |
| static

Definition at line 12988 of file parse.c.

References is_local_id, lhs, shadowing_lvar, and yyerror.

static NODE * gettable_gen | ( | struct parser_params * | parser,
|  | ID | id
| ) |  |
| static

Definition at line 14951 of file parse.c.

References compile_error, current_enc, dvar_defined, dyna_in_block, ID_CLASS, ID_CONST, ID_GLOBAL, ID_INSTANCE, ID_LOCAL, id_type, INT2FIX, keyword__ENCODING__, keyword__FILE__, keyword__LINE__, keyword_false, keyword_nil, keyword_self, keyword_true, local_id, NEW_CONST, NEW_CVAR, NEW_DVAR, NEW_FALSE, NEW_GVAR, NEW_IVAR, NEW_LIT, NEW_LVAR, NEW_NIL, NEW_SELF, NEW_STR, NEW_TRUE, NEW_VCALL, PARSER_ARG, rb_enc_from_encoding(), rb_external_str_new_with_enc(), rb_filesystem_encoding(), rb_id2name(), ruby_sourcefile, strlen(), and tokline.

if | ( | yyss+yystacksize-1<= | yyssp | ) |

Definition at line 5052 of file parse.c.

References YY_, YYABORT, YYDPRINTF, YYMAXDEPTH, YYSIZE_T, yyss, yyalloc::yyss_alloc, YYSTACK_ALLOC, YYSTACK_BYTES, YYSTACK_FREE, YYSTACK_RELOCATE, yyvs, and yyalloc::yyvs_alloc.

if | ( | yychar | = `= YYEMPTY` | ) |

Definition at line 5136 of file parse.c.

References YYDPRINTF, and YYLEX.

if | ( | yychar<= | YYEOF | ) |

Definition at line 5142 of file parse.c.

References YYDPRINTF, and YYEOF.

if | ( | yyn<= | 0 | ) |

Definition at line 5159 of file parse.c.

References yyerrlab, yyn, yyreduce, and yytable_value_is_error.

if | ( | ! | yyerrstatus | ) |

Definition at line 11303 of file parse.c.

References parser_yyerror(), YY_, yymsg, yymsgbuf, yynerrs, YYSTACK_ALLOC, YYSTACK_FREE, and YYSYNTAX_ERROR.

if | ( | yyerrstatus | = `= 3` | ) |

Definition at line 11344 of file parse.c.

References YYABORT, yydestruct(), YYEMPTY, and YYEOF.

void Init_sym | ( | void |  | ) |

Definition at line 16481 of file parse.c.

References global_symbols, symbols::id_str, Init_id(), nodeline(), nodetype(), st_init_numtable_with_size(), st_init_table_with_size(), symbols::sym_id, and void.

static ID intern_str | ( | VALUE | str | ) |
| static

Definition at line 16725 of file parse.c.

References c, e, enc, global_symbols, i, id, ID_ATTRSET, ID_CLASS, ID_CONST, ID_GLOBAL, ID_INSTANCE, ID_JUNK, ID_LOCAL, ID_SCOPE_SHIFT, is_attrset_id, is_identchar, is_special_global_name(), ISASCII, last, symbols::last_id, len, m, name, op_tbl, op_tbl_count, rb_cString, rb_enc_asciicompat, rb_enc_associate(), rb_enc_get(), rb_enc_isascii, rb_enc_isdigit, rb_enc_ispunct, rb_enc_isupper, rb_enc_mbclen(), rb_eRuntimeError, rb_id2str(), rb_id_attrset(), rb_intern3(), rb_raise(), rb_usascii_encoding(), register_symid_str(), RSTRING_GETMEM, RUBY_SPECIAL_SHIFT, sym_check_asciionly(), and tLAST_OP_ID.

Referenced by rb_intern3(), and rb_intern_str().

static ID internal_id_gen | ( | struct parser_params * | parser | ) |
| static

Definition at line 16509 of file parse.c.

References ID_INTERNAL, ID_SCOPE_SHIFT, lvtbl, tLAST_TOKEN, and vtable_size().

static int is_global_name_punct | ( | const char | c | ) |
| inline static

Definition at line 12663 of file parse.c.

Referenced by is_special_global_name(), and parser_peek_variable_name().

static int is_private_local_id | ( | ID | name | ) |
| static

Definition at line 15108 of file parse.c.

References is_local_id, rb_id2str(), RSTRING_PTR, and s.

Referenced by shadowing_lvar_gen(), and warn_unused_var().

static int is_special_global_name | ( | const char * | m,
|  | const char * | e,
|  | rb_encoding * | enc
| ) |  |
| static

Definition at line 16518 of file parse.c.

References is_global_name_punct(), is_identchar, ISASCII, m, rb_enc_isdigit, and rb_enc_mbclen().

Referenced by intern_str(), and rb_enc_symname_type().

static int is_static_content | ( | NODE * | node | ) |
| static

Definition at line 15522 of file parse.c.

References nd_type, NODE_ARRAY, NODE_FALSE, NODE_HASH, NODE_LIT, NODE_NIL, NODE_STR, NODE_TRUE, and NODE_ZARRAY.

Referenced by assign_in_cond().

static VALUE lex_get_str | ( | struct parser_params * | parser,
|  | VALUE | s
| ) |  |
| static

Definition at line 11877 of file parse.c.

References enc, end, lex_gets_ptr, must_be_ascii_compatible(), Qnil, rb_enc_str_new(), RSTRING_LEN, and RSTRING_PTR.

Referenced by parser_compile_string().

static VALUE lex_getline | ( | struct parser_params * | parser | ) |
| static

Definition at line 11897 of file parse.c.

References current_enc, must_be_ascii_compatible(), NIL_P(), parser_params::parser_lex_gets, parser_params::parser_lex_input, Qnil, rb_ary_push(), rb_enc_associate(), ruby_coverage, and ruby_debug_lines.

Referenced by parser_nextc().

static VALUE lex_io_gets | ( | struct parser_params * | parser,
|  | VALUE | io
| ) |  |
| static

Definition at line 11967 of file parse.c.

References rb_io_gets().

Referenced by rb_parser_compile_file().

static NODE * list_append_gen | ( | struct parser_params * | parser,
|  | NODE * | list,
|  | NODE * | item
| ) |  |
| static

Definition at line 14737 of file parse.c.

References last, list, and NEW_LIST.

static NODE * list_concat_gen | ( | struct parser_params * | parser,
|  | NODE * | head,
|  | NODE * | tail
| ) |  |
| static

Definition at line 14757 of file parse.c.

References head, last, and tail.

static int literal_concat0 | ( | struct parser_params * | parser,
|  | VALUE | head,
|  | VALUE | tail
| ) |  |
| static

Definition at line 14781 of file parse.c.

References compile_error, NIL_P(), PARSER_ARG, rb_enc_compatible(), rb_enc_get(), rb_enc_name, rb_str_buf_append(), and rb_str_resize().

Referenced by literal_concat_gen(), and switch().

static NODE * literal_concat_gen | ( | struct parser_params * | parser,
|  | NODE * | head,
|  | NODE * | tail
| ) |  |
| static

Definition at line 14798 of file parse.c.

References head, list_append, list_concat, literal_concat0(), nd_set_type, nd_type, NEW_DSTR, NEW_STR, NIL_P(), NODE_ARRAY, NODE_DSTR, NODE_EVSTR, NODE_STR, Qnil, rb_gc_force_recycle(), and tail.

static int literal_node | ( | NODE * | node | ) |
| static

Definition at line 15632 of file parse.c.

References nd_type, NODE_DREGX, NODE_DREGX_ONCE, NODE_DSTR, NODE_DSYM, NODE_EVSTR, NODE_FALSE, NODE_LIT, NODE_NIL, NODE_STR, and NODE_TRUE.

Referenced by cond0().

static int local_id_gen | ( | struct parser_params * | parser,
|  | ID | id
| ) |  |
| static

Definition at line 16055 of file parse.c.

References args, DVARS_INHERIT, i, LVAR_USED, lvtbl, POINTER_P, vtable::prev, rb_local_defined(), vtable::tbl, and vtable_included().

static void local_pop_gen | ( | struct parser_params * | parser | ) |
| static

Definition at line 15993 of file parse.c.

References lvtbl, vtable_free(), warn_unused_var(), and xfree.

static void local_push_gen | ( | struct parser_params * | parser,
|  | int | inherit_dvars
| ) |  |
| static

Definition at line 15978 of file parse.c.

References ALLOC, local_vars::args, compile_for_eval, DVARS_INHERIT, DVARS_TOPSCOPE, e_option_supplied(), ifndef_ripper, lvtbl, local_vars::prev, RTEST, ruby_verbose, local_vars::used, local_vars::vars, and vtable_alloc().

static ID * local_tbl_gen | ( | struct parser_params * | parser | ) |
| static

Definition at line 16023 of file parse.c.

References ALLOC_N, buf, cnt, lvtbl, vtable_size(), and vtable_tblcpy().

static int local_var_gen | ( | struct parser_params * | parser,
|  | ID | id
| ) |  |
| static

Definition at line 16045 of file parse.c.

References lvtbl, ruby_sourceline, vtable_add(), and vtable_size().

static NODE * logop_gen | ( | struct parser_params * | parser,
|  | enum node_type | type,
|  | NODE * | left,
|  | NODE * | right
| ) |  |
| static

Definition at line 15717 of file parse.c.

References nd_type, NEW_NODE, and value_expr.

static int lvar_defined_gen | ( | struct parser_params * | parser,
|  | ID | id
| ) |  |
| static

Definition at line 12999 of file parse.c.

References dvar_defined_get, dyna_in_block, and local_id.

static void magic_comment_encoding | ( | struct parser_params * | parser,
|  | const char * | name,
|  | const char * | val
| ) |  |
| static

Definition at line 13074 of file parse.c.

References comment_at_top(), and parser_set_encode().

static const char* magic_comment_marker | ( | const char * | str,
|  | long | len
| ) |  |
| static

Definition at line 13118 of file parse.c.

References i.

Referenced by parser_magic_comment().

static NODE * match_op_gen | ( | struct parser_params * | parser,
|  | NODE * | node1,
|  | NODE * | node2
| ) |  |
| static

Definition at line 14917 of file parse.c.

References nd_type, NEW_CALL, NEW_LIST, NEW_MATCH2, NEW_MATCH3, NODE_DREGX, NODE_DREGX_ONCE, NODE_LIT, RB_TYPE_P, T_REGEXP, tMATCH, and value_expr.

static rb_encoding* must_be_ascii_compatible | ( | VALUE | s | ) |
| static

Definition at line 11867 of file parse.c.

References enc, rb_eArgError, rb_enc_asciicompat, rb_enc_get(), and rb_raise().

Referenced by lex_get_str(), lex_getline(), rb_compile_string(), and rb_parser_compile_string().

static NODE * negate_lit | ( | NODE * | node | ) |
| static

Definition at line 15765 of file parse.c.

References DBL2NUM, FIX2LONG, FLONUM_P, LONG2FIX, rb_funcall(), RFLOAT, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, tUMINUS, and TYPE.

Referenced by switch().

static NODE * new_args_gen | ( | struct parser_params * | parser,
|  | NODE * | m,
|  | NODE * | o,
|  | ID | r,
|  | NODE * | p,
|  | NODE * | tail
| ) |  |
| static

Definition at line 15804 of file parse.c.

References args, rb_args_info::first_post_arg, rb_args_info::opt_args, rb_args_info::post_args_num, rb_args_info::post_init, rb_args_info::pre_args_num, rb_args_info::pre_init, r, rb_long2int, rb_args_info::rest_arg, ruby_sourceline, and tail.

static NODE * new_args_tail_gen | ( | struct parser_params * | parser,
|  | NODE * | k,
|  | ID | kr,
|  | ID | b
| ) |  |
| static

Definition at line 15826 of file parse.c.

References ALLOC, arg_var, args, b, rb_args_info::block_arg, internal_id, rb_args_info::kw_args, rb_args_info::kw_rest_arg, MEMZERO, NEW_DVAR, NEW_NODE, NODE_ARGS, and ruby_sourceline.

static NODE * new_attr_op_assign_gen | ( | struct parser_params * | parser,
|  | NODE * | lhs,
|  | ID | attr,
|  | ID | op,
|  | NODE * | rhs
| ) |  |
| static

Definition at line 15907 of file parse.c.

References fixpos(), NEW_OP_ASGN2, tANDOP, and tOROP.

static void new_bv_gen | ( | struct parser_params * | parser,
|  | ID | name
| ) |  |
| static

Definition at line 15145 of file parse.c.

References compile_error, dyna_var, is_local_id, PARSER_ARG, rb_id2name(), and shadowing_lvar.

static NODE * new_const_op_assign_gen | ( | struct parser_params * | parser,
|  | NODE * | lhs,
|  | ID | op,
|  | NODE * | rhs
| ) |  |
| static

Definition at line 15923 of file parse.c.

References fixpos(), NEW_BEGIN, NEW_OP_CDECL, tANDOP, and tOROP.

static NODE * new_evstr_gen | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 14888 of file parse.c.

References head, nd_type, NEW_EVSTR, NODE_DSTR, NODE_EVSTR, and NODE_STR.

static NODE * new_op_assign_gen | ( | struct parser_params * | parser,
|  | NODE * | lhs,
|  | ID | op,
|  | NODE * | rhs
| ) |  |
| static

Definition at line 15878 of file parse.c.

References gettable, is_asgn_or_id, lhs, NEW_BEGIN, NEW_CALL, NEW_LIST, NEW_OP_ASGN_AND, NEW_OP_ASGN_OR, tANDOP, and tOROP.

static NODE * new_yield_gen | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15757 of file parse.c.

References NEW_YIELD, and no_blockarg().

static NODE * newline_node | ( | NODE * | node | ) |
| static

Definition at line 14650 of file parse.c.

References RNode::flags, NODE_FL_NEWLINE, and remove_begin().

Referenced by reg_named_capture_assign_gen(), reg_named_capture_assign_iter(), and switch().

static void no_blockarg | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15732 of file parse.c.

References compile_error, nd_type, NODE_BLOCK_PASS, and PARSER_ARG.

Referenced by new_yield_gen(), and ret_args_gen().

static NODE * node_assign_gen | ( | struct parser_params * | parser,
|  | NODE * | lhs,
|  | NODE * | rhs
| ) |  |
| static

Definition at line 15255 of file parse.c.

References arg_append, lhs, nd_type, NODE_ATTRASGN, NODE_CALL, NODE_CDECL, NODE_CVASGN, NODE_DASGN, NODE_DASGN_CURR, NODE_GASGN, NODE_IASGN, NODE_IASGN2, NODE_LASGN, and NODE_MASGN.

static NODE * node_newnode | ( | struct parser_params * | parser,
|  | enum node_type | type,
|  | VALUE | a0,
|  | VALUE | a1,
|  | VALUE | a2
| ) |  |
| static

Definition at line 14630 of file parse.c.

References n, nd_set_line, rb_node_newnode, and ruby_sourceline.

static int nodeline | ( | NODE * | node | ) |
| static

Definition at line 14644 of file parse.c.

References nd_line.

Referenced by Init_sym().

static enum node_type nodetype | ( | NODE * | node | ) |
| static

Definition at line 14638 of file parse.c.

References nd_type.

Referenced by Init_sym().

static NODE* parser_compile_string | ( | volatile VALUE | vparser,
|  | const char * | f,
|  | VALUE | s,
|  | int | line
| ) |  |
| static

Definition at line 11920 of file parse.c.

References compile_for_eval, lex_get_str(), lex_gets, lex_gets_ptr, lex_input, lex_p, lex_pbeg, lex_pend, parser, RB_GC_GUARD, rb_parse_in_eval(), s, TypedData_Get_Struct, and yycompile().

Referenced by rb_compile_cstr(), rb_compile_string(), rb_parser_compile_cstr(), and rb_parser_compile_string().

static long parser_encode_length | ( | struct parser_params * | parser,
|  | const char * | name,
|  | long | len
| ) |  |
| static

Definition at line 13006 of file parse.c.

References len, and rb_memcicmp().

Referenced by set_file_encoding().

static void parser_free | ( | void * | ptr | ) |
| static

Definition at line 17217 of file parse.c.

References parser_params::parser_lvtbl, parser_params::parser_ruby_sourcefile, parser_params::parser_tokenbuf, local_vars::prev, local_vars::vars, and xfree.

static int parser_here_document | ( | struct parser_params * | parser,
|  | NODE * | here
| ) |  |
| static

Definition at line 12874 of file parse.c.

References c, compile_error, current_enc, dispatch_heredoc_end, dispose_string(), enc, parser_params::eofp, flush_string_content, func, heredoc_restore, len, lex_goto_eol, lex_lastline, lex_p, lex_pend, lex_strterm, NEW_STRTERM, newtok, nextc, NIL_P(), NULL, p, PARSER_ARG, parser_peek_variable_name(), pushback, rb_str_append(), rb_str_cat(), RSTRING_LEN, RSTRING_PTR, set_yylval_str, STR_FUNC_EXPAND, STR_FUNC_INDENT, STR_NEW, STR_NEW3, t, tok, tokadd, tokadd_string, toklen, tSTRING_CONTENT, tSTRING_END, was_bol, and whole_match_p.

static int parser_heredoc_identifier | ( | struct parser_params * | parser | ) |
| static

Definition at line 12764 of file parse.c.

References c, compile_error, func, len, lex_goto_eol, lex_lastline, lex_p, lex_pbeg, lex_strterm, nd_set_line, newtok, nextc, NODE_HEREDOC, PARSER_ARG, parser_is_identchar, pushback, rb_node_newnode, ripper_flush, ruby_sourceline, str_dquote, STR_FUNC_INDENT, STR_NEW, str_squote, str_xquote, tHEREDOC_BEG, tok, tokadd, tokadd_mbchar, tokfix, toklen, tSTRING_BEG, and tXSTRING_BEG.

static void parser_heredoc_restore | ( | struct parser_params * | parser,
|  | NODE * | here
| ) |  |
| static

Definition at line 12827 of file parse.c.

References dispose_string(), heredoc_end, lex_lastline, lex_p, lex_pbeg, lex_pend, nd_line, rb_gc_force_recycle(), ripper_flush, RSTRING_LEN, RSTRING_PTR, and ruby_sourceline.

static void parser_initialize | ( | struct parser_params * | parser | ) |
| static

Definition at line 17138 of file parse.c.

References parser_params::enc, parser_params::eofp, parser_params::heap, parser_params::is_ripper, NULL, parser_params::parser_brace_nest, parser_params::parser_class_nest, parser_params::parser_cmdarg_stack, parser_params::parser_command_start, parser_params::parser_compile_for_eval, parser_params::parser_cond_stack, parser_params::parser_cur_mid, parser_params::parser_deferred_nodes, parser_params::parser_eval_tree, parser_params::parser_eval_tree_begin, parser_params::parser_heredoc_end, parser_params::parser_in_def, parser_params::parser_in_defined, parser_params::parser_in_single, parser_params::parser_lex_p, parser_params::parser_lex_pbeg, parser_params::parser_lex_pend, parser_params::parser_lex_strterm, parser_params::parser_lpar_beg, parser_params::parser_lvtbl, parser_params::parser_paren_nest, parser_params::parser_ruby__end__seen, parser_params::parser_ruby_sourcefile, parser_params::parser_tokenbuf, parser_params::parser_tokidx, parser_params::parser_toksiz, Qfalse, Qnil, rb_utf8_encoding(), and TRUE.

Referenced by parser_new().

static int parser_magic_comment | ( | struct parser_params * | parser,
|  | const char * | str,
|  | long | len
| ) |  |
| static

Definition at line 13151 of file parse.c.

References end, FALSE, magic_comment::func, i, ISSPACE, len, magic_comment::length, magic_comment_marker(), magic_comments, n, magic_comment::name, numberof, RSTRING_PTR, s, str, str_copy, STRNCASECMP, TRUE, and val.

Referenced by parser_yylex().

static void parser_mark | ( | void * | ptr | ) |
| static

Definition at line 17191 of file parse.c.

References parser_params::debug_lines, parser_params::heap, parser_params::parser_deferred_nodes, parser_params::parser_eval_tree, parser_params::parser_eval_tree_begin, parser_params::parser_lex_input, parser_params::parser_lex_lastline, parser_params::parser_lex_nextline, parser_params::parser_lex_strterm, and rb_gc_mark().

static size_t parser_memsize | ( | const void * | ptr | ) |
| static

Definition at line 17237 of file parse.c.

References vtable::capa, parser_params::parser_lvtbl, parser_params::parser_ruby_sourcefile, parser_params::parser_toksiz, local_vars::prev, size, strlen(), and local_vars::vars.

static struct parser_params* parser_new | ( | void |  | ) |
| static

Definition at line 17280 of file parse.c.

References ALLOC_N, MEMZERO, p, and parser_initialize().

Referenced by rb_parser_new().

static char* parser_newtok | ( | struct parser_params * | parser | ) |
| static

Definition at line 12113 of file parse.c.

References ALLOC_N, REALLOC_N, ruby_sourceline, tokenbuf, tokidx, tokline, and toksiz.

static int parser_nextc | ( | struct parser_params * | parser | ) |
| inline static

Definition at line 12040 of file parse.c.

References c, current_enc, parser_params::eofp, heredoc_end, int, lex_getline(), lex_goto_eol, lex_input, lex_lastline, lex_nextline, lex_p, lex_pbeg, lex_pend, parser_params::line_count, NIL_P(), peek, Qtrue, rb_enc_associate(), rb_str_buf_cat(), rb_str_buf_new(), ripper_flush, RSTRING_LEN, RSTRING_PTR, ruby_sourceline, and v.

static int parser_parse_string | ( | struct parser_params * | parser,
|  | NODE * | quote
| ) |  |
| static

Definition at line 12706 of file parse.c.

References c, compile_error, current_enc, enc, parser_params::eofp, flush_string_content, func, int, ISSPACE, nd_line, nd_paren, nd_term, newtok, nextc, PARSER_ARG, parser_peek_variable_name(), pushback, regx_options, ruby_sourceline, set_yylval_num, set_yylval_str, STR_FUNC_EXPAND, STR_FUNC_QWORDS, STR_FUNC_REGEXP, STR_NEW3, t, tok, tokadd, tokadd_string, tokfix, toklen, tREGEXP_END, tSTRING_CONTENT, and tSTRING_END.

static int parser_peek_variable_name | ( | struct parser_params * | parser | ) |
| static

Definition at line 12670 of file parse.c.

References c, command_start, is_global_name_punct(), ISALPHA, ISASCII, ISDIGIT, lex_p, lex_pend, p, TRUE, tSTRING_DBEG, and tSTRING_DVAR.

Referenced by parser_here_document(), and parser_parse_string().

static void parser_prepare | ( | struct parser_params * | parser | ) |
| static

Definition at line 13288 of file parse.c.

References c, parser_params::enc, EOF, parser_params::has_shebang, lex_lastline, lex_p, lex_pbeg, lex_pend, nextc, peek, pushback, rb_enc_get(), and rb_utf8_encoding().

Referenced by yycompile0().

static void parser_pushback | ( | struct parser_params * | parser,
|  | int | c
| ) |  |
| static

Definition at line 12096 of file parse.c.

References lex_p, and lex_pbeg.

static int parser_read_escape | ( | struct parser_params * | parser,
|  | int | flags,
|  | rb_encoding ** | encp
| ) |  |
| static

Definition at line 12243 of file parse.c.

References c, ESCAPE_CONTROL, ESCAPE_META, ISASCII, lex_p, nextc, peek, pushback, read_escape, scan_oct, tok_hex, and yyerror.

static int parser_regx_options | ( | struct parser_params * | parser | ) |
| static

Definition at line 12414 of file parse.c.

References c, compile_error, ISALPHA, newtok, nextc, PARSER_ARG, pushback, rb_ascii8bit_encindex(), rb_char_to_option_kcode(), RE_OPTION_ENCODING, RE_OPTION_ONCE, tok, tokadd, tokfix, and toklen.

static void parser_set_encode | ( | struct parser_params * | parser,
|  | const char * | name
| ) |  |
| static

Definition at line 13026 of file parse.c.

References parser_params::enc, enc, i, idx, n, RARRAY_LEN, RARRAY_PTR(), rb_ary_unshift(), rb_eArgError, rb_enc_asciicompat, rb_enc_associate_index(), rb_enc_find_index(), rb_enc_from_index(), rb_enc_name, rb_exc_raise(), rb_make_backtrace(), rb_make_exception(), rb_sprintf(), ruby_debug_lines, ruby_sourcefile, and ruby_sourceline.

Referenced by magic_comment_encoding(), and set_file_encoding().

static void parser_set_token_info | ( | struct parser_params * | parser,
|  | const char * | name,
|  | const char * | val
| ) |  |
| static

Definition at line 13083 of file parse.c.

References FALSE, parser_params::parser_token_info_enabled, rb_compile_warning(), ruby_sourcefile, ruby_sourceline, strcasecmp, and TRUE.

static VALUE parser_str_new | ( | const char * | p,
|  | long | n,
|  | rb_encoding * | enc,
|  | int | func,
|  | rb_encoding * | enc0
| ) |  |
| static

Definition at line 12018 of file parse.c.

References ENC_CODERANGE_7BIT, rb_ascii8bit_encoding(), rb_enc_asciicompat, rb_enc_associate(), rb_enc_str_coderange(), rb_enc_str_new(), rb_usascii_encoding(), rb_utf8_encoding(), str, and STR_FUNC_REGEXP.

static int parser_tok_hex | ( | struct parser_params * | parser,
|  | size_t * | numlen
| ) |  |
| static

Definition at line 12151 of file parse.c.

References c, lex_p, scan_hex, and yyerror.

static void parser_tokadd | ( | struct parser_params * | parser,
|  | int | c
| ) |  |
| static

Definition at line 12141 of file parse.c.

References REALLOC_N, tokenbuf, tokidx, and toksiz.

static int parser_tokadd_escape | ( | struct parser_params * | parser,
|  | rb_encoding ** | encp
| ) |  |
| static

Definition at line 12341 of file parse.c.

References c, ESCAPE_CONTROL, ESCAPE_META, flags, lex_p, nextc, pushback, ruby_scan_oct(), tok_hex, tokadd, tokcopy, and yyerror.

static int parser_tokadd_mbchar | ( | struct parser_params * | parser,
|  | int | c
| ) |  |
| static

Definition at line 12457 of file parse.c.

References c, compile_error, len, lex_p, MBCLEN_CHARFOUND_P, PARSER_ARG, parser_encoding_name, parser_precise_mbclen, tokadd, and tokcopy.

static int parser_tokadd_string | ( | struct parser_params * | parser,
|  | int | func,
|  | int | term,
|  | int | paren,
|  | long * | nest,
|  | rb_encoding ** | encp
| ) |  |
| static

Definition at line 12486 of file parse.c.

References c, enc, encp, ISASCII, ISSPACE, lex_p, lex_pend, mixed_error, mixed_escape, nextc, parser_isascii, parser_tokadd_utf8(), pushback, read_escape, simple_re_meta(), STR_FUNC_ESCAPE, STR_FUNC_EXPAND, STR_FUNC_QWORDS, STR_FUNC_REGEXP, STR_FUNC_SYMBOL, tokadd, tokadd_escape, and tokadd_mbchar.

static int parser_tokadd_utf8 | ( | struct parser_params * | parser,
|  | rb_encoding ** | encp,
|  | int | string_literal,
|  | int | symbol_literal,
|  | int | regexp_literal
| ) |  |
| static

Definition at line 12168 of file parse.c.

References lex_p, nextc, peek, rb_utf8_encoding(), scan_hex, tokadd, tokaddmbc, tokcopy, and yyerror.

Referenced by parser_tokadd_string(), and parser_yylex().

static void parser_tokaddmbc | ( | struct parser_params * | parser,
|  | int | c,
|  | rb_encoding * | enc
| ) |  |
| static

Definition at line 12334 of file parse.c.

References len, rb_enc_codelen(), rb_enc_mbcput, and tokspace.

static char* parser_tokspace | ( | struct parser_params * | parser,
|  | int | n
| ) |  |
| static

Definition at line 12129 of file parse.c.

References n, REALLOC_N, tokenbuf, tokidx, and toksiz.

static void parser_warn | ( | struct parser_params * | parser,
|  | NODE * | node,
|  | const char * | mesg
| ) |  |
| static

Definition at line 14676 of file parse.c.

References nd_line, rb_compile_warn(), and ruby_sourcefile.

static void parser_warning | ( | struct parser_params * | parser,
|  | NODE * | node,
|  | const char * | mesg
| ) |  |
| static

Definition at line 14669 of file parse.c.

References nd_line, rb_compile_warning(), and ruby_sourcefile.

static int parser_whole_match_p | ( | struct parser_params * | parser,
|  | const char * | eos,
|  | long | len,
|  | int | indent
| ) |  |
| static

Definition at line 12844 of file parse.c.

References FALSE, ISSPACE, len, lex_pbeg, lex_pend, and n.

static int parser_yyerror | ( | struct parser_params * | parser,
|  | const char * | msg
| ) |  |
| static

Definition at line 11693 of file parse.c.

References ALLOCA_N, buf, compile_error, i, int, len, lex_lastline, lex_p, lex_pbeg, lex_pend, MEMCPY, p, PARSER_ARG, rb_compile_error_append(), rb_enc_get(), rb_enc_prev_char, and STR_NEW2.

Referenced by if().

static int parser_yylex | ( | struct parser_params * | parser | ) |
| static

Definition at line 13333 of file parse.c.

References arg_ambiguous, brace_nest, c, CMDARG_LEXPOP, CMDARG_P, CMDARG_PUSH, command_start, comment_at_top(), compile_error, COND_LEXPOP, COND_P, COND_PUSH, current_enc, d, DBL2NUM, enc, ENC_CODERANGE_7BIT, ENC_CODERANGE_UNKNOWN, ENC_SINGLE, parser_params::eofp, errno, EXPR_ARG_ANY, EXPR_BEG_ANY, FALSE, here_document, heredoc_identifier, kwtable::id, INT2FIX, IS_AFTER_OPERATOR, IS_ARG, IS_BEG, IS_END, is_identchar, IS_LABEL_POSSIBLE, IS_LABEL_SUFFIX, IS_lex_state, IS_lex_state_for, is_local_id, IS_SPCARG, ISALNUM, ISASCII, ISDIGIT, ISSPACE, ISUPPER, ISXDIGIT, k__END__, keyword_do, keyword_do_block, keyword_do_cond, keyword_do_LAMBDA, lex_eol_p, lex_goto_eol, lex_lastline, lex_nextline, lex_p, lex_pend, lex_state, lex_strterm, lpar_beg, lvar_defined, kwtable::name, nd_type, NEW_BACK_REF, NEW_NTH_REF, NEW_STRTERM, newtok, nextc, no_digits, NODE_HEREDOC, paren_nest, parse_string, PARSER_ARG, parser_is_identchar, parser_isascii, parser_magic_comment(), parser_tokadd_utf8(), peek, peek_n, pushback, Qtrue, rb_compile_error, rb_cstr_to_inum(), rb_enc_isalnum, rb_enc_isspace, rb_gc_force_recycle(), rb_intern, rb_reserved_word, rb_warnI, rb_warning0, rb_warningS, read_escape, result, retry, ruby__end__seen, ruby_sourceline, set_file_encoding(), set_yylval_id, set_yylval_literal, set_yylval_name, set_yylval_node, set_yylval_str, snprintf, kwtable::state, state, str_dquote, str_dsym, str_dword, STR_NEW3, str_regexp, str_squote, str_ssym, str_sword, str_xquote, strtod, tAMPER, tANDOP, tAREF, tASET, tASSOC, tBACK_REF, tCHAR, tCMP, tCOLON2, tCOLON3, tCOMMENT, tCONSTANT, tCVAR, tDOT2, tDOT3, tDSTAR, tEMBDOC, tEMBDOC_BEG, tEMBDOC_END, tEQ, tEQQ, tFID, tFLOAT, tGEQ, tGVAR, tIDENTIFIER, tIGNORED_NL, tINTEGER, tIVAR, tLABEL, tLAMBDA, tLAMBEG, tLBRACE, tLBRACE_ARG, tLBRACK, tLEQ, tLPAREN, tLPAREN_ARG, tLSHFT, tMATCH, tmp, tNEQ, tNMATCH, tNTH_REF, tok, TOK_INTERN, tokadd, tokadd_mbchar, tokaddmbc, token, tokfix, tokidx, toklast, toklen, tOP_ASGN, tOROP, tPOW, tQSYMBOLS_BEG, tQWORDS_BEG, tREGEXP_BEG, tREGEXP_END, tRSHFT, TRUE, tSP, tSTAR, tSTRING_BEG, tSTRING_DEND, tSTRING_END, tSYMBEG, tSYMBOLS_BEG, tUMINUS, tUMINUS_NUM, tUPLUS, tWORDS_BEG, tXSTRING_BEG, void, warn_balanced, was_bol, whole_match_p, and yyerror.

static NODE* range_op | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15616 of file parse.c.

References cond0(), FIXNUM_P, nd_type, NEW_CALL, NEW_GVAR, NEW_LIST, NODE_LIT, rb_intern, tEQ, type, value_expr, and warn_unless_e_option().

Referenced by cond0().

static void rb_backref_error_gen | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15191 of file parse.c.

References compile_error, nd_type, NODE_BACK_REF, NODE_NTH_REF, and PARSER_ARG.

ID rb_check_id | ( | volatile VALUE * | namep | ) |

Returns ID for the given name if it is interned already, or 0.

Parameters

  namep | the pointer to the name object

Returns
  the ID for *namep

Precondition
  the object referred by `namep` must be a Symbol or a String, or possible to convert with to_str method.

Postcondition
  the object referred by `namep` is a Symbol or a String if non-zero value is returned, or is a String if 0 is returned.

Definition at line 17009 of file parse.c.

References RString::as, RString::basic, RBasic::flags, global_symbols, RString::heap, id, RBasic::klass, name, NIL_P(), OBJ_FREEZE, rb_check_string_type(), rb_cString, rb_enc_copy(), rb_eTypeError, RB_GC_GUARD, rb_id_attrset(), rb_inspect(), rb_is_attrset_name(), rb_raise(), RB_TYPE_P, RSTRING_LEN, RSTRING_NOEMBED, RSTRING_PTR, st_lookup(), SYM2ID, sym_check_asciionly(), symbols::sym_id, SYMBOL_P, T_STRING, and tmp.

ID rb_check_id_cstr | ( | const char * | ptr,
|  | long | len,
|  | rb_encoding * | enc
| ) |  |

Definition at line 17056 of file parse.c.

References RString::as, RString::basic, RBasic::flags, global_symbols, RString::heap, id, RBasic::klass, len, rb_cString, rb_enc_associate(), rb_id_attrset(), rb_is_attrset_name(), RSTRING_NOEMBED, st_lookup(), sym_check_asciionly(), symbols::sym_id, and T_STRING.

NODE* rb_compile_cstr | ( | const char * | f,
|  | const char * | s,
|  | int | len,
|  | int | line
| ) |  |

Definition at line 11953 of file parse.c.

References parser_compile_string(), rb_parser_new(), and rb_str_new().

NODE* rb_compile_file | ( | const char * | f,
|  | VALUE | file,
|  | int | start
| ) |  |

Definition at line 11973 of file parse.c.

References rb_parser_compile_file(), and rb_parser_new().

NODE* rb_compile_string | ( | const char * | f,
|  | VALUE | s,
|  | int | line
| ) |  |

Definition at line 11939 of file parse.c.

References must_be_ascii_compatible(), parser_compile_string(), and rb_parser_new().

int rb_enc_symname2_p | ( | const char * | name,
|  | long | len,
|  | rb_encoding * | enc
| ) |  |

Definition at line 16651 of file parse.c.

References rb_enc_symname_type().

int rb_enc_symname_p | ( | const char * | name,
|  | rb_encoding * | enc
| ) |  |

Definition at line 16550 of file parse.c.

References rb_enc_symname2_p(), and strlen().

static int rb_enc_symname_type | ( | const char * | name,
|  | long | len,
|  | rb_encoding * | enc
| ) |  |
| static

Definition at line 16556 of file parse.c.

References e, id, ID_ATTRSET, ID_CLASS, ID_CONST, ID_GLOBAL, ID_INSTANCE, ID_JUNK, ID_LOCAL, is_identchar, is_special_global_name(), ISASCII, len, m, name, rb_enc_isalpha, rb_enc_isupper, rb_enc_mbclen(), and type.

Referenced by rb_enc_symname2_p(), and rb_str_symname_type().

void rb_gc_mark_parser | ( | void |  | ) |

Definition at line 16329 of file parse.c.

void rb_gc_mark_symbols | ( | void |  | ) |

Definition at line 16500 of file parse.c.

References global_symbols, symbols::id_str, numberof, symbols::op_sym, rb_gc_mark_locations, and rb_mark_tbl().

const char* rb_id2name | ( | ID | id | ) |

Definition at line 16915 of file parse.c.

References rb_id2str(), and RSTRING_PTR.

VALUE rb_id2str | ( | ID | id | ) |

Definition at line 16854 of file parse.c.

References data, global_symbols, i, ID_CONST, ID_LOCAL, symbols::id_str, int, is_attrset_id, is_local_id, OBJ_FREEZE, symbols::op_sym, op_tbl, op_tbl_count, rb_cString, rb_id2str(), rb_intern_str, rb_ispunct(), rb_str_cat(), rb_str_dup(), rb_usascii_str_new(), rb_usascii_str_new2, RBASIC, st_lookup(), str, tLAST_TOKEN, and token.

ID rb_id_attrset | ( | ID | id | ) |

Definition at line 15175 of file parse.c.

References id, and ID_ATTRSET.

ID rb_intern | ( | const char * | name | ) |

Definition at line 16838 of file parse.c.

References rb_intern2(), and strlen().

ID rb_intern2 | ( | const char * | name,
|  | long | len
| ) |  |

Definition at line 16831 of file parse.c.

References rb_intern3(), and rb_usascii_encoding().

ID rb_intern3 | ( | const char * | name,
|  | long | len,
|  | rb_encoding * | enc
| ) |  |

Definition at line 16703 of file parse.c.

References RString::as, RString::basic, data, RBasic::flags, global_symbols, RString::heap, intern_str(), RBasic::klass, len, OBJ_FREEZE, rb_cString, rb_enc_associate(), rb_enc_str_new(), RSTRING_NOEMBED, st_lookup(), str, symbols::sym_id, and T_STRING.

ID rb_intern_str | ( | VALUE | str | ) |

Definition at line 16844 of file parse.c.

References global_symbols, id, intern_str(), rb_str_dup(), st_lookup(), and symbols::sym_id.

int rb_is_attrset_id | ( | ID | id | ) |

Definition at line 16980 of file parse.c.

References is_attrset_id.

int rb_is_attrset_name | ( | VALUE | name | ) |

Definition at line 17108 of file parse.c.

References ID_ATTRSET, and rb_str_symname_type().

int rb_is_class_id | ( | ID | id | ) |

Definition at line 16962 of file parse.c.

References is_class_id.

int rb_is_class_name | ( | VALUE | name | ) |

Definition at line 17090 of file parse.c.

References ID_CLASS, and rb_str_symname_type().

int rb_is_const_id | ( | ID | id | ) |

Definition at line 16956 of file parse.c.

References is_const_id.

int rb_is_const_name | ( | VALUE | name | ) |

Definition at line 17084 of file parse.c.

References ID_CONST, and rb_str_symname_type().

int rb_is_global_id | ( | ID | id | ) |

Definition at line 16968 of file parse.c.

References is_global_id.

int rb_is_global_name | ( | VALUE | name | ) |

Definition at line 17096 of file parse.c.

References ID_GLOBAL, and rb_str_symname_type().

int rb_is_instance_id | ( | ID | id | ) |

Definition at line 16974 of file parse.c.

References is_instance_id.

int rb_is_instance_name | ( | VALUE | name | ) |

Definition at line 17102 of file parse.c.

References ID_INSTANCE, and rb_str_symname_type().

int rb_is_junk_id | ( | ID | id | ) |

Definition at line 16992 of file parse.c.

References is_junk_id.

int rb_is_junk_name | ( | VALUE | name | ) |

Definition at line 17130 of file parse.c.

References rb_str_symname_type().

int rb_is_local_id | ( | ID | id | ) |

Definition at line 16986 of file parse.c.

References is_local_id.

int rb_is_local_name | ( | VALUE | name | ) |

Definition at line 17114 of file parse.c.

References ID_LOCAL, and rb_str_symname_type().

int rb_is_method_name | ( | VALUE | name | ) |

Definition at line 17120 of file parse.c.

References FALSE, ID_ATTRSET, ID_JUNK, ID_LOCAL, rb_str_symname_type(), and TRUE.

NODE* rb_parser_append_print | ( | VALUE | vparser,
|  | NODE * | node
| ) |  |

Definition at line 16334 of file parse.c.

References block_append, nd_type, NEW_ARRAY, NEW_FCALL, NEW_GVAR, NODE_PRELUDE, parser, rb_intern, and TypedData_Get_Struct.

void* rb_parser_calloc | ( | struct parser_params * | parser,
|  | size_t | nelem,
|  | size_t | size
| ) |  |

Definition at line 17376 of file parse.c.

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

NODE* rb_parser_compile_cstr | ( | volatile VALUE | vparser,
|  | const char * | f,
|  | const char * | s,
|  | int | len,
|  | int | line
| ) |  |

Definition at line 11960 of file parse.c.

References parser_compile_string(), and rb_str_new().

NODE* rb_parser_compile_file | ( | volatile VALUE | vparser,
|  | const char * | f,
|  | VALUE | file,
|  | int | start
| ) |  |

Definition at line 11981 of file parse.c.

References compile_for_eval, lex_gets, lex_input, lex_io_gets(), lex_p, lex_pbeg, lex_pend, parser, RB_GC_GUARD, rb_parse_in_eval(), TypedData_Get_Struct, and yycompile().

NODE* rb_parser_compile_string | ( | volatile VALUE | vparser,
|  | const char * | f,
|  | VALUE | s,
|  | int | line
| ) |  |

Definition at line 11946 of file parse.c.

References must_be_ascii_compatible(), and parser_compile_string().

VALUE rb_parser_encoding | ( | VALUE | vparser | ) |

Definition at line 17320 of file parse.c.

References current_enc, parser, rb_enc_from_encoding(), and TypedData_Get_Struct.

VALUE rb_parser_end_seen_p | ( | VALUE | vparser | ) |

Definition at line 17305 of file parse.c.

References parser, Qfalse, Qtrue, ruby__end__seen, and TypedData_Get_Struct.

void rb_parser_free | ( | struct parser_params * | parser,
|  | void * | ptr
| ) |  |

Definition at line 17406 of file parse.c.

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

VALUE rb_parser_get_yydebug | ( | VALUE | self | ) |

Definition at line 17335 of file parse.c.

References parser, Qfalse, Qtrue, and TypedData_Get_Struct.

void* rb_parser_malloc | ( | struct parser_params * | parser,
|  | size_t | size
| ) |  |

Definition at line 17366 of file parse.c.

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

VALUE rb_parser_new | ( | void |  | ) |

Definition at line 17291 of file parse.c.

References parser_new(), and TypedData_Wrap_Struct.

void* rb_parser_realloc | ( | struct parser_params * | parser,
|  | void * | ptr,
|  | size_t | size
| ) |  |

Definition at line 17386 of file parse.c.

References ADD2HEAP, RNode::cnt, cnt, parser_params::heap, HEAPCNT, n, NEWHEAP, RNode::node, NULL, ptr, RNode::u1, RNode::u2, RNode::u3, and xrealloc.

VALUE rb_parser_set_yydebug | ( | VALUE | self,
|  | VALUE | flag
| ) |  |

Definition at line 17350 of file parse.c.

References flag, parser, RTEST, and TypedData_Get_Struct.

NODE* rb_parser_while_loop | ( | VALUE | vparser,
|  | NODE * | node,
|  | int | chop,
|  | int | split
| ) |  |

Definition at line 16366 of file parse.c.

References block_append, nd_type, NEW_CALL, NEW_GASGN, NEW_GVAR, NEW_OPT_N, NODE_PRELUDE, parser, rb_intern, and TypedData_Get_Struct.

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

Definition at line 17274 of file parse.c.

References reserved_word().

static int rb_str_symname_type | ( | VALUE | name | ) |
| static

Definition at line 16657 of file parse.c.

References len, ptr, rb_enc_get(), rb_enc_symname_type(), RB_GC_GUARD, RSTRING_LEN, StringValuePtr, and type.

Referenced by rb_is_attrset_name(), rb_is_class_name(), rb_is_const_name(), rb_is_global_name(), rb_is_instance_name(), rb_is_junk_name(), rb_is_local_name(), and rb_is_method_name().

VALUE rb_sym_all_symbols | ( | void |  | ) |

Definition at line 16947 of file parse.c.

References ary, global_symbols, st_table::num_entries, rb_ary_new2(), st_foreach(), symbols::sym_id, and symbols_i().

int rb_symname_p | ( | const char * | name | ) |

Definition at line 16544 of file parse.c.

References rb_ascii8bit_encoding(), and rb_enc_symname_p().

static void reduce_nodes_gen | ( | struct parser_params * | parser,
|  | NODE ** | body
| ) |  |
| static

Definition at line 15461 of file parse.c.

References end, RNode::flags, int, nd_body, nd_else, nd_head, nd_next, nd_resq, nd_type, NEW_NIL, NODE_BEGIN, NODE_BLOCK, NODE_CASE, NODE_ENSURE, NODE_FL_NEWLINE, NODE_IF, NODE_NIL, NODE_RESCUE, NODE_RETURN, NODE_WHEN, and subnodes.

static VALUE reg_compile_gen | ( | struct parser_params * | parser,
|  | VALUE | str,
|  | int | options
| ) |  |
| static

Definition at line 16305 of file parse.c.

References compile_error, err, m, NIL_P(), PARSER_ARG, Qnil, rb_attr_get(), rb_errinfo, rb_intern, rb_reg_compile(), rb_set_errinfo(), rb_str_append(), rb_str_cat(), RE_OPTION_MASK, reg_fragment_setenc, RSTRING_PTR, ruby_sourcefile, and ruby_sourceline.

static int reg_fragment_check_gen | ( | struct parser_params * | parser,
|  | VALUE | str,
|  | int | options
| ) |  |
| static

Definition at line 16210 of file parse.c.

References compile_error, err, PARSER_ARG, Qnil, RB_GC_GUARD, rb_obj_as_string(), rb_reg_check_preprocess(), reg_fragment_setenc, and RSTRING_PTR.

static void reg_fragment_setenc_gen | ( | struct parser_params * | parser,
|  | VALUE | str,
|  | int | options
| ) |  |
| static

Definition at line 16171 of file parse.c.

References c, compile_error, current_enc, ENC_CODERANGE_7BIT, ENCODING_GET, ENCODING_IS_ASCII8BIT, ENCODING_SET, idx, PARSER_ARG, rb_ascii8bit_encoding(), rb_char_to_option_kcode(), rb_enc_associate(), rb_enc_get(), rb_enc_name, rb_enc_str_coderange(), rb_usascii_encoding(), RE_OPTION_ENCODING_IDX, and RE_OPTION_ENCODING_NONE.

static NODE * reg_named_capture_assign_gen | ( | struct parser_params * | parser,
|  | VALUE | regexp,
|  | NODE * | match
| ) |  |
| static

Definition at line 16273 of file parse.c.

References arg, block_append, reg_named_capture_assign_t::enc, reg_named_capture_assign_t::fail_block, gettable, INT2FIX, match(), NEW_CALL, NEW_IF, NEW_LIST, NEW_LIT, newline_node(), reg_named_capture_assign_t::num, onig_foreach_name(), parser, reg_named_capture_assign_t::parser, ptr, Qnil, rb_enc_get(), rb_intern, reg_named_capture_assign_iter(), RREGEXP, and reg_named_capture_assign_t::succ_block.

static int reg_named_capture_assign_iter | ( | const OnigUChar * | name,
|  | const OnigUChar * | name_end,
|  | int | back_num,
|  | int * | back_refs,
|  | OnigRegex | regex,
|  | void * | arg0
| ) |  |
| static

Definition at line 16233 of file parse.c.

References arg, assignable, block_append, dvar_defined, enc, reg_named_capture_assign_t::enc, reg_named_capture_assign_t::fail_block, gettable, ID2SYM, idAREF, ISASCII, len, local_id, MAX_WORD_LENGTH, name, NEW_BEGIN, NEW_CALL, NEW_LIST, NEW_LIT, newline_node(), node_assign, reg_named_capture_assign_t::num, reg_named_capture_assign_t::parser, Qnil, rb_enc_islower, rb_enc_symname2_p(), rb_id2name(), rb_intern, rb_intern3(), rb_reserved_word, rb_warningS, s, ST_CONTINUE, reg_named_capture_assign_t::succ_block, and var.

Referenced by reg_named_capture_assign_gen().

static ID register_symid | ( | ID | id,
|  | const char * | name,
|  | long | len,
|  | rb_encoding * | enc
| ) |  |
| static

Definition at line 16667 of file parse.c.

References rb_enc_str_new(), and register_symid_str().

static ID register_symid_str | ( | ID | id,
|  | VALUE | str
| ) |  |
| static

Definition at line 16674 of file parse.c.

References global_symbols, id, symbols::id_str, OBJ_FREEZE, st_add_direct(), and symbols::sym_id.

Referenced by intern_str(), and register_symid().

static NODE * remove_begin | ( | NODE * | node | ) |
| static

Definition at line 15451 of file parse.c.

References n, nd_type, and NODE_BEGIN.

Referenced by newline_node(), and switch().

static NODE * ret_args_gen | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15740 of file parse.c.

References nd_set_type, nd_type, no_blockarg(), NODE_ARRAY, and NODE_VALUES.

static void set_file_encoding | ( | struct parser_params * | parser,
|  | const char * | str,
|  | const char * | send
| ) |  |
| static

Definition at line 13245 of file parse.c.

References ISALNUM, ISSPACE, parser_encode_length(), parser_set_encode(), rb_str_new(), rb_str_resize(), RSTRING_PTR, s, str, and STRNCASECMP.

Referenced by parser_yylex().

static ID shadowing_lvar_gen | ( | struct parser_params * | parser,
|  | ID | name
| ) |  |
| static

Definition at line 15121 of file parse.c.

References dvar_curr, dvar_defined_get, dyna_in_block, is_private_local_id(), local_id, LVAR_USED, lvtbl, name, rb_id2name(), rb_warningS, ruby_sourceline, vtable_add(), and yyerror.

static int simple_re_meta | ( | int | c | ) |
| inline static

Definition at line 12473 of file parse.c.

References FALSE, and TRUE.

Referenced by parser_tokadd_string().

static NODE * splat_array | ( | NODE * | node | ) |
| static

Definition at line 15247 of file parse.c.

References nd_type, NODE_ARRAY, and NODE_SPLAT.

Referenced by switch().

switch | ( | yytype |  | ) |

Definition at line 4519 of file parse.c.

switch | ( | yyn |  | ) |

Definition at line 5213 of file parse.c.

References ALLOC_N, arg_append, arg_blk_pass(), arg_concat, arg_var, args, aryset, assignable, attrset, block_append, block_dup_check, brace_nest, buf, call_bin_op, call_uni_op, CMDARG_PUSH, cmdarg_stack, command_start, compile_error, compile_for_eval, cond, COND_POP, COND_PUSH, cond_stack, cur_mid, deferred_nodes, dsym_node, dyna_in_block, dyna_pop, dyna_push, evstr2dstr, FIXNUM_P, fixpos(), fixup_nodes(), formal_argument, get_id, gettable, head, YYSTYPE::id, id, ID2SYM, idAREF, idEq, ifndef_ripper, in_def, in_defined, in_single, INT2FIX, internal_id, is_local_id, keyword__ENCODING__, keyword__FILE__, keyword__LINE__, keyword_false, keyword_nil, keyword_self, keyword_true, lex_state, lex_strterm, list, list_append, list_concat, literal_concat, literal_concat0(), local_id, local_pop, local_push, logop, lpar_beg, m, match_op, nd_args, nd_body, nd_iter, nd_lit, nd_next, nd_plen, nd_set_line, nd_set_type, nd_type, nd_value, negate_lit(), NEW_ALIAS, new_args, NEW_ARGS_AUX, new_args_tail, NEW_ARGSCAT, new_attr_op_assign, NEW_BEGIN, NEW_BLOCK_PASS, NEW_BREAK, new_bv, NEW_CALL, NEW_CASE, NEW_CDECL, NEW_CLASS, NEW_COLON2, NEW_COLON3, new_const_op_assign, NEW_CVAR, NEW_DASGN_CURR, NEW_DEFINED, NEW_DEFN, NEW_DEFS, NEW_DOT2, NEW_DOT3, NEW_DSTR, NEW_DVAR, NEW_ENSURE, NEW_ERRINFO, NEW_EVSTR, new_evstr, NEW_FCALL, NEW_FOR, NEW_GVAR, NEW_HASH, NEW_IF, NEW_ITER, NEW_IVAR, NEW_KW_ARG, NEW_LAMBDA, NEW_LIST, NEW_LIT, NEW_LVAR, NEW_MASGN, NEW_MODULE, NEW_NEXT, NEW_NIL, NEW_NODE, NEW_OP_ASGN1, new_op_assign, NEW_OPT_ARG, NEW_POSTARG, NEW_POSTEXE, NEW_REDO, NEW_RESBODY, NEW_RESCUE, NEW_RETRY, NEW_RETURN, NEW_SCLASS, NEW_SCOPE, NEW_SPLAT, NEW_STR, NEW_SUPER, NEW_UNDEF, NEW_UNLESS, NEW_UNTIL, NEW_VALIAS, NEW_WHEN, NEW_WHILE, NEW_XSTR, NEW_YIELD, new_yield, NEW_ZARRAY, NEW_ZSUPER, newline_node(), NIL_P(), YYSTYPE::node, NODE_AND, NODE_ARRAY, node_assign, NODE_BEGIN, NODE_BLOCK, NODE_BLOCK_PASS, NODE_DASGN, NODE_DASGN_CURR, NODE_DREGX, NODE_DREGX_ONCE, NODE_DSTR, NODE_DSYM, NODE_DXSTR, NODE_ENSURE, NODE_FL_NEWLINE, NODE_LASGN, NODE_LIT, NODE_MASGN, NODE_OR, NODE_RESCUE, NODE_SCOPE, NODE_SELF, NODE_STR, NODE_XSTR, NODE_YIELD, NODE_ZARRAY, NOEX_PRIVATE, NULL, YYSTYPE::num, one(), opts, paren_nest, PARSER_ARG, Qnil, Qnone, rb_backref_error, rb_cArray, rb_gc_force_recycle(), rb_intern, rb_intern2(), rb_intern_str, rb_parse_in_main(), rb_str_resize(), RB_TYPE_P, rb_warn0, RE_OPTION_MASK, RE_OPTION_ONCE, reduce_nodes, reg_compile, reg_fragment_check, reg_named_capture_assign, remove_begin(), ret_args, ripper_intern(), ruby_eval_tree, ruby_eval_tree_begin, ruby_sourceline, shadowing_lvar, splat_array(), src, STR_NEW0, T_REGEXP, tANDOP, tAREF, tASET, tbl, tCMP, tDSTAR, tEQ, tEQQ, tGEQ, tLEQ, tLSHFT, tMATCH, tNEQ, tNMATCH, token_info_pop, token_info_push, tokline, tOROP, tPOW, tRSHFT, TRUE, tUMINUS, tUPLUS, YYSTYPE::val, value_expr, YYSTYPE::vars, void_expr, void_stmts, yyerrok, yyerror, and zero().

static NODE* switch | ( | id |  | ) |

Definition at line 15040 of file parse.c.

References keyword__ENCODING__, keyword__FILE__, keyword__LINE__, keyword_false, keyword_nil, keyword_self, keyword_true, and yyerror.

switch | ( | id_type(id) |  | ) |

Definition at line 15063 of file parse.c.

References assignable_result, compile_error, dvar_curr, dvar_defined, dyna_in_block, dyna_var, ID_CLASS, ID_CONST, ID_GLOBAL, ID_INSTANCE, ID_LOCAL, in_def, in_single, local_id, local_var, NEW_CDECL, NEW_CVASGN, NEW_DASGN, NEW_DASGN_CURR, NEW_GASGN, NEW_IASGN, NEW_LASGN, PARSER_ARG, rb_id2name(), and yyerror.

static int sym_check_asciionly | ( | VALUE | str | ) |
| static

Definition at line 16683 of file parse.c.

References ENC_CODERANGE_7BIT, ENC_CODERANGE_BROKEN, FALSE, rb_eEncodingError, rb_enc_asciicompat, rb_enc_get(), rb_enc_str_coderange(), rb_raise(), and TRUE.

Referenced by intern_str(), rb_check_id(), and rb_check_id_cstr().

static int symbols_i | ( | VALUE | sym,
|  | ID | value,
|  | VALUE | ary
| ) |  |
| static

Definition at line 16924 of file parse.c.

References ID2SYM, rb_ary_push(), and ST_CONTINUE.

Referenced by rb_sym_all_symbols().

static int token_info_get_column | ( | struct parser_params * | parser,
|  | const char * | token
| ) |  |
| static

Definition at line 11620 of file parse.c.

References lex_p, lex_pbeg, p, and strlen().

Referenced by token_info_pop(), and token_info_push().

static int token_info_has_nonspaces | ( | struct parser_params * | parser,
|  | const char * | token
| ) |  |
| static

Definition at line 11634 of file parse.c.

References lex_p, lex_pbeg, p, and strlen().

Referenced by token_info_pop(), and token_info_push().

static void token_info_pop | ( | struct parser_params * | parser,
|  | const char * | token
| ) |  |
| static

Definition at line 11664 of file parse.c.

References token_info::column, token_info::linenum, token_info::next, token_info::nonspc, parser_params::parser_token_info, parser_params::parser_token_info_enabled, rb_compile_warn(), ruby_sourcefile, ruby_sourceline, token_info::token, token_info_get_column(), token_info_has_nonspaces(), and xfree.

static void token_info_push | ( | struct parser_params * | parser,
|  | const char * | token
| ) |  |
| static

Definition at line 11647 of file parse.c.

References ALLOC, token_info::column, token_info::linenum, token_info::next, token_info::nonspc, parser_params::parser_token_info, parser_params::parser_token_info_enabled, ruby_sourceline, token_info::token, token, token_info_get_column(), and token_info_has_nonspaces().

static int value_expr_gen | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15286 of file parse.c.

References cond, FALSE, nd_type, NODE_AND, NODE_BEGIN, NODE_BLOCK, NODE_BREAK, NODE_DEFN, NODE_DEFS, NODE_IF, NODE_NEXT, NODE_OR, NODE_REDO, NODE_RETRY, NODE_RETURN, parser_warning, rb_warning0, TRUE, value_expr, and yyerror.

static void void_expr_gen | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15348 of file parse.c.

References nd_line, nd_type, NODE_BACK_REF, NODE_CALL, NODE_COLON2, NODE_COLON3, NODE_CONST, NODE_CVAR, NODE_DEFINED, NODE_DOT2, NODE_DOT3, NODE_DREGX, NODE_DREGX_ONCE, NODE_DSTR, NODE_DVAR, NODE_FALSE, NODE_GVAR, NODE_IVAR, NODE_LIT, NODE_LVAR, NODE_NIL, NODE_NTH_REF, NODE_SELF, NODE_STR, NODE_TRUE, rb_id2name(), rb_warnS, RTEST, ruby_sourceline, ruby_verbose, tCMP, tEQ, tGEQ, tLEQ, tNEQ, tPOW, tUMINUS, and tUPLUS.

static void void_stmts_gen | ( | struct parser_params * | parser,
|  | NODE * | node
| ) |  |
| static

Definition at line 15437 of file parse.c.

References nd_type, NODE_BLOCK, RTEST, ruby_verbose, and void_expr0.

static void vtable_add | ( | struct vtable * | tbl,
|  | ID | id
| ) |  |
| static

Definition at line 238 of file parse.c.

References vtable::capa, id, POINTER_P, vtable::pos, rb_bug(), rb_id2name(), REALLOC_N, vtable::tbl, and VTBL_DEBUG.

Referenced by arg_var_gen(), local_var_gen(), and shadowing_lvar_gen().

static struct vtable* vtable_alloc | ( | struct vtable * | prev | ) |
| static

Definition at line 214 of file parse.c.

References ALLOC, ALLOC_N, vtable::capa, vtable::pos, vtable::prev, vtable::tbl, tbl, and VTBL_DEBUG.

Referenced by dyna_push_gen(), and local_push_gen().

static void vtable_free | ( | struct vtable * | tbl | ) |
| static

Definition at line 226 of file parse.c.

References POINTER_P, vtable::tbl, VTBL_DEBUG, and xfree.

Referenced by dyna_pop_1(), and local_pop_gen().

static int vtable_included | ( | const struct vtable * | tbl,
|  | ID | id
| ) |  |
| static

Definition at line 253 of file parse.c.

References i, POINTER_P, vtable::pos, and vtable::tbl.

Referenced by dvar_curr_gen(), dvar_defined_gen(), and local_id_gen().

static int vtable_size | ( | const struct vtable * | tbl | ) |
| static

Definition at line 201 of file parse.c.

References POINTER_P, and vtable::pos.

Referenced by arg_var_gen(), internal_id_gen(), local_tbl_gen(), local_var_gen(), and vtable_tblcpy().

static ID* vtable_tblcpy | ( | ID * | buf,
|  | const struct vtable * | src
| ) |  |
| static

Definition at line 16008 of file parse.c.

References buf, cnt, i, vtable::tbl, and vtable_size().

Referenced by local_tbl_gen().

static void warn_unless_e_option | ( | struct parser_params * | parser,
|  | NODE * | node,
|  | const char * | str
| ) |  |
| static

Definition at line 15573 of file parse.c.

References e_option_supplied(), and parser_warn.

Referenced by cond0(), and range_op().

static void warn_unused_var | ( | struct parser_params * | parser,
|  | struct local_vars * | local
| ) |  |
| static

Definition at line 15958 of file parse.c.

References cnt, i, is_private_local_id(), LVAR_USED, vtable::pos, rb_bug(), rb_id2name(), rb_warn4S, ruby_sourcefile, vtable::tbl, local_vars::used, v, and local_vars::vars.

Referenced by dyna_pop_1(), and local_pop_gen().

static void warning_unless_e_option | ( | struct parser_params * | parser,
|  | NODE * | node,
|  | const char * | str
| ) |  |
| static

Definition at line 15579 of file parse.c.

References e_option_supplied(), and parser_warning.

Referenced by cond0().

while | ( | yyssp! | = `yyss` | ) |

Definition at line 11467 of file parse.c.

References yydestruct(), and YYPOPSTACK.

yyexhaustedlab YY_ | ( | "memory exhausted" |  | ) |

YY_REDUCE_PRINT | ( | yyn |  | ) |

YY_STACK_PRINT | ( | yyss | ,
|  | yyssp |
| ) |  |

YY_SYMBOL_PRINT | ( | yymsg | ,
|  | yytype | ,
|  | yyvaluep | ,
|  | yylocationp |
| ) |  |

YY_SYMBOL_PRINT | ( | "Next token is" | ,
|  | yytoken | ,
|  | & | yylval,
|  | & | yylloc
| ) |  |

YY_SYMBOL_PRINT | ( | "Shifting" | ,
|  | yytoken | ,
|  | & | yylval,
|  | & | yylloc
| ) |  |

YY_SYMBOL_PRINT | ( |  | ) |

YY_SYMBOL_PRINT | ( | "Shifting" | ,
|  | yystos | [yyn],
|  | yyvsp | ,
|  | yylsp |
| ) |  |

yy_symbol_value_print | ( | yyoutput | ,
|  | yytype | ,
|  | yyvaluep | ,
|  | parser |
| ) |  |

static NODE* yycompile | ( | struct parser_params * | parser,
|  | const char * | f,
|  | int | line
| ) |  |
| static

Definition at line 11858 of file parse.c.

References rb_suppress_tracing(), ruby_sourcefile, ruby_sourceline, ruby_strdup(), and yycompile0().

Referenced by parser_compile_string(), and rb_parser_compile_file().

static VALUE yycompile0 | ( | VALUE | arg | ) |
| static

Definition at line 11798 of file parse.c.

References compile_for_eval, coverage(), debug_lines(), deferred_nodes, e_option_supplied(), lex_lastline, lex_nextline, lex_p, lex_pbeg, lex_pend, lex_strterm, n, parser_params::nerr, NEW_NIL, NEW_PRELUDE, parser_prepare(), parser_params::parser_ruby_sourcefile, parser_params::parser_ruby_sourceline, parser_params::parser_token_info_enabled, rb_ary_push(), rb_safe_level, RTEST, ruby_coverage, ruby_debug_lines, RUBY_DTRACE_PARSE_BEGIN, RUBY_DTRACE_PARSE_BEGIN_ENABLED, RUBY_DTRACE_PARSE_END, RUBY_DTRACE_PARSE_END_ENABLED, ruby_eval_tree, ruby_eval_tree_begin, ruby_sourcefile, ruby_sourceline, ruby_verbose, STR_NEW0, and yyparse.

Referenced by yycompile().

yydestruct | ( | "Cleanup: discarding lookahead" | ,
|  | yytoken | ,
|  | & | yylval,
|  | parser |
| ) |  |

YYDPRINTF | ( | (stderr,"Starting parse\n") |  | ) |

YYDPRINTF | ( | (stderr,"Entering state %d\n", yystate) |  | ) |

else YYFPRINTF | ( | yyoutput |  | ) |

YYFPRINTF | ( | yyoutput | ,
|  | " |
| ) |  |

YYFPRINTF | ( | stderr | ,
|  | "\n" |
| ) |  |

YYFPRINTF | ( | stderr | ,
|  | "Reducing stack by rule %d (line %lu):\n" | ,
|  | yyrule- | 1,
|  | yylno |
| ) |  |

return YYID | ( | yyresult |  | ) |

static int yylex | ( | void * | ,
|  | void * |
| ) |  |
| static

int yyparse | ( |  | ) |

YYPOPSTACK | ( | yylen |  | ) |

YYSTACK_FREE | ( | yyss |  | ) |

YYSTACK_FREE | ( | yymsg |  | ) |

static int yysyntax_error | ( | YYSIZE_T * | yymsg_alloc,
|  | char ** | yymsg,
|  | yytype_int16 * | yyssp,
|  | int | yytoken
| ) |  |
| static

Definition at line 4763 of file parse.c.

References YY_, YYCASE_, YYEMPTY, YYLAST, yymsg, yyn, YYNTOKENS, yypact_value_is_default, YYSIZE_T, yyssp, YYSTACK_ALLOC_MAXIMUM, yytable_value_is_error, YYTERROR, yytnamerr(), and yytoken.

static YYSIZE_T yytnamerr | ( | char * | yyres,
|  | const char * | yystr
| ) |  |
| static

Definition at line 4715 of file parse.c.

References yyn, YYSIZE_T, and yystr.

Referenced by yysyntax_error().

YYUSE | ( | parser |  | ) |

YYUSE | ( | yyoutput |  | ) |

## Variable Documentation

yynewstate __pad0__

Definition at line 5047 of file parse.c.

yyexhaustedlab __pad10__

Definition at line 11449 of file parse.c.

yyreturn __pad11__

Definition at line 11459 of file parse.c.

error __pad12__

Definition at line 15102 of file parse.c.

yysetstate __pad1__

Definition at line 5050 of file parse.c.

yybackup __pad2__

Definition at line 5129 of file parse.c.

yydefault __pad3__

Definition at line 5188 of file parse.c.

yyreduce __pad4__

Definition at line 5199 of file parse.c.

yyerrlab __pad5__

Definition at line 11300 of file parse.c.

yyerrorlab __pad6__

Definition at line 11377 of file parse.c.

yyerrlab1 __pad7__

Definition at line 11392 of file parse.c.

yyacceptlab __pad8__

Definition at line 11434 of file parse.c.

yyabortlab __pad9__

Definition at line 11441 of file parse.c.

continue

Initial value:
{
YYSIZE_T yylen
yylen
return yylen
Definition: ripper.c:4673
YYSIZE_T
#define YYSIZE_T
Definition: parse.c:960

Definition at line 4669 of file parse.c.

else

Initial value:
{
yytoken = YYTRANSLATE (yychar)
yytoken
int yytoken
Definition: ripper.c:5002
YYTRANSLATE
#define YYTRANSLATE(YYX)
Definition: parse.c:1151
yychar
yychar
Definition: ripper.c:5030

Definition at line 5148 of file parse.c.

struct symbols global_symbols = {tLAST_TOKEN}
| static

Referenced by Init_sym(), intern_str(), rb_check_id(), rb_check_id_cstr(), rb_gc_mark_symbols(), rb_id2str(), rb_intern3(), rb_intern_str(), rb_sym_all_symbols(), and register_symid_str().

int
| static

Initial value:
{
struct parser_params *parser = (struct parser_params*)p
p
Win32OLEIDispatch * p
Definition: win32ole.c:786
parser
struct parser_params * parser
Definition: ripper.c:4507
parser_params
Definition: ripper.c:287

Definition at line 14607 of file parse.c.

struct magic_comment magic_comments[]
| static

Initial value:
= {
{"coding", magic_comment_encoding, parser_encode_length},
{"encoding", magic_comment_encoding, parser_encode_length},
{"warn_indent", parser_set_token_info},
}
parser_encode_length
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
Definition: parse.c:13006
magic_comment_encoding
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
Definition: parse.c:13074
parser_set_token_info
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
Definition: parse.c:13083

Definition at line 13110 of file parse.c.

Referenced by parser_magic_comment().

const char* name

Definition at line 16408 of file parse.c.

struct { ... } op_tbl[]

Initial value:
= {
{tDOT2, ".."},
{tDOT3, "..."},
{tPOW, "**"},
{tDSTAR, "**"},
{tUPLUS, "+@"},
{tUMINUS, "-@"},
{tCMP, "<=>"},
{tGEQ, ">="},
{tLEQ, "<="},
{tEQ, "=="},
{tEQQ, "==="},
{tNEQ, "!="},
{tMATCH, "=~"},
{tNMATCH, "!~"},
{tAREF, "[]"},
{tASET, "[]="},
{tLSHFT, "<<"},
{tRSHFT, ">>"},
{tCOLON2, "::"},
}
tDOT3
Definition: ripper.y:119
tCMP
Definition: ripper.y:108
tDOT2
Definition: ripper.y:118
tUPLUS
Definition: ripper.y:105
tAREF
Definition: ripper.y:120
tEQ
Definition: ripper.y:109
tGEQ
Definition: ripper.y:112
tPOW
Definition: ripper.y:107
tEQQ
Definition: ripper.y:110
tLEQ
Definition: ripper.y:113
tDSTAR
Definition: ripper.y:135
tMATCH
Definition: ripper.y:116
tRSHFT
Definition: ripper.y:123
tLSHFT
Definition: ripper.y:122
tNEQ
Definition: ripper.y:111
tUMINUS
Definition: ripper.y:106
tASET
Definition: ripper.y:121
tNMATCH
Definition: ripper.y:117
tCOLON2
Definition: ripper.y:124

Referenced by intern_str(), and rb_id2str().

int struct parser_params* parser

Definition at line 4507 of file parse.c.

static const rb_data_type_t parser_data_type
| static

Initial value:
= {
"parser",
{
parser_mark,
parser_free,
parser_memsize,
},
}
parser_memsize
static size_t parser_memsize(const void *ptr)
Definition: parse.c:17237
parser_free
static void parser_free(void *ptr)
Definition: parse.c:17217
parser_mark
static void parser_mark(void *ptr)
Definition: parse.c:17191

Definition at line 11917 of file parse.c.

parser parser_yylval = lval

Definition at line 14612 of file parse.c.

const unsigned int ruby_global_name_punct_bits[]

Initial value:
= {
SPECIAL_PUNCT(0),
SPECIAL_PUNCT(1),
SPECIAL_PUNCT(2),
}
SPECIAL_PUNCT
#define SPECIAL_PUNCT(idx)
Definition: parse.c:12646

Definition at line 12641 of file parse.c.

struct st_hash_type symhash
| static

Initial value:
= {
rb_str_hash_cmp,
rb_str_hash,
}
rb_str_hash
st_index_t rb_str_hash(VALUE)
Definition: string.c:2244
rb_str_hash_cmp
int rb_str_hash_cmp(VALUE, VALUE)
Definition: string.c:2254

Definition at line 16448 of file parse.c.

return t = parser_yylex(parser)

Definition at line 14609 of file parse.c.

ID token

Definition at line 16407 of file parse.c.

parser parser_yylval val = Qundef

Definition at line 14613 of file parse.c.

YYACCEPT

Definition at line 5116 of file parse.c.

goto yybackup

Definition at line 5118 of file parse.c.

void yytype_int16* yybottom
| static

Definition at line 4565 of file parse.c.

Referenced by for().

yychar = YYEMPTY

Definition at line 5030 of file parse.c.

const yytype_int16 yycheck[]
| static

Definition at line 3152 of file parse.c.

return yyd

Definition at line 4701 of file parse.c.

const yytype_uint16 yydefact[]
| static

Definition at line 1756 of file parse.c.

goto yydefault

Definition at line 5131 of file parse.c.

const yytype_int16 yydefgoto[]
| static

Initial value:
=
{
-1, 1, 2, 66, 67, 68, 236, 567, 568, 252,
253, 446, 254, 437, 70, 71, 358, 72, 73, 510,
690, 243, 75, 76, 255, 77, 78, 79, 467, 80,
209, 377, 378, 192, 193, 194, 195, 605, 556, 197,
82, 439, 211, 260, 228, 748, 426, 427, 225, 226,
213, 413, 428, 516, 83, 356, 259, 452, 625, 360,
846, 361, 847, 732, 987, 736, 733, 930, 594, 596,
746, 935, 245, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 713, 570, 721, 843, 844, 369, 772,
773, 774, 959, 898, 801, 686, 687, 802, 969, 970,
278, 279, 472, 777, 658, 879, 320, 511, 95, 96,
711, 704, 565, 557, 318, 508, 507, 577, 986, 715,
837, 916, 920, 97, 98, 99, 100, 101, 102, 103,
290, 485, 104, 294, 105, 106, 292, 296, 286, 284,
288, 477, 676, 675, 792, 891, 796, 107, 285, 108,
109, 216, 217, 112, 218, 219, 589, 735, 744, 880,
779, 745, 661, 662, 663, 664, 665, 804, 805, 666,
667, 668, 669, 807, 808, 670, 671, 672, 673, 674,
781, 396, 595, 265, 429, 221, 115, 629, 559, 399,
304, 423, 424, 706, 457, 571, 364, 257
}

Definition at line 1867 of file parse.c.

char* char* yydest
| static

Definition at line 4691 of file parse.c.

goto yyerrlab

Definition at line 5190 of file parse.c.

goto yyerrlab1

Definition at line 11365 of file parse.c.

yyerrstatus = 0

Definition at line 4978 of file parse.c.

int yyi

Initial value:
{
int yynrhs = yyr2[yyrule]
yyr2
static const yytype_uint8 yyr2[]
Definition: parse.c:1687
yyrule
int yyrule
Definition: ripper.c:4597

Definition at line 4600 of file parse.c.

yylen = 0

Definition at line 4673 of file parse.c.

unsigned long int yylno = yyrline[yyrule]

Definition at line 4603 of file parse.c.

YYSTYPE yylval

Initial value:
{
int yychar
yychar
yychar
Definition: ripper.c:5030

Definition at line 4966 of file parse.c.

char * yymsg = "Deleting"
| static

Definition at line 4903 of file parse.c.

Referenced by if(), and yysyntax_error().

YYSIZE_T yymsg_alloc = sizeof yymsgbuf

Definition at line 5011 of file parse.c.

char yymsgbuf[128]

Definition at line 5009 of file parse.c.

yyn = yytoken

Definition at line 4999 of file parse.c.

yynerrs = 0

Definition at line 4974 of file parse.c.

goto yynewstate

Definition at line 5181 of file parse.c.

static void FILE * yyoutput
| static

Definition at line 4504 of file parse.c.

const yytype_int16 yypact[]
| static

Definition at line 1894 of file parse.c.

const yytype_int16 yypgoto[]
| static

Initial value:
=
{
-810, -810, -810, -382, -810, 26, -810, -549, -7, -810,
513, -810, 33, -810, -315, -33, -63, -55, -810, -216,
-810, 766, -13, 874, -164, 20, -73, -810, -409, 29,
1882, -309, 882, -54, -810, -5, -810, -810, 6, -810,
1208, -810, 1366, -810, -41, 256, -344, 78, -14, -810,
-384, -205, -4, -304, -15, -810, -810, -810, -810, -810,
-810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
-810, -810, 64, -810, -810, -810, -810, -810, -810, -810,
-810, -810, -810, -1, -333, -519, -44, -623, -810, -789,
-771, 211, 297, 71, -810, -437, -810, -693, -810, -29,
-810, -810, -810, -810, -810, -810, 237, -810, -810, -810,
-810, -810, -810, -810, -94, -810, -810, -531, -810, -31,
-810, -810, -810, -810, -810, -810, 890, -810, -810, -810,
-810, 701, -810, -810, -810, -810, -810, -810, -810, 940,
-810, -126, -810, -810, -810, -810, -810, -3, -810, 11,
-810, 1400, 1673, 905, 1898, 1689, -810, -810, 65, -451,
-102, -385, -809, -588, -689, -289, 222, 107, -810, -810,
-810, 18, -721, -764, 115, 235, -810, -634, -810, -37,
-627, -810, -810, -810, 114, -388, -810, -324, -810, 623,
-47, -9, -123, -568, -214, 21, -11, -2
}

Definition at line 2005 of file parse.c.

const yytype_uint16 yyprhs[]
| static

Definition at line 1198 of file parse.c.

const yytype_uint16 yyr1[]
| static

Definition at line 1620 of file parse.c.

const yytype_uint8 yyr2[]
| static

Definition at line 1687 of file parse.c.

goto yyreduce

Definition at line 5191 of file parse.c.

yyresult = 2

Definition at line 5000 of file parse.c.

goto yyreturn

Definition at line 11435 of file parse.c.

const yytype_int16 yyrhs[]
| static

Definition at line 1265 of file parse.c.

const yytype_uint16 yyrline[]
| static

Definition at line 1460 of file parse.c.

int yyrule

Definition at line 4597 of file parse.c.

const char* yys = yysrc

Definition at line 4696 of file parse.c.

goto yysetstate

Definition at line 5039 of file parse.c.

const char* yysrc

Definition at line 4692 of file parse.c.

yyss = yyssa

Definition at line 4989 of file parse.c.

yytype_int16 yyssa[YYINITDEPTH]

Definition at line 4988 of file parse.c.

yyssp = yyss

Definition at line 4990 of file parse.c.

yystacksize = YYINITDEPTH

Definition at line 4997 of file parse.c.

yystate = 0

Definition at line 4976 of file parse.c.

const yytype_uint16 yystos[]
| static

Definition at line 4267 of file parse.c.

YYSIZE_T const char* yystr
| static

Definition at line 4667 of file parse.c.

Referenced by yytnamerr().

const yytype_int16 yytable[]
| static

Definition at line 2033 of file parse.c.

const char* const yytname[]
| static

Definition at line 1530 of file parse.c.

yytoken = 0

Definition at line 5002 of file parse.c.

yytype_int16* yytop

Definition at line 4566 of file parse.c.

const yytype_uint8 yytranslate[]
| static

Definition at line 1155 of file parse.c.

int yytype

Definition at line 4505 of file parse.c.

yyval = yyvsp[1-yylen]

Definition at line 5005 of file parse.c.

YYSTYPE* yyvaluep

Definition at line 4506 of file parse.c.

yyvs = yyvsa

Definition at line 4994 of file parse.c.

YYSTYPE yyvsa[YYINITDEPTH]

Definition at line 4993 of file parse.c.

* yyvsp = yyvs
| static

Definition at line 4596 of file parse.c.