Ruby  2.0.0p451(2014-02-24revision45167)
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
ripper.c File Reference
#include "ruby/ruby.h"
#include "ruby/st.h"
#include "ruby/encoding.h"
#include "internal.h"
#include "node.h"
#include "parse.h"
#include "id.h"
#include "regenc.h"
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include "probes.h"
#include "id.c"
#include "ruby/regex.h"
#include "ruby/util.h"
#include "lex.c"
Include dependency graph for 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
 

Macros

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

Typedefs

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

Enumerations

enum  lex_state_bits {
  EXPR_BEG_bit, EXPR_END_bit, EXPR_ENDARG_bit, EXPR_ENDFN_bit,
  EXPR_ARG_bit, EXPR_CMDARG_bit, EXPR_MID_bit, EXPR_FNAME_bit,
  EXPR_DOT_bit, EXPR_CLASS_bit, EXPR_VALUE_bit, EXPR_MAX_STATE,
  EXPR_BEG_bit, EXPR_END_bit, EXPR_ENDARG_bit, EXPR_ENDFN_bit,
  EXPR_ARG_bit, EXPR_CMDARG_bit, EXPR_MID_bit, EXPR_FNAME_bit,
  EXPR_DOT_bit, EXPR_CLASS_bit, EXPR_VALUE_bit, EXPR_MAX_STATE,
  EXPR_BEG_bit, EXPR_END_bit, EXPR_ENDARG_bit, EXPR_ENDFN_bit,
  EXPR_ARG_bit, EXPR_CMDARG_bit, EXPR_MID_bit, EXPR_FNAME_bit,
  EXPR_DOT_bit, EXPR_CLASS_bit, EXPR_VALUE_bit, EXPR_MAX_STATE,
  EXPR_BEG_bit, EXPR_END_bit, EXPR_ENDARG_bit, EXPR_ENDFN_bit,
  EXPR_ARG_bit, EXPR_CMDARG_bit, EXPR_MID_bit, EXPR_FNAME_bit,
  EXPR_DOT_bit, EXPR_CLASS_bit, EXPR_VALUE_bit, EXPR_MAX_STATE
}
 
enum  lex_state_e {
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS),
  EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG),
  EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN)
}
 
enum  string_type {
  str_squote = (0), str_dquote = (STR_FUNC_EXPAND), str_xquote = (STR_FUNC_EXPAND), str_regexp = (STR_FUNC_REGEXP|STR_FUNC_ESCAPE|STR_FUNC_EXPAND),
  str_sword = (STR_FUNC_QWORDS), str_dword = (STR_FUNC_QWORDS|STR_FUNC_EXPAND), str_ssym = (STR_FUNC_SYMBOL), str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND),
  str_squote = (0), str_dquote = (STR_FUNC_EXPAND), str_xquote = (STR_FUNC_EXPAND), str_regexp = (STR_FUNC_REGEXP|STR_FUNC_ESCAPE|STR_FUNC_EXPAND),
  str_sword = (STR_FUNC_QWORDS), str_dword = (STR_FUNC_QWORDS|STR_FUNC_EXPAND), str_ssym = (STR_FUNC_SYMBOL), str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND)
}
 

Functions

static ID register_symid (ID, const char *, long, rb_encoding *)
 
static ID register_symid_str (ID, VALUE)
 
static int vtable_size (const struct vtable *tbl)
 
static struct vtablevtable_alloc (struct vtable *prev)
 
static void vtable_free (struct vtable *tbl)
 
static void vtable_add (struct vtable *tbl, ID id)
 
static int vtable_included (const struct vtable *tbl, ID id)
 
static int parser_yyerror (struct parser_params *, const char *)
 
static int yylex (void *, void *)
 
static NODEnode_newnode (struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
 
static NODEcond_gen (struct parser_params *, NODE *)
 
static NODElogop_gen (struct parser_params *, enum node_type, NODE *, NODE *)
 
static NODEnewline_node (NODE *)
 
static void fixpos (NODE *, NODE *)
 
static int value_expr_gen (struct parser_params *, NODE *)
 
static void void_expr_gen (struct parser_params *, NODE *)
 
static NODEremove_begin (NODE *)
 
static void void_stmts_gen (struct parser_params *, NODE *)
 
static void reduce_nodes_gen (struct parser_params *, NODE **)
 
static void block_dup_check_gen (struct parser_params *, NODE *, NODE *)
 
static NODEblock_append_gen (struct parser_params *, NODE *, NODE *)
 
static NODElist_append_gen (struct parser_params *, NODE *, NODE *)
 
static NODElist_concat_gen (struct parser_params *, NODE *, NODE *)
 
static NODEarg_append_gen (struct parser_params *, NODE *, NODE *)
 
static NODEarg_concat_gen (struct parser_params *, NODE *, NODE *)
 
static NODEliteral_concat_gen (struct parser_params *, NODE *, NODE *)
 
static int literal_concat0 (struct parser_params *, VALUE, VALUE)
 
static NODEnew_evstr_gen (struct parser_params *, NODE *)
 
static NODEevstr2dstr_gen (struct parser_params *, NODE *)
 
static NODEsplat_array (NODE *)
 
static NODEcall_bin_op_gen (struct parser_params *, NODE *, ID, NODE *)
 
static NODEcall_uni_op_gen (struct parser_params *, NODE *, ID)
 
static NODEnew_args_gen (struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
 
static NODEnew_args_tail_gen (struct parser_params *, NODE *, ID, ID)
 
static NODEnegate_lit (NODE *)
 
static NODEret_args_gen (struct parser_params *, NODE *)
 
static NODEarg_blk_pass (NODE *, NODE *)
 
static NODEnew_yield_gen (struct parser_params *, NODE *)
 
static NODEdsym_node_gen (struct parser_params *, NODE *)
 
static NODEgettable_gen (struct parser_params *, ID)
 
static NODEassignable_gen (struct parser_params *, ID, NODE *)
 
static NODEaryset_gen (struct parser_params *, NODE *, NODE *)
 
static NODEattrset_gen (struct parser_params *, NODE *, ID)
 
static void rb_backref_error_gen (struct parser_params *, NODE *)
 
static NODEnode_assign_gen (struct parser_params *, NODE *, NODE *)
 
static NODEnew_op_assign_gen (struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
 
static NODEnew_attr_op_assign_gen (struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
 
static NODEnew_const_op_assign_gen (struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
 
static NODEmatch_op_gen (struct parser_params *, NODE *, NODE *)
 
static IDlocal_tbl_gen (struct parser_params *)
 
static void fixup_nodes (NODE **)
 
static VALUE reg_compile_gen (struct parser_params *, VALUE, int)
 
static void reg_fragment_setenc_gen (struct parser_params *, VALUE, int)
 
static int reg_fragment_check_gen (struct parser_params *, VALUE, int)
 
static NODEreg_named_capture_assign_gen (struct parser_params *parser, VALUE regexp, NODE *match)
 
static ID formal_argument_gen (struct parser_params *, ID)
 
static ID shadowing_lvar_gen (struct parser_params *, ID)
 
static void new_bv_gen (struct parser_params *, ID)
 
static void local_push_gen (struct parser_params *, int)
 
static void local_pop_gen (struct parser_params *)
 
static int local_var_gen (struct parser_params *, ID)
 
static int arg_var_gen (struct parser_params *, ID)
 
static int local_id_gen (struct parser_params *, ID)
 
static ID internal_id_gen (struct parser_params *)
 
static const struct vtabledyna_push_gen (struct parser_params *)
 
static void dyna_pop_gen (struct parser_params *, const struct vtable *)
 
static int dyna_in_block_gen (struct parser_params *)
 
static int dvar_defined_gen (struct parser_params *, ID, int)
 
static int dvar_curr_gen (struct parser_params *, ID)
 
static int lvar_defined_gen (struct parser_params *, ID)
 
static void token_info_push (struct parser_params *, const char *token)
 
static void token_info_pop (struct parser_params *, const char *token)
 
static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
 
static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
 
static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
 
static void yy_reduce_print (YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
 
static YYSIZE_T yystrlen (char *yystr) const
 
static char * yystpcpy (char *yydest, const char *yysrc)
 
static YYSIZE_T yytnamerr (char *yyres, const char *yystr)
 
static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
 
static void yydestruct (char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
 
int yyparse ()
 
int yyparse (struct parser_params *parser)
 
static int parser_regx_options (struct parser_params *)
 
static int parser_tokadd_string (struct parser_params *, int, int, int, long *, rb_encoding **)
 
static void parser_tokaddmbc (struct parser_params *parser, int c, rb_encoding *enc)
 
static int parser_parse_string (struct parser_params *, NODE *)
 
static int parser_here_document (struct parser_params *, NODE *)
 
static int token_info_get_column (struct parser_params *parser, const char *token)
 
static int token_info_has_nonspaces (struct parser_params *parser, const char *token)
 
static void parser_prepare (struct parser_params *parser)
 
static VALUE debug_lines (const char *f)
 
static VALUE coverage (const char *f, int n)
 
static int e_option_supplied (struct parser_params *parser)
 
static VALUE yycompile0 (VALUE arg)
 
static 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)
 
static void dispose_string (VALUE str)
 
static int parser_tokadd_mbchar (struct parser_params *parser, int c)
 
static int simple_re_meta (int c)
 
static int is_global_name_punct (const char c)
 
static int parser_peek_variable_name (struct parser_params *parser)
 
static int parser_heredoc_identifier (struct parser_params *parser)
 
static void parser_heredoc_restore (struct parser_params *parser, NODE *here)
 
static int parser_whole_match_p (struct parser_params *parser, const char *eos, long len, int indent)
 
static void arg_ambiguous_gen (struct parser_params *parser)
 
static long parser_encode_length (struct parser_params *parser, const char *name, long len)
 
static void parser_set_encode (struct parser_params *parser, const char *name)
 
static int comment_at_top (struct parser_params *parser)
 
static void magic_comment_encoding (struct parser_params *parser, const char *name, const char *val)
 
static void parser_set_token_info (struct parser_params *parser, const char *name, const char *val)
 
static const char * magic_comment_marker (const char *str, long len)
 
static int parser_magic_comment (struct parser_params *parser, const char *str, long len)
 
static void set_file_encoding (struct parser_params *parser, const char *str, const char *send)
 
static int parser_yylex (struct parser_params *parser)
 
static enum node_type nodetype (NODE *node)
 
static int nodeline (NODE *node)
 
static void parser_warning (struct parser_params *parser, NODE *node, const char *mesg)
 
static void parser_warn (struct parser_params *parser, NODE *node, const char *mesg)
 
static int is_private_local_id (ID name)
 
ID rb_id_attrset (ID id)
 
static int is_static_content (NODE *node)
 
static int assign_in_cond (struct parser_params *parser, NODE *node)
 
static void warn_unless_e_option (struct parser_params *parser, NODE *node, const char *str)
 
static void warning_unless_e_option (struct parser_params *parser, NODE *node, const char *str)
 
static NODEcond0 (struct parser_params *, NODE *)
 
static NODErange_op (struct parser_params *parser, NODE *node)
 
static int literal_node (NODE *node)
 
static void no_blockarg (struct parser_params *parser, NODE *node)
 
static void warn_unused_var (struct parser_params *parser, struct local_vars *local)
 
static IDvtable_tblcpy (ID *buf, const struct vtable *src)
 
static void dyna_pop_1 (struct parser_params *parser)
 
static int reg_named_capture_assign_iter (const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
 
void rb_gc_mark_parser (void)
 
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)
 
static int rb_enc_symname_type (const char *name, long len, rb_encoding *enc, unsigned int allowed_atttset)
 
int rb_enc_symname2_p (const char *name, long len, rb_encoding *enc)
 
static int rb_str_symname_type (VALUE name, unsigned int allowed_atttset)
 
static int sym_check_asciionly (VALUE str)
 
static ID intern_str (VALUE str)
 
ID rb_intern3 (const char *name, long len, rb_encoding *enc)
 
ID rb_intern2 (const char *name, long len)
 
ID rb_intern (const char *name)
 
ID rb_intern_str (VALUE str)
 
VALUE rb_id2str (ID id)
 
const char * rb_id2name (ID id)
 
static int symbols_i (VALUE sym, ID value, VALUE ary)
 
VALUE rb_sym_all_symbols (void)
 
int rb_is_const_id (ID id)
 
int rb_is_class_id (ID id)
 
int rb_is_global_id (ID id)
 
int rb_is_instance_id (ID id)
 
int rb_is_attrset_id (ID id)
 
int rb_is_local_id (ID id)
 
int rb_is_junk_id (ID id)
 
ID rb_check_id (volatile VALUE *namep)
 Returns ID for the given name if it is interned already, or 0. More...
 
ID rb_check_id_cstr (const char *ptr, long len, rb_encoding *enc)
 
int rb_is_const_name (VALUE name)
 
int rb_is_class_name (VALUE name)
 
int rb_is_global_name (VALUE name)
 
int rb_is_instance_name (VALUE name)
 
int rb_is_attrset_name (VALUE name)
 
int rb_is_local_name (VALUE name)
 
int rb_is_method_name (VALUE name)
 
int rb_is_junk_name (VALUE name)
 
static void parser_initialize (struct parser_params *parser)
 
static void parser_mark (void *ptr)
 
static void parser_free (void *ptr)
 
static size_t parser_memsize (const void *ptr)
 
const 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)
 
VALUE rb_parser_get_yydebug (VALUE self)
 
VALUE rb_parser_set_yydebug (VALUE self, VALUE flag)
 
void * rb_parser_malloc (struct parser_params *parser, size_t size)
 
void * rb_parser_calloc (struct parser_params *parser, size_t nelem, size_t size)
 
void * rb_parser_realloc (struct parser_params *parser, void *ptr, size_t size)
 
void rb_parser_free (struct parser_params *parser, void *ptr)
 

Variables

static const yytype_uint8 yytranslate []
 
static const yytype_uint16 yyprhs []
 
static const yytype_int16 yyrhs []
 
static const yytype_uint16 yyrline []
 
static const char *const yytname []
 
static const yytype_uint16 yyr1 []
 
static const yytype_uint8 yyr2 []
 
static const yytype_uint16 yydefact []
 
static const yytype_int16 yydefgoto []
 
static const yytype_int16 yypact []
 
static const yytype_int16 yypgoto []
 
static const yytype_int16 yytable []
 
static const yytype_int16 yycheck []
 
static const yytype_uint16 yystos []
 
static const rb_data_type_t parser_data_type
 
RUBY_FUNC_EXPORTED const
unsigned int 
ruby_global_name_punct_bits [(0x7e-0x20+31)/32]
 
static const struct magic_comment magic_comments []
 
static const char id_type_names [][9]
 
struct {
   ID   token
 
   const char *   name
 
op_tbl []
 
static struct symbols global_symbols = {tLAST_TOKEN}
 
static const struct st_hash_type symhash
 

Macro Definition Documentation

#define ADD2HEAP (   n,
  c,
  p 
)
Value:
((parser->heap = (n))->u1.node = (p), \
(n)->u3.cnt = (c), (p))
Win32OLEIDispatch * p
Definition: win32ole.c:786
return c
Definition: ripper.y:7591

Definition at line 17505 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""))
#define rb_warning0(fmt)
Definition: ripper.c:697

Definition at line 13412 of file ripper.c.

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

Definition at line 13076 of file ripper.c.

Referenced by arg_ambiguous_gen(), and parser_yylex().

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

Definition at line 450 of file ripper.c.

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

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

Definition at line 452 of file ripper.c.

Referenced by arg_concat_gen(), and yyparse().

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

Definition at line 559 of file ripper.c.

Referenced by new_args_tail_gen(), and yyparse().

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

Definition at line 487 of file ripper.c.

Referenced by yyparse().

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

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

Referenced by yyparse().

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

Definition at line 12736 of file ripper.c.

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

Definition at line 168 of file ripper.c.

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

Definition at line 167 of file ripper.c.

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

Definition at line 166 of file ripper.c.

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

Definition at line 169 of file ripper.c.

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

Definition at line 441 of file ripper.c.

Referenced by yyparse().

#define brace_nest   (parser->parser_brace_nest)

Definition at line 375 of file ripper.c.

Referenced by parser_yylex(), and yyparse().

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

Definition at line 463 of file ripper.c.

Referenced by yyparse().

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

Definition at line 465 of file ripper.c.

Referenced by yyparse().

#define calloc   YYCALLOC

Definition at line 100 of file ripper.c.

Referenced by compat_init_setproctitle(), opendir_internal(), rb_w32_cmdvector(), and vm_xcalloc().

#define class_nest   (parser->parser_class_nest)

Definition at line 372 of file ripper.c.

CMDARG_LEXPOP ( )    BITSTACK_LEXPOP(cmdarg_stack)

Definition at line 178 of file ripper.c.

Referenced by parser_yylex().

#define CMDARG_P ( )    BITSTACK_SET_P(cmdarg_stack)

Definition at line 179 of file ripper.c.

Referenced by parser_yylex().

#define CMDARG_POP ( )    BITSTACK_POP(cmdarg_stack)

Definition at line 177 of file ripper.c.

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

Definition at line 176 of file ripper.c.

Referenced by parser_yylex(), and yyparse().

#define cmdarg_stack   (parser->parser_cmdarg_stack)

Definition at line 371 of file ripper.c.

Referenced by local_pop_gen(), local_push_gen(), and yyparse().

#define command_start   (parser->parser_command_start)

Definition at line 392 of file ripper.c.

Referenced by parser_peek_variable_name(), parser_yylex(), and yyparse().

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

Definition at line 423 of file ripper.c.

Referenced by value_expr_gen(), and yyparse().

#define COND_LEXPOP ( )    BITSTACK_LEXPOP(cond_stack)

Definition at line 173 of file ripper.c.

Referenced by parser_yylex().

#define COND_P ( )    BITSTACK_SET_P(cond_stack)

Definition at line 174 of file ripper.c.

Referenced by parser_yylex().

#define COND_POP ( )    BITSTACK_POP(cond_stack)

Definition at line 172 of file ripper.c.

Referenced by yyparse().

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

Definition at line 171 of file ripper.c.

Referenced by parser_yylex(), and yyparse().

#define cond_stack   (parser->parser_cond_stack)

Definition at line 370 of file ripper.c.

Referenced by yyparse().

#define cur_mid   (parser->parser_cur_mid)

Definition at line 379 of file ripper.c.

Referenced by yyparse().

#define current_enc   (parser->enc)
#define DEF_EXPR (   n)    EXPR_##n = (1 << EXPR_##n##_bit)

Definition at line 141 of file ripper.c.

fixup_nodes & deferred_nodes   (parser->parser_deferred_nodes)

Definition at line 393 of file ripper.c.

Referenced by yycompile0(), and yyparse().

#define dispatch_heredoc_end ( )    ((void)0)

Definition at line 12961 of file ripper.c.

Referenced by parser_here_document().

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

Definition at line 479 of file ripper.c.

Referenced by yyparse().

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

Definition at line 576 of file ripper.c.

Referenced by assignable_gen(), and shadowing_lvar_gen().

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

Definition at line 573 of file ripper.c.

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

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

Definition at line 574 of file ripper.c.

Referenced by lvar_defined_gen(), and shadowing_lvar_gen().

#define DVARS_INHERIT   ((void*)1)

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

#define DVARS_TOPSCOPE   NULL

Definition at line 197 of file ripper.c.

Referenced by dyna_in_block_gen(), and local_push_gen().

#define dyna_in_block ( )    dyna_in_block_gen(parser)

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

Referenced by yyparse().

#define dyna_push ( )    dyna_push_gen(parser)

Definition at line 566 of file ripper.c.

Referenced by yyparse().

#define dyna_var (   id)    local_var(id)

Definition at line 571 of file ripper.c.

Referenced by assignable_gen(), and new_bv_gen().

#define ENABLE_SELECTOR_NAMESPACE   0

Definition at line 16560 of file ripper.c.

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

Definition at line 362 of file ripper.c.

Referenced by parser_yylex().

#define ESCAPE_CONTROL   1

Definition at line 12330 of file ripper.c.

Referenced by parser_read_escape(), and parser_tokadd_escape().

#define ESCAPE_META   2

Definition at line 12331 of file ripper.c.

Referenced by parser_read_escape(), and parser_tokadd_escape().

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

Definition at line 459 of file ripper.c.

Referenced by yyparse().

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

Definition at line 12729 of file ripper.c.

Referenced by parser_here_document(), and parser_parse_string().

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

Definition at line 546 of file ripper.c.

Referenced by yyparse().

#define free   YYFREE

Definition at line 101 of file ripper.c.

#define get_id (   id)    (id)

Definition at line 519 of file ripper.c.

Referenced by assignable_gen(), and yyparse().

#define get_value (   val)    (val)

Definition at line 520 of file ripper.c.

Referenced by yyparse().

#define gettable (   id)    gettable_gen(parser,(id))
#define HEAPCNT (   n,
  size 
)    ((n) * (size) / sizeof(YYSTYPE))

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

Referenced by parser_yylex().

#define heredoc_end   (parser->parser_heredoc_end)

Definition at line 391 of file ripper.c.

Referenced by parser_heredoc_restore(), and parser_nextc().

#define heredoc_identifier ( )    parser_heredoc_identifier(parser)

Definition at line 11606 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 11607 of file ripper.c.

Referenced by parser_here_document().

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

Definition at line 118 of file ripper.c.

Referenced by assignable_gen(), and gettable_gen().

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

Definition at line 16682 of file ripper.c.

Referenced by rb_is_attrset_name().

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

Definition at line 16681 of file ripper.c.

Referenced by rb_enc_symname2_p(), and rb_is_junk_name().

#define ifndef_ripper (   x)    (x)

Definition at line 686 of file ripper.c.

Referenced by local_push_gen(), and yyparse().

#define in_def   (parser->parser_in_def)

Definition at line 377 of file ripper.c.

Referenced by assignable_gen(), and yyparse().

#define in_defined   (parser->parser_in_defined)

Definition at line 380 of file ripper.c.

Referenced by yyparse().

#define in_single   (parser->parser_in_single)

Definition at line 376 of file ripper.c.

Referenced by assignable_gen(), and yyparse().

#define internal_id ( )    internal_id_gen(parser)

Definition at line 563 of file ripper.c.

Referenced by new_args_tail_gen(), and yyparse().

#define IS_AFTER_OPERATOR ( )    IS_lex_state(EXPR_FNAME | EXPR_DOT)

Definition at line 13409 of file ripper.c.

Referenced by parser_yylex().

#define IS_ARG ( )    IS_lex_state(EXPR_ARG_ANY)

Definition at line 13403 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))
const int id
Definition: nkf.c:209
#define ID_INSTANCE
#define ID_GLOBAL
#define ID_CLASS
#define is_notop_id(id)
Definition: ripper.c:110
#define ID_SCOPE_MASK

Definition at line 120 of file ripper.c.

Referenced by new_op_assign_gen().

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

Definition at line 114 of file ripper.c.

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

#define IS_BEG ( )    IS_lex_state(EXPR_BEG_ANY)

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

Referenced by rb_is_class_id().

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

Definition at line 115 of file ripper.c.

Referenced by rb_is_const_id().

#define IS_END ( )    IS_lex_state(EXPR_END_ANY)

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

Referenced by rb_is_global_id().

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

Definition at line 11704 of file ripper.c.

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

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

Definition at line 113 of file ripper.c.

Referenced by rb_is_instance_id().

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

Definition at line 117 of file ripper.c.

Referenced by rb_is_junk_id().

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

Definition at line 13407 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 13408 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 158 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 157 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 110 of file ripper.c.

Referenced by rb_id_attrset().

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

Definition at line 13406 of file ripper.c.

Referenced by parser_yylex().

#define lex_eol_p ( )    (lex_p >= lex_pend)

Definition at line 12126 of file ripper.c.

Referenced by parser_yylex().

#define lex_gets   (parser->parser_lex_gets)

Definition at line 395 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 394 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 385 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 387 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 369 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 446 of file ripper.c.

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

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

Definition at line 448 of file ripper.c.

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

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

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

Referenced by yyparse().

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

Definition at line 553 of file ripper.c.

Referenced by yyparse().

#define local_tbl ( )    local_tbl_gen(parser)

Definition at line 506 of file ripper.c.

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

Definition at line 557 of file ripper.c.

Referenced by assignable_gen().

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

Definition at line 425 of file ripper.c.

Referenced by yyparse().

#define lpar_beg   (parser->parser_lpar_beg)

Definition at line 374 of file ripper.c.

Referenced by parser_yylex(), and yyparse().

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

Definition at line 579 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 15209 of file ripper.c.

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

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

Definition at line 503 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); \
}
size_t strlen(const char *)
#define rb_enc_name(enc)
#define ALLOCA_N(type, n)
#define yyerror(msg)
Definition: ripper.c:366
#define snprintf

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)
#define const
Definition: strftime.c:102
#define lex_p
Definition: ripper.c:389
#define mixed_error(enc1, enc2)

Referenced by parser_tokadd_string().

#define nd_func   u1.id

Definition at line 592 of file ripper.c.

#define nd_nest   u3.cnt

Definition at line 599 of file ripper.c.

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

Definition at line 598 of file ripper.c.

Referenced by parser_parse_string().

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

Definition at line 596 of file ripper.c.

Referenced by parser_parse_string().

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

Definition at line 468 of file ripper.c.

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

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

Definition at line 470 of file ripper.c.

Referenced by yyparse().

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

Definition at line 498 of file ripper.c.

Referenced by yyparse().

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

Definition at line 550 of file ripper.c.

Referenced by yyparse().

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

Definition at line 500 of file ripper.c.

Referenced by yyparse().

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

Definition at line 457 of file ripper.c.

Referenced by yyparse().

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

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

Referenced by parser_here_document(), and parser_yylex().

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

Definition at line 477 of file ripper.c.

Referenced by yyparse().

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

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

Referenced by reg_named_capture_assign_iter(), and yyparse().

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

Definition at line 590 of file ripper.c.

Referenced by parser_heredoc_identifier(), and parser_yylex().

#define NODE_STRTERM   NODE_ZARRAY /* nothing to gc */

Definition at line 589 of file ripper.c.

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

Definition at line 92 of file ripper.c.

Referenced by parser_magic_comment(), and rb_gc_mark_symbols().

#define op_tbl_count   numberof(op_tbl)

Definition at line 16557 of file ripper.c.

Referenced by intern_str(), and rb_id2str().

#define paren_nest   (parser->parser_paren_nest)

Definition at line 373 of file ripper.c.

Referenced by parser_yylex(), and yyparse().

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

Definition at line 11603 of file ripper.c.

Referenced by parser_yylex().

#define PARSER_ARG   ruby_sourcefile, ruby_sourceline, current_enc,
#define PARSER_DEBUG   0

Definition at line 73 of file ripper.c.

#define parser_encoding_name ( )    (current_enc->name)

Definition at line 11701 of file ripper.c.

Referenced by parser_tokadd_mbchar().

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

Definition at line 11705 of file ripper.c.

Referenced by parser_heredoc_identifier(), and parser_yylex().

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

Definition at line 11707 of file ripper.c.

Referenced by parser_tokadd_string(), and parser_yylex().

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

Definition at line 11702 of file ripper.c.

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

Definition at line 11703 of file ripper.c.

Referenced by parser_tokadd_mbchar().

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

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

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

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

Definition at line 12128 of file ripper.c.

Referenced by parser_yylex().

#define POINTER_P (   val)    ((VALUE)(val) & ~(VALUE)3)
pushback (   c)    parser_pushback(parser, (c))
#define Qnone   0

Definition at line 685 of file ripper.c.

Referenced by yyparse().

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

Definition at line 492 of file ripper.c.

Referenced by yyparse().

#define rb_compile_error   rb_compile_error_with_enc

Definition at line 719 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 420 of file ripper.c.

Referenced by enum_zip(), node_newnode(), and parser_heredoc_identifier().

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

Definition at line 693 of file ripper.c.

Referenced by cond0(), and yyparse().

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

Definition at line 696 of file ripper.c.

Referenced by warn_unused_var().

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

Definition at line 694 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 697 of file ripper.c.

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

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

Definition at line 698 of file ripper.c.

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

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

Definition at line 695 of file ripper.c.

Referenced by void_expr_gen().

#define RE_OPTION_ARG_ENCODING_NONE   32

Definition at line 587 of file ripper.c.

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

Definition at line 583 of file ripper.c.

Referenced by parser_regx_options().

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

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

Referenced by reg_fragment_setenc_gen().

#define RE_OPTION_ENCODING_SHIFT   8

Definition at line 582 of file ripper.c.

#define RE_OPTION_MASK   0xff

Definition at line 586 of file ripper.c.

Referenced by reg_compile_gen(), and yyparse().

#define RE_OPTION_ONCE   (1<<16)

Definition at line 581 of file ripper.c.

Referenced by parser_regx_options(), and yyparse().

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

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

Referenced by yyparse().

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

Definition at line 511 of file ripper.c.

Referenced by yyparse().

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

Definition at line 515 of file ripper.c.

Referenced by yyparse().

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

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

Referenced by yyparse().

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

Definition at line 106 of file ripper.c.

Referenced by Init_id().

#define regx_options ( )    parser_regx_options(parser)

Definition at line 11601 of file ripper.c.

Referenced by parser_parse_string().

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

Definition at line 474 of file ripper.c.

Referenced by yyparse().

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

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

Referenced by parser_yylex(), and rb_parser_end_seen_p().

#define ruby_coverage   (parser->coverage)

Definition at line 407 of file ripper.c.

Referenced by lex_getline(), and yycompile0().

#define ruby_debug_lines   (parser->debug_lines)

Definition at line 406 of file ripper.c.

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

#define ruby_eval_tree   (parser->parser_eval_tree)

Definition at line 404 of file ripper.c.

Referenced by yycompile0(), and yyparse().

#define ruby_eval_tree_begin   (parser->parser_eval_tree_begin)

Definition at line 405 of file ripper.c.

Referenced by yycompile0(), and yyparse().

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

Definition at line 11613 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 11615 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 11614 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 11616 of file ripper.c.

Referenced by parser_yylex().

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

Definition at line 11612 of file ripper.c.

Referenced by parser_parse_string().

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

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

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

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

Definition at line 591 of file ripper.c.

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

Definition at line 11698 of file ripper.c.

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

Definition at line 12737 of file ripper.c.

#define str_copy (   _s,
  _p,
  _n 
)
Value:
((_s) \
? (void)(rb_str_resize((_s), (_n)), \
MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
: (void)((_s) = STR_NEW((_p), (_n))))
#define RSTRING_PTR(str)
#define STR_NEW(p, n)
Definition: ripper.c:358
VALUE rb_str_resize(VALUE, long)
Definition: string.c:1854
#define MEMCPY(p1, p2, type, n)

Referenced by parser_magic_comment().

#define STR_FUNC_ESCAPE   0x01

Definition at line 12090 of file ripper.c.

Referenced by parser_tokadd_string().

#define STR_FUNC_EXPAND   0x02

Definition at line 12091 of file ripper.c.

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

#define STR_FUNC_INDENT   0x20

Definition at line 12095 of file ripper.c.

Referenced by parser_here_document(), and parser_heredoc_identifier().

#define STR_FUNC_QWORDS   0x08

Definition at line 12093 of file ripper.c.

Referenced by parser_parse_string(), and parser_tokadd_string().

#define STR_FUNC_REGEXP   0x04

Definition at line 12092 of file ripper.c.

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

#define STR_FUNC_SYMBOL   0x10

Definition at line 12094 of file ripper.c.

Referenced by parser_tokadd_string().

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

Definition at line 358 of file ripper.c.

Referenced by parser_here_document(), and parser_heredoc_identifier().

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

Definition at line 359 of file ripper.c.

Referenced by yycompile0(), and yyparse().

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

Definition at line 360 of file ripper.c.

Referenced by parser_yyerror().

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

Definition at line 361 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))
#define reduce_nodes(n)
Definition: ripper.c:439

Referenced by reduce_nodes_gen().

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

Definition at line 11598 of file ripper.c.

Referenced by parser_read_escape(), and parser_tokadd_escape().

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

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

Referenced by parser_tokadd_string().

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

Definition at line 12561 of file ripper.c.

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

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

Definition at line 11602 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 11604 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 12255 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 737 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 736 of file ripper.c.

Referenced by yyparse().

#define tokenbuf   (parser->parser_tokenbuf)

Definition at line 381 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 382 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 12201 of file ripper.c.

Referenced by parser_yylex().

#define toklen ( )    tokidx
#define tokline   (parser->parser_tokline)

Definition at line 384 of file ripper.c.

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

#define toksiz   (parser->parser_toksiz)

Definition at line 383 of file ripper.c.

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

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

Definition at line 11596 of file ripper.c.

Referenced by parser_tokaddmbc().

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

Referenced by yyparse().

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

Definition at line 434 of file ripper.c.

Referenced by void_stmts_gen().

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

Definition at line 437 of file ripper.c.

Referenced by yyparse().

#define VTBL_DEBUG   0

Definition at line 212 of file ripper.c.

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

#define warn_balanced (   op,
  syn 
)
Value:
((void) \
(!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
space_seen && !ISSPACE(c) && \
(ambiguous_operator(op, syn), 0)))
return c
Definition: ripper.y:7591
#define IS_lex_state_for(x, ls)
Definition: ripper.c:157
#define ambiguous_operator(op, syn)
Definition: ripper.c:13412
#define ISSPACE(c)
Definition: ruby.h:1632

Definition at line 13418 of file ripper.c.

Referenced by parser_yylex().

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

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

Referenced by parser_here_document(), and parser_yylex().

#define YY_ (   msgid)    msgid

Definition at line 975 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

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

Definition at line 4455 of file ripper.c.

#define YY_REDUCE_PRINT (   Rule)
Value:
do { \
yy_reduce_print (yyvsp, Rule, parser); \
} while (YYID (0))
#define yydebug
Definition: ripper.c:401
#define YYID(n)
Definition: ripper.c:988
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
Definition: ripper.c:4596
if(c== ')') lex_state
Definition: ripper.y:7588

Definition at line 4618 of file ripper.c.

Referenced by yyparse().

#define YY_STACK_PRINT (   Bottom,
  Top 
)
Value:
do { \
yy_stack_print ((Bottom), (Top)); \
} while (YYID (0))
#define yydebug
Definition: ripper.c:401
#define YYID(n)
Definition: ripper.c:988
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
Definition: ripper.c:4565
if(c== ')') lex_state
Definition: ripper.y:7588

Definition at line 4579 of file ripper.c.

Referenced by yyparse().

#define YY_SYMBOL_PRINT (   Title,
  Type,
  Value,
  Location 
)
Value:
do { \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yy_symbol_print (stderr, \
Type, Value, parser); \
YYFPRINTF (stderr, "\n"); \
} \
} while (YYID (0))
#define yydebug
Definition: ripper.c:401
#define YYID(n)
Definition: ripper.c:988
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
Definition: ripper.c:4538
#define YYFPRINTF
Definition: ripper.c:4472
if(c== ')') lex_state
Definition: ripper.y:7588

Definition at line 4481 of file ripper.c.

Referenced by yydestruct(), and yyparse().

#define YYABORT   goto yyabortlab

Definition at line 4384 of file ripper.c.

Referenced by yyparse().

#define YYACCEPT   goto yyacceptlab

Definition at line 4383 of file ripper.c.

Referenced by yyparse().

#define YYBACKUP (   Token,
  Value 
)
Value:
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
goto yybackup; \
} \
{ \
parser_yyerror (parser, YY_("syntax error: cannot back up")); \
} \
while (YYID (0))
#define YY_(msgid)
Definition: ripper.c:975
#define YYEMPTY
Definition: ripper.c:4380
#define YYPOPSTACK(N)
#define YYID(n)
Definition: ripper.c:988
#define yylval
Definition: ripper.c:11584
#define YYERROR
Definition: ripper.c:4385
static int parser_yyerror(struct parser_params *, const char *)
Definition: ripper.c:11784
else
Definition: ripper.y:7669
if(c== ')') lex_state
Definition: ripper.y:7588

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

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

Referenced by yysyntax_error().

#define yyclearin   (yychar = YYEMPTY)

Definition at line 4379 of file ripper.c.

#define YYCOPY (   To,
  From,
  Count 
)
Value:
do \
{ \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (YYID (0))
for(i=0;i< args;i++)
Definition: win32ole.c:788
#define YYID(n)
Definition: ripper.c:988
#define YYSIZE_T
Definition: ripper.c:961

Definition at line 1122 of file ripper.c.

#define YYCOPY_NEEDED   1

Definition at line 1094 of file ripper.c.

#define YYDEBUG   1

Definition at line 75 of file ripper.c.

#define yydebug   (parser->parser_yydebug)

Definition at line 401 of file ripper.c.

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

#define YYDPRINTF (   Args)
Value:
do { \
YYFPRINTF Args; \
} while (YYID (0))
#define yydebug
Definition: ripper.c:401
#define YYID(n)
Definition: ripper.c:988
#define YYFPRINTF
Definition: ripper.c:4472
if(c== ')') lex_state
Definition: ripper.y:7588

Definition at line 4475 of file ripper.c.

Referenced by yyparse().

#define YYEMPTY   (-2)

Definition at line 4380 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

#define YYEOF   0

Definition at line 4381 of file ripper.c.

Referenced by yyparse().

#define YYERRCODE   256

Definition at line 4423 of file ripper.c.

#define yyerrok   (yyerrstatus = 0)

Definition at line 4378 of file ripper.c.

Referenced by yyparse().

#define yyerror (   msg)    parser_yyerror(parser, (msg))
#define YYERROR   goto yyerrorlab

Definition at line 4385 of file ripper.c.

#define YYERROR_VERBOSE   1

Definition at line 755 of file ripper.c.

#define YYERROR_VERBOSE   1

Definition at line 755 of file ripper.c.

#define YYFAIL   goto yyerrlab

Definition at line 4395 of file ripper.c.

#define YYFINAL   3

Definition at line 1135 of file ripper.c.

Referenced by yyparse().

#define YYFPRINTF   fprintf

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

#define YYID (   n)    (n)

Definition at line 988 of file ripper.c.

Referenced by yyparse().

#define YYINITDEPTH   200

Definition at line 4639 of file ripper.c.

Referenced by yyparse().

#define YYLAST   11084

Definition at line 1137 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

#define YYLEX   yylex (&yylval, parser)

Definition at line 4464 of file ripper.c.

Referenced by yyparse().

#define YYLLOC_DEFAULT (   Current,
  Rhs,
  N 
)
Value:
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; \
} \
{ \
(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))
#define YYRHSLOC(Rhs, K)
Definition: ripper.c:4430
#define N
Definition: lgamma_r.c:20
#define YYID(n)
Definition: ripper.c:988
else
Definition: ripper.y:7669
if(c== ')') lex_state
Definition: ripper.y:7588

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

Referenced by yyparse().

#define yylval_id ( )    (yylval.id)

Definition at line 11617 of file ripper.c.

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

Definition at line 94 of file ripper.c.

#define YYMAXDEPTH   10000

Definition at line 4650 of file ripper.c.

Referenced by yyparse().

#define YYMAXUTOK   352

Definition at line 1150 of file ripper.c.

#define YYNNTS   198

Definition at line 1142 of file ripper.c.

#define YYNRULES   619

Definition at line 1144 of file ripper.c.

#define YYNSTATES   1056

Definition at line 1146 of file ripper.c.

#define YYNTOKENS   142

Definition at line 1140 of file ripper.c.

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

#define YYPACT_NINF   -810

Definition at line 1894 of file ripper.c.

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

Definition at line 3147 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

#define yyparse   ruby_yyparse

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

#define YYRECOVERING ( )    (!!yyerrstatus)

Definition at line 4403 of file ripper.c.

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

Definition at line 4430 of file ripper.c.

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

Definition at line 965 of file ripper.c.

#define YYSIZE_T   unsigned int

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

Referenced by yyparse().

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 1046 of file ripper.c.

Referenced by yysyntax_error().

#define YYSTACK_BYTES (   N)
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
union YYSTYPE YYSTYPE
#define N
Definition: lgamma_r.c:20
#define YYSTACK_GAP_MAXIMUM
Definition: ripper.c:1086
short int yytype_int16
Definition: ripper.c:948

Definition at line 1090 of file ripper.c.

Referenced by yyparse().

#define YYSTACK_FREE   YYFREE

Definition at line 1044 of file ripper.c.

Referenced by yyparse().

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

Definition at line 1086 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))
#define YYID(n)
Definition: ripper.c:988
#define YYSTACK_GAP_MAXIMUM
Definition: ripper.c:1086
#define YYCOPY(To, From, Count)
Definition: ripper.c:1122
#define YYSIZE_T
Definition: ripper.c:961

Definition at line 1101 of file ripper.c.

Referenced by yyparse().

#define YYSTACK_USE_ALLOCA   0

Definition at line 77 of file ripper.c.

#define YYSYNTAX_ERROR
Value:
yysyntax_error (&yymsg_alloc, &yymsg, \
yyssp, yytoken)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
Definition: ripper.c:4764

Referenced by yyparse().

#define YYTABLE_NINF   -620

Definition at line 2033 of file ripper.c.

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

Definition at line 3150 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

#define YYTERROR   1

Definition at line 4422 of file ripper.c.

Referenced by yyparse(), and yysyntax_error().

#define YYTOKEN_TABLE   0

Definition at line 762 of file ripper.c.

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

Definition at line 1152 of file ripper.c.

Referenced by yyparse().

#define YYUNDEFTOK   2

Definition at line 1149 of file ripper.c.

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

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

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

Definition at line 13162 of file ripper.c.

typedef VALUE stack_type

Definition at line 164 of file ripper.c.

typedef struct token_info token_info
typedef short int yytype_int16

Definition at line 948 of file ripper.c.

typedef short int yytype_int8

Definition at line 936 of file ripper.c.

typedef unsigned short int yytype_uint16

Definition at line 942 of file ripper.c.

typedef unsigned char yytype_uint8

Definition at line 927 of file ripper.c.

Enumeration Type Documentation

Enumerator
EXPR_BEG_bit 
EXPR_END_bit 
EXPR_ENDARG_bit 
EXPR_ENDFN_bit 
EXPR_ARG_bit 
EXPR_CMDARG_bit 
EXPR_MID_bit 
EXPR_FNAME_bit 
EXPR_DOT_bit 
EXPR_CLASS_bit 
EXPR_VALUE_bit 
EXPR_MAX_STATE 
EXPR_BEG_bit 
EXPR_END_bit 
EXPR_ENDARG_bit 
EXPR_ENDFN_bit 
EXPR_ARG_bit 
EXPR_CMDARG_bit 
EXPR_MID_bit 
EXPR_FNAME_bit 
EXPR_DOT_bit 
EXPR_CLASS_bit 
EXPR_VALUE_bit 
EXPR_MAX_STATE 
EXPR_BEG_bit 
EXPR_END_bit 
EXPR_ENDARG_bit 
EXPR_ENDFN_bit 
EXPR_ARG_bit 
EXPR_CMDARG_bit 
EXPR_MID_bit 
EXPR_FNAME_bit 
EXPR_DOT_bit 
EXPR_CLASS_bit 
EXPR_VALUE_bit 
EXPR_MAX_STATE 
EXPR_BEG_bit 
EXPR_END_bit 
EXPR_ENDARG_bit 
EXPR_ENDFN_bit 
EXPR_ARG_bit 
EXPR_CMDARG_bit 
EXPR_MID_bit 
EXPR_FNAME_bit 
EXPR_DOT_bit 
EXPR_CLASS_bit 
EXPR_VALUE_bit 
EXPR_MAX_STATE 

Definition at line 125 of file ripper.c.

Enumerator
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
EXPR_BEG_ANY 
EXPR_ARG_ANY 
EXPR_END_ANY 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
EXPR_BEG_ANY 
EXPR_ARG_ANY 
EXPR_END_ANY 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
EXPR_BEG_ANY 
EXPR_ARG_ANY 
EXPR_END_ANY 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
DEF_EXPR 
EXPR_BEG_ANY 
EXPR_ARG_ANY 
EXPR_END_ANY 

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

Function Documentation

static void arg_ambiguous_gen ( struct parser_params parser)
static

Definition at line 13068 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 15916 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 16164 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 15250 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 15306 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 15258 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 14993 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 15001 of file ripper.c.

References NEW_CALL, and value_expr.

static int comment_at_top ( struct parser_params parser)
static
static NODE * cond0 ( struct parser_params parser,
NODE node 
)
static
static NODE * cond_gen ( struct parser_params parser,
NODE node 
)
static

Definition at line 15833 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

Definition at line 12541 of file ripper.c.

References rb_gc_force_recycle(), and rb_str_free().

Referenced by parser_here_document(), and parser_heredoc_restore().

static NODE * dsym_node_gen ( struct parser_params parser,
NODE node 
)
static
static int dvar_curr_gen ( struct parser_params parser,
ID  id 
)
static

Definition at line 16289 of file ripper.c.

References lvtbl, and vtable_included().

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

Definition at line 16252 of file ripper.c.

References DVARS_TOPSCOPE, lvtbl, and POINTER_P.

static void dyna_pop_1 ( struct parser_params parser)
static

Definition at line 16220 of file ripper.c.

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

Referenced by dyna_pop_gen().

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

Definition at line 16238 of file ripper.c.

References dyna_pop_1(), lvtbl, and xfree.

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

Definition at line 16209 of file ripper.c.

References lvtbl, and vtable_alloc().

static int e_option_supplied ( struct parser_params parser)
static
static NODE * evstr2dstr_gen ( struct parser_params parser,
NODE node 
)
static

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

References nd_line, and nd_set_line.

Referenced by block_append_gen(), new_attr_op_assign_gen(), new_const_op_assign_gen(), and yyparse().

static void fixup_nodes ( NODE **  rootnode)
static

Definition at line 15708 of file ripper.c.

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

Referenced by yyparse().

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

Definition at line 13079 of file ripper.c.

References is_local_id, lhs, shadowing_lvar, and yyerror.

static NODE * gettable_gen ( struct parser_params parser,
ID  id 
)
static
void Init_sym ( void  )
static ID intern_str ( VALUE  str)
static
static ID internal_id_gen ( struct parser_params parser)
static

Definition at line 16635 of file ripper.c.

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

static int is_global_name_punct ( const char  c)
inlinestatic

Definition at line 12754 of file ripper.c.

Referenced by is_special_global_name(), and parser_peek_variable_name().

static int is_private_local_id ( ID  name)
static

Definition at line 15199 of file ripper.c.

References is_local_id, rb_id2str(), and RSTRING_PTR.

Referenced by shadowing_lvar_gen(), and warn_unused_var().

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

Definition at line 16644 of file ripper.c.

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

Referenced by intern_str(), and rb_enc_symname_type().

static int is_static_content ( NODE node)
static

Definition at line 15645 of file ripper.c.

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

Referenced by assign_in_cond().

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

Definition at line 12058 of file ripper.c.

References rb_io_gets().

Referenced by rb_parser_compile_file().

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

Definition at line 14828 of file ripper.c.

References last, list, and NEW_LIST.

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

Definition at line 14848 of file ripper.c.

References head, last, and tail.

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 15755 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
static void local_pop_gen ( struct parser_params parser)
static

Definition at line 16118 of file ripper.c.

References cmdarg_stack, lvtbl, vtable_free(), warn_unused_var(), 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 16149 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 16171 of file ripper.c.

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

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

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

References dvar_defined_get, dyna_in_block, and local_id.

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

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

References i.

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

References DBL2NUM, FIX2LONG, FLONUM_P, 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,
NODE tail 
)
static
static NODE * new_args_tail_gen ( struct parser_params parser,
NODE k,
ID  kr,
ID  b 
)
static
static NODE * new_attr_op_assign_gen ( struct parser_params parser,
NODE lhs,
ID  attr,
ID  op,
NODE rhs 
)
static

Definition at line 16030 of file ripper.c.

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

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

Definition at line 15236 of file ripper.c.

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

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

Definition at line 16046 of file ripper.c.

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

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

Definition at line 14979 of file ripper.c.

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

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

Definition at line 15880 of file ripper.c.

References NEW_YIELD, and no_blockarg().

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

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

References nd_set_line, rb_node_newnode, and ruby_sourceline.

static int nodeline ( NODE node)
static

Definition at line 14735 of file ripper.c.

References nd_line.

Referenced by Init_sym().

static enum node_type nodetype ( NODE node)
static

Definition at line 14729 of file ripper.c.

References nd_type.

Referenced by Init_sym().

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

Definition at line 17423 of file ripper.c.

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

Referenced by rb_parser_new().

static char* parser_newtok ( struct parser_params parser)
static

Definition at line 12204 of file ripper.c.

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

static int parser_nextc ( struct parser_params parser)
inlinestatic
static int parser_parse_string ( struct parser_params parser,
NODE quote 
)
static
static int parser_peek_variable_name ( struct parser_params parser)
static
static void parser_prepare ( struct parser_params parser)
static
static void parser_pushback ( struct parser_params parser,
int  c 
)
static

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

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

static int parser_regx_options ( struct parser_params parser)
static
static void parser_set_encode ( struct parser_params parser,
const char *  name 
)
static
static void parser_set_token_info ( struct parser_params parser,
const char *  name,
const char *  val 
)
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 12242 of file ripper.c.

References c, lex_p, scan_hex, and yyerror.

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

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

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

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

Referenced by parser_tokadd_string(), and parser_yylex().

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

Definition at line 12425 of file ripper.c.

References rb_enc_codelen(), rb_enc_mbcput, and tokspace.

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

Definition at line 12220 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 14767 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 14760 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 12935 of file ripper.c.

References FALSE, ISSPACE, lex_pbeg, 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 13424 of file ripper.c.

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

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

ID rb_check_id ( volatile VALUE namep)

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

Parameters
namepthe pointer to the name object
Returns
the ID for *namep
Precondition
the object referred by namep must be a Symbol or a String, or possible to convert with to_str method.
Postcondition
the object referred by namep is a Symbol or a String if non-zero value is returned, or is a String if 0 is returned.

Definition at line 17152 of file ripper.c.

Referenced by check_definition(), obj_respond_to(), rb_f_untrace_var(), rb_mod_alias_method(), rb_mod_autoload_p(), rb_mod_const_defined(), rb_mod_cvar_defined(), rb_mod_cvar_get(), rb_mod_instance_method(), rb_mod_method_defined(), rb_mod_public_instance_method(), rb_mod_remove_const(), rb_mod_remove_cvar(), rb_mod_remove_method(), rb_mod_undef_method(), rb_obj_ivar_defined(), rb_obj_ivar_get(), rb_obj_method(), rb_obj_public_method(), rb_obj_remove_instance_variable(), rb_struct_aref(), rb_struct_aset(), send_internal(), set_const_visibility(), set_method_visibility(), and vm_call_opt_send().

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

Definition at line 17199 of file ripper.c.

Referenced by rb_mod_const_get(), rb_path_to_class(), and rb_str_format().

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

Definition at line 12044 of file ripper.c.

Referenced by rb_load_file().

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

Definition at line 12064 of file ripper.c.

Referenced by rb_iseq_compile_with_option().

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

Definition at line 12030 of file ripper.c.

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

Definition at line 16782 of file ripper.c.

Referenced by rb_enc_symname_p(), rb_mod_const_get(), and reg_named_capture_assign_iter().

int rb_enc_symname_p ( const char *  name,
rb_encoding enc 
)

Definition at line 16676 of file ripper.c.

Referenced by rb_str_symname_p(), and rb_symname_p().

static int rb_enc_symname_type ( const char *  name,
long  len,
rb_encoding enc,
unsigned int  allowed_atttset 
)
static
void rb_gc_mark_parser ( void  )

Definition at line 16455 of file ripper.c.

Referenced by gc_marks().

void rb_gc_mark_symbols ( void  )

Definition at line 16626 of file ripper.c.

Referenced by gc_marks().

const char* rb_id2name ( ID  id)
VALUE rb_id2str ( ID  id)
ID rb_id_attrset ( ID  id)
ID rb_intern ( const char *  name)
ID rb_intern2 ( const char *  name,
long  len 
)

Definition at line 16969 of file ripper.c.

Referenced by global_id(), Init_load(), rb_f_global_variables(), rb_intern(), and yyparse().

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

Definition at line 16982 of file ripper.c.

Referenced by dsym_node_gen(), and yyparse().

int rb_is_attrset_id ( ID  id)

Definition at line 17123 of file ripper.c.

int rb_is_attrset_name ( VALUE  name)

Definition at line 17251 of file ripper.c.

Referenced by rb_check_id(), and rb_check_id_cstr().

int rb_is_class_id ( ID  id)
int rb_is_class_name ( VALUE  name)

Definition at line 17233 of file ripper.c.

Referenced by rb_mod_cvar_defined(), rb_mod_cvar_get(), and rb_mod_remove_cvar().

int rb_is_const_id ( ID  id)
int rb_is_const_name ( VALUE  name)

Definition at line 17227 of file ripper.c.

Referenced by new_struct(), rb_mod_const_defined(), and rb_mod_remove_const().

int rb_is_global_id ( ID  id)

Definition at line 17111 of file ripper.c.

int rb_is_global_name ( VALUE  name)

Definition at line 17239 of file ripper.c.

int rb_is_instance_id ( ID  id)
int rb_is_instance_name ( VALUE  name)
int rb_is_junk_id ( ID  id)

Definition at line 17135 of file ripper.c.

int rb_is_junk_name ( VALUE  name)

Definition at line 17273 of file ripper.c.

int rb_is_local_id ( ID  id)

Definition at line 17129 of file ripper.c.

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

int rb_is_local_name ( VALUE  name)

Definition at line 17257 of file ripper.c.

int rb_is_method_name ( VALUE  name)

Definition at line 17263 of file ripper.c.

NODE* rb_parser_append_print ( VALUE  vparser,
NODE node 
)

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

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

Definition at line 12051 of file ripper.c.

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

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

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

VALUE rb_parser_encoding ( VALUE  vparser)

Definition at line 17463 of file ripper.c.

Referenced by load_file_internal().

VALUE rb_parser_end_seen_p ( VALUE  vparser)

Definition at line 17448 of file ripper.c.

Referenced by load_file_internal().

void rb_parser_free ( struct parser_params parser,
void *  ptr 
)

Definition at line 17549 of file ripper.c.

VALUE rb_parser_get_yydebug ( VALUE  self)

Definition at line 17478 of file ripper.c.

void* rb_parser_malloc ( struct parser_params parser,
size_t  size 
)

Definition at line 17509 of file ripper.c.

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

Definition at line 17529 of file ripper.c.

VALUE rb_parser_set_yydebug ( VALUE  self,
VALUE  flag 
)

Definition at line 17493 of file ripper.c.

Referenced by process_options().

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

Definition at line 16492 of file ripper.c.

Referenced by process_options().

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

Definition at line 17417 of file ripper.c.

Referenced by parser_yylex(), and reg_named_capture_assign_iter().

static int rb_str_symname_type ( VALUE  name,
unsigned int  allowed_atttset 
)
static
VALUE rb_sym_all_symbols ( void  )

Definition at line 17090 of file ripper.c.

Referenced by Init_String().

int rb_symname_p ( const char *  name)

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

References rb_enc_str_new(), and register_symid_str().

static ID register_symid_str ( ID  id,
VALUE  str 
)
static

Definition at line 16805 of file ripper.c.

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

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

static NODE * remove_begin ( NODE node)
static

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

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

static void set_file_encoding ( struct parser_params parser,
const char *  str,
const char *  send 
)
static
static ID shadowing_lvar_gen ( struct parser_params parser,
ID  name 
)
static
static int simple_re_meta ( int  c)
inlinestatic

Definition at line 12564 of file ripper.c.

References FALSE, and TRUE.

Referenced by parser_tokadd_string().

static NODE * splat_array ( NODE node)
static

Definition at line 15370 of file ripper.c.

References nd_type, NODE_ARRAY, and NODE_SPLAT.

Referenced by yyparse().

static int sym_check_asciionly ( VALUE  str)
static
static int symbols_i ( VALUE  sym,
ID  value,
VALUE  ary 
)
static

Definition at line 17067 of file ripper.c.

References ID2SYM, rb_ary_push(), and ST_CONTINUE.

Referenced by rb_sym_all_symbols().

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

Definition at line 11711 of file ripper.c.

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

Referenced by token_info_pop(), and token_info_push().

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

Definition at line 11725 of file ripper.c.

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

Referenced by token_info_pop(), and token_info_push().

static void token_info_pop ( struct parser_params parser,
const char *  token 
)
static
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 15560 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
static struct vtable* vtable_alloc ( struct vtable prev)
static

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

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

Referenced by dyna_pop_1(), and local_pop_gen().

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

Definition at line 254 of file ripper.c.

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

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

static int vtable_size ( const struct vtable tbl)
static

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

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

Referenced by local_tbl_gen().

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

Definition at line 15696 of file ripper.c.

References e_option_supplied(), and parser_warn.

Referenced by cond0(), and range_op().

static void warn_unused_var ( struct parser_params parser,
struct local_vars local 
)
static
static void warning_unless_e_option ( struct parser_params parser,
NODE node,
const char *  str 
)
static

Definition at line 15702 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 4596 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 4565 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 4538 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 4504 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)
static
static void yydestruct ( char *  yymsg,
int  yytype,
YYSTYPE yyvaluep,
struct parser_params parser 
) const
static

Definition at line 4903 of file ripper.c.

References YY_SYMBOL_PRINT, and YYUSE.

Referenced by yyparse().

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

Definition at line 14694 of file ripper.c.

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

int yyparse ( )
int yyparse ( struct parser_params parser)

Definition at line 4963 of file ripper.c.

References alias, ALLOC_N, arg_append, arg_blk_pass(), arg_concat, arg_var, args, aryset, assignable, attrset, block_append, block_dup_check, bodystmt, brace_nest, buf, call_bin_op, call_uni_op, CMDARG_PUSH, cmdarg_stack, command_call, command_start, compile_error, compile_for_eval, cond, COND_POP, COND_PUSH, cond_stack, cur_mid, deferred_nodes, dispatch0(), dsym_node, dyna_in_block, dyna_pop, dyna_push, END, escape_Qundef(), evstr2dstr, FIXNUM_P, fixpos(), fixup_nodes(), formal_argument, get_id, get_value, gettable, hash(), head, YYSTYPE::id, id, ID2SYM, idAREF, idEq, ifndef_ripper, in_def, in_defined, in_single, INT2FIX, internal_id, is_local_id, keyword__ENCODING__, keyword__FILE__, keyword__LINE__, keyword_false, keyword_nil, keyword_self, keyword_true, lex_state, lex_strterm, list, list_append, list_concat, literal_concat, literal_concat0(), local_id, local_pop, local_push, logop, lpar_beg, match_op, nd_args, nd_iter, nd_lit, nd_next, nd_plen, nd_set_line, nd_set_type, nd_type, nd_value, negate_lit(), NEW_ALIAS, new_args, NEW_ARGS_AUX, new_args_tail, NEW_ARGSCAT, new_attr_op_assign, NEW_BEGIN, NEW_BLOCK_PASS, NEW_BREAK, new_bv, NEW_CALL, NEW_CASE, NEW_CDECL, NEW_CLASS, NEW_COLON2, NEW_COLON3, new_const_op_assign, NEW_CVAR, NEW_DASGN_CURR, NEW_DEFINED, NEW_DEFN, NEW_DEFS, NEW_DOT2, NEW_DOT3, NEW_DSTR, NEW_DVAR, NEW_ENSURE, NEW_ERRINFO, NEW_EVSTR, new_evstr, NEW_FCALL, NEW_FOR, NEW_GVAR, NEW_HASH, NEW_IF, NEW_ITER, NEW_IVAR, NEW_KW_ARG, NEW_LAMBDA, NEW_LIST, NEW_LIT, NEW_LVAR, NEW_MASGN, NEW_MODULE, NEW_NEXT, NEW_NIL, NEW_NODE, NEW_OP_ASGN1, new_op_assign, NEW_OPT_ARG, NEW_POSTARG, NEW_POSTEXE, NEW_REDO, NEW_RESBODY, NEW_RESCUE, NEW_RETRY, NEW_RETURN, NEW_SCLASS, NEW_SCOPE, NEW_SPLAT, NEW_STR, NEW_SUPER, NEW_UNDEF, NEW_UNLESS, NEW_UNTIL, NEW_VALIAS, NEW_WHEN, NEW_WHILE, NEW_XSTR, NEW_YIELD, new_yield, NEW_ZARRAY, NEW_ZSUPER, newline_node(), NIL_P, YYSTYPE::node, NODE_AND, NODE_ARRAY, node_assign, NODE_BEGIN, NODE_BLOCK, NODE_BLOCK_PASS, NODE_DASGN, NODE_DASGN_CURR, NODE_DREGX, NODE_DREGX_ONCE, NODE_DSTR, NODE_DSYM, NODE_DXSTR, NODE_ENSURE, NODE_FL_NEWLINE, NODE_LASGN, NODE_LIT, NODE_MASGN, NODE_OR, NODE_RESCUE, NODE_SCOPE, NODE_SELF, NODE_STR, NODE_XSTR, NODE_YIELD, NODE_ZARRAY, NOEX_PRIVATE, NULL, YYSTYPE::num, one(), options(), paren_nest, PARSER_ARG, parser_yyerror(), Qnil, Qnone, 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_TYPE_P, rb_warn0, RE_OPTION_MASK, RE_OPTION_ONCE, reduce_nodes, reg_compile, reg_fragment_check, reg_named_capture_assign, remove_begin(), ret_args, ripper_intern(), ruby_eval_tree, ruby_eval_tree_begin, ruby_sourceline, shadowing_lvar, splat_array(), STR_NEW0, T_REGEXP, tANDOP, tAREF, tASET, tCMP, tDSTAR, tEQ, tEQQ, tGEQ, tLEQ, tLSHFT, tMATCH, tNEQ, tNMATCH, token_info_pop, token_info_push, tokline, tOROP, tPOW, tRSHFT, TRUE, tUMINUS, tUPLUS, YYSTYPE::val, val, value_expr, YYSTYPE::vars, void_expr, void_stmts, YY_, YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, YYABORT, YYACCEPT, yydestruct(), YYDPRINTF, YYEMPTY, YYEOF, yyerrok, yyerror, YYFINAL, YYID, YYINITDEPTH, YYLAST, YYLEX, yylval, YYMAXDEPTH, YYNTOKENS, yypact_value_is_default, YYPOPSTACK, YYSIZE_T, yyalloc::yyss_alloc, YYSTACK_ALLOC, YYSTACK_BYTES, YYSTACK_FREE, YYSTACK_RELOCATE, YYSYNTAX_ERROR, yytable_value_is_error, YYTERROR, YYTRANSLATE, yyalloc::yyvs_alloc, and zero().

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

Definition at line 4691 of file ripper.c.

Referenced by yytnamerr().

static YYSIZE_T yystrlen ( char *  yystr) const
static

Definition at line 4667 of file ripper.c.

References YYSIZE_T.

Referenced by 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 4716 of file ripper.c.

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

Referenced by yysyntax_error().

Variable Documentation

struct symbols global_symbols = {tLAST_TOKEN}
static
const char id_type_names[][9]
static
Initial value:
= {
"LOCAL",
"INSTANCE",
"",
"GLOBAL",
"ATTRSET",
"CONST",
"CLASS",
"JUNK",
}

Definition at line 15265 of file ripper.c.

const struct magic_comment magic_comments[]
static
Initial value:
= {
{"warn_indent", parser_set_token_info},
}
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
Definition: ripper.c:13097
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
Definition: ripper.c:13174
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
Definition: ripper.c:13165

Definition at line 13201 of file ripper.c.

Referenced by parser_magic_comment().

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

Referenced by intern_str(), and rb_id2str().

static const rb_data_type_t parser_data_type
static
Initial value:
= {
"parser",
{
},
}
static size_t parser_memsize(const void *ptr)
Definition: ripper.c:17380
static void parser_free(void *ptr)
Definition: ripper.c:17360
static void parser_mark(void *ptr)
Definition: ripper.c:17334

Definition at line 12008 of file ripper.c.

const unsigned int ruby_global_name_punct_bits
Initial value:
= {
}
#define SPECIAL_PUNCT(idx)
Definition: ripper.c:12737

Definition at line 12732 of file ripper.c.

const struct st_hash_type symhash
static
Initial value:
= {
}
st_index_t rb_str_hash(VALUE)
Definition: string.c:2245
int rb_str_hash_cmp(VALUE, VALUE)
Definition: string.c:2255

Definition at line 16574 of file ripper.c.

ID token
const yytype_int16 yycheck[]
static

Definition at line 3153 of file ripper.c.

const yytype_uint16 yydefact[]
static

Definition at line 1757 of file ripper.c.

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

Definition at line 1868 of file ripper.c.

const yytype_int16 yypact[]
static

Definition at line 1895 of file ripper.c.

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

Definition at line 2006 of file ripper.c.

const yytype_uint16 yyprhs[]
static

Definition at line 1199 of file ripper.c.

const yytype_uint16 yyr1[]
static

Definition at line 1621 of file ripper.c.

const yytype_uint8 yyr2[]
static

Definition at line 1688 of file ripper.c.

const yytype_int16 yyrhs[]
static

Definition at line 1266 of file ripper.c.

const yytype_uint16 yyrline[]
static

Definition at line 1461 of file ripper.c.

const yytype_uint16 yystos[]
static

Definition at line 4268 of file ripper.c.

const yytype_int16 yytable[]
static

Definition at line 2034 of file ripper.c.

const char* const yytname[]
static

Definition at line 1531 of file ripper.c.

const yytype_uint8 yytranslate[]
static

Definition at line 1156 of file ripper.c.