Data Structures | Defines | Typedefs | Enumerations | Functions | Variables

ext/ripper/ripper.c File Reference

#include "ruby/ruby.h"
#include "ruby/st.h"
#include "ruby/encoding.h"
#include "node.h"
#include "parse.h"
#include "id.h"
#include "regenc.h"
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include "id.c"
#include "ruby/regex.h"
#include "ruby/util.h"
#include "lex.c"
Include dependency graph for ripper.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 YYDEBUG   1
#define YYERROR_VERBOSE   1
#define YYSTACK_USE_ALLOCA   0
#define numberof(array)   (int)(sizeof(array) / sizeof((array)[0]))
#define YYMALLOC(size)   rb_parser_malloc(parser, size)
#define YYREALLOC(ptr, size)   rb_parser_realloc(parser, ptr, size)
#define YYCALLOC(nelem, size)   rb_parser_calloc(parser, nelem, size)
#define YYFREE(ptr)   rb_parser_free(parser, ptr)
#define malloc   YYMALLOC
#define realloc   YYREALLOC
#define calloc   YYCALLOC
#define free   YYFREE
#define REGISTER_SYMID(id, name)   register_symid(id, name, strlen(name), enc)
#define is_notop_id(id)   ((id)>tLAST_TOKEN)
#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 is_asgn_or_id(id)
#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 UTF8_ENC()
#define STR_NEW(p, n)   rb_enc_str_new((p),(n),parser->enc)
#define STR_NEW0()   rb_enc_str_new(0,0,parser->enc)
#define STR_NEW2(p)   rb_enc_str_new((p),strlen(p),parser->enc)
#define STR_NEW3(p, n, e, func)   parser_str_new((p),(n),(e),(func),parser->enc)
#define ENC_SINGLE(cr)   ((cr)==ENC_CODERANGE_7BIT)
#define TOK_INTERN(mb)   rb_intern3(tok(), toklen(), parser->enc)
#define yyerror(msg)   parser_yyerror(parser, msg)
#define YYLEX_PARAM   parser
#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 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 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 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, b)   new_args_gen(parser, f,o,r,p,b)
#define ret_args(node)   ret_args_gen(parser, node)
#define new_yield(node)   new_yield_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 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 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)
#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 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_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 compile_error   parser->nerr++,rb_compile_error
#define PARSER_ARG   ruby_sourcefile, ruby_sourceline,
#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 YYTOKENTYPE
#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   10410
#define YYNTOKENS   148
#define YYNNTS   172
#define YYNRULES   565
#define YYNSTATES   975
#define YYUNDEFTOK   2
#define YYMAXUTOK   375
#define YYTRANSLATE(YYX)   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
#define YYPACT_NINF   -778
#define YYTABLE_NINF   -566
#define yypact_value_is_default(yystate)   ((yystate) == (-778))
#define yytable_value_is_error(yytable_value)   ((yytable_value) == (-566))
#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, YYLEX_PARAM)
#define YYFPRINTF   fprintf
#define YYDPRINTF(Args)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
#define YY_STACK_PRINT(Bottom, Top)
#define YY_REDUCE_PRINT(Rule)
#define YYINITDEPTH   200
#define YYMAXDEPTH   10000
#define YYCASE_(N, S)
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
#define YYSYNTAX_ERROR
#define yylval   (*((YYSTYPE*)(parser->parser_yylval)))
#define nextc()   parser_nextc(parser)
#define pushback(c)   parser_pushback(parser, c)
#define newtok()   parser_newtok(parser)
#define tokspace(n)   parser_tokspace(parser, n)
#define tokadd(c)   parser_tokadd(parser, c)
#define tok_hex(numlen)   parser_tok_hex(parser, numlen)
#define read_escape(flags, e)   parser_read_escape(parser, flags, e)
#define tokadd_escape(e)   parser_tokadd_escape(parser, e)
#define regx_options()   parser_regx_options(parser)
#define tokadd_string(f, t, p, n, e)   parser_tokadd_string(parser,f,t,p,n,e)
#define parse_string(n)   parser_parse_string(parser,n)
#define tokaddmbc(c, enc)   parser_tokaddmbc(parser, c, enc)
#define here_document(n)   parser_here_document(parser,n)
#define heredoc_identifier()   parser_heredoc_identifier(parser)
#define heredoc_restore(n)   parser_heredoc_restore(parser,n)
#define whole_match_p(e, l, i)   parser_whole_match_p(parser,e,l,i)
#define set_yylval_str(x)   yylval.node = NEW_STR(x)
#define set_yylval_num(x)   yylval.num = x
#define set_yylval_id(x)   yylval.id = x
#define set_yylval_name(x)   yylval.id = x
#define set_yylval_literal(x)   yylval.node = NEW_LIT(x)
#define set_yylval_node(x)   yylval.node = x
#define yylval_id()   yylval.id
#define ripper_flush(p)   (void)(p)
#define SIGN_EXTEND_CHAR(c)   ((((unsigned char)(c)) ^ 128) - 128)
#define parser_encoding_name()   (parser->enc->name)
#define parser_mbclen()   mbclen((lex_p-1),lex_pend,parser->enc)
#define parser_precise_mbclen()   rb_enc_precise_mbclen((lex_p-1),lex_pend,parser->enc)
#define is_identchar(p, e, enc)   (rb_enc_isalnum(*p,enc) || (*p) == '_' || !ISASCII(*p))
#define parser_is_identchar()   (!parser->eofp && is_identchar((lex_p-1),lex_pend,parser->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 peek(c)   (lex_p < lex_pend && (c) == *lex_p)
#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 arg_ambiguous()   (arg_ambiguous_gen(parser), 1)
#define str_copy(_s, _p, _n)
#define IS_ARG()   (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)
#define IS_END()   (lex_state == EXPR_END || lex_state == EXPR_ENDARG || lex_state == EXPR_ENDFN)
#define IS_BEG()   (lex_state == EXPR_BEG || lex_state == EXPR_MID || lex_state == EXPR_VALUE || lex_state == EXPR_CLASS)
#define IS_SPCARG(c)   (IS_ARG() && space_seen && !ISSPACE(c))
#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 subnodes(n1, n2)
#define op_tbl_count   numberof(op_tbl)
#define ENABLE_SELECTOR_NAMESPACE   0
#define HEAPCNT(n, size)   ((n) * (size) / sizeof(YYSTYPE))
#define NEWHEAP()   rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
#define ADD2HEAP(n, c, p)

Typedefs

typedef VALUE stack_type
typedef struct token_info token_info
typedef unsigned char yytype_uint8
typedef short int yytype_int8
typedef unsigned short int yytype_uint16
typedef short int yytype_int16
typedef long(* rb_magic_comment_length_t )(struct parser_params *parser, const char *name, long len)
typedef void(* rb_magic_comment_setter_t )(struct parser_params *parser, const char *name, const char *val)

Enumerations

enum  lex_state_e {
  EXPR_BEG, EXPR_END, EXPR_ENDARG, EXPR_ENDFN,
  EXPR_ARG, EXPR_CMDARG, EXPR_MID, EXPR_FNAME,
  EXPR_DOT, EXPR_CLASS, EXPR_VALUE, EXPR_MAX_STATE,
  EXPR_BEG, EXPR_END, EXPR_ENDARG, EXPR_ENDFN,
  EXPR_ARG, EXPR_CMDARG, EXPR_MID, EXPR_FNAME,
  EXPR_DOT, EXPR_CLASS, EXPR_VALUE, EXPR_MAX_STATE
}
enum  yytokentype {
  keyword_class = 258, keyword_module = 259, keyword_def = 260, keyword_undef = 261,
  keyword_begin = 262, keyword_rescue = 263, keyword_ensure = 264, keyword_end = 265,
  keyword_if = 266, keyword_unless = 267, keyword_then = 268, keyword_elsif = 269,
  keyword_else = 270, keyword_case = 271, keyword_when = 272, keyword_while = 273,
  keyword_until = 274, keyword_for = 275, keyword_break = 276, keyword_next = 277,
  keyword_redo = 278, keyword_retry = 279, keyword_in = 280, keyword_do = 281,
  keyword_do_cond = 282, keyword_do_block = 283, keyword_do_LAMBDA = 284, keyword_return = 285,
  keyword_yield = 286, keyword_super = 287, keyword_self = 288, keyword_nil = 289,
  keyword_true = 290, keyword_false = 291, keyword_and = 292, keyword_or = 293,
  keyword_not = 294, modifier_if = 295, modifier_unless = 296, modifier_while = 297,
  modifier_until = 298, modifier_rescue = 299, keyword_alias = 300, keyword_defined = 301,
  keyword_BEGIN = 302, keyword_END = 303, keyword__LINE__ = 304, keyword__FILE__ = 305,
  keyword__ENCODING__ = 306, tIDENTIFIER = 307, tFID = 308, tGVAR = 309,
  tIVAR = 310, tCONSTANT = 311, tCVAR = 312, tLABEL = 313,
  tINTEGER = 314, tFLOAT = 315, tSTRING_CONTENT = 316, tCHAR = 317,
  tNTH_REF = 318, tBACK_REF = 319, tREGEXP_END = 320, tUPLUS = 321,
  tUMINUS = 322, tPOW = 323, tCMP = 324, tEQ = 325,
  tEQQ = 326, tNEQ = 327, tGEQ = 328, tLEQ = 329,
  tANDOP = 330, tOROP = 331, tMATCH = 332, tNMATCH = 333,
  tDOT2 = 334, tDOT3 = 335, tAREF = 336, tASET = 337,
  tLSHFT = 338, tRSHFT = 339, tCOLON2 = 340, tCOLON3 = 341,
  tOP_ASGN = 342, tASSOC = 343, tLPAREN = 344, tLPAREN_ARG = 345,
  tRPAREN = 346, tLBRACK = 347, tLBRACE = 348, tLBRACE_ARG = 349,
  tSTAR = 350, tAMPER = 351, tLAMBDA = 352, tSYMBEG = 353,
  tSTRING_BEG = 354, tXSTRING_BEG = 355, tREGEXP_BEG = 356, tWORDS_BEG = 357,
  tQWORDS_BEG = 358, tSTRING_DBEG = 359, tSTRING_DVAR = 360, tSTRING_END = 361,
  tLAMBEG = 362, tLOWEST = 363, tUMINUS_NUM = 364, idNULL = 365,
  idRespond_to = 366, idIFUNC = 367, idCFUNC = 368, id_core_set_method_alias = 369,
  id_core_set_variable_alias = 370, id_core_undef_method = 371, id_core_define_method = 372, id_core_define_singleton_method = 373,
  id_core_set_postexe = 374, tLAST_TOKEN = 375, YAML_ANCHOR = 258, YAML_ALIAS = 259,
  YAML_TRANSFER = 260, YAML_TAGURI = 261, YAML_ITRANSFER = 262, YAML_WORD = 263,
  YAML_PLAIN = 264, YAML_BLOCK = 265, YAML_DOCSEP = 266, YAML_IOPEN = 267,
  YAML_INDENT = 268, YAML_IEND = 269, YAML_ANCHOR = 258, YAML_ALIAS = 259,
  YAML_TRANSFER = 260, YAML_TAGURI = 261, YAML_ITRANSFER = 262, YAML_WORD = 263,
  YAML_PLAIN = 264, YAML_BLOCK = 265, YAML_DOCSEP = 266, YAML_IOPEN = 267,
  YAML_INDENT = 268, YAML_IEND = 269, keyword_class = 258, keyword_module = 259,
  keyword_def = 260, keyword_undef = 261, keyword_begin = 262, keyword_rescue = 263,
  keyword_ensure = 264, keyword_end = 265, keyword_if = 266, keyword_unless = 267,
  keyword_then = 268, keyword_elsif = 269, keyword_else = 270, keyword_case = 271,
  keyword_when = 272, keyword_while = 273, keyword_until = 274, keyword_for = 275,
  keyword_break = 276, keyword_next = 277, keyword_redo = 278, keyword_retry = 279,
  keyword_in = 280, keyword_do = 281, keyword_do_cond = 282, keyword_do_block = 283,
  keyword_do_LAMBDA = 284, keyword_return = 285, keyword_yield = 286, keyword_super = 287,
  keyword_self = 288, keyword_nil = 289, keyword_true = 290, keyword_false = 291,
  keyword_and = 292, keyword_or = 293, keyword_not = 294, modifier_if = 295,
  modifier_unless = 296, modifier_while = 297, modifier_until = 298, modifier_rescue = 299,
  keyword_alias = 300, keyword_defined = 301, keyword_BEGIN = 302, keyword_END = 303,
  keyword__LINE__ = 304, keyword__FILE__ = 305, keyword__ENCODING__ = 306, tIDENTIFIER = 307,
  tFID = 308, tGVAR = 309, tIVAR = 310, tCONSTANT = 311,
  tCVAR = 312, tLABEL = 313, tINTEGER = 314, tFLOAT = 315,
  tSTRING_CONTENT = 316, tCHAR = 317, tNTH_REF = 318, tBACK_REF = 319,
  tREGEXP_END = 320, tUPLUS = 321, tUMINUS = 322, tPOW = 323,
  tCMP = 324, tEQ = 325, tEQQ = 326, tNEQ = 327,
  tGEQ = 328, tLEQ = 329, tANDOP = 330, tOROP = 331,
  tMATCH = 332, tNMATCH = 333, tDOT2 = 334, tDOT3 = 335,
  tAREF = 336, tASET = 337, tLSHFT = 338, tRSHFT = 339,
  tCOLON2 = 340, tCOLON3 = 341, tOP_ASGN = 342, tASSOC = 343,
  tLPAREN = 344, tLPAREN_ARG = 345, tRPAREN = 346, tLBRACK = 347,
  tLBRACE = 348, tLBRACE_ARG = 349, tSTAR = 350, tAMPER = 351,
  tLAMBDA = 352, tSYMBEG = 353, tSTRING_BEG = 354, tXSTRING_BEG = 355,
  tREGEXP_BEG = 356, tWORDS_BEG = 357, tQWORDS_BEG = 358, tSTRING_DBEG = 359,
  tSTRING_DVAR = 360, tSTRING_END = 361, tLAMBEG = 362, tLOWEST = 363,
  tUMINUS_NUM = 364, idNULL = 365, idRespond_to = 366, idIFUNC = 367,
  idCFUNC = 368, id_core_set_method_alias = 369, id_core_set_variable_alias = 370, id_core_undef_method = 371,
  id_core_define_method = 372, id_core_define_singleton_method = 373, id_core_set_postexe = 374, tLAST_TOKEN = 375,
  keyword_class = 258, keyword_module = 259, keyword_def = 260, keyword_undef = 261,
  keyword_begin = 262, keyword_rescue = 263, keyword_ensure = 264, keyword_end = 265,
  keyword_if = 266, keyword_unless = 267, keyword_then = 268, keyword_elsif = 269,
  keyword_else = 270, keyword_case = 271, keyword_when = 272, keyword_while = 273,
  keyword_until = 274, keyword_for = 275, keyword_break = 276, keyword_next = 277,
  keyword_redo = 278, keyword_retry = 279, keyword_in = 280, keyword_do = 281,
  keyword_do_cond = 282, keyword_do_block = 283, keyword_do_LAMBDA = 284, keyword_return = 285,
  keyword_yield = 286, keyword_super = 287, keyword_self = 288, keyword_nil = 289,
  keyword_true = 290, keyword_false = 291, keyword_and = 292, keyword_or = 293,
  keyword_not = 294, modifier_if = 295, modifier_unless = 296, modifier_while = 297,
  modifier_until = 298, modifier_rescue = 299, keyword_alias = 300, keyword_defined = 301,
  keyword_BEGIN = 302, keyword_END = 303, keyword__LINE__ = 304, keyword__FILE__ = 305,
  keyword__ENCODING__ = 306, tIDENTIFIER = 307, tFID = 308, tGVAR = 309,
  tIVAR = 310, tCONSTANT = 311, tCVAR = 312, tLABEL = 313,
  tINTEGER = 314, tFLOAT = 315, tSTRING_CONTENT = 316, tCHAR = 317,
  tNTH_REF = 318, tBACK_REF = 319, tREGEXP_END = 320, tUPLUS = 321,
  tUMINUS = 322, tPOW = 323, tCMP = 324, tEQ = 325,
  tEQQ = 326, tNEQ = 327, tGEQ = 328, tLEQ = 329,
  tANDOP = 330, tOROP = 331, tMATCH = 332, tNMATCH = 333,
  tDOT2 = 334, tDOT3 = 335, tAREF = 336, tASET = 337,
  tLSHFT = 338, tRSHFT = 339, tCOLON2 = 340, tCOLON3 = 341,
  tOP_ASGN = 342, tASSOC = 343, tLPAREN = 344, tLPAREN_ARG = 345,
  tRPAREN = 346, tLBRACK = 347, tLBRACE = 348, tLBRACE_ARG = 349,
  tSTAR = 350, tAMPER = 351, tLAMBDA = 352, tSYMBEG = 353,
  tSTRING_BEG = 354, tXSTRING_BEG = 355, tREGEXP_BEG = 356, tWORDS_BEG = 357,
  tQWORDS_BEG = 358, tSTRING_DBEG = 359, tSTRING_DVAR = 360, tSTRING_END = 361,
  tLAMBEG = 362, tLOWEST = 363, tUMINUS_NUM = 364, idNULL = 365,
  idRespond_to = 366, idIFUNC = 367, idCFUNC = 368, id_core_set_method_alias = 369,
  id_core_set_variable_alias = 370, id_core_undef_method = 371, id_core_define_method = 372, id_core_define_singleton_method = 373,
  id_core_set_postexe = 374, tLAST_TOKEN = 375
}
enum  string_type {
  str_squote = (0), str_dquote = (STR_FUNC_EXPAND), str_xquote = (STR_FUNC_EXPAND), str_regexp = (STR_FUNC_REGEXP|STR_FUNC_ESCAPE|STR_FUNC_EXPAND),
  str_sword = (STR_FUNC_QWORDS), str_dword = (STR_FUNC_QWORDS|STR_FUNC_EXPAND), str_ssym = (STR_FUNC_SYMBOL), str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND),
  str_squote = (0), str_dquote = (STR_FUNC_EXPAND), str_xquote = (STR_FUNC_EXPAND), str_regexp = (STR_FUNC_REGEXP|STR_FUNC_ESCAPE|STR_FUNC_EXPAND),
  str_sword = (STR_FUNC_QWORDS), str_dword = (STR_FUNC_QWORDS|STR_FUNC_EXPAND), str_ssym = (STR_FUNC_SYMBOL), str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND)
}

Functions

static ID register_symid (ID, const char *, long, rb_encoding *)
static 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)
void * rb_parser_malloc (struct parser_params *, size_t)
void * rb_parser_realloc (struct parser_params *, void *, size_t)
void * rb_parser_calloc (struct parser_params *, size_t, size_t)
void rb_parser_free (struct parser_params *, void *)
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 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 *, 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 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 NODEmatch_op_gen (struct parser_params *, NODE *, NODE *)
static IDlocal_tbl_gen (struct parser_params *)
static void fixup_nodes (NODE **)
int rb_dvar_defined (ID)
int rb_local_defined (ID)
int rb_parse_in_eval (void)
int rb_parse_in_main (void)
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)
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)
VALUE ruby_suppress_tracing (VALUE(*func)(VALUE, int), VALUE arg, int always)
static VALUE debug_lines (const char *f)
static VALUE coverage (const char *f, int n)
static int e_option_supplied (struct parser_params *parser)
static VALUE yycompile0 (VALUE arg, int tracing)
static NODEyycompile (struct parser_params *parser, const char *f, 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, const char *f, 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_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)
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)
int rb_char_to_option_kcode (int c, int *option, int *kcode)
static void dispose_string (VALUE str)
static int parser_tokadd_mbchar (struct parser_params *parser, int c)
static int parser_heredoc_identifier (struct parser_params *parser)
static void parser_heredoc_restore (struct parser_params *parser, NODE *here)
static int parser_whole_match_p (struct parser_params *parser, const char *eos, long len, int indent)
static void arg_ambiguous_gen (struct parser_params *parser)
static long parser_encode_length (struct parser_params *parser, const char *name, long len)
static void parser_set_encode (struct parser_params *parser, const char *name)
static int comment_at_top (struct parser_params *parser)
static void magic_comment_encoding (struct parser_params *parser, const char *name, const char *val)
static 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)
enum node_type nodetype (NODE *node)
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)
ID rb_id_attrset (ID id)
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 IDvtable_tblcpy (ID *buf, const struct vtable *src)
static void dyna_pop_1 (struct parser_params *parser)
VALUE rb_reg_compile (VALUE str, int options, const char *sourcefile, int sourceline)
VALUE rb_reg_check_preprocess (VALUE)
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 (void)
static int is_special_global_name (const char *m, const char *e, rb_encoding *enc)
int rb_symname_p (const char *name)
int rb_enc_symname_p (const char *name, rb_encoding *enc)
int rb_enc_symname2_p (const char *name, long len, rb_encoding *enc)
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_instance_id (ID id)
int rb_is_local_id (ID id)
int rb_is_junk_id (ID id)
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)
VALUE rb_parser_get_yydebug (VALUE)
VALUE rb_parser_set_yydebug (VALUE, VALUE)
struct 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)

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
static struct magic_comment magic_comments []
struct {
   ID   token
   const char *   name
op_tbl []
static struct symbols global_symbols
static struct st_hash_type symhash

Define Documentation

#define ADD2HEAP (   n,
  c,
  p 
)
Value:
((parser->heap = (n))->u1.node = (p), \
                           (n)->u3.cnt = (c), (p))

Definition at line 16309 of file ripper.c.

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

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

Definition at line 12696 of file ripper.c.

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

Definition at line 12384 of file ripper.c.

Referenced by arg_ambiguous_gen(), and parser_yylex().

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

Definition at line 419 of file ripper.c.

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

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

Definition at line 421 of file ripper.c.

Referenced by arg_concat_gen(), and yyparse().

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

Definition at line 511 of file ripper.c.

Referenced by yyparse().

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

Definition at line 452 of file ripper.c.

Referenced by yyparse().

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

Definition at line 449 of file ripper.c.

Referenced by reg_named_capture_assign_iter(), and yyparse().

#define assignable_result (   x  )     x

Referenced by assignable_gen().

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

Definition at line 454 of file ripper.c.

Referenced by yyparse().

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

Definition at line 137 of file ripper.c.

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

Definition at line 136 of file ripper.c.

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

Definition at line 135 of file ripper.c.

#define BITSTACK_SET_P (   stack  )     (stack&1)

Definition at line 138 of file ripper.c.

#define block_append (   h,
  t 
)    block_append_gen(parser,h,t)
#define block_dup_check (   n1,
  n2 
)    block_dup_check_gen(parser,n1,n2)

Definition at line 410 of file ripper.c.

Referenced by yyparse().

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

Definition at line 432 of file ripper.c.

Referenced by if(), and yyparse().

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

Definition at line 434 of file ripper.c.

Referenced by yyparse().

#define calloc   YYCALLOC

Definition at line 95 of file ripper.c.

Referenced by opendir_internal(), and rb_w32_cmdvector().

#define class_nest   (parser->parser_class_nest)

Definition at line 348 of file ripper.c.

#define CMDARG_LEXPOP (  )     BITSTACK_LEXPOP(cmdarg_stack)

Definition at line 147 of file ripper.c.

Referenced by parser_yylex().

#define CMDARG_P (  )     BITSTACK_SET_P(cmdarg_stack)

Definition at line 148 of file ripper.c.

Referenced by parser_yylex().

#define CMDARG_POP (  )     BITSTACK_POP(cmdarg_stack)

Definition at line 146 of file ripper.c.

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

Definition at line 145 of file ripper.c.

Referenced by parser_yylex(), and yyparse().

#define cmdarg_stack   (parser->parser_cmdarg_stack)

Definition at line 347 of file ripper.c.

Referenced by yyparse().

#define command_start   (parser->parser_command_start)

Definition at line 366 of file ripper.c.

Referenced by parser_yylex(), and yyparse().

#define compile_error   parser->nerr++,rb_compile_error
#define compile_for_eval   (parser->parser_compile_for_eval)
#define cond (   node  )     cond_gen(parser, node)

Definition at line 392 of file ripper.c.

Referenced by value_expr_gen(), and yyparse().

#define COND_LEXPOP (  )     BITSTACK_LEXPOP(cond_stack)

Definition at line 142 of file ripper.c.

Referenced by parser_yylex().

#define COND_P (  )     BITSTACK_SET_P(cond_stack)

Definition at line 143 of file ripper.c.

Referenced by parser_yylex().

#define COND_POP (  )     BITSTACK_POP(cond_stack)

Definition at line 141 of file ripper.c.

Referenced by yyparse().

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

Definition at line 140 of file ripper.c.

Referenced by parser_yylex(), and yyparse().

#define cond_stack   (parser->parser_cond_stack)

Definition at line 346 of file ripper.c.

Referenced by yyparse().

#define cur_mid   (parser->parser_cur_mid)

Definition at line 354 of file ripper.c.

Referenced by yyparse().

fixup_nodes & deferred_nodes   (parser->parser_deferred_nodes)

Definition at line 367 of file ripper.c.

Referenced by yycompile0(), and yyparse().

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

Definition at line 527 of file ripper.c.

Referenced by assignable_gen(), and shadowing_lvar_gen().

#define dvar_defined (   id  )     dvar_defined_gen(parser, id)
#define DVARS_INHERIT   ((void*)1)

Definition at line 163 of file ripper.c.

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

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

Definition at line 165 of file ripper.c.

#define DVARS_TOPSCOPE   NULL

Definition at line 164 of file ripper.c.

Referenced by local_push_gen().

#define dyna_in_block (  )     dyna_in_block_gen(parser)

Definition at line 522 of file ripper.c.

Referenced by assignable_gen(), gettable_gen(), lvar_defined_gen(), shadowing_lvar_gen(), and yyparse().

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

Definition at line 520 of file ripper.c.

Referenced by yyparse().

#define dyna_push (  )     dyna_push_gen(parser)

Definition at line 518 of file ripper.c.

Referenced by yyparse().

#define dyna_var (   id  )     local_var(id)

Definition at line 523 of file ripper.c.

Referenced by assignable_gen(), and new_bv_gen().

#define ENABLE_SELECTOR_NAMESPACE   0

Definition at line 15581 of file ripper.c.

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

Definition at line 329 of file ripper.c.

Referenced by parser_yylex().

#define ESCAPE_CONTROL   1

Definition at line 11728 of file ripper.c.

Referenced by parser_read_escape(), and parser_tokadd_escape().

#define ESCAPE_META   2

Definition at line 11729 of file ripper.c.

Referenced by parser_read_escape(), and parser_tokadd_escape().

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

Definition at line 428 of file ripper.c.

Referenced by yyparse().

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

Definition at line 498 of file ripper.c.

Referenced by yyparse().

#define free   YYFREE

Definition at line 96 of file ripper.c.

#define get_id (   id  )     (id)

Definition at line 483 of file ripper.c.

Referenced by assignable_gen(), and yyparse().

#define get_value (   val  )     (val)

Definition at line 484 of file ripper.c.

Referenced by yyparse().

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

Definition at line 447 of file ripper.c.

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

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

Definition at line 16307 of file ripper.c.

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

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

Definition at line 11022 of file ripper.c.

Referenced by parser_yylex().

#define heredoc_end   (parser->parser_heredoc_end)

Definition at line 365 of file ripper.c.

Referenced by parser_heredoc_restore(), and parser_nextc().

#define heredoc_identifier (  )     parser_heredoc_identifier(parser)

Definition at line 11023 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 11024 of file ripper.c.

Referenced by parser_here_document().

#define ifndef_ripper (   x  )     x

Definition at line 619 of file ripper.c.

Referenced by yyparse().

#define in_def   (parser->parser_in_def)

Definition at line 352 of file ripper.c.

Referenced by assignable_gen(), and yyparse().

#define in_defined   (parser->parser_in_defined)

Definition at line 355 of file ripper.c.

Referenced by yyparse().

#define in_single   (parser->parser_in_single)

Definition at line 351 of file ripper.c.

Referenced by assignable_gen(), and yyparse().

#define internal_id (  )     internal_id_gen(parser)

Definition at line 515 of file ripper.c.

Referenced by yyparse().

#define IS_ARG (  )     (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)

Definition at line 12690 of file ripper.c.

Referenced by parser_yylex().

#define is_asgn_or_id (   id  ) 
Value:
((is_notop_id(id)) && \
        (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
         ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
         ((id)&ID_SCOPE_MASK) == ID_CLASS))

Definition at line 113 of file ripper.c.

Referenced by yyparse().

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

Definition at line 108 of file ripper.c.

Referenced by rb_id2str(), and rb_intern3().

#define IS_BEG (  )     (lex_state == EXPR_BEG || lex_state == EXPR_MID || lex_state == EXPR_VALUE || lex_state == EXPR_CLASS)

Definition at line 12692 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 110 of file ripper.c.

Referenced by assignable_gen(), gettable_gen(), and rb_is_class_id().

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

Definition at line 109 of file ripper.c.

Referenced by assignable_gen(), gettable_gen(), and rb_is_const_id().

#define IS_END (  )     (lex_state == EXPR_END || lex_state == EXPR_ENDARG || lex_state == EXPR_ENDFN)

Definition at line 12691 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 106 of file ripper.c.

Referenced by assignable_gen(), and gettable_gen().

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

Definition at line 11121 of file ripper.c.

Referenced by is_special_global_name(), parser_yylex(), rb_enc_symname2_p(), and rb_intern3().

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

Definition at line 107 of file ripper.c.

Referenced by assignable_gen(), gettable_gen(), and rb_is_instance_id().

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

Definition at line 111 of file ripper.c.

Referenced by rb_is_junk_id().

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

Definition at line 104 of file ripper.c.

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

Definition at line 12693 of file ripper.c.

Referenced by parser_yylex().

#define lex_gets   (parser->parser_lex_gets)

Definition at line 369 of file ripper.c.

Referenced by parser_compile_string(), and rb_parser_compile_file().

#define lex_gets_ptr   (parser->parser_lex_gets_ptr)

Definition at line 368 of file ripper.c.

Referenced by lex_get_str(), and parser_compile_string().

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

Definition at line 359 of file ripper.c.

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

#define lex_lastline   (parser->parser_lex_lastline)
#define lex_nextline   (parser->parser_lex_nextline)

Definition at line 361 of file ripper.c.

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

#define lex_p   (parser->parser_lex_p)
#define lex_pbeg   (parser->parser_lex_pbeg)
#define lex_pend   (parser->parser_lex_pend)
#define lex_state   (parser->parser_lex_state)

Definition at line 345 of file ripper.c.

Referenced by parser_yylex(), and yyparse().

#define lex_strterm   (parser->parser_lex_strterm)
#define list_append (   l,
  i 
)    list_append_gen(parser,l,i)

Definition at line 415 of file ripper.c.

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

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

Definition at line 417 of file ripper.c.

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

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

Definition at line 423 of file ripper.c.

Referenced by yyparse().

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

Definition at line 507 of file ripper.c.

Referenced by yyparse().

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

Definition at line 505 of file ripper.c.

Referenced by yyparse().

#define local_tbl (  )     local_tbl_gen(parser)

Definition at line 465 of file ripper.c.

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

Definition at line 509 of file ripper.c.

Referenced by assignable_gen().

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

Definition at line 394 of file ripper.c.

Referenced by yyparse().

#define lpar_beg   (parser->parser_lpar_beg)

Definition at line 350 of file ripper.c.

Referenced by parser_yylex(), and yyparse().

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

Definition at line 530 of file ripper.c.

Referenced by parser_yylex().

#define lvtbl   (parser->parser_lvtbl)
#define malloc   YYMALLOC
#define match_op (   node1,
  node2 
)    match_op_gen(parser, node1, node2)

Definition at line 462 of file ripper.c.

Referenced by yyparse().

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

Referenced by parser_tokadd_string().

#define mixed_escape (   beg,
  enc1,
  enc2 
)
Value:
do {    \
        const char *pos = lex_p;                \
        lex_p = beg;                            \
        mixed_error(enc1, enc2);                \
        lex_p = pos;                            \
    } while (0)

Referenced by parser_tokadd_string().

#define nd_func   u1.id

Definition at line 543 of file ripper.c.

#define nd_nest   u3.cnt

Definition at line 550 of file ripper.c.

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

Definition at line 549 of file ripper.c.

Referenced by parser_parse_string().

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

Definition at line 547 of file ripper.c.

Referenced by parser_parse_string().

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

Definition at line 437 of file ripper.c.

Referenced by check_funcall_exec(), vm_call0(), and yyparse().

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

Definition at line 502 of file ripper.c.

Referenced by yyparse().

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

Definition at line 426 of file ripper.c.

Referenced by yyparse().

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

Definition at line 12093 of file ripper.c.

Referenced by parser_here_document(), and parser_yylex().

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

Definition at line 444 of file ripper.c.

Referenced by yyparse().

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

Definition at line 16308 of file ripper.c.

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

#define newtok (  )     parser_newtok(parser)
#define nextc (  )     parser_nextc(parser)
#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 459 of file ripper.c.

Referenced by reg_named_capture_assign_iter(), and yyparse().

#define NODE_HEREDOC   NODE_ARRAY

Definition at line 541 of file ripper.c.

Referenced by parser_heredoc_identifier(), and parser_yylex().

#define NODE_STRTERM   NODE_ZARRAY

Definition at line 540 of file ripper.c.

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

Definition at line 87 of file ripper.c.

Referenced by parser_magic_comment().

#define op_tbl_count   numberof(op_tbl)

Definition at line 15578 of file ripper.c.

#define paren_nest   (parser->parser_paren_nest)

Definition at line 349 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 11020 of file ripper.c.

Referenced by parser_yylex().

#define PARSER_ARG   ruby_sourcefile, ruby_sourceline,
#define parser_encoding_name (  )     (parser->enc->name)

Definition at line 11118 of file ripper.c.

Referenced by parser_tokadd_mbchar().

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

Definition at line 11122 of file ripper.c.

Referenced by parser_heredoc_identifier(), and parser_yylex().

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

Definition at line 11124 of file ripper.c.

Referenced by parser_tokadd_string(), and parser_yylex().

#define parser_mbclen (  )     mbclen((lex_p-1),lex_pend,parser->enc)

Definition at line 11119 of file ripper.c.

#define parser_precise_mbclen (  )     rb_enc_precise_mbclen((lex_p-1),lex_pend,parser->enc)

Definition at line 11120 of file ripper.c.

Referenced by parser_tokadd_mbchar().

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

Definition at line 14075 of file ripper.c.

Referenced by assign_in_cond(), cond0(), and warn_unless_e_option().

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

Definition at line 14068 of file ripper.c.

Referenced by block_append_gen(), cond0(), value_expr_gen(), and warning_unless_e_option().

#define peek (   c  )     (lex_p < lex_pend && (c) == *lex_p)
#define POINTER_P (   val  )     ((VALUE)(val) & ~(VALUE)3)
#define pushback (   c  )     parser_pushback(parser, c)
#define rb_backref_error (   n  )     rb_backref_error_gen(parser,n)

Definition at line 457 of file ripper.c.

Referenced by yyparse().

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

Definition at line 389 of file ripper.c.

Referenced by enum_zip(), parser_heredoc_identifier(), rb_autoload(), and sort_by_i().

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

Definition at line 625 of file ripper.c.

Referenced by cond0(), and yyparse().

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

Definition at line 626 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 628 of file ripper.c.

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

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

Definition at line 629 of file ripper.c.

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

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

Definition at line 627 of file ripper.c.

Referenced by void_expr_gen().

#define RE_OPTION_ARG_ENCODING_NONE   32

Definition at line 538 of file ripper.c.

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

Definition at line 534 of file ripper.c.

Referenced by parser_regx_options().

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

Definition at line 535 of file ripper.c.

Referenced by reg_fragment_setenc_gen().

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

Definition at line 536 of file ripper.c.

Referenced by reg_fragment_setenc_gen().

#define RE_OPTION_ENCODING_SHIFT   8

Definition at line 533 of file ripper.c.

#define RE_OPTION_MASK   0xff

Definition at line 537 of file ripper.c.

Referenced by reg_compile_gen().

#define RE_OPTION_ONCE   (1<<16)

Definition at line 532 of file ripper.c.

Referenced by yyparse().

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

Definition at line 11016 of file ripper.c.

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

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

Definition at line 408 of file ripper.c.

Referenced by yyparse().

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

Definition at line 475 of file ripper.c.

Referenced by yyparse().

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

Definition at line 479 of file ripper.c.

Referenced by yyparse().

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

Definition at line 477 of file ripper.c.

Referenced by reg_compile_gen(), and reg_fragment_check_gen().

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

Definition at line 481 of file ripper.c.

Referenced by yyparse().

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

Definition at line 100 of file ripper.c.

Referenced by Init_id().

#define regx_options (  )     parser_regx_options(parser)

Definition at line 11018 of file ripper.c.

Referenced by parser_parse_string().

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

Definition at line 441 of file ripper.c.

Referenced by yyparse().

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

Definition at line 11051 of file ripper.c.

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

#define ruby__end__seen   (parser->parser_ruby__end__seen)

Definition at line 371 of file ripper.c.

Referenced by parser_yylex(), and rb_parser_end_seen_p().

#define ruby_coverage   (parser->coverage)

Definition at line 380 of file ripper.c.

Referenced by lex_getline(), and yycompile0().

#define ruby_debug_lines   (parser->debug_lines)

Definition at line 379 of file ripper.c.

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

#define ruby_eval_tree   (parser->parser_eval_tree)

Definition at line 377 of file ripper.c.

Referenced by yyparse().

#define ruby_eval_tree_begin   (parser->parser_eval_tree_begin)

Definition at line 378 of file ripper.c.

Referenced by yycompile0(), and yyparse().

#define ruby_sourcefile   (parser->parser_ruby_sourcefile)

Definition at line 373 of file ripper.c.

#define ruby_sourceline   (parser->parser_ruby_sourceline)
#define set_yylval_id (   x  )     yylval.id = x

Definition at line 11030 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 11032 of file ripper.c.

Referenced by parser_yylex().

#define set_yylval_name (   x  )     yylval.id = x

Definition at line 11031 of file ripper.c.

Referenced by parser_yylex().

#define set_yylval_node (   x  )     yylval.node = x

Definition at line 11033 of file ripper.c.

Referenced by parser_yylex().

#define set_yylval_num (   x  )     yylval.num = x

Definition at line 11029 of file ripper.c.

Referenced by parser_parse_string().

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

Definition at line 11028 of file ripper.c.

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

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

Definition at line 500 of file ripper.c.

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

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

Definition at line 542 of file ripper.c.

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

Definition at line 11115 of file ripper.c.

#define str_copy (   _s,
  _p,
  _n 
)
Value:
((_s) \
        ? (rb_str_resize((_s), (_n)), \
           MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
        : ((_s) = STR_NEW((_p), (_n))))

Referenced by parser_magic_comment().

#define STR_FUNC_ESCAPE   0x01

Definition at line 11493 of file ripper.c.

Referenced by parser_tokadd_string().

#define STR_FUNC_EXPAND   0x02

Definition at line 11494 of file ripper.c.

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

#define STR_FUNC_INDENT   0x20

Definition at line 11498 of file ripper.c.

Referenced by parser_here_document(), and parser_heredoc_identifier().

#define STR_FUNC_QWORDS   0x08

Definition at line 11496 of file ripper.c.

Referenced by parser_parse_string(), and parser_tokadd_string().

#define STR_FUNC_REGEXP   0x04

Definition at line 11495 of file ripper.c.

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

#define STR_FUNC_SYMBOL   0x10

Definition at line 11497 of file ripper.c.

Referenced by parser_tokadd_string().

#define STR_NEW (   p,
  n 
)    rb_enc_str_new((p),(n),parser->enc)

Definition at line 325 of file ripper.c.

Referenced by parser_here_document(), and parser_heredoc_identifier().

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

Definition at line 326 of file ripper.c.

Referenced by yycompile0(), and yyparse().

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

Definition at line 327 of file ripper.c.

Referenced by parser_yyerror().

#define STR_NEW3 (   p,
  n,
  e,
  func 
)    parser_str_new((p),(n),(e),(func),parser->enc)

Definition at line 328 of file ripper.c.

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

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

Referenced by reduce_nodes_gen().

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

Definition at line 11015 of file ripper.c.

Referenced by parser_read_escape(), and parser_tokadd_escape().

#define TOK_INTERN (   mb  )     rb_intern3(tok(), toklen(), parser->enc)

Definition at line 330 of file ripper.c.

Referenced by parser_yylex().

#define tokadd (   c  )     parser_tokadd(parser, c)
#define tokadd_escape (   e  )     parser_tokadd_escape(parser, e)

Definition at line 11017 of file ripper.c.

Referenced by parser_tokadd_string().

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

Definition at line 11967 of file ripper.c.

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

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

Definition at line 11019 of file ripper.c.

Referenced by parser_here_document(), and parser_parse_string().

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

Definition at line 11021 of file ripper.c.

Referenced by parser_tokadd_utf8(), and parser_yylex().

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

Definition at line 11654 of file ripper.c.

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

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

Definition at line 668 of file ripper.c.

Referenced by yyparse().

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

Definition at line 667 of file ripper.c.

Referenced by yyparse().

#define tokenbuf   (parser->parser_tokenbuf)

Definition at line 356 of file ripper.c.

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

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

Definition at line 357 of file ripper.c.

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

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

Definition at line 11601 of file ripper.c.

Referenced by parser_yylex().

#define toklen (  )     tokidx
#define toksiz   (parser->parser_toksiz)

Definition at line 358 of file ripper.c.

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

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

Definition at line 11013 of file ripper.c.

Referenced by parser_tokaddmbc().

#define UTF8_ENC (  ) 
Value:
(parser->utf8 ? parser->utf8 : \
                    (parser->utf8 = rb_utf8_encoding()))

Definition at line 323 of file ripper.c.

Referenced by parser_tokadd_utf8().

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

Definition at line 404 of file ripper.c.

Referenced by yyparse().

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

Definition at line 403 of file ripper.c.

Referenced by void_stmts_gen().

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

Definition at line 406 of file ripper.c.

Referenced by yyparse().

#define VTBL_DEBUG   0

Definition at line 179 of file ripper.c.

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

#define warn_balanced (   op,
  syn 
)
Value:
(last_state != EXPR_CLASS && last_state != EXPR_DOT && \
     last_state != EXPR_FNAME && last_state != EXPR_ENDFN && \
     last_state != EXPR_ENDARG && \
     space_seen && !ISSPACE(c) && \
     (ambiguous_operator(op, syn), 0))

Definition at line 12702 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 11596 of file ripper.c.

Referenced by parser_here_document(), and parser_yylex().

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

Definition at line 11025 of file ripper.c.

Referenced by parser_here_document(), and parser_yylex().

#define YY_ (   msgid  )     msgid

Definition at line 911 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

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

Definition at line 4192 of file ripper.c.

#define YY_REDUCE_PRINT (   Rule  ) 
Value:
do {                                    \
  if (yydebug)                          \
    yy_reduce_print (yyvsp, Rule, parser); \
} while (YYID (0))

Definition at line 4355 of file ripper.c.

Referenced by yyparse().

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

Definition at line 4316 of file ripper.c.

Referenced by yyparse().

#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 4218 of file ripper.c.

Referenced by yydestruct(), and yyparse().

#define YYABORT   goto yyabortlab

Definition at line 4121 of file ripper.c.

#define YYACCEPT   goto yyacceptlab

Definition at line 4120 of file ripper.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 4142 of file ripper.c.

#define YYBISON   1

Definition at line 44 of file ripper.c.

#define YYBISON_VERSION   "2.5"

Definition at line 47 of file ripper.c.

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

Definition at line 91 of file ripper.c.

#define YYCASE_ (   N,
  S 
)
Value:
case N:                               \
        yyformat = S;                       \
      break

Referenced by yysyntax_error().

#define yyclearin   (yychar = YYEMPTY)

Definition at line 4116 of file ripper.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 1058 of file ripper.c.

#define YYCOPY_NEEDED   1

Definition at line 1030 of file ripper.c.

#define yydebug   (parser->parser_yydebug)

Definition at line 374 of file ripper.c.

Referenced by dump_option(), proc_options(), and process_options().

#define YYDEBUG   1

Definition at line 72 of file ripper.c.

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

Definition at line 4212 of file ripper.c.

Referenced by yyparse().

#define YYEMPTY   (-2)

Definition at line 4117 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

#define YYEOF   0

Definition at line 4118 of file ripper.c.

Referenced by yyparse().

#define YYERRCODE   256

Definition at line 4160 of file ripper.c.

#define yyerrok   (yyerrstatus = 0)

Definition at line 4115 of file ripper.c.

#define YYERROR   goto yyerrorlab

Definition at line 4122 of file ripper.c.

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

Definition at line 686 of file ripper.c.

#define YYERROR_VERBOSE   1

Definition at line 686 of file ripper.c.

#define YYFAIL   goto yyerrlab

Definition at line 4132 of file ripper.c.

#define YYFINAL   3

Definition at line 1071 of file ripper.c.

Referenced by yyparse().

#define YYFPRINTF   fprintf

Definition at line 4209 of file ripper.c.

Referenced by yy_reduce_print(), yy_stack_print(), and yy_symbol_print().

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

Definition at line 92 of file ripper.c.

#define YYID (   n  )     (n)

Definition at line 924 of file ripper.c.

Referenced by yyparse().

#define YYINITDEPTH   200

Definition at line 4376 of file ripper.c.

#define YYLAST   10410

Definition at line 1073 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

#define YYLEX   yylex (&yylval, YYLEX_PARAM)

Definition at line 4199 of file ripper.c.

#define YYLEX_PARAM   parser

Definition at line 342 of file ripper.c.

#define YYLLOC_DEFAULT (   Current,
  Rhs,
  N 
)
Value:
do                                                                      \
      if (YYID (N))                                                    \
        {                                                               \
          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
        }                                                               \
      else                                                              \
        {                                                               \
          (Current).first_line   = (Current).last_line   =              \
            YYRHSLOC (Rhs, 0).last_line;                                \
          (Current).first_column = (Current).last_column =              \
            YYRHSLOC (Rhs, 0).last_column;                              \
        }                                                               \
    while (YYID (0))

Definition at line 4169 of file ripper.c.

#define YYLSP_NEEDED   0

Definition at line 62 of file ripper.c.

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

Definition at line 11001 of file ripper.c.

#define yylval_id (  )     yylval.id

Definition at line 11034 of file ripper.c.

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

Definition at line 89 of file ripper.c.

#define YYMAXDEPTH   10000

Definition at line 4387 of file ripper.c.

Referenced by yyparse().

#define YYMAXUTOK   375

Definition at line 1086 of file ripper.c.

#define YYNNTS   172

Definition at line 1078 of file ripper.c.

#define YYNRULES   565

Definition at line 1080 of file ripper.c.

#define YYNSTATES   975

Definition at line 1082 of file ripper.c.

#define YYNTOKENS   148

Definition at line 1076 of file ripper.c.

Referenced by yy_symbol_print(), yy_symbol_value_print(), and yysyntax_error().

#define YYPACT_NINF   -778

Definition at line 1783 of file ripper.c.

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

Definition at line 2959 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

#define yyparse   ruby_yyparse

Definition at line 386 of file ripper.c.

Referenced by yycompile0().

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

Referenced by yyparse().

#define YYPULL   1

Definition at line 59 of file ripper.c.

#define YYPURE   1

Definition at line 53 of file ripper.c.

#define YYPUSH   0

Definition at line 56 of file ripper.c.

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

Definition at line 90 of file ripper.c.

#define YYRECOVERING (  )     (!!yyerrstatus)

Definition at line 4140 of file ripper.c.

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

Definition at line 4167 of file ripper.c.

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

Definition at line 901 of file ripper.c.

#define YYSIZE_T   unsigned int

Definition at line 897 of file ripper.c.

Referenced by yyparse(), yystrlen(), yysyntax_error(), and yytnamerr().

#define YYSKELETON_NAME   "yacc.c"

Definition at line 50 of file ripper.c.

#define YYSTACK_ALLOC   YYMALLOC

Definition at line 979 of file ripper.c.

Referenced by yyparse().

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 982 of file ripper.c.

Referenced by yysyntax_error().

#define YYSTACK_BYTES (   N  ) 
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
      + YYSTACK_GAP_MAXIMUM)

Definition at line 1026 of file ripper.c.

Referenced by yyparse().

#define YYSTACK_FREE   YYFREE

Definition at line 980 of file ripper.c.

Referenced by yyparse().

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

Definition at line 1022 of file ripper.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 1037 of file ripper.c.

Referenced by yyparse().

#define YYSTACK_USE_ALLOCA   0

Definition at line 74 of file ripper.c.

#define YYSYNTAX_ERROR
Value:
yysyntax_error (&yymsg_alloc, &yymsg, \
                                        yyssp, yytoken)
#define YYTABLE_NINF   -566

Definition at line 1912 of file ripper.c.

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

Definition at line 2962 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

#define YYTERROR   1

Definition at line 4159 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

#define YYTOKEN_TABLE   0

Definition at line 693 of file ripper.c.

#define YYTOKENTYPE

Definition at line 699 of file ripper.c.

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

Definition at line 1088 of file ripper.c.

Referenced by yyparse().

#define YYUNDEFTOK   2

Definition at line 1085 of file ripper.c.

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

Definition at line 917 of file ripper.c.

Referenced by yy_symbol_value_print(), and yydestruct().


Typedef Documentation

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

Definition at line 12472 of file ripper.c.

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

Definition at line 12473 of file ripper.c.

typedef VALUE stack_type

Definition at line 133 of file ripper.c.

typedef struct token_info token_info
typedef short int yytype_int16

Definition at line 884 of file ripper.c.

typedef short int yytype_int8

Definition at line 872 of file ripper.c.

typedef unsigned short int yytype_uint16

Definition at line 878 of file ripper.c.

typedef unsigned char yytype_uint8

Definition at line 863 of file ripper.c.


Enumeration Type Documentation

Enumerator:
EXPR_BEG 
EXPR_END 
EXPR_ENDARG 
EXPR_ENDFN 
EXPR_ARG 
EXPR_CMDARG 
EXPR_MID 
EXPR_FNAME 
EXPR_DOT 
EXPR_CLASS 
EXPR_VALUE 
EXPR_MAX_STATE 
EXPR_BEG 
EXPR_END 
EXPR_ENDARG 
EXPR_ENDFN 
EXPR_ARG 
EXPR_CMDARG 
EXPR_MID 
EXPR_FNAME 
EXPR_DOT 
EXPR_CLASS 
EXPR_VALUE 
EXPR_MAX_STATE 

Definition at line 118 of file ripper.c.

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

Definition at line 11500 of file ripper.c.

Enumerator:
keyword_class 
keyword_module 
keyword_def 
keyword_undef 
keyword_begin 
keyword_rescue 
keyword_ensure 
keyword_end 
keyword_if 
keyword_unless 
keyword_then 
keyword_elsif 
keyword_else 
keyword_case 
keyword_when 
keyword_while 
keyword_until 
keyword_for 
keyword_break 
keyword_next 
keyword_redo 
keyword_retry 
keyword_in 
keyword_do 
keyword_do_cond 
keyword_do_block 
keyword_do_LAMBDA 
keyword_return 
keyword_yield 
keyword_super 
keyword_self 
keyword_nil 
keyword_true 
keyword_false 
keyword_and 
keyword_or 
keyword_not 
modifier_if 
modifier_unless 
modifier_while 
modifier_until 
modifier_rescue 
keyword_alias 
keyword_defined 
keyword_BEGIN 
keyword_END 
keyword__LINE__ 
keyword__FILE__ 
keyword__ENCODING__ 
tIDENTIFIER 
tFID 
tGVAR 
tIVAR 
tCONSTANT 
tCVAR 
tLABEL 
tINTEGER 
tFLOAT 
tSTRING_CONTENT 
tCHAR 
tNTH_REF 
tBACK_REF 
tREGEXP_END 
tUPLUS 
tUMINUS 
tPOW 
tCMP 
tEQ 
tEQQ 
tNEQ 
tGEQ 
tLEQ 
tANDOP 
tOROP 
tMATCH 
tNMATCH 
tDOT2 
tDOT3 
tAREF 
tASET 
tLSHFT 
tRSHFT 
tCOLON2 
tCOLON3 
tOP_ASGN 
tASSOC 
tLPAREN 
tLPAREN_ARG 
tRPAREN 
tLBRACK 
tLBRACE 
tLBRACE_ARG 
tSTAR 
tAMPER 
tLAMBDA 
tSYMBEG 
tSTRING_BEG 
tXSTRING_BEG 
tREGEXP_BEG 
tWORDS_BEG 
tQWORDS_BEG 
tSTRING_DBEG 
tSTRING_DVAR 
tSTRING_END 
tLAMBEG 
tLOWEST 
tUMINUS_NUM 
idNULL 
idRespond_to 
idIFUNC 
idCFUNC 
id_core_set_method_alias 
id_core_set_variable_alias 
id_core_undef_method 
id_core_define_method 
id_core_define_singleton_method 
id_core_set_postexe 
tLAST_TOKEN 
YAML_ANCHOR 
YAML_ALIAS 
YAML_TRANSFER 
YAML_TAGURI 
YAML_ITRANSFER 
YAML_WORD 
YAML_PLAIN 
YAML_BLOCK 
YAML_DOCSEP 
YAML_IOPEN 
YAML_INDENT 
YAML_IEND 
YAML_ANCHOR 
YAML_ALIAS 
YAML_TRANSFER 
YAML_TAGURI 
YAML_ITRANSFER 
YAML_WORD 
YAML_PLAIN 
YAML_BLOCK 
YAML_DOCSEP 
YAML_IOPEN 
YAML_INDENT 
YAML_IEND 
keyword_class 
keyword_module 
keyword_def 
keyword_undef 
keyword_begin 
keyword_rescue 
keyword_ensure 
keyword_end 
keyword_if 
keyword_unless 
keyword_then 
keyword_elsif 
keyword_else 
keyword_case 
keyword_when 
keyword_while 
keyword_until 
keyword_for 
keyword_break 
keyword_next 
keyword_redo 
keyword_retry 
keyword_in 
keyword_do 
keyword_do_cond 
keyword_do_block 
keyword_do_LAMBDA 
keyword_return 
keyword_yield 
keyword_super 
keyword_self 
keyword_nil 
keyword_true 
keyword_false 
keyword_and 
keyword_or 
keyword_not 
modifier_if 
modifier_unless 
modifier_while 
modifier_until 
modifier_rescue 
keyword_alias 
keyword_defined 
keyword_BEGIN 
keyword_END 
keyword__LINE__ 
keyword__FILE__ 
keyword__ENCODING__ 
tIDENTIFIER 
tFID 
tGVAR 
tIVAR 
tCONSTANT 
tCVAR 
tLABEL 
tINTEGER 
tFLOAT 
tSTRING_CONTENT 
tCHAR 
tNTH_REF 
tBACK_REF 
tREGEXP_END 
tUPLUS 
tUMINUS 
tPOW 
tCMP 
tEQ 
tEQQ 
tNEQ 
tGEQ 
tLEQ 
tANDOP 
tOROP 
tMATCH 
tNMATCH 
tDOT2 
tDOT3 
tAREF 
tASET 
tLSHFT 
tRSHFT 
tCOLON2 
tCOLON3 
tOP_ASGN 
tASSOC 
tLPAREN 
tLPAREN_ARG 
tRPAREN 
tLBRACK 
tLBRACE 
tLBRACE_ARG 
tSTAR 
tAMPER 
tLAMBDA 
tSYMBEG 
tSTRING_BEG 
tXSTRING_BEG 
tREGEXP_BEG 
tWORDS_BEG 
tQWORDS_BEG 
tSTRING_DBEG 
tSTRING_DVAR 
tSTRING_END 
tLAMBEG 
tLOWEST 
tUMINUS_NUM 
idNULL 
idRespond_to 
idIFUNC 
idCFUNC 
id_core_set_method_alias 
id_core_set_variable_alias 
id_core_undef_method 
id_core_define_method 
id_core_define_singleton_method 
id_core_set_postexe 
tLAST_TOKEN 
keyword_class 
keyword_module 
keyword_def 
keyword_undef 
keyword_begin 
keyword_rescue 
keyword_ensure 
keyword_end 
keyword_if 
keyword_unless 
keyword_then 
keyword_elsif 
keyword_else 
keyword_case 
keyword_when 
keyword_while 
keyword_until 
keyword_for 
keyword_break 
keyword_next 
keyword_redo 
keyword_retry 
keyword_in 
keyword_do 
keyword_do_cond 
keyword_do_block 
keyword_do_LAMBDA 
keyword_return 
keyword_yield 
keyword_super 
keyword_self 
keyword_nil 
keyword_true 
keyword_false 
keyword_and 
keyword_or 
keyword_not 
modifier_if 
modifier_unless 
modifier_while 
modifier_until 
modifier_rescue 
keyword_alias 
keyword_defined 
keyword_BEGIN 
keyword_END 
keyword__LINE__ 
keyword__FILE__ 
keyword__ENCODING__ 
tIDENTIFIER 
tFID 
tGVAR 
tIVAR 
tCONSTANT 
tCVAR 
tLABEL 
tINTEGER 
tFLOAT 
tSTRING_CONTENT 
tCHAR 
tNTH_REF 
tBACK_REF 
tREGEXP_END 
tUPLUS 
tUMINUS 
tPOW 
tCMP 
tEQ 
tEQQ 
tNEQ 
tGEQ 
tLEQ 
tANDOP 
tOROP 
tMATCH 
tNMATCH 
tDOT2 
tDOT3 
tAREF 
tASET 
tLSHFT 
tRSHFT 
tCOLON2 
tCOLON3 
tOP_ASGN 
tASSOC 
tLPAREN 
tLPAREN_ARG 
tRPAREN 
tLBRACK 
tLBRACE 
tLBRACE_ARG 
tSTAR 
tAMPER 
tLAMBDA 
tSYMBEG 
tSTRING_BEG 
tXSTRING_BEG 
tREGEXP_BEG 
tWORDS_BEG 
tQWORDS_BEG 
tSTRING_DBEG 
tSTRING_DVAR 
tSTRING_END 
tLAMBEG 
tLOWEST 
tUMINUS_NUM 
idNULL 
idRespond_to 
idIFUNC 
idCFUNC 
id_core_set_method_alias 
id_core_set_variable_alias 
id_core_undef_method 
id_core_define_method 
id_core_define_singleton_method 
id_core_set_postexe 
tLAST_TOKEN 

Definition at line 702 of file ripper.c.


Function Documentation

static void arg_ambiguous_gen ( struct parser_params parser  )  [static]

Definition at line 12376 of file ripper.c.

References arg_ambiguous, dispatch0(), and rb_warning0.

static NODE * arg_append_gen ( struct parser_params parser,
NODE node1,
NODE node2 
) [static]
static NODE * arg_blk_pass ( NODE node1,
NODE node2 
) [static]

Definition at line 15114 of file ripper.c.

Referenced by yyparse().

static NODE * arg_concat_gen ( struct parser_params parser,
NODE node1,
NODE node2 
) [static]
static int arg_var_gen ( struct parser_params parser,
ID  id 
) [static]

Definition at line 15203 of file ripper.c.

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

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

Definition at line 14494 of file ripper.c.

References nd_type, NEW_ATTRASGN, NODE_SELF, and tASET.

static int assign_in_cond ( struct parser_params parser,
NODE node 
) [static]
static NODE * assignable_gen ( struct parser_params parser,
ID  id,
NODE val 
) [static]
static NODE * attrset_gen ( struct parser_params parser,
NODE recv,
ID  id 
) [static]

Definition at line 14518 of file ripper.c.

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

static NODE * block_append_gen ( struct parser_params parser,
NODE head,
NODE tail 
) [static]
static void block_dup_check_gen ( struct parser_params parser,
NODE node1,
NODE node2 
) [static]

Definition at line 14502 of file ripper.c.

References compile_error, nd_type, NODE_BLOCK_PASS, and PARSER_ARG.

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

Definition at line 14277 of file ripper.c.

References NEW_CALL, NEW_LIST, and value_expr.

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

Definition at line 14285 of file ripper.c.

References NEW_CALL, and value_expr.

static int comment_at_top ( struct parser_params parser  )  [static]

Definition at line 12460 of file ripper.c.

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

Referenced by magic_comment_encoding(), and parser_yylex().

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

Definition at line 15031 of file ripper.c.

References cond0().

static VALUE coverage ( const char *  f,
int  n 
) [static]
static VALUE debug_lines ( const char *  f  )  [static]
static void dispose_string ( VALUE  str  )  [static]
static int dvar_curr_gen ( struct parser_params parser,
ID  id 
) [static]

Definition at line 15306 of file ripper.c.

References lvtbl, and vtable_included().

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

Definition at line 15280 of file ripper.c.

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

static int dyna_in_block_gen ( struct parser_params parser  )  [static]

Definition at line 15274 of file ripper.c.

References lvtbl, and POINTER_P.

static void dyna_pop_1 ( struct parser_params parser  )  [static]

Definition at line 15247 of file ripper.c.

References lvtbl, and vtable_free().

Referenced by dyna_pop_gen().

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

Definition at line 15260 of file ripper.c.

References dyna_pop_1(), lvtbl, and xfree().

static struct vtable * dyna_push_gen ( struct parser_params parser  )  [static, read]

Definition at line 15239 of file ripper.c.

References lvtbl, and vtable_alloc().

static int e_option_supplied ( struct parser_params parser  )  [static]

Definition at line 11301 of file ripper.c.

References ruby_sourcefile.

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

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

Definition at line 14254 of file ripper.c.

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

static void fixpos ( NODE node,
NODE orig 
) [static]

Definition at line 14055 of file ripper.c.

References nd_line, and nd_set_line.

Referenced by block_append_gen(), and yyparse().

static void fixup_nodes ( NODE **  rootnode  )  [static]

Definition at line 14906 of file ripper.c.

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

Referenced by yyparse().

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

Definition at line 12387 of file ripper.c.

References is_local_id, shadowing_lvar, and yyerror.

static NODE * gettable_gen ( struct parser_params parser,
ID  id 
) [static]
void Init_sym ( void   ) 
static ID internal_id_gen ( struct parser_params parser  )  [static]

Definition at line 15650 of file ripper.c.

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

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

Definition at line 15659 of file ripper.c.

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

Referenced by rb_enc_symname2_p(), and rb_intern3().

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

Definition at line 11460 of file ripper.c.

References rb_io_gets().

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

Definition at line 14132 of file ripper.c.

References last, and NEW_LIST.

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

Definition at line 14152 of file ripper.c.

References last.

static int literal_concat0 ( struct parser_params parser,
VALUE  head,
VALUE  tail 
) [static]
static NODE * literal_concat_gen ( struct parser_params parser,
NODE head,
NODE tail 
) [static]
static int literal_node ( NODE node  )  [static]

Definition at line 14953 of file ripper.c.

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

Referenced by cond0().

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

Definition at line 15217 of file ripper.c.

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

static void local_pop_gen ( struct parser_params parser  )  [static]

Definition at line 15162 of file ripper.c.

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

static void local_push_gen ( struct parser_params parser,
int  inherit_dvars 
) [static]
static ID * local_tbl_gen ( struct parser_params parser  )  [static]

Definition at line 15188 of file ripper.c.

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

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

Definition at line 15210 of file ripper.c.

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

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

Definition at line 15038 of file ripper.c.

References nd_type, NEW_NODE, and value_expr.

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

Definition at line 12398 of file ripper.c.

References dvar_defined, 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 12476 of file ripper.c.

References comment_at_top(), and parser_set_encode().

static const char* magic_comment_marker ( const char *  str,
long  len 
) [static]

Definition at line 12497 of file ripper.c.

Referenced by parser_magic_comment().

static NODE * match_op_gen ( struct parser_params parser,
NODE node1,
NODE node2 
) [static]
static rb_encoding* must_be_ascii_compatible ( VALUE  s  )  [static]
static NODE * negate_lit ( NODE node  )  [static]

Definition at line 15095 of file ripper.c.

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

Referenced by yyparse().

static NODE * new_args_gen ( struct parser_params parser,
NODE m,
NODE o,
ID  r,
NODE p,
ID  b 
) [static]

Definition at line 15124 of file ripper.c.

References NEW_ARGS, NEW_ARGS_AUX, NEW_NODE, NODE_AND, and ruby_sourceline.

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

Definition at line 14480 of file ripper.c.

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

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

Definition at line 14263 of file ripper.c.

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

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

Definition at line 15078 of file ripper.c.

References nd_type, NEW_YIELD, no_blockarg(), and NODE_SPLAT.

static NODE * newline_node ( NODE node  )  [static]

Definition at line 14045 of file ripper.c.

References RNode::flags, and remove_begin().

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

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

Definition at line 15053 of file ripper.c.

References compile_error, nd_type, NODE_BLOCK_PASS, and PARSER_ARG.

Referenced by new_yield_gen(), and ret_args_gen().

static NODE * node_assign_gen ( struct parser_params parser,
NODE lhs,
NODE rhs 
) [static]
static NODE * node_newnode ( struct parser_params parser,
enum node_type  type,
VALUE  a0,
VALUE  a1,
VALUE  a2 
) [static]

Definition at line 14025 of file ripper.c.

References nd_set_line, and ruby_sourceline.

int nodeline ( NODE node  ) 

Definition at line 14039 of file ripper.c.

References nd_line.

enum node_type nodetype ( NODE node  ) 

Definition at line 14033 of file ripper.c.

References nd_type.

static NODE* parser_compile_string ( volatile VALUE  vparser,
const char *  f,
VALUE  s,
int  line 
) [static]
static long parser_encode_length ( struct parser_params parser,
const char *  name,
long  len 
) [static]

Definition at line 12405 of file ripper.c.

References rb_memcicmp().

Referenced by set_file_encoding().

static void parser_free ( void *  ptr  )  [static]
static int parser_here_document ( struct parser_params parser,
NODE here 
) [static]
static int parser_heredoc_identifier ( struct parser_params parser  )  [static]
static void parser_heredoc_restore ( struct parser_params parser,
NODE here 
) [static]
static void parser_initialize ( struct parser_params parser  )  [static]
static int parser_magic_comment ( struct parser_params parser,
const char *  str,
long  len 
) [static]
static void parser_mark ( void *  ptr  )  [static]
static size_t parser_memsize ( const void *  ptr  )  [static]
static struct parser_params* parser_new ( void   )  [static, read]

Definition at line 16227 of file ripper.c.

References ALLOC_N, MEMZERO, and parser_initialize().

Referenced by rb_parser_new().

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

Definition at line 11604 of file ripper.c.

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

static int parser_nextc ( struct parser_params parser  )  [inline, static]
static int parser_parse_string ( struct parser_params parser,
NODE quote 
) [static]
static void parser_prepare ( struct parser_params parser  )  [static]
static void parser_pushback ( struct parser_params parser,
int  c 
) [static]

Definition at line 11587 of file ripper.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 11732 of file ripper.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 parser  )  [static]
static void parser_set_encode ( struct parser_params parser,
const char *  name 
) [static]
static VALUE parser_str_new ( const char *  p,
long  n,
rb_encoding enc,
int  func,
rb_encoding enc0 
) [static]
static int parser_tok_hex ( struct parser_params parser,
size_t *  numlen 
) [static]

Definition at line 11641 of file ripper.c.

References lex_p, scan_hex, and yyerror.

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

Definition at line 11631 of file ripper.c.

References REALLOC_N, tokenbuf, tokidx, and toksiz.

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

Definition at line 11832 of file ripper.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]
static int parser_tokadd_string ( struct parser_params parser,
int  func,
int  term,
int  paren,
long *  nest,
rb_encoding **  encp 
) [static]
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 11657 of file ripper.c.

References lex_p, nextc, peek, scan_hex, tokadd, tokaddmbc, tokcopy, UTF8_ENC, and yyerror.

Referenced by parser_tokadd_string(), and parser_yylex().

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

Definition at line 11825 of file ripper.c.

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

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

Definition at line 11619 of file ripper.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 14071 of file ripper.c.

References nd_line, rb_compile_warn(), and ruby_sourcefile.

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

Definition at line 14064 of file ripper.c.

References nd_line, rb_compile_warning(), and ruby_sourcefile.

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

Definition at line 12250 of file ripper.c.

References FALSE, ISSPACE, and lex_pend.

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

Definition at line 12710 of file ripper.c.

References arg_ambiguous, CMDARG_LEXPOP, CMDARG_P, CMDARG_PUSH, command_start, comment_at_top(), compile_error, COND_LEXPOP, COND_P, COND_PUSH, DBL2NUM, parser_params::enc, ENC_CODERANGE_7BIT, ENC_SINGLE, parser_params::eofp, errno, EXPR_BEG, EXPR_CLASS, EXPR_CMDARG, EXPR_DOT, EXPR_END, EXPR_ENDARG, EXPR_ENDFN, EXPR_FNAME, EXPR_VALUE, FALSE, here_document, heredoc_identifier, kwtable::id, INT2FIX, IS_ARG, IS_BEG, IS_END, is_identchar, is_local_id, IS_SPCARG, ISALNUM, ISASCII, ISDIGIT, ISSPACE, ISUPPER, ISXDIGIT, k__END__, keyword_do, lex_goto_eol, lex_nextline, lex_p, lex_pend, lex_state, lex_strterm, lpar_beg, lvar_defined, kwtable::name, nd_type, NEW_BACK_REF, NEW_NTH_REF, NEW_STRTERM, newtok, nextc, no_digits, NODE_HEREDOC, paren_nest, parse_string, PARSER_ARG, parser_is_identchar, parser_isascii, parser_magic_comment(), parser_tokadd_utf8(), peek, pushback, rb_compile_error(), rb_cstr_to_inum(), rb_enc_isalnum, rb_enc_isspace, rb_gc_force_recycle(), rb_intern, rb_reserved_word, rb_warnI, rb_warning0, rb_warningS, read_escape, result, ruby__end__seen, set_file_encoding(), set_yylval_id, set_yylval_literal, 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, tANDOP, tCOMMENT, tEMBDOC, tEMBDOC_BEG, tEMBDOC_END, tIGNORED_NL, tLBRACE, tLSHFT, tok, TOK_INTERN, tokadd, tokadd_mbchar, tokaddmbc, token, tokfix, tokidx, toklast, toklen, tOROP, tPOW, tREGEXP_END, tRSHFT, tSP, tSTRING_END, warn_balanced, was_bol, whole_match_p, and yyerror.

Referenced by yylex().

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

Definition at line 14937 of file ripper.c.

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

Referenced by cond0().

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

Definition at line 14526 of file ripper.c.

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

int rb_char_to_option_kcode ( int  c,
int *  option,
int *  kcode 
)

Definition at line 284 of file re.c.

Referenced by parser_regx_options(), and reg_fragment_setenc_gen().

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

Definition at line 11446 of file ripper.c.

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

Definition at line 11466 of file ripper.c.

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

Definition at line 11432 of file ripper.c.

int rb_dvar_defined ( ID   ) 

Definition at line 5443 of file compile.c.

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

Definition at line 15702 of file ripper.c.

Referenced by rb_enc_symname_p(), and reg_named_capture_assign_iter().

int rb_enc_symname_p ( const char *  name,
rb_encoding enc 
)

Definition at line 15696 of file ripper.c.

Referenced by rb_symname_p(), and sym_inspect().

void rb_gc_mark_parser ( void   ) 

Definition at line 15475 of file ripper.c.

Referenced by garbage_collect().

void rb_gc_mark_symbols ( void   ) 

Definition at line 15641 of file ripper.c.

Referenced by garbage_collect().

const char* rb_id2name ( ID  id  ) 

Definition at line 16016 of file ripper.c.

Referenced by add_opt_method(), addrinfo_inspect(), assignable_gen(), cbsubst_get_subst_arg(), cbsubst_sym_to_subst(), cbsubst_table_setup(), check_dump_arg(), check_exec_redirect(), check_load_arg(), chunk_ii(), control_frame_dump(), econv_opts(), error_pos(), esignal_init(), extract_user_token(), fole_missing(), generic_ivar_get(), get_eval_string_core(), gettable_gen(), id2ref(), insn_data_to_s_detail(), insn_operand_intern(), inspect_enumerator(), inspect_i(), inspect_sockaddr(), iseq_compile_each(), iseq_load(), ivar_get(), match_aref(), match_backref_number(), mnew(), mod_av_set(), must_respond_to(), new_bv_gen(), num_sadded(), ossl_pkcs7_sym2typeid(), ossl_sslctx_set_ssl_version(), r_object0(), racc_yyparse(), rb_attr(), rb_autoload(), rb_const_get_0(), rb_const_remove(), rb_const_set(), rb_cvar_get(), rb_cvar_set(), rb_define_class_id_under(), rb_exec_arg_addopt(), rb_f_kill(), rb_f_local_variables(), rb_f_untrace_var(), rb_insecure_operation(), rb_iseq_disasm(), rb_iseq_parameters(), rb_method_call_status(), rb_method_entry_make(), rb_mod_const_defined(), rb_mod_const_get(), rb_mod_const_set(), rb_mod_cvar_defined(), rb_mod_cvar_get(), rb_mod_cvar_set(), rb_mod_remove_const(), rb_mod_remove_cvar(), rb_notimplement(), rb_obj_ivar_defined(), rb_obj_ivar_get(), rb_obj_ivar_set(), rb_obj_remove_instance_variable(), rb_print_undef(), rb_search_method_entry(), rb_secure(), rb_str_format(), rb_str_setter(), rb_struct_aref_id(), rb_struct_aset_id(), rb_struct_getmember(), rb_struct_set(), rb_thread_current_status(), rb_undef(), readonly_setter(), reg_named_capture_assign_iter(), remove_method(), rlimit_resource_type(), rlimit_resource_value(), rsock_revlookup_flag(), ruby_debug_print_id(), shadowing_lvar_gen(), sockopt_inspect(), specific_eval(), trap_signm(), undef_getter(), uninitialized_constant(), vm_call_method(), vm_define_method(), vm_getivar(), void_expr_gen(), and vtable_add().

VALUE rb_id2str ( ID  id  ) 
ID rb_id_attrset ( ID  id  ) 

Definition at line 14510 of file ripper.c.

Referenced by attrset_gen(), make_struct(), rb_attr(), rb_intern3(), and rb_struct_set().

ID rb_intern ( const char *  name  ) 

Definition at line 15932 of file ripper.c.

ID rb_intern2 ( const char *  name,
long  len 
)
ID rb_intern3 ( const char *  name,
long  len,
rb_encoding enc 
)
ID rb_intern_str ( VALUE  str  ) 

Definition at line 15938 of file ripper.c.

Referenced by r_symreal(), rb_attr(), rb_id2str(), rb_str_intern(), w_unique(), and yyparse().

int rb_is_class_id ( ID  id  ) 
int rb_is_const_id ( ID  id  ) 
int rb_is_instance_id ( ID  id  ) 
int rb_is_junk_id ( ID  id  ) 

Definition at line 16081 of file ripper.c.

int rb_is_local_id ( ID  id  ) 

Definition at line 16075 of file ripper.c.

Referenced by collect_local_variables_in_iseq(), inspect_struct(), make_struct(), and rb_attr().

int rb_local_defined ( ID   ) 

Definition at line 5468 of file compile.c.

int rb_parse_in_eval ( void   ) 

Definition at line 5487 of file compile.c.

int rb_parse_in_main ( void   ) 

Definition at line 5493 of file compile.c.

NODE* rb_parser_append_print ( VALUE  vparser,
NODE node 
)

Definition at line 15480 of file ripper.c.

Referenced by process_options().

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

Definition at line 16323 of file ripper.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 11453 of file ripper.c.

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

Definition at line 11474 of file ripper.c.

Referenced by iseq_s_compile_file(), load_file_internal(), and rb_compile_file().

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

Definition at line 11439 of file ripper.c.

Referenced by load_file_internal(), parse_string(), and process_options().

VALUE rb_parser_encoding ( VALUE  vparser  ) 

Definition at line 16267 of file ripper.c.

Referenced by load_file_internal().

VALUE rb_parser_end_seen_p ( VALUE  vparser  ) 

Definition at line 16252 of file ripper.c.

Referenced by load_file_internal().

void rb_parser_free ( struct parser_params parser,
void *  ptr 
)

Definition at line 16353 of file ripper.c.

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

VALUE rb_parser_get_yydebug ( VALUE  self  ) 

Definition at line 16282 of file ripper.c.

void * rb_parser_malloc ( struct parser_params parser,
size_t  size 
)

Definition at line 16313 of file ripper.c.

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

VALUE rb_parser_new ( void   ) 
void * rb_parser_realloc ( struct parser_params parser,
void *  ptr,
size_t  size 
)
VALUE rb_parser_set_yydebug ( VALUE  self,
VALUE  flag 
)

Definition at line 16297 of file ripper.c.

Referenced by process_options().

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

Definition at line 15512 of file ripper.c.

Referenced by process_options().

VALUE rb_reg_check_preprocess ( VALUE   ) 

Definition at line 2290 of file re.c.

Referenced by reg_fragment_check_gen().

VALUE rb_reg_compile ( VALUE  str,
int  options,
const char *  sourcefile,
int  sourceline 
)

Definition at line 2517 of file re.c.

Referenced by reg_compile_gen().

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

Definition at line 16221 of file ripper.c.

References reserved_word().

VALUE rb_sym_all_symbols ( void   ) 

Definition at line 16048 of file ripper.c.

Referenced by Init_String().

int rb_symname_p ( const char *  name  ) 

Definition at line 15690 of file ripper.c.

static void reduce_nodes_gen ( struct parser_params parser,
NODE **  body 
) [static]
static VALUE reg_compile_gen ( struct parser_params parser,
VALUE  str,
int  options 
) [static]
static int reg_fragment_check_gen ( struct parser_params parser,
VALUE  str,
int  options 
) [static]
static void reg_fragment_setenc_gen ( struct parser_params parser,
VALUE  str,
int  options 
) [static]
static NODE * reg_named_capture_assign_gen ( struct parser_params parser,
VALUE  regexp,
NODE match 
) [static]
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]
static ID register_symid ( ID  id,
const char *  name,
long  len,
rb_encoding enc 
) [static]

Definition at line 15785 of file ripper.c.

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

Referenced by rb_intern3().

static NODE * remove_begin ( NODE node  )  [static]

Definition at line 14786 of file ripper.c.

References nd_type, and NODE_BEGIN.

Referenced by newline_node(), and yyparse().

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

Definition at line 15061 of file ripper.c.

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

VALUE ruby_suppress_tracing ( VALUE(*)(VALUE, int)  func,
VALUE  arg,
int  always 
)

Definition at line 4082 of file thread.c.

Referenced by call_trace_func(), and yycompile().

static void set_file_encoding ( struct parser_params parser,
const char *  str,
const char *  send 
) [static]
static ID shadowing_lvar_gen ( struct parser_params parser,
ID  name 
) [static]
static NODE * splat_array ( NODE node  )  [static]

Definition at line 14582 of file ripper.c.

References nd_type, NODE_ARRAY, and NODE_SPLAT.

Referenced by yyparse().

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

Definition at line 16025 of file ripper.c.

References ID2SYM, and rb_ary_push().

Referenced by rb_sym_all_symbols().

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

Definition at line 11128 of file ripper.c.

References lex_p, and lex_pbeg.

Referenced by token_info_pop(), and token_info_push().

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

Definition at line 11142 of file ripper.c.

References lex_p, and lex_pbeg.

Referenced by token_info_pop(), and token_info_push().

static void token_info_pop ( struct parser_params parser,
const char *  token 
) [static]
static void token_info_push ( struct parser_params parser,
const char *  token 
) [static]
static int value_expr_gen ( struct parser_params parser,
NODE node 
) [static]
static void void_expr_gen ( struct parser_params parser,
NODE node 
) [static]
static void void_stmts_gen ( struct parser_params parser,
NODE node 
) [static]

Definition at line 14772 of file ripper.c.

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

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

Definition at line 206 of file ripper.c.

References POINTER_P, rb_bug(), rb_id2name(), REALLOC_N, and VTBL_DEBUG.

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

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

Definition at line 182 of file ripper.c.

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

Referenced by dyna_push_gen(), and local_push_gen().

static void vtable_free ( struct vtable tbl  )  [static]

Definition at line 194 of file ripper.c.

References POINTER_P, VTBL_DEBUG, and xfree().

Referenced by dyna_pop_1(), and local_pop_gen().

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

Definition at line 221 of file ripper.c.

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

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

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

Definition at line 169 of file ripper.c.

References POINTER_P, and vtable::pos.

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

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

Definition at line 15173 of file ripper.c.

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

Referenced by local_tbl_gen().

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

Definition at line 14894 of file ripper.c.

References e_option_supplied(), and parser_warn.

Referenced by cond0(), and range_op().

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

Definition at line 14900 of file ripper.c.

References e_option_supplied(), and parser_warning.

Referenced by cond0().

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

Definition at line 4333 of file ripper.c.

References yy_symbol_print(), and YYFPRINTF.

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

Definition at line 4302 of file ripper.c.

References YYFPRINTF.

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

Definition at line 4275 of file ripper.c.

References yy_symbol_value_print(), YYFPRINTF, and YYNTOKENS.

Referenced by yy_reduce_print().

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

Definition at line 4241 of file ripper.c.

References YYNTOKENS, and YYUSE.

Referenced by yy_symbol_print().

static NODE* yycompile ( struct parser_params parser,
const char *  f,
int  line 
) [static]
static VALUE yycompile0 ( VALUE  arg,
int  tracing 
) [static]
static void yydestruct ( char *  yymsg,
int  yytype,
YYSTYPE yyvaluep,
struct parser_params parser 
) const [static]

Definition at line 4640 of file ripper.c.

References YY_SYMBOL_PRINT, and YYUSE.

Referenced by yyparse().

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

Definition at line 13998 of file ripper.c.

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

int yyparse (  ) 
int yyparse ( struct parser_params parser  ) 

Definition at line 4700 of file ripper.c.

References alias, ALLOC_N, arg_append, arg_blk_pass(), arg_concat, arg_var, 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, cond_stack, cur_mid, deferred_nodes, dispatch0(), dyna_in_block, dyna_pop, dyna_push, END, escape_Qundef(), evstr2dstr, FIXNUM_P, fixpos(), fixup_nodes(), formal_argument, get_id, get_value, gettable, hash(), YYSTYPE::id, ID2SYM, ifndef_ripper, in_def, in_defined, in_single, INT2FIX, internal_id, is_asgn_or_id, is_local_id, keyword__ENCODING__, keyword__FILE__, keyword__LINE__, keyword_false, keyword_nil, keyword_self, keyword_true, lex_state, lex_strterm, list, list_append, list_concat, literal_concat, literal_concat0(), local_id, local_pop, local_push, logop, lpar_beg, match_op, nd_aid, nd_args, nd_body, nd_iter, nd_lit, nd_next, nd_plen, nd_set_line, nd_set_type, nd_type, nd_value, nd_vid, negate_lit(), NEW_ALIAS, new_args, NEW_ARGS_AUX, NEW_ARGSCAT, NEW_BEGIN, NEW_BLOCK_PASS, NEW_BREAK, new_bv, NEW_CALL, NEW_CASE, NEW_CDECL, NEW_CLASS, NEW_COLON2, NEW_COLON3, NEW_CVAR, NEW_DASGN_CURR, NEW_DEFINED, NEW_DEFN, NEW_DEFS, NEW_DOT2, NEW_DOT3, NEW_DSTR, NEW_DVAR, NEW_ENSURE, NEW_ERRINFO, new_evstr, NEW_EVSTR, NEW_FCALL, NEW_FOR, NEW_GVAR, NEW_HASH, NEW_IF, NEW_ITER, NEW_IVAR, NEW_LAMBDA, NEW_LIST, NEW_LIT, NEW_LVAR, NEW_MASGN, NEW_MODULE, NEW_NEXT, NEW_NIL, NEW_NODE, NEW_OP_ASGN1, NEW_OP_ASGN2, NEW_OP_ASGN_AND, NEW_OP_ASGN_OR, NEW_OPT_ARG, NEW_POSTARG, NEW_POSTEXE, NEW_REDO, NEW_RESBODY, NEW_RESCUE, NEW_RETRY, NEW_RETURN, NEW_SCLASS, NEW_SCOPE, NEW_SPLAT, NEW_STR, NEW_SUPER, NEW_UNDEF, NEW_UNLESS, NEW_UNTIL, NEW_VALIAS, NEW_WHEN, NEW_WHILE, NEW_XSTR, NEW_YIELD, new_yield, NEW_ZARRAY, NEW_ZSUPER, newline_node(), NIL_P, YYSTYPE::node, NODE_AND, NODE_ARRAY, node_assign, NODE_BLOCK, NODE_BLOCK_PASS, NODE_DASGN, NODE_DASGN_CURR, NODE_DREGX, NODE_DREGX_ONCE, NODE_DSTR, NODE_DSYM, NODE_DXSTR, NODE_ENSURE, NODE_LASGN, NODE_LIT, NODE_MASGN, NODE_OR, NODE_RESCUE, NODE_SCOPE, NODE_STR, NODE_XSTR, NODE_YIELD, NODE_ZARRAY, NOEX_PRIVATE, YYSTYPE::num, one(), options(), PARSER_ARG, parser_yyerror(), Qfalse, Qnil, Qundef, rb_ary_new3(), rb_ary_push(), rb_assoc_new(), rb_backref_error, rb_cArray, rb_gc_force_recycle(), rb_intern, rb_intern2(), rb_intern_str(), rb_parse_in_main(), rb_str_resize(), rb_warn0, rb_warning0, RE_OPTION_ONCE, reduce_nodes, reg_compile, reg_fragment_check, reg_named_capture_assign, remove_begin(), ret_args, ripper_id2sym(), ripper_intern(), ruby_eval_tree, ruby_eval_tree_begin, ruby_sourceline, shadowing_lvar, splat_array(), STR_NEW0, T_REGEXP, tAREF, tASET, tCMP, tEQ, tEQQ, tGEQ, tLEQ, tLSHFT, tMATCH, tNEQ, tNMATCH, token_info_pop, token_info_push, tOROP, tPOW, tRSHFT, tUMINUS, tUPLUS, TYPE, YYSTYPE::val, value_expr, YYSTYPE::vars, void_expr, void_stmts, YY_, YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, yydestruct(), YYDPRINTF, YYEMPTY, YYEOF, yyerror, YYFINAL, YYID, YYLAST, YYMAXDEPTH, yypact_value_is_default, YYPOPSTACK, YYSIZE_T, yyalloc::yyss_alloc, YYSTACK_ALLOC, YYSTACK_BYTES, YYSTACK_FREE, YYSTACK_RELOCATE, yytable_value_is_error, YYTERROR, YYTRANSLATE, yyalloc::yyvs_alloc, and zero().

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

Definition at line 4428 of file ripper.c.

Referenced by yyparse(), and yytnamerr().

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

Definition at line 4404 of file ripper.c.

References YYSIZE_T.

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

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

Definition at line 4453 of file ripper.c.

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

Referenced by yysyntax_error().


Variable Documentation

struct symbols global_symbols [static]
struct magic_comment magic_comments[] [static]
Initial value:
 {
    {"coding", magic_comment_encoding, parser_encode_length},
    {"encoding", magic_comment_encoding, parser_encode_length},
}

Definition at line 12490 of file ripper.c.

const char* name

Definition at line 15554 of file ripper.c.

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

Referenced by rb_id2str(), and rb_intern3().

static const rb_data_type_t parser_data_type [static]
Initial value:
 {
    "parser",
    parser_mark,
    parser_free,
    parser_memsize,
}

Definition at line 11408 of file ripper.c.

struct st_hash_type symhash [static]
Initial value:
 {
    rb_str_hash_cmp,
    rb_str_hash,
}

Definition at line 15595 of file ripper.c.

Definition at line 15553 of file ripper.c.

Referenced by parser_yylex(), and rb_id2str().

const yytype_int16 yycheck[] [static]

Definition at line 2965 of file ripper.c.

const yytype_uint16 yydefact[] [static]

Definition at line 1656 of file ripper.c.

const yytype_int16 yydefgoto[] [static]
Initial value:
{
      -1,     1,     2,    64,    65,    66,   226,   529,   530,   241,
     242,   413,    68,   335,    69,    70,   573,   706,    71,    72,
     243,    73,    74,    75,   441,    76,   200,   353,   354,   184,
     185,   186,   187,   574,   526,   189,    78,   415,   202,   247,
     519,   661,   404,   405,   215,   216,   204,   391,   205,   480,
      79,   333,   427,   592,   337,   786,   338,   787,   684,   910,
     688,   685,   860,   556,   558,   698,   865,   234,    81,    82,
      83,    84,    85,    86,    87,    88,    89,    90,   665,   532,
     673,   783,   784,   346,   724,   725,   726,   749,   642,   643,
     750,   829,   830,   264,   265,   446,   621,   731,   297,   475,
      91,    92,   382,   567,   566,   539,   909,   667,   777,   846,
     850,    93,    94,    95,    96,    97,    98,    99,   276,   459,
     100,   278,   272,   270,   274,   451,   634,   633,   741,   745,
     101,   271,   102,   103,   207,   105,   208,   209,   551,   687,
     696,   697,   623,   624,   625,   626,   627,   752,   753,   628,
     629,   630,   631,   821,   733,   371,   557,   252,   210,   211,
     108,   596,   521,   561,   286,   401,   402,   657,   431,   533,
     341,   245
}

Definition at line 1759 of file ripper.c.

const yytype_int16 yypact[] [static]

Definition at line 1784 of file ripper.c.

const yytype_int16 yypgoto[] [static]
Initial value:
{
    -778,  -778,  -778,   399,  -778,    33,  -778,  -530,   -33,  -778,
     159,  -778,    23,   -55,    21,  -778,  -462,  -778,   -15,   741,
    -136,    -1,   -66,  -778,  -403,   -26,  1181,  -306,   750,   -52,
    -778,   -20,  -778,  -778,    32,  -778,   748,  -778,   540,  -778,
      46,   -98,  -298,    54,    76,  -778,  -278,  -196,   -44,  -283,
      27,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
    -778,  -778,  -778,  -778,  -778,  -778,  -778,     2,  -778,  -778,
    -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,   298,  -323,
    -512,   -97,  -610,  -778,  -755,  -748,   120,  -778,  -485,  -778,
    -636,  -778,   -49,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
    -778,  -778,   752,  -778,  -778,  -520,  -778,   -92,  -778,  -778,
    -778,  -778,  -778,  -778,   753,  -778,  -778,  -778,  -778,  -778,
    -778,  -778,  -778,   792,  -778,  -229,  -778,  -778,  -778,  -778,
       7,  -778,    13,  -778,  1031,   762,  1198,  1109,  -778,  -778,
     -12,  -416,  -706,  -549,  -667,  -121,  -679,  -777,    25,   128,
    -778,  -579,  -778,  -434,   531,  -778,  -778,  -778,   -41,  -287,
    1927,  -254,  -778,  -778,   -32,    -4,    88,  -554,  -217,    63,
     -31,    -2
}

Definition at line 1887 of file ripper.c.

const yytype_uint16 yyprhs[] [static]

Definition at line 1137 of file ripper.c.

const yytype_uint16 yyr1[] [static]

Definition at line 1530 of file ripper.c.

const yytype_uint8 yyr2[] [static]

Definition at line 1592 of file ripper.c.

const yytype_int16 yyrhs[] [static]

Definition at line 1199 of file ripper.c.

const yytype_uint16 yyrline[] [static]

Definition at line 1379 of file ripper.c.

const yytype_uint16 yystos[] [static]

Definition at line 4013 of file ripper.c.

const yytype_int16 yytable[] [static]

Definition at line 1913 of file ripper.c.

const char* const yytname[] [static]

Definition at line 1444 of file ripper.c.

Referenced by yyparse().

const yytype_uint8 yytranslate[] [static]

Definition at line 1092 of file ripper.c.