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"

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

Defines

#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 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 ruby_sourcefile_string   (parser->parser_ruby_sourcefile_string)
#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 new_defined(expr)   NEW_DEFINED(remove_begin_all(expr))
#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
#define NODE_HEREDOC   NODE_ARRAY
#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   11071
#define YYNTOKENS   144
#define YYNNTS   203
#define YYNRULES   626
#define YYNSTATES   1059
#define YYUNDEFTOK   2
#define YYMAXUTOK   354
#define YYTRANSLATE(YYX)   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
#define YYPACT_NINF   -816
#define YYTABLE_NINF   -627
#define yypact_value_is_default(yystate)   ((yystate) == (-816))
#define yytable_value_is_error(yytable_value)   ((yytable_value) == (-627))
#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 number_literal_suffix(f)   parser_number_literal_suffix(parser, (f))
#define set_number_literal(v, t, f)   parser_set_number_literal(parser, (v), (t), (f))
#define set_integer_literal(v, f)   parser_set_integer_literal(parser, (v), (f))
#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((unsigned char)(*(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 NUM_SUFFIX_R   (1<<0)
#define NUM_SUFFIX_I   (1<<1)
#define NUM_SUFFIX_ALL   3
#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 IDSET_ATTRSET_FOR_SYNTAX   ((1U<<ID_LOCAL)|(1U<<ID_CONST))
#define IDSET_ATTRSET_FOR_INTERN   (~(~0U<<ID_SCOPE_MASK) & ~(1U<<ID_ATTRSET))
#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 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_LABELARG_bit,
  EXPR_MAX_STATE
}
enum  lex_state_e {
  BEG, END, ENDARG, ENDFN,
  ARG, CMDARG, MID, FNAME,
  DOT, CLASS, VALUE, LABELARG,
  EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS | EXPR_LABELARG), 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)
}

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 vtablevtable_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 NODEnode_newnode (struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
static NODEcond_gen (struct parser_params *, NODE *)
static NODElogop_gen (struct parser_params *, enum node_type, NODE *, NODE *)
static NODEnewline_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 NODEremove_begin (NODE *)
static NODEremove_begin_all (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 NODEblock_append_gen (struct parser_params *, NODE *, NODE *)
static NODElist_append_gen (struct parser_params *, NODE *, NODE *)
static NODElist_concat_gen (struct parser_params *, NODE *, NODE *)
static NODEarg_append_gen (struct parser_params *, NODE *, NODE *)
static NODEarg_concat_gen (struct parser_params *, NODE *, NODE *)
static NODEliteral_concat_gen (struct parser_params *, NODE *, NODE *)
static int literal_concat0 (struct parser_params *, VALUE, VALUE)
static NODEnew_evstr_gen (struct parser_params *, NODE *)
static NODEevstr2dstr_gen (struct parser_params *, NODE *)
static NODEsplat_array (NODE *)
static NODEcall_bin_op_gen (struct parser_params *, NODE *, ID, NODE *)
static NODEcall_uni_op_gen (struct parser_params *, NODE *, ID)
static NODEnew_args_gen (struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
static NODEnew_args_tail_gen (struct parser_params *, NODE *, ID, ID)
static NODEnegate_lit (NODE *)
static NODEret_args_gen (struct parser_params *, NODE *)
static NODEarg_blk_pass (NODE *, NODE *)
static NODEnew_yield_gen (struct parser_params *, NODE *)
static NODEdsym_node_gen (struct parser_params *, NODE *)
static NODEgettable_gen (struct parser_params *, ID)
static NODEassignable_gen (struct parser_params *, ID, NODE *)
static NODEaryset_gen (struct parser_params *, NODE *, NODE *)
static NODEattrset_gen (struct parser_params *, NODE *, ID)
static void rb_backref_error_gen (struct parser_params *, NODE *)
static NODEnode_assign_gen (struct parser_params *, NODE *, NODE *)
static NODEnew_op_assign_gen (struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
static NODEnew_attr_op_assign_gen (struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
static NODEnew_const_op_assign_gen (struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
static NODEmatch_op_gen (struct parser_params *, NODE *, NODE *)
static IDlocal_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 NODEreg_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 vtabledyna_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)
static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
static void yy_reduce_print (YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
static YYSIZE_T yystrlen (char *yystr) const
static char * yystpcpy (char *yydest, const char *yysrc)
static YYSIZE_T yytnamerr (char *yyres, const char *yystr)
static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static void yydestruct (char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
int yyparse ()
int yyparse (struct parser_params *parser)
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 (VALUE fname)
static VALUE coverage (VALUE fname, int n)
static int e_option_supplied (struct parser_params *parser)
static VALUE yycompile0 (VALUE arg)
static NODEyycompile (struct parser_params *parser, VALUE fname, int line)
static rb_encodingmust_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 NODEparser_compile_string (volatile VALUE vparser, VALUE fname, VALUE s, int line)
NODErb_compile_string (const char *f, VALUE s, int line)
NODErb_parser_compile_string (volatile VALUE vparser, const char *f, VALUE s, int line)
NODErb_parser_compile_string_path (volatile VALUE vparser, VALUE f, VALUE s, int line)
NODErb_compile_cstr (const char *f, const char *s, int len, int line)
NODErb_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)
NODErb_compile_file (const char *f, VALUE file, int start)
NODErb_parser_compile_file (volatile VALUE vparser, const char *f, VALUE file, int start)
NODErb_parser_compile_file_path (volatile VALUE vparser, VALUE fname, 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 int 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 int parser_number_literal_suffix (struct parser_params *parser, int mask)
static int parser_set_number_literal (struct parser_params *parser, VALUE v, int type, int suffix)
static int parser_set_integer_literal (struct parser_params *parser, VALUE v, int suffix)
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 int is_private_local_id (ID name)
static int shadowing_lvar_0 (struct parser_params *parser, 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 NODEcond0 (struct parser_params *, NODE *)
static NODErange_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 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)
NODErb_parser_append_print (VALUE vparser, NODE *node)
NODErb_parser_while_loop (VALUE vparser, NODE *node, int chop, int split)
void Init_sym (void)
void rb_gc_mark_symbols (int full_mark)
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, unsigned int allowed_attrset)
int rb_enc_symname2_p (const char *name, long len, rb_encoding *enc)
static int rb_str_symname_type (VALUE name, unsigned int allowed_attrset)
static int sym_check_asciionly (VALUE str)
static ID intern_str (VALUE str)
static VALUE setup_fake_str (struct RString *fake_str, const char *name, long len)
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.
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)
kwtablerb_reserved_word (const char *str, unsigned int len)
static struct parser_paramsparser_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 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 const char id_type_names [][9]
struct {
   ID   token
   const char *   name
op_tbl []
static struct symbols global_symbols
static struct st_hash_type symhash
static const rb_data_type_t parser_data_type


Define Documentation

#define ADD2HEAP ( n,
c,
 ) 

Value:

((parser->heap = (n))->u1.node = (p), \
                           (n)->u3.cnt = (c), (p))

Definition at line 17571 of file parse.c.

#define ambiguous_operator ( op,
syn   ) 

Value:

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

Definition at line 13439 of file parse.c.

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

Definition at line 13103 of file parse.c.

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

Definition at line 455 of file parse.c.

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

Definition at line 457 of file parse.c.

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

Definition at line 566 of file parse.c.

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

Definition at line 492 of file parse.c.

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

Definition at line 489 of file parse.c.

#define assignable_result (  )     (x)

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

Definition at line 494 of file parse.c.

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

Definition at line 12701 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,
 )     ((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,
 )     block_append_gen(parser,(h),(t))

Definition at line 449 of file parse.c.

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

Definition at line 446 of file parse.c.

#define brace_nest   (parser->parser_brace_nest)

Definition at line 378 of file parse.c.

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

Definition at line 468 of file parse.c.

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

Definition at line 470 of file parse.c.

#define calloc   YYCALLOC

Definition at line 98 of file parse.c.

#define class_nest   (parser->parser_class_nest)

Definition at line 375 of file parse.c.

 
#define CMDARG_LEXPOP (  )     BITSTACK_LEXPOP(cmdarg_stack)

Definition at line 178 of file parse.c.

 
#define CMDARG_P (  )     BITSTACK_SET_P(cmdarg_stack)

Definition at line 179 of file parse.c.

 
#define CMDARG_POP (  )     BITSTACK_POP(cmdarg_stack)

Definition at line 177 of file parse.c.

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

Definition at line 176 of file parse.c.

#define cmdarg_stack   (parser->parser_cmdarg_stack)

Definition at line 374 of file parse.c.

#define command_start   (parser->parser_command_start)

Definition at line 395 of file parse.c.

#define compile_error   parser->nerr++,rb_compile_error_with_enc

Definition at line 729 of file parse.c.

#define compile_for_eval   (parser->parser_compile_for_eval)

Definition at line 381 of file parse.c.

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

Definition at line 427 of file parse.c.

 
#define COND_LEXPOP (  )     BITSTACK_LEXPOP(cond_stack)

Definition at line 173 of file parse.c.

 
#define COND_P (  )     BITSTACK_SET_P(cond_stack)

Definition at line 174 of file parse.c.

 
#define COND_POP (  )     BITSTACK_POP(cond_stack)

Definition at line 172 of file parse.c.

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

Definition at line 171 of file parse.c.

#define cond_stack   (parser->parser_cond_stack)

Definition at line 373 of file parse.c.

#define cur_mid   (parser->parser_cur_mid)

Definition at line 382 of file parse.c.

#define current_enc   (parser->enc)

Definition at line 404 of file parse.c.

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

#define deferred_nodes   (parser->parser_deferred_nodes)

Definition at line 396 of file parse.c.

 
#define dispatch_heredoc_end (  )     ((void)0)

Definition at line 12986 of file parse.c.

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

Definition at line 484 of file parse.c.

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

Definition at line 583 of file parse.c.

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

Definition at line 580 of file parse.c.

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

Definition at line 581 of file parse.c.

#define DVARS_INHERIT   ((void*)1)

Definition at line 196 of file parse.c.

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

Definition at line 198 of file parse.c.

#define DVARS_TOPSCOPE   NULL

Definition at line 197 of file parse.c.

 
#define dyna_in_block (  )     dyna_in_block_gen(parser)

Definition at line 577 of file parse.c.

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

Definition at line 575 of file parse.c.

 
#define dyna_push (  )     dyna_push_gen(parser)

Definition at line 573 of file parse.c.

#define dyna_var ( id   )     local_var(id)

Definition at line 578 of file parse.c.

#define ENABLE_SELECTOR_NAMESPACE   0

Definition at line 16622 of file parse.c.

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

Definition at line 365 of file parse.c.

#define ESCAPE_CONTROL   1

Definition at line 12295 of file parse.c.

#define ESCAPE_META   2

Definition at line 12296 of file parse.c.

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

Definition at line 464 of file parse.c.

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

Definition at line 12694 of file parse.c.

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

Definition at line 553 of file parse.c.

#define free   YYFREE

Definition at line 99 of file parse.c.

#define get_id ( id   )     (id)

Definition at line 526 of file parse.c.

#define get_value ( val   )     (val)

Definition at line 527 of file parse.c.

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

Definition at line 487 of file parse.c.

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

Definition at line 17569 of file parse.c.

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

Definition at line 11549 of file parse.c.

#define heredoc_end   (parser->parser_heredoc_end)

Definition at line 394 of file parse.c.

 
#define heredoc_identifier (  )     parser_heredoc_identifier(parser)

Definition at line 11550 of file parse.c.

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

Definition at line 11551 of file parse.c.

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

Definition at line 116 of file parse.c.

#define IDSET_ATTRSET_FOR_INTERN   (~(~0U<<ID_SCOPE_MASK) & ~(1U<<ID_ATTRSET))

Definition at line 16749 of file parse.c.

#define IDSET_ATTRSET_FOR_SYNTAX   ((1U<<ID_LOCAL)|(1U<<ID_CONST))

Definition at line 16748 of file parse.c.

#define ifndef_ripper (  )     (x)

Definition at line 695 of file parse.c.

#define in_def   (parser->parser_in_def)

Definition at line 380 of file parse.c.

#define in_defined   (parser->parser_in_defined)

Definition at line 383 of file parse.c.

#define in_single   (parser->parser_in_single)

Definition at line 379 of file parse.c.

 
#define internal_id (  )     internal_id_gen(parser)

Definition at line 570 of file parse.c.

 
#define IS_AFTER_OPERATOR (  )     IS_lex_state(EXPR_FNAME | EXPR_DOT)

Definition at line 13436 of file parse.c.

 
#define IS_ARG (  )     IS_lex_state(EXPR_ARG_ANY)

Definition at line 13430 of file parse.c.

#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))

Definition at line 118 of file parse.c.

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

Definition at line 112 of file parse.c.

 
#define IS_BEG (  )     IS_lex_state(EXPR_BEG_ANY)

Definition at line 13432 of file parse.c.

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

Definition at line 114 of file parse.c.

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

Definition at line 113 of file parse.c.

 
#define IS_END (  )     IS_lex_state(EXPR_END_ANY)

Definition at line 13431 of file parse.c.

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

Definition at line 110 of file parse.c.

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

Definition at line 11651 of file parse.c.

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

Definition at line 111 of file parse.c.

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

Definition at line 115 of file parse.c.

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

Definition at line 13434 of file parse.c.

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

Definition at line 13435 of file parse.c.

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

Definition at line 158 of file parse.c.

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

Definition at line 157 of file parse.c.

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

Definition at line 109 of file parse.c.

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

Definition at line 108 of file parse.c.

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

Definition at line 13433 of file parse.c.

 
#define lex_eol_p (  )     (lex_p >= lex_pend)

Definition at line 12085 of file parse.c.

#define lex_gets   (parser->parser_lex_gets)

Definition at line 398 of file parse.c.

#define lex_gets_ptr   (parser->parser_lex_gets_ptr)

Definition at line 397 of file parse.c.

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

Definition at line 12084 of file parse.c.

#define lex_input   (parser->parser_lex_input)

Definition at line 388 of file parse.c.

#define lex_lastline   (parser->parser_lex_lastline)

Definition at line 389 of file parse.c.

#define lex_nextline   (parser->parser_lex_nextline)

Definition at line 390 of file parse.c.

#define lex_p   (parser->parser_lex_p)

Definition at line 392 of file parse.c.

#define lex_pbeg   (parser->parser_lex_pbeg)

Definition at line 391 of file parse.c.

#define lex_pend   (parser->parser_lex_pend)

Definition at line 393 of file parse.c.

#define lex_state   (parser->parser_lex_state)

Definition at line 372 of file parse.c.

#define lex_strterm   (parser->parser_lex_strterm)

Definition at line 371 of file parse.c.

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

Definition at line 451 of file parse.c.

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

Definition at line 453 of file parse.c.

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

Definition at line 459 of file parse.c.

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

Definition at line 568 of file parse.c.

 
#define local_pop (  )     local_pop_gen(parser)

Definition at line 562 of file parse.c.

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

Definition at line 560 of file parse.c.

 
#define local_tbl (  )     local_tbl_gen(parser)

Definition at line 513 of file parse.c.

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

Definition at line 564 of file parse.c.

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

Definition at line 429 of file parse.c.

#define lpar_beg   (parser->parser_lpar_beg)

Definition at line 377 of file parse.c.

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

Definition at line 586 of file parse.c.

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

Definition at line 15256 of file parse.c.

#define lvtbl   (parser->parser_lvtbl)

Definition at line 399 of file parse.c.

#define malloc   YYMALLOC

Definition at line 96 of file parse.c.

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

Definition at line 510 of file parse.c.

#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);                        \
    }

#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)

#define nd_func   u1.id

Definition at line 599 of file parse.c.

#define nd_nest   u3.cnt

Definition at line 606 of file parse.c.

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

Definition at line 605 of file parse.c.

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

Definition at line 603 of file parse.c.

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

Definition at line 473 of file parse.c.

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

Definition at line 475 of file parse.c.

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

Definition at line 503 of file parse.c.

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

Definition at line 557 of file parse.c.

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

Definition at line 505 of file parse.c.

#define new_defined ( expr   )     NEW_DEFINED(remove_begin_all(expr))

Definition at line 507 of file parse.c.

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

Definition at line 462 of file parse.c.

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

Definition at line 550 of file parse.c.

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

Definition at line 12675 of file parse.c.

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

Definition at line 482 of file parse.c.

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

Definition at line 17570 of file parse.c.

 
#define newtok (  )     parser_newtok(parser)

Definition at line 11539 of file parse.c.

 
#define nextc (  )     parser_nextc(parser)

Definition at line 11537 of file parse.c.

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

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

Definition at line 499 of file parse.c.

#define NODE_HEREDOC   NODE_ARRAY

Definition at line 597 of file parse.c.

#define NODE_STRTERM   NODE_ZARRAY

Definition at line 596 of file parse.c.

#define NUM_SUFFIX_ALL   3

Definition at line 12921 of file parse.c.

#define NUM_SUFFIX_I   (1<<1)

Definition at line 12920 of file parse.c.

#define NUM_SUFFIX_R   (1<<0)

Definition at line 12919 of file parse.c.

#define number_literal_suffix (  )     parser_number_literal_suffix(parser, (f))

Definition at line 11553 of file parse.c.

#define op_tbl_count   numberof(op_tbl)

Definition at line 16619 of file parse.c.

#define paren_nest   (parser->parser_paren_nest)

Definition at line 376 of file parse.c.

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

Definition at line 11547 of file parse.c.

#define PARSER_ARG   ruby_sourcefile, ruby_sourceline, current_enc,

Definition at line 730 of file parse.c.

#define PARSER_DEBUG   0

Definition at line 73 of file parse.c.

 
#define parser_encoding_name (  )     (current_enc->name)

Definition at line 11648 of file parse.c.

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

Definition at line 11652 of file parse.c.

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

Definition at line 11654 of file parse.c.

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

Definition at line 11649 of file parse.c.

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

Definition at line 11650 of file parse.c.

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

Definition at line 14819 of file parse.c.

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

Definition at line 14812 of file parse.c.

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

Definition at line 12086 of file parse.c.

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

Definition at line 12087 of file parse.c.

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

Definition at line 199 of file parse.c.

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

Definition at line 11538 of file parse.c.

#define Qnone   0

Definition at line 694 of file parse.c.

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

Definition at line 497 of file parse.c.

#define rb_compile_error   rb_compile_error_with_enc

Definition at line 728 of file parse.c.

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

Definition at line 424 of file parse.c.

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

Definition at line 702 of file parse.c.

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

Definition at line 705 of file parse.c.

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

Definition at line 703 of file parse.c.

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

Definition at line 706 of file parse.c.

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

Definition at line 707 of file parse.c.

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

Definition at line 704 of file parse.c.

#define RE_OPTION_ARG_ENCODING_NONE   32

Definition at line 594 of file parse.c.

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

Definition at line 590 of file parse.c.

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

Definition at line 591 of file parse.c.

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

Definition at line 592 of file parse.c.

#define RE_OPTION_ENCODING_SHIFT   8

Definition at line 589 of file parse.c.

#define RE_OPTION_MASK   0xff

Definition at line 593 of file parse.c.

#define RE_OPTION_ONCE   (1<<16)

Definition at line 588 of file parse.c.

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

Definition at line 11543 of file parse.c.

#define realloc   YYREALLOC

Definition at line 97 of file parse.c.

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

Definition at line 444 of file parse.c.

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

Definition at line 518 of file parse.c.

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

Definition at line 522 of file parse.c.

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

Definition at line 520 of file parse.c.

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

Definition at line 524 of file parse.c.

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

Definition at line 104 of file parse.c.

 
#define regx_options (  )     parser_regx_options(parser)

Definition at line 11545 of file parse.c.

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

Definition at line 479 of file parse.c.

#define ripper_flush (  )     (void)(p)

Definition at line 11581 of file parse.c.

#define ruby__end__seen   (parser->parser_ruby__end__seen)

Definition at line 400 of file parse.c.

#define ruby_coverage   (parser->coverage)

Definition at line 411 of file parse.c.

#define ruby_debug_lines   (parser->debug_lines)

Definition at line 410 of file parse.c.

#define ruby_eval_tree   (parser->parser_eval_tree)

Definition at line 408 of file parse.c.

#define ruby_eval_tree_begin   (parser->parser_eval_tree_begin)

Definition at line 409 of file parse.c.

#define ruby_sourcefile   (parser->parser_ruby_sourcefile)

Definition at line 402 of file parse.c.

#define ruby_sourcefile_string   (parser->parser_ruby_sourcefile_string)

Definition at line 403 of file parse.c.

#define ruby_sourceline   (parser->parser_ruby_sourceline)

Definition at line 401 of file parse.c.

#define set_integer_literal ( v,
 )     parser_set_integer_literal(parser, (v), (f))

Definition at line 11555 of file parse.c.

#define set_number_literal ( v,
t,
 )     parser_set_number_literal(parser, (v), (t), (f))

Definition at line 11554 of file parse.c.

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

Definition at line 11560 of file parse.c.

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

Definition at line 11562 of file parse.c.

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

Definition at line 11561 of file parse.c.

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

Definition at line 11563 of file parse.c.

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

Definition at line 11559 of file parse.c.

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

Definition at line 11558 of file parse.c.

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

Definition at line 555 of file parse.c.

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

Definition at line 598 of file parse.c.

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

Definition at line 11645 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))

Definition at line 12702 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))))

#define STR_FUNC_ESCAPE   0x01

Definition at line 12049 of file parse.c.

#define STR_FUNC_EXPAND   0x02

Definition at line 12050 of file parse.c.

#define STR_FUNC_INDENT   0x20

Definition at line 12054 of file parse.c.

#define STR_FUNC_QWORDS   0x08

Definition at line 12052 of file parse.c.

#define STR_FUNC_REGEXP   0x04

Definition at line 12051 of file parse.c.

#define STR_FUNC_SYMBOL   0x10

Definition at line 12053 of file parse.c.

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

Definition at line 361 of file parse.c.

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

Definition at line 362 of file parse.c.

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

Definition at line 363 of file parse.c.

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

Definition at line 364 of file parse.c.

#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))

 
#define tok (  )     tokenbuf

Definition at line 12164 of file parse.c.

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

Definition at line 11542 of file parse.c.

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

Definition at line 366 of file parse.c.

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

Definition at line 11541 of file parse.c.

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

Definition at line 11544 of file parse.c.

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

Definition at line 12526 of file parse.c.

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

Definition at line 11546 of file parse.c.

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

Definition at line 11548 of file parse.c.

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

Definition at line 12220 of file parse.c.

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

Definition at line 746 of file parse.c.

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

Definition at line 745 of file parse.c.

#define tokenbuf   (parser->parser_tokenbuf)

Definition at line 384 of file parse.c.

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

Definition at line 12163 of file parse.c.

#define tokidx   (parser->parser_tokidx)

Definition at line 385 of file parse.c.

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

Definition at line 12166 of file parse.c.

 
#define toklen (  )     tokidx

Definition at line 12165 of file parse.c.

#define tokline   (parser->parser_tokline)

Definition at line 387 of file parse.c.

#define toksiz   (parser->parser_toksiz)

Definition at line 386 of file parse.c.

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

Definition at line 11540 of file parse.c.

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

Definition at line 438 of file parse.c.

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

Definition at line 440 of file parse.c.

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

Definition at line 439 of file parse.c.

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

Definition at line 442 of file parse.c.

#define VTBL_DEBUG   0

Definition at line 212 of file parse.c.

#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)))

Definition at line 13445 of file parse.c.

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

Definition at line 12161 of file parse.c.

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

Definition at line 11552 of file parse.c.

#define YY_ ( msgid   )     msgid

Definition at line 986 of file parse.c.

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

Definition at line 4472 of file parse.c.

#define YY_REDUCE_PRINT ( Rule   ) 

Value:

do {                                    \
  if (yydebug)                          \
    yy_reduce_print (yyvsp, Rule, parser); \
} while (YYID (0))

Definition at line 4635 of file parse.c.

#define YY_STACK_PRINT ( Bottom,
Top   ) 

Value:

do {                                                            \
  if (yydebug)                                                  \
    yy_stack_print ((Bottom), (Top));                           \
} while (YYID (0))

Definition at line 4596 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))

Definition at line 4498 of file parse.c.

#define YYABORT   goto yyabortlab

Definition at line 4401 of file parse.c.

#define YYACCEPT   goto yyacceptlab

Definition at line 4400 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))

Definition at line 4422 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 94 of file parse.c.

#define YYCASE_ ( N,
S   ) 

Value:

case N:                               \
        yyformat = S;                       \
      break

#define yyclearin   (yychar = YYEMPTY)

Definition at line 4396 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))

Definition at line 1133 of file parse.c.

#define YYCOPY_NEEDED   1

Definition at line 1105 of file parse.c.

#define yydebug   (parser->parser_yydebug)

Definition at line 405 of file parse.c.

#define YYDEBUG   1

Definition at line 75 of file parse.c.

#define YYDPRINTF ( Args   ) 

Value:

do {                                            \
  if (yydebug)                                  \
    YYFPRINTF Args;                             \
} while (YYID (0))

Definition at line 4492 of file parse.c.

#define YYEMPTY   (-2)

Definition at line 4397 of file parse.c.

#define YYEOF   0

Definition at line 4398 of file parse.c.

#define YYERRCODE   256

Definition at line 4440 of file parse.c.

#define yyerrok   (yyerrstatus = 0)

Definition at line 4395 of file parse.c.

#define YYERROR   goto yyerrorlab

Definition at line 4402 of file parse.c.

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

Definition at line 369 of file parse.c.

#define YYERROR_VERBOSE   1

Definition at line 764 of file parse.c.

#define YYERROR_VERBOSE   1

Definition at line 764 of file parse.c.

#define YYFAIL   goto yyerrlab

Definition at line 4412 of file parse.c.

#define YYFINAL   3

Definition at line 1146 of file parse.c.

#define YYFPRINTF   fprintf

Definition at line 4489 of file parse.c.

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

Definition at line 95 of file parse.c.

#define YYID (  )     (n)

Definition at line 999 of file parse.c.

#define YYINITDEPTH   200

Definition at line 4656 of file parse.c.

#define YYLAST   11071

Definition at line 1148 of file parse.c.

#define YYLEX   yylex (&yylval, parser)

Definition at line 4481 of file parse.c.

#define YYLLOC_DEFAULT ( Current,
Rhs,
 ) 

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))

Definition at line 4449 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 11528 of file parse.c.

 
#define yylval_id (  )     (yylval.id)

Definition at line 11564 of file parse.c.

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

Definition at line 92 of file parse.c.

#define YYMAXDEPTH   10000

Definition at line 4667 of file parse.c.

#define YYMAXUTOK   354

Definition at line 1161 of file parse.c.

#define YYNNTS   203

Definition at line 1153 of file parse.c.

#define YYNRULES   626

Definition at line 1155 of file parse.c.

#define YYNSTATES   1059

Definition at line 1157 of file parse.c.

#define YYNTOKENS   144

Definition at line 1151 of file parse.c.

#define YYPACT_NINF   -816

Definition at line 1912 of file parse.c.

#define yypact_value_is_default ( yystate   )     ((yystate) == (-816))

Definition at line 3165 of file parse.c.

#define yyparse   ruby_yyparse

Definition at line 421 of file parse.c.

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

#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 93 of file parse.c.

 
#define YYRECOVERING (  )     (!!yyerrstatus)

Definition at line 4420 of file parse.c.

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

Definition at line 4447 of file parse.c.

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

Definition at line 976 of file parse.c.

#define YYSIZE_T   unsigned int

Definition at line 972 of file parse.c.

#define YYSKELETON_NAME   "yacc.c"

Definition at line 50 of file parse.c.

#define YYSTACK_ALLOC   YYMALLOC

Definition at line 1054 of file parse.c.

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 1057 of file parse.c.

#define YYSTACK_BYTES (  ) 

Value:

((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
      + YYSTACK_GAP_MAXIMUM)

Definition at line 1101 of file parse.c.

#define YYSTACK_FREE   YYFREE

Definition at line 1055 of file parse.c.

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

Definition at line 1097 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))

Definition at line 1112 of file parse.c.

#define YYSTACK_USE_ALLOCA   0

Definition at line 77 of file parse.c.

#define YYSYNTAX_ERROR

Value:

yysyntax_error (&yymsg_alloc, &yymsg, \
                                        yyssp, yytoken)

#define YYTABLE_NINF   -627

Definition at line 2052 of file parse.c.

#define yytable_value_is_error ( yytable_value   )     ((yytable_value) == (-627))

Definition at line 3168 of file parse.c.

#define YYTERROR   1

Definition at line 4439 of file parse.c.

#define YYTOKEN_TABLE   0

Definition at line 771 of file parse.c.

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

Definition at line 1163 of file parse.c.

#define YYUNDEFTOK   2

Definition at line 1160 of file parse.c.

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

Definition at line 992 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 13188 of file parse.c.

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

Definition at line 13189 of file parse.c.

typedef VALUE stack_type

Definition at line 164 of file parse.c.

typedef short int yytype_int16

Definition at line 959 of file parse.c.

typedef short int yytype_int8

Definition at line 947 of file parse.c.

typedef unsigned short int yytype_uint16

Definition at line 953 of file parse.c.

typedef unsigned char yytype_uint8

Definition at line 938 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_LABELARG_bit 
EXPR_MAX_STATE 

Definition at line 123 of file parse.c.

enum lex_state_e

Enumerator:
BEG 
END 
ENDARG 
ENDFN 
ARG 
CMDARG 
MID 
FNAME 
DOT 
CLASS 
VALUE 
LABELARG 
EXPR_BEG_ANY 
EXPR_ARG_ANY 
EXPR_END_ANY 

Definition at line 139 of file parse.c.

enum string_type

Enumerator:
str_squote 
str_dquote 
str_xquote 
str_regexp 
str_sword 
str_dword 
str_ssym 
str_dsym 

Definition at line 12056 of file parse.c.


Function Documentation

static void arg_ambiguous_gen ( struct parser_params parser  )  [static]

Definition at line 13095 of file parse.c.

References arg_ambiguous, dispatch0(), and rb_warning0.

static NODE * arg_append_gen ( struct parser_params ,
NODE ,
NODE  
) [static]

Definition at line 15407 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 ,
NODE  
) [static]

Definition at line 15979 of file parse.c.

static NODE * arg_concat_gen ( struct parser_params ,
NODE ,
NODE  
) [static]

Definition at line 15382 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 ,
ID   
) [static]

Definition at line 16227 of file parse.c.

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

static NODE * aryset_gen ( struct parser_params ,
NODE ,
NODE  
) [static]

Definition at line 15305 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 15729 of file parse.c.

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

static NODE * assignable_gen ( struct parser_params ,
ID  ,
NODE  
) [static]

Definition at line 15167 of file parse.c.

References assignable_result, compile_error, dvar_curr, dvar_defined, dyna_in_block, dyna_var, get_id, ID_CLASS, ID_CONST, ID_GLOBAL, ID_INSTANCE, ID_LOCAL, id_type, in_def, in_single, keyword__ENCODING__, keyword__FILE__, keyword__LINE__, keyword_false, keyword_nil, keyword_self, keyword_true, 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 NODE * attrset_gen ( struct parser_params ,
NODE ,
ID   
) [static]

Definition at line 15361 of file parse.c.

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

static NODE * block_append_gen ( struct parser_params ,
NODE ,
NODE  
) [static]

Definition at line 14822 of file parse.c.

References 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 ,
NODE ,
NODE  
) [static]

Definition at line 15313 of file parse.c.

References compile_error, nd_type, NODE_BLOCK_PASS, and PARSER_ARG.

static NODE * call_bin_op_gen ( struct parser_params ,
NODE ,
ID  ,
NODE  
) [static]

Definition at line 15041 of file parse.c.

References NEW_CALL, NEW_LIST, and value_expr.

static NODE * call_uni_op_gen ( struct parser_params ,
NODE ,
ID   
) [static]

Definition at line 15049 of file parse.c.

References NEW_CALL, and value_expr.

static int comment_at_top ( struct parser_params parser  )  [static]

Definition at line 13176 of file parse.c.

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

static NODE * cond0 ( struct parser_params ,
NODE  
) [static]

Definition at line 15836 of file parse.c.

References assign_in_cond(), cond0(), e_option_supplied(), literal_node(), nd_set_type, nd_type, NEW_GVAR, NEW_MATCH2, node, 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().

static NODE * cond_gen ( struct parser_params ,
NODE  
) [static]

Definition at line 15893 of file parse.c.

References cond0(), and node.

static VALUE coverage ( VALUE  fname,
int  n 
) [static]

Definition at line 11812 of file parse.c.

References Qnil, RARRAY, RARRAY_ASET, rb_ary_new2, rb_get_coverages(), rb_hash_aset(), RBASIC, RBASIC_CLEAR_CLASS, RTEST, and VALUE.

static VALUE debug_lines ( VALUE  fname  )  [static]

Definition at line 11796 of file parse.c.

References CONST_ID, hash(), rb_ary_new(), rb_cObject, rb_const_defined_at(), rb_const_get_at(), rb_hash_aset(), RB_TYPE_P, T_HASH, and VALUE.

static void dispose_string ( VALUE  str  )  [static]

Definition at line 12506 of file parse.c.

References rb_gc_force_recycle(), and rb_str_free().

static NODE * dsym_node_gen ( struct parser_params ,
NODE  
) [static]

Definition at line 16042 of file parse.c.

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

static int dvar_curr_gen ( struct parser_params ,
ID   
) [static]

Definition at line 16352 of file parse.c.

References lvtbl, and vtable_included().

static int dvar_defined_gen ( struct parser_params ,
ID  ,
int   
) [static]

Definition at line 16321 of file parse.c.

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

static int dyna_in_block_gen ( struct parser_params  )  [static]

Definition at line 16315 of file parse.c.

References DVARS_TOPSCOPE, lvtbl, and POINTER_P.

static void dyna_pop_1 ( struct parser_params parser  )  [static]

Definition at line 16283 of file parse.c.

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

static void dyna_pop_gen ( struct parser_params ,
const struct vtable  
) [static]

Definition at line 16301 of file parse.c.

References dyna_pop_1(), lvtbl, and xfree.

static struct vtable * dyna_push_gen ( struct parser_params  )  [static]

Definition at line 16272 of file parse.c.

References lvtbl, and vtable_alloc().

static int e_option_supplied ( struct parser_params parser  )  [static]

Definition at line 11828 of file parse.c.

References ruby_sourcefile.

static NODE * evstr2dstr_gen ( struct parser_params ,
NODE  
) [static]

Definition at line 15018 of file parse.c.

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

static void fixpos ( NODE ,
NODE  
) [static]

Definition at line 14799 of file parse.c.

References nd_line, nd_set_line, and node.

static void fixup_nodes ( NODE **   )  [static]

Definition at line 15768 of file parse.c.

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

static ID formal_argument_gen ( struct parser_params ,
ID   
) [static]

Definition at line 13106 of file parse.c.

References is_local_id, shadowing_lvar, and yyerror.

static NODE * gettable_gen ( struct parser_params ,
ID   
) [static]

Definition at line 15090 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_id2name(), rb_str_dup(), ruby_sourcefile_string, and tokline.

void Init_sym ( void   ) 

Definition at line 16670 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 symhash.

static ID intern_str ( VALUE  str  )  [static]

Definition at line 16934 of file parse.c.

References global_symbols, 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, 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(), tLAST_OP_ID, and token.

static ID internal_id_gen ( struct parser_params  )  [static]

Definition at line 16702 of file parse.c.

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

static int is_global_name_punct ( const int  c  )  [inline, static]

Definition at line 12719 of file parse.c.

static int is_private_local_id ( ID  name  )  [static]

Definition at line 15246 of file parse.c.

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

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

Definition at line 16711 of file parse.c.

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

static int is_static_content ( NODE node  )  [static]

Definition at line 15705 of file parse.c.

References is_static_content(), nd_type, node, NODE_ARRAY, NODE_FALSE, NODE_HASH, NODE_LIT, NODE_NIL, NODE_STR, NODE_TRUE, and NODE_ZARRAY.

static VALUE lex_get_str ( struct parser_params parser,
VALUE  s 
) [static]

Definition at line 11915 of file parse.c.

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

static VALUE lex_getline ( struct parser_params parser  )  [static]

Definition at line 11935 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, ruby_debug_lines, and VALUE.

static VALUE lex_io_gets ( struct parser_params parser,
VALUE  io 
) [static]

Definition at line 12011 of file parse.c.

References rb_io_gets().

static NODE * list_append_gen ( struct parser_params ,
NODE ,
NODE  
) [static]

Definition at line 14876 of file parse.c.

References last, list, and NEW_LIST.

static NODE * list_concat_gen ( struct parser_params ,
NODE ,
NODE  
) [static]

Definition at line 14896 of file parse.c.

References head, last, and tail.

static int literal_concat0 ( struct parser_params ,
VALUE  ,
VALUE   
) [static]

Definition at line 14920 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().

static NODE * literal_concat_gen ( struct parser_params ,
NODE ,
NODE  
) [static]

Definition at line 14937 of file parse.c.

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

static int literal_node ( NODE node  )  [static]

Definition at line 15815 of file parse.c.

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

static int local_id_gen ( struct parser_params ,
ID   
) [static]

Definition at line 16244 of file parse.c.

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

static void local_pop_gen ( struct parser_params  )  [static]

Definition at line 16186 of file parse.c.

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

static void local_push_gen ( struct parser_params ,
int   
) [static]

Definition at line 16169 of file parse.c.

References ALLOC, local_vars::args, cmdarg_stack, local_vars::cmdargs, 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  )  [static]

Definition at line 16202 of file parse.c.

References ALLOC_N, buf, cnt, if(), lvtbl, MEMCPY, vtable_included(), and vtable_size().

static int local_var_gen ( struct parser_params ,
ID   
) [static]

Definition at line 16234 of file parse.c.

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

static NODE * logop_gen ( struct parser_params ,
enum  node_type,
NODE ,
NODE  
) [static]

Definition at line 15900 of file parse.c.

References nd_type, NEW_NODE, node, and value_expr.

static int lvar_defined_gen ( struct parser_params ,
ID   
) [static]

Definition at line 13117 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 13192 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 13236 of file parse.c.

static NODE * match_op_gen ( struct parser_params ,
NODE ,
NODE  
) [static]

Definition at line 15056 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 11905 of file parse.c.

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

static NODE * negate_lit ( NODE  )  [static]

Definition at line 15948 of file parse.c.

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

static NODE * new_args_gen ( struct parser_params ,
NODE ,
NODE ,
ID  ,
NODE ,
NODE  
) [static]

Definition at line 15990 of file parse.c.

References args, rb_long2int, ruby_sourceline, and tail.

static NODE * new_args_tail_gen ( struct parser_params ,
NODE ,
ID  ,
ID   
) [static]

Definition at line 16012 of file parse.c.

References ALLOC, arg_var, args, internal_id, rb_args_info::kw_rest_arg, MEMZERO, NEW_DVAR, NEW_NODE, 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 16098 of file parse.c.

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

static void new_bv_gen ( struct parser_params ,
ID   
) [static]

Definition at line 15291 of file parse.c.

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

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

Definition at line 16114 of file parse.c.

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

static NODE * new_evstr_gen ( struct parser_params ,
NODE  
) [static]

Definition at line 15027 of file parse.c.

References head, nd_type, NEW_EVSTR, node, 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 16069 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 ,
NODE  
) [static]

Definition at line 15940 of file parse.c.

References NEW_YIELD, no_blockarg(), and node.

static NODE * newline_node ( NODE  )  [static]

Definition at line 14789 of file parse.c.

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

static void no_blockarg ( struct parser_params parser,
NODE node 
) [static]

Definition at line 15915 of file parse.c.

References compile_error, nd_type, node, NODE_BLOCK_PASS, and PARSER_ARG.

static NODE * node_assign_gen ( struct parser_params ,
NODE ,
NODE  
) [static]

Definition at line 15433 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 ,
enum  node_type,
VALUE  ,
VALUE  ,
VALUE   
) [static]

Definition at line 14769 of file parse.c.

References nd_set_line, rb_node_newnode, and ruby_sourceline.

static int nodeline ( NODE node  )  [static]

Definition at line 14783 of file parse.c.

References nd_line, and node.

static enum node_type nodetype ( NODE node  )  [static]

Definition at line 14777 of file parse.c.

References nd_type, and node.

static NODE* parser_compile_string ( volatile VALUE  vparser,
VALUE  fname,
VALUE  s,
int  line 
) [static]

Definition at line 11958 of file parse.c.

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

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

Definition at line 13124 of file parse.c.

References rb_memcicmp().

static void parser_free ( void *  ptr  )  [static]

Definition at line 17433 of file parse.c.

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

static int parser_here_document ( struct parser_params ,
NODE  
) [static]

Definition at line 12990 of file parse.c.

References compile_error, current_enc, dispatch_heredoc_end, dispose_string(), parser_params::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, 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, tok, tokadd, tokadd_string, toklen, tSTRING_CONTENT, tSTRING_END, VALUE, was_bol, and whole_match_p.

static int parser_heredoc_identifier ( struct parser_params parser  )  [static]

Definition at line 12820 of file parse.c.

References 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, term, 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 12883 of file parse.c.

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

static void parser_initialize ( struct parser_params parser  )  [static]

Definition at line 17353 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_kwarg, 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_ruby_sourcefile_string, parser_params::parser_tokenbuf, parser_params::parser_tokidx, parser_params::parser_toksiz, Qfalse, Qnil, rb_utf8_encoding(), and TRUE.

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

Definition at line 13269 of file parse.c.

References FALSE, magic_comment::func, if(), ISSPACE, magic_comment::length, magic_comment_marker(), magic_comments, magic_comment::name, RSTRING_PTR, str_copy, STRNCASECMP, val, and VALUE.

static void parser_mark ( void *  ptr  )  [static]

Definition at line 17407 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, parser_params::parser_ruby_sourcefile_string, rb_gc_mark(), and VALUE.

static size_t parser_memsize ( const void *  ptr  )  [static]

Definition at line 17450 of file parse.c.

References vtable::capa, parser_params::parser_lvtbl, parser_params::parser_toksiz, local_vars::prev, size, and local_vars::vars.

static struct parser_params* parser_new ( void   )  [static]

Definition at line 17489 of file parse.c.

References ALLOC_N, MEMZERO, and parser_initialize().

static char* parser_newtok ( struct parser_params parser  )  [static]

Definition at line 12169 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 12090 of file parse.c.

References current_enc, parser_params::eofp, heredoc_end, parser_params::last_cr_line, 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_compile_warn(), rb_enc_associate(), rb_str_buf_cat(), rb_str_buf_new(), ripper_flush, RSTRING_LEN, RSTRING_PTR, ruby_sourcefile, ruby_sourceline, and VALUE.

static int parser_number_literal_suffix ( struct parser_params parser,
int  mask 
) [static]

Definition at line 12924 of file parse.c.

References ISALPHA, ISASCII, lex_p, nextc, NUM_SUFFIX_I, NUM_SUFFIX_R, pushback, and result.

static int parser_parse_string ( struct parser_params ,
NODE  
) [static]

Definition at line 12762 of file parse.c.

References compile_error, current_enc, parser_params::enc, parser_params::eofp, flush_string_content, func, 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, term, 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 12726 of file parse.c.

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

static void parser_prepare ( struct parser_params parser  )  [static]

Definition at line 13406 of file parse.c.

References 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().

static void parser_pushback ( struct parser_params parser,
int  c 
) [static]

Definition at line 12152 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 12299 of file parse.c.

References 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  )  [static]

Definition at line 12470 of file parse.c.

References compile_error, ISALPHA, newtok, nextc, options(), 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 13144 of file parse.c.

References parser_params::enc, RARRAY_AREF, RARRAY_LEN, 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, ruby_sourceline, and VALUE.

static int parser_set_integer_literal ( struct parser_params parser,
VALUE  v,
int  suffix 
) [static]

Definition at line 12964 of file parse.c.

References NUM_SUFFIX_R, rb_rational_raw1, set_number_literal, tINTEGER, tRATIONAL, and type.

static int parser_set_number_literal ( struct parser_params parser,
VALUE  v,
int  type,
int  suffix 
) [static]

Definition at line 12953 of file parse.c.

References INT2FIX, NUM_SUFFIX_I, rb_complex_raw(), set_yylval_literal, and tIMAGINARY.

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

Definition at line 13201 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 12068 of file parse.c.

References parser_params::enc, 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_FUNC_REGEXP, and VALUE.

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

Definition at line 12207 of file parse.c.

References lex_p, scan_hex, and yyerror.

static void parser_tokadd ( struct parser_params parser,
int  c 
) [static]

Definition at line 12197 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 12397 of file parse.c.

References ESCAPE_CONTROL, ESCAPE_META, 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 12513 of file parse.c.

References 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 ,
int  ,
int  ,
int  ,
long *  ,
rb_encoding **   
) [static]

Definition at line 12542 of file parse.c.

References parser_params::enc, 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 12224 of file parse.c.

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

static void parser_tokaddmbc ( struct parser_params parser,
int  c,
rb_encoding enc 
) [static]

Definition at line 12390 of file parse.c.

References parser_params::enc, len, rb_enc_codelen(), rb_enc_mbcput, and tokspace.

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

Definition at line 12185 of file parse.c.

References REALLOC_N, tokenbuf, tokidx, and toksiz.

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

Definition at line 14815 of file parse.c.

References nd_line, node, rb_compile_warn(), and ruby_sourcefile.

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

Definition at line 14808 of file parse.c.

References nd_line, node, 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 12901 of file parse.c.

References FALSE, ISSPACE, lex_pbeg, and lex_pend.

static int parser_yyerror ( struct parser_params ,
const char *   
) [static]

Definition at line 11731 of file parse.c.

References ALLOCA_N, buf, compile_error, current_enc, len, lex_lastline, lex_p, lex_pbeg, lex_pend, MEMCPY, NULL, PARSER_ARG, rb_compile_error_append(), rb_compile_error_with_enc(), rb_enc_get(), rb_enc_prev_char, and STR_NEW2.

static int parser_yylex ( struct parser_params parser  )  [static]

Definition at line 13451 of file parse.c.

References arg_ambiguous, brace_nest, CMDARG_LEXPOP, CMDARG_P, CMDARG_PUSH, command_start, comment_at_top(), compile_error, COND_LEXPOP, COND_P, COND_PUSH, current_enc, DBL2NUM, 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, memmove(), kwtable::name, nd_type, NEW_BACK_REF, NEW_NTH_REF, NEW_STRTERM, newtok, nextc, no_digits, NODE_HEREDOC, NUM_SUFFIX_ALL, NUM_SUFFIX_I, NUM_SUFFIX_R, number_literal_suffix, paren_nest, parse_string, PARSER_ARG, parser_params::parser_in_kwarg, parser_is_identchar, parser_isascii, parser_magic_comment(), parser_tokadd_utf8(), peek, peek_n, pushback, Qtrue, rb_cstr_to_inum(), rb_enc_isalnum, rb_enc_isspace, rb_gc_force_recycle(), rb_int_positive_pow(), rb_intern, rb_intern3(), rb_rational_new(), rb_reserved_word, rb_warnI, rb_warning0, rb_warningS, read_escape, result, ruby__end__seen, ruby_sourceline, set_file_encoding(), set_integer_literal, set_number_literal, set_yylval_id, set_yylval_name, set_yylval_node, set_yylval_str, snprintf, kwtable::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, term, tFID, tFLOAT, tGEQ, tGVAR, tIDENTIFIER, tIGNORED_NL, tIVAR, tLABEL, tLAMBDA, tLAMBEG, tLBRACE, tLBRACE_ARG, tLBRACK, tLEQ, tLPAREN, tLPAREN_ARG, tLSHFT, tMATCH, tNEQ, tNMATCH, tNTH_REF, tok, TOK_INTERN, tokadd, tokadd_mbchar, tokaddmbc, token, tokfix, tokidx, toklast, toklen, tOP_ASGN, tOROP, tPOW, tQSYMBOLS_BEG, tQWORDS_BEG, tRATIONAL, 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, type, VALUE, warn_balanced, was_bol, whole_match_p, and yyerror.

static NODE* range_op ( struct parser_params parser,
NODE node 
) [static]

Definition at line 15799 of file parse.c.

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

static void rb_backref_error_gen ( struct parser_params ,
NODE  
) [static]

Definition at line 15369 of file parse.c.

References compile_error, nd_type, node, 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 17234 of file parse.c.

References global_symbols, NIL_P, OBJ_FREEZE, rb_check_string_type(), 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_PTR, setup_fake_str(), st_data_t, st_lookup(), SYM2ID, sym_check_asciionly(), symbols::sym_id, SYMBOL_P, T_STRING, and VALUE.

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

Definition at line 17276 of file parse.c.

References RString::as, global_symbols, RString::heap, rb_enc_associate(), rb_id_attrset(), rb_is_attrset_name(), setup_fake_str(), st_data_t, st_lookup(), sym_check_asciionly(), symbols::sym_id, and VALUE.

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

Definition at line 11997 of file parse.c.

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

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

Definition at line 12017 of file parse.c.

References rb_parser_compile_file(), rb_parser_new(), and VALUE.

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

Definition at line 11977 of file parse.c.

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

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

Definition at line 16848 of file parse.c.

References IDSET_ATTRSET_FOR_SYNTAX, and rb_enc_symname_type().

int rb_enc_symname_p ( const char *  name,
rb_encoding enc 
)

Definition at line 16743 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,
unsigned int  allowed_attrset 
) [static]

Definition at line 16752 of file parse.c.

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

void rb_gc_mark_parser ( void   ) 

Definition at line 16517 of file parse.c.

void rb_gc_mark_symbols ( int  full_mark  ) 

Definition at line 16689 of file parse.c.

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

const char* rb_id2name ( ID  id  ) 

Definition at line 17140 of file parse.c.

References rb_id2str(), RSTRING_PTR, and VALUE.

VALUE rb_id2str ( ID  id  ) 

Definition at line 17070 of file parse.c.

References global_symbols, ID_CLASS, ID_CONST, ID_GLOBAL, ID_INSTANCE, ID_JUNK, ID_LOCAL, symbols::id_str, if(), is_attrset_id, symbols::minor_marked, OBJ_FREEZE, symbols::op_sym, op_tbl, op_tbl_count, rb_cString, rb_fstring(), rb_id2str(), rb_ispunct(), rb_str_cat(), rb_str_dup(), rb_usascii_str_new(), rb_usascii_str_new2, RBASIC, RBASIC_SET_CLASS_RAW, register_symid_str(), st_data_t, st_lookup(), tLAST_TOKEN, token, and VALUE.

ID rb_id_attrset ( ID  id  ) 

Definition at line 15332 of file parse.c.

References ID2SYM, ID_ATTRSET, ID_CLASS, ID_CONST, ID_GLOBAL, ID_INSTANCE, ID_JUNK, ID_LOCAL, is_notop_id, PRIsVALUE, rb_id2name(), rb_name_error(), tAREF, and tASET.

ID rb_intern ( const char *  name  ) 

Definition at line 17054 of file parse.c.

References rb_intern, rb_intern2(), and strlen().

ID rb_intern2 ( const char *  name,
long  len 
)

Definition at line 17047 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 16918 of file parse.c.

References global_symbols, intern_str(), OBJ_FREEZE, rb_enc_associate(), rb_enc_str_new(), setup_fake_str(), st_data_t, st_lookup(), symbols::sym_id, and VALUE.

ID rb_intern_str ( VALUE  str  ) 

Definition at line 17060 of file parse.c.

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

int rb_is_attrset_id ( ID  id  ) 

Definition at line 17205 of file parse.c.

References is_attrset_id.

int rb_is_attrset_name ( VALUE  name  ) 

Definition at line 17323 of file parse.c.

References ID_ATTRSET, IDSET_ATTRSET_FOR_INTERN, and rb_str_symname_type().

int rb_is_class_id ( ID  id  ) 

Definition at line 17187 of file parse.c.

References is_class_id.

int rb_is_class_name ( VALUE  name  ) 

Definition at line 17305 of file parse.c.

References ID_CLASS, and rb_str_symname_type().

int rb_is_const_id ( ID  id  ) 

Definition at line 17181 of file parse.c.

References is_const_id.

int rb_is_const_name ( VALUE  name  ) 

Definition at line 17299 of file parse.c.

References ID_CONST, and rb_str_symname_type().

int rb_is_global_id ( ID  id  ) 

Definition at line 17193 of file parse.c.

References is_global_id.

int rb_is_global_name ( VALUE  name  ) 

Definition at line 17311 of file parse.c.

References ID_GLOBAL, and rb_str_symname_type().

int rb_is_instance_id ( ID  id  ) 

Definition at line 17199 of file parse.c.

References is_instance_id.

int rb_is_instance_name ( VALUE  name  ) 

Definition at line 17317 of file parse.c.

References ID_INSTANCE, and rb_str_symname_type().

int rb_is_junk_id ( ID  id  ) 

Definition at line 17217 of file parse.c.

References is_junk_id.

int rb_is_junk_name ( VALUE  name  ) 

Definition at line 17345 of file parse.c.

References IDSET_ATTRSET_FOR_SYNTAX, and rb_str_symname_type().

int rb_is_local_id ( ID  id  ) 

Definition at line 17211 of file parse.c.

References is_local_id.

int rb_is_local_name ( VALUE  name  ) 

Definition at line 17329 of file parse.c.

References ID_LOCAL, and rb_str_symname_type().

int rb_is_method_name ( VALUE  name  ) 

Definition at line 17335 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 16522 of file parse.c.

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

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

Definition at line 17585 of file parse.c.

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

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

Definition at line 12004 of file parse.c.

References parser_compile_string(), rb_filesystem_str_new_cstr(), rb_str_new(), and VALUE.

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

Definition at line 12025 of file parse.c.

References rb_filesystem_str_new_cstr(), and rb_parser_compile_file_path().

NODE* rb_parser_compile_file_path ( volatile VALUE  vparser,
VALUE  fname,
VALUE  file,
int  start 
)

Definition at line 12031 of file parse.c.

References compile_for_eval, lex_gets, lex_input, lex_io_gets(), lex_p, lex_pbeg, lex_pend, node, parser_data_type, 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 11984 of file parse.c.

References rb_filesystem_str_new_cstr(), and rb_parser_compile_string_path().

NODE* rb_parser_compile_string_path ( volatile VALUE  vparser,
VALUE  f,
VALUE  s,
int  line 
)

Definition at line 11990 of file parse.c.

References must_be_ascii_compatible(), and parser_compile_string().

VALUE rb_parser_encoding ( VALUE  vparser  ) 

Definition at line 17529 of file parse.c.

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

VALUE rb_parser_end_seen_p ( VALUE  vparser  ) 

Definition at line 17514 of file parse.c.

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

void rb_parser_free ( struct parser_params parser,
void *  ptr 
)

Definition at line 17615 of file parse.c.

References parser_params::heap, RNode::node, NULL, prev, rb_gc_force_recycle(), RNode::u2, VALUE, and xfree.

VALUE rb_parser_get_yydebug ( VALUE  self  ) 

Definition at line 17544 of file parse.c.

References parser_data_type, Qfalse, Qtrue, and TypedData_Get_Struct.

void* rb_parser_malloc ( struct parser_params parser,
size_t  size 
)

Definition at line 17575 of file parse.c.

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

VALUE rb_parser_new ( void   ) 

Definition at line 17500 of file parse.c.

References parser_data_type, parser_new(), and TypedData_Wrap_Struct.

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

Definition at line 17595 of file parse.c.

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

VALUE rb_parser_set_yydebug ( VALUE  self,
VALUE  flag 
)

Definition at line 17559 of file parse.c.

References parser_data_type, RTEST, and TypedData_Get_Struct.

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

Definition at line 16554 of file parse.c.

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

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

Definition at line 17483 of file parse.c.

References reserved_word().

static int rb_str_symname_type ( VALUE  name,
unsigned int  allowed_attrset 
) [static]

Definition at line 16854 of file parse.c.

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

VALUE rb_sym_all_symbols ( void   ) 

Definition at line 17172 of file parse.c.

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

int rb_symname_p ( const char *  name  ) 

Definition at line 16737 of file parse.c.

References rb_ascii8bit_encoding(), and rb_enc_symname_p().

static void reduce_nodes_gen ( struct parser_params ,
NODE **   
) [static]

Definition at line 15644 of file parse.c.

References RNode::flags, nd_body, nd_else, nd_head, nd_next, nd_resq, nd_type, NEW_NIL, node, 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 ,
VALUE  ,
int   
) [static]

Definition at line 16493 of file parse.c.

References compile_error, err, NIL_P, PARSER_ARG, PRIsVALUE, 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, ruby_sourcefile, ruby_sourceline, and VALUE.

static int reg_fragment_check_gen ( struct parser_params ,
VALUE  ,
int   
) [static]

Definition at line 16399 of file parse.c.

References compile_error, err, PARSER_ARG, PRIsVALUE, Qnil, rb_obj_as_string(), rb_reg_check_preprocess(), reg_fragment_setenc, and VALUE.

static void reg_fragment_setenc_gen ( struct parser_params ,
VALUE  ,
int   
) [static]

Definition at line 16360 of file parse.c.

References compile_error, current_enc, ENC_CODERANGE_7BIT, ENCODING_GET, ENCODING_IS_ASCII8BIT, ENCODING_SET, 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 16461 of file parse.c.

References 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(), reg_named_capture_assign_t::parser, 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 16421 of file parse.c.

References assignable, block_append, dvar_defined, reg_named_capture_assign_t::enc, parser_params::enc, reg_named_capture_assign_t::fail_block, gettable, ID2SYM, idAREF, ISASCII, len, local_id, MAX_WORD_LENGTH, 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, ST_CONTINUE, and reg_named_capture_assign_t::succ_block.

static ID register_symid ( ID  ,
const char *  ,
long  ,
rb_encoding  
) [static]

Definition at line 16864 of file parse.c.

References rb_enc_str_new(), register_symid_str(), and VALUE.

static ID register_symid_str ( ID  ,
VALUE   
) [static]

Definition at line 16871 of file parse.c.

References global_symbols, symbols::id_str, symbols::minor_marked, OBJ_FREEZE, rb_fstring(), rb_sourcefile, rb_sourceline(), RSTRING_PTR, RUBY_DTRACE_SYMBOL_CREATE, RUBY_DTRACE_SYMBOL_CREATE_ENABLED, st_add_direct(), st_data_t, and symbols::sym_id.

static NODE * remove_begin ( NODE  )  [static]

Definition at line 15624 of file parse.c.

References nd_type, node, and NODE_BEGIN.

static NODE * remove_begin_all ( NODE  )  [static]

Definition at line 15634 of file parse.c.

References nd_type, node, and NODE_BEGIN.

static NODE * ret_args_gen ( struct parser_params ,
NODE  
) [static]

Definition at line 15923 of file parse.c.

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

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

Definition at line 13363 of file parse.c.

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

static VALUE setup_fake_str ( struct RString fake_str,
const char *  name,
long  len 
) [static]

Definition at line 16907 of file parse.c.

References RString::basic, RBasic::flags, rb_cString, RBASIC_SET_CLASS_RAW, RSTRING_NOEMBED, T_STRING, and VALUE.

static int shadowing_lvar_0 ( struct parser_params parser,
ID  name 
) [static]

Definition at line 15259 of file parse.c.

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

static ID shadowing_lvar_gen ( struct parser_params ,
ID   
) [static]

Definition at line 15284 of file parse.c.

References shadowing_lvar_0().

static int simple_re_meta ( int  c  )  [inline, static]

Definition at line 12529 of file parse.c.

References FALSE, and TRUE.

static NODE * splat_array ( NODE  )  [static]

Definition at line 15425 of file parse.c.

References nd_type, node, NODE_ARRAY, and NODE_SPLAT.

static int sym_check_asciionly ( VALUE  str  )  [static]

Definition at line 16887 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.

static int symbols_i ( VALUE  sym,
ID  value,
VALUE  ary 
) [static]

Definition at line 17149 of file parse.c.

References ID2SYM, rb_ary_push(), and ST_CONTINUE.

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

Definition at line 11658 of file parse.c.

References lex_p, lex_pbeg, and strlen().

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

Definition at line 11672 of file parse.c.

References lex_p, lex_pbeg, and strlen().

static void token_info_pop ( struct parser_params ,
const char *  token 
) [static]

Definition at line 11702 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 ,
const char *  token 
) [static]

Definition at line 11685 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_info_get_column(), and token_info_has_nonspaces().

static int value_expr_gen ( struct parser_params ,
NODE  
) [static]

Definition at line 15464 of file parse.c.

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

static void void_expr_gen ( struct parser_params ,
NODE  
) [static]

Definition at line 15521 of file parse.c.

References nd_line, nd_type, node, 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 ,
NODE  
) [static]

Definition at line 15610 of file parse.c.

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

static void vtable_add ( struct vtable tbl,
ID  id 
) [static]

Definition at line 239 of file parse.c.

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

static struct vtable* vtable_alloc ( struct vtable prev  )  [static]

Definition at line 215 of file parse.c.

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

static void vtable_free ( struct vtable tbl  )  [static]

Definition at line 227 of file parse.c.

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

static int vtable_included ( const struct vtable tbl,
ID  id 
) [static]

Definition at line 254 of file parse.c.

References POINTER_P, and vtable::tbl.

static int vtable_size ( const struct vtable tbl  )  [static]

Definition at line 202 of file parse.c.

References POINTER_P, and vtable::pos.

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

Definition at line 15756 of file parse.c.

References e_option_supplied(), node, and parser_warn.

static void warn_unused_var ( struct parser_params parser,
struct local_vars local 
) [static]

Definition at line 16149 of file parse.c.

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

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

Definition at line 15762 of file parse.c.

References e_option_supplied(), node, and parser_warning.

static void yy_reduce_print ( YYSTYPE yyvsp,
int  yyrule,
struct parser_params parser 
) [static]

Definition at line 4613 of file parse.c.

References yy_symbol_print(), and YYFPRINTF.

static void yy_stack_print ( yytype_int16 yybottom,
yytype_int16 yytop 
) [static]

Definition at line 4582 of file parse.c.

References YYFPRINTF.

static void yy_symbol_print ( FILE yyoutput,
int  yytype,
YYSTYPE const * const  yyvaluep,
struct parser_params parser 
) [static]

Definition at line 4555 of file parse.c.

References yy_symbol_value_print(), YYFPRINTF, and YYNTOKENS.

static void yy_symbol_value_print ( FILE yyoutput,
int  yytype,
YYSTYPE const * const  yyvaluep,
struct parser_params parser 
) [static]

Definition at line 4521 of file parse.c.

References YYNTOKENS, and YYUSE.

static NODE* yycompile ( struct parser_params parser,
VALUE  fname,
int  line 
) [static]

Definition at line 11895 of file parse.c.

References rb_str_new_frozen(), rb_suppress_tracing(), RSTRING_PTR, ruby_sourcefile, ruby_sourcefile_string, ruby_sourceline, VALUE, and yycompile0().

static VALUE yycompile0 ( VALUE  arg  )  [static]

Definition at line 11834 of file parse.c.

References compile_for_eval, coverage(), debug_lines(), deferred_nodes, e_option_supplied(), parser_params::last_cr_line, lex_lastline, lex_nextline, lex_p, lex_pbeg, lex_pend, lex_strterm, 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_string, ruby_sourceline, ruby_verbose, STR_NEW0, VALUE, and yyparse.

static void yydestruct ( char *  yymsg,
int  yytype,
YYSTYPE yyvaluep,
struct parser_params parser 
) const [static]

Definition at line 4920 of file parse.c.

References YY_SYMBOL_PRINT, and YYUSE.

static int yylex ( void *  ,
void *   
) [static]

Definition at line 14742 of file parse.c.

References NIL_P, parser_yylex(), parser_params::parser_yylval, Qundef, and YYSTYPE::val.

int yyparse ( struct parser_params parser  ) 

Definition at line 4980 of file parse.c.

References ALLOC_N, arg_append, arg_blk_pass(), arg_concat, args, aryset, assignable, attrset, block_append, block_dup_check, buf, call_bin_op, call_uni_op, CMDARG_PUSH, cmdarg_stack, command_start, compile_error, compile_for_eval, cond, COND_POP, COND_PUSH, cur_mid, deferred_nodes, dyna_pop, dyna_push, evstr2dstr, FIXNUM_P, fixpos(), fixup_nodes(), get_id, YYSTYPE::id, ID2SYM, idAREF, idEq, if(), ifndef_ripper, in_def, in_defined, in_single, INT2FIX, internal_id, lex_state, list, list_append, list_concat, literal_concat, literal_concat0(), local_pop, local_push, logop, lpar_beg, match_op, nd_args, nd_body, nd_iter, nd_lit, nd_next, nd_set_line, nd_set_type, nd_type, nd_value, 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_DASGN_CURR, new_defined, NEW_DEFN, NEW_DEFS, NEW_DOT2, NEW_DOT3, NEW_DVAR, NEW_ENSURE, NEW_ERRINFO, NEW_FCALL, NEW_FOR, NEW_HASH, NEW_IF, NEW_ITER, NEW_LAMBDA, NEW_LIST, NEW_LIT, NEW_MASGN, NEW_MODULE, NEW_NEXT, NEW_NIL, NEW_NODE, NEW_OP_ASGN1, new_op_assign, 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, 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_DXSTR, NODE_ENSURE, NODE_LASGN, NODE_LIT, NODE_MASGN, NODE_OR, NODE_RESCUE, NODE_SCOPE, NODE_SELF, NODE_STR, NODE_XSTR, NODE_YIELD, NOEX_PRIVATE, NULL, YYSTYPE::num, one(), options(), paren_nest, PARSER_ARG, prev, Qnil, Qnone, rb_backref_error, rb_cArray, rb_gc_force_recycle(), rb_intern, rb_intern2(), 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, splat_array(), STR_NEW0, T_REGEXP, tANDOP, tAREF, tASET, 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, value_expr, YYSTYPE::vars, void_expr, void_stmts, YY_, YY_REDUCE_PRINT, YY_SYMBOL_PRINT, YYABORT, YYACCEPT, YYDPRINTF, YYEMPTY, YYEOF, yyerror, YYFINAL, YYINITDEPTH, YYLAST, YYLEX, yylval, YYMAXDEPTH, yypact_value_is_default, YYSIZE_T, yyalloc::yyss_alloc, YYSTACK_ALLOC, YYSTACK_BYTES, YYSTACK_FREE, YYSTACK_RELOCATE, yytable_value_is_error, YYTRANSLATE, yyalloc::yyvs_alloc, and zero().

int yyparse (  ) 

static char* yystpcpy ( char *  yydest,
const char *  yysrc 
) [static]

Definition at line 4708 of file parse.c.

static YYSIZE_T yystrlen ( char *  yystr  )  const [static]

Definition at line 4684 of file parse.c.

References YYSIZE_T.

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

Definition at line 4781 of file parse.c.

References YY_, YYCASE_, YYEMPTY, YYLAST, YYNTOKENS, yypact_value_is_default, YYSIZE_T, YYSTACK_ALLOC_MAXIMUM, yystrlen(), yytable_value_is_error, YYTERROR, and yytnamerr().

static YYSIZE_T yytnamerr ( char *  yyres,
const char *  yystr 
) [static]

Definition at line 4733 of file parse.c.

References YYSIZE_T, yystpcpy(), and yystrlen().


Variable Documentation

struct symbols global_symbols [static]

const char id_type_names[][9] [static]

Initial value:

 {
    "LOCAL",
    "INSTANCE",
    "",                         
    "GLOBAL",
    "ATTRSET",
    "CONST",
    "CLASS",
    "JUNK",
}

Definition at line 15320 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},
}

Definition at line 13228 of file parse.c.

const char* name

Definition at line 16596 of file parse.c.

struct { ... } op_tbl[] [static]

const rb_data_type_t parser_data_type [static]

Initial value:

Definition at line 17469 of file parse.c.

const rb_data_type_t parser_data_type [static]

Definition at line 11955 of file parse.c.

const unsigned int ruby_global_name_punct_bits[]

Initial value:

Definition at line 12697 of file parse.c.

struct st_hash_type symhash [static]

Initial value:

Definition at line 16637 of file parse.c.

ID token

Definition at line 16595 of file parse.c.

const yytype_int16 yycheck[] [static]

Definition at line 3171 of file parse.c.

const yytype_uint16 yydefact[] [static]

Definition at line 1774 of file parse.c.

const yytype_int16 yydefgoto[] [static]

Initial value:

{
      -1,     1,     2,    68,    69,    70,   239,   568,   569,   255,
     256,   448,   257,   439,    72,    73,   360,    74,    75,   510,
     691,   246,    77,    78,   258,    79,    80,    81,   468,    82,
     212,   379,   380,   195,   196,   197,   198,   606,   557,   200,
      84,   441,   214,   263,   231,   749,   428,   429,   228,   229,
     216,   415,   430,   516,   517,    85,   358,   261,   262,   636,
     626,   362,   847,   363,   848,   733,   990,   737,   734,   932,
     595,   597,   747,   938,   248,    87,    88,    89,    90,    91,
      92,    93,    94,    95,    96,   714,   571,   722,   844,   845,
     371,   771,   772,   773,   960,   898,   800,   687,   688,   801,
     972,   973,   281,   282,   473,   776,   659,   879,   322,   511,
      97,    98,   712,   705,   566,   558,   320,   508,   507,   578,
     989,   716,   838,   918,   922,    99,   100,   101,   102,   103,
     104,   105,   293,   486,   106,   297,   107,   108,   295,   299,
     289,   287,   291,   478,   678,   677,   793,   893,   797,   109,
     288,   110,   111,   112,   219,   220,   115,   221,   222,   590,
     736,   745,   746,   881,   779,   661,   662,   891,   664,   665,
     666,   667,   805,   806,   668,   669,   670,   671,   808,   809,
     672,   673,   674,   675,   676,   782,   398,   596,   268,   431,
     224,   118,   630,   560,   401,   306,   425,   426,   707,   459,
     572,   366,   260
}

Definition at line 1885 of file parse.c.

const yytype_int16 yypact[] [static]

Definition at line 1913 of file parse.c.

const yytype_int16 yypgoto[] [static]

Initial value:

{
    -816,  -816,  -816,  -380,  -816,    23,  -816,  -566,   358,  -816,
     505,  -816,    20,  -816,  -308,   -42,   -75,    39,  -816,  -330,
    -816,   726,   -11,   850,  -141,     7,   -63,  -816,  -416,    16,
    1705,  -294,   859,   -55,  -816,   -16,  -816,  -816,     3,  -816,
    1056,  -816,  1763,  -816,    -6,   246,  -349,   122,     4,  -816,
    -374,  -200,    47,  -816,  -312,   -51,  -816,  -816,  -816,  -816,
    -816,  -816,  -816,  -816,  -816,  -816,  -816,  -816,  -816,  -816,
    -816,  -816,  -816,  -816,    74,  -816,  -816,  -816,  -816,  -816,
    -816,  -816,  -816,  -816,  -816,  -550,  -346,  -536,   -61,  -648,
    -816,  -787,  -765,   191,   277,    43,  -816,  -392,  -816,  -655,
    -816,   -48,  -816,  -816,  -816,  -816,  -816,  -816,   215,  -816,
    -816,  -816,  -816,  -816,  -816,  -816,   -90,  -816,  -816,  -551,
    -816,   -53,  -816,  -816,  -816,  -816,  -816,  -816,   877,  -816,
    -816,  -816,  -816,   684,  -816,  -816,  -816,  -816,  -816,  -816,
    -816,   924,  -816,  -196,  -816,  -816,  -816,  -816,  -816,    26,
    -816,    51,  -816,    -9,   846,  1250,   889,  1597,  1618,  -816,
    -816,    54,  -816,  -407,  -359,  -311,  -804,   957,  -693,  -447,
    -113,   205,    92,  -816,  -816,  -816,   -24,  -730,  -815,   110,
     230,  -816,  -654,  -816,  -146,  -609,  -816,  -816,  -816,    57,
    -385,  -816,  -336,  -816,   613,   -59,   -26,  -223,  -560,  -220,
     -56,    37,    -2
}

Definition at line 2024 of file parse.c.

const yytype_uint16 yyprhs[] [static]

Definition at line 1210 of file parse.c.

const yytype_uint16 yyr1[] [static]

Definition at line 1636 of file parse.c.

const yytype_uint8 yyr2[] [static]

Definition at line 1704 of file parse.c.

const yytype_int16 yyrhs[] [static]

Definition at line 1278 of file parse.c.

const yytype_uint16 yyrline[] [static]

Definition at line 1474 of file parse.c.

const yytype_uint16 yystos[] [static]

Definition at line 4285 of file parse.c.

const yytype_int16 yytable[] [static]

Definition at line 2053 of file parse.c.

const char* const yytname[] [static]

Definition at line 1545 of file parse.c.

const yytype_uint8 yytranslate[] [static]

Definition at line 1167 of file parse.c.


Generated on 19 Jul 2016 for Ruby by  doxygen 1.4.7