Ruby  1.9.3p286(2012-10-12revision37165)
Data Structures | Defines | Typedefs | Enumerations | Functions | Variables
parse.y 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 "id.c"
#include "ruby/regex.h"
#include "ruby/util.h"
#include "lex.c"

Go to the source code of this file.

Data Structures

struct  magic_comment
struct  reg_named_capture_assign_t
struct  symbols

Defines

#define YYDEBUG   1
#define YYERROR_VERBOSE   1
#define YYSTACK_USE_ALLOCA   0
#define numberof(array)   (int)(sizeof(array) / sizeof((array)[0]))
#define YYMALLOC(size)   rb_parser_malloc(parser, (size))
#define YYREALLOC(ptr, size)   rb_parser_realloc(parser, (ptr), (size))
#define YYCALLOC(nelem, size)   rb_parser_calloc(parser, (nelem), (size))
#define YYFREE(ptr)   rb_parser_free(parser, (ptr))
#define malloc   YYMALLOC
#define realloc   YYREALLOC
#define calloc   YYCALLOC
#define free   YYFREE
#define REGISTER_SYMID(id, name)   register_symid((id), (name), strlen(name), enc)
#define is_notop_id(id)   ((id)>tLAST_TOKEN)
#define is_local_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
#define is_global_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
#define is_instance_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
#define is_attrset_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
#define is_const_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
#define is_class_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
#define is_junk_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
#define is_asgn_or_id(id)
#define BITSTACK_PUSH(stack, n)   ((stack) = ((stack)<<1)|((n)&1))
#define BITSTACK_POP(stack)   ((stack) = (stack) >> 1)
#define BITSTACK_LEXPOP(stack)   ((stack) = ((stack) >> 1) | ((stack) & 1))
#define BITSTACK_SET_P(stack)   ((stack)&1)
#define COND_PUSH(n)   BITSTACK_PUSH(cond_stack, (n))
#define COND_POP()   BITSTACK_POP(cond_stack)
#define COND_LEXPOP()   BITSTACK_LEXPOP(cond_stack)
#define COND_P()   BITSTACK_SET_P(cond_stack)
#define CMDARG_PUSH(n)   BITSTACK_PUSH(cmdarg_stack, (n))
#define CMDARG_POP()   BITSTACK_POP(cmdarg_stack)
#define CMDARG_LEXPOP()   BITSTACK_LEXPOP(cmdarg_stack)
#define CMDARG_P()   BITSTACK_SET_P(cmdarg_stack)
#define DVARS_INHERIT   ((void*)1)
#define DVARS_TOPSCOPE   NULL
#define DVARS_SPECIAL_P(tbl)   (!POINTER_P(tbl))
#define POINTER_P(val)   ((VALUE)(val) & ~(VALUE)3)
#define VTBL_DEBUG   0
#define UTF8_ENC()
#define STR_NEW(p, n)   rb_enc_str_new((p),(n),parser->enc)
#define STR_NEW0()   rb_enc_str_new(0,0,parser->enc)
#define STR_NEW2(p)   rb_enc_str_new((p),strlen(p),parser->enc)
#define STR_NEW3(p, n, e, func)   parser_str_new((p),(n),(e),(func),parser->enc)
#define ENC_SINGLE(cr)   ((cr)==ENC_CODERANGE_7BIT)
#define TOK_INTERN(mb)   rb_intern3(tok(), toklen(), parser->enc)
#define yyerror(msg)   parser_yyerror(parser, (msg))
#define YYLEX_PARAM   parser
#define lex_strterm   (parser->parser_lex_strterm)
#define lex_state   (parser->parser_lex_state)
#define cond_stack   (parser->parser_cond_stack)
#define cmdarg_stack   (parser->parser_cmdarg_stack)
#define class_nest   (parser->parser_class_nest)
#define paren_nest   (parser->parser_paren_nest)
#define lpar_beg   (parser->parser_lpar_beg)
#define in_single   (parser->parser_in_single)
#define in_def   (parser->parser_in_def)
#define compile_for_eval   (parser->parser_compile_for_eval)
#define cur_mid   (parser->parser_cur_mid)
#define in_defined   (parser->parser_in_defined)
#define tokenbuf   (parser->parser_tokenbuf)
#define tokidx   (parser->parser_tokidx)
#define toksiz   (parser->parser_toksiz)
#define lex_input   (parser->parser_lex_input)
#define lex_lastline   (parser->parser_lex_lastline)
#define lex_nextline   (parser->parser_lex_nextline)
#define lex_pbeg   (parser->parser_lex_pbeg)
#define lex_p   (parser->parser_lex_p)
#define lex_pend   (parser->parser_lex_pend)
#define heredoc_end   (parser->parser_heredoc_end)
#define command_start   (parser->parser_command_start)
#define deferred_nodes   (parser->parser_deferred_nodes)
#define lex_gets_ptr   (parser->parser_lex_gets_ptr)
#define lex_gets   (parser->parser_lex_gets)
#define lvtbl   (parser->parser_lvtbl)
#define ruby__end__seen   (parser->parser_ruby__end__seen)
#define ruby_sourceline   (parser->parser_ruby_sourceline)
#define ruby_sourcefile   (parser->parser_ruby_sourcefile)
#define 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, b)   new_args_gen(parser, (f),(o),(r),(p),(b))
#define ret_args(node)   ret_args_gen(parser, (node))
#define new_yield(node)   new_yield_gen(parser, (node))
#define gettable(id)   gettable_gen(parser,(id))
#define assignable(id, node)   assignable_gen(parser, (id), (node))
#define aryset(node1, node2)   aryset_gen(parser, (node1), (node2))
#define attrset(node, id)   attrset_gen(parser, (node), (id))
#define rb_backref_error(n)   rb_backref_error_gen(parser,(n))
#define node_assign(node1, node2)   node_assign_gen(parser, (node1), (node2))
#define match_op(node1, node2)   match_op_gen(parser, (node1), (node2))
#define local_tbl()   local_tbl_gen(parser)
#define reg_compile(str, options)   reg_compile_gen(parser, (str), (options))
#define reg_fragment_setenc(str, options)   reg_fragment_setenc_gen(parser, (str), (options))
#define reg_fragment_check(str, options)   reg_fragment_check_gen(parser, (str), (options))
#define reg_named_capture_assign(regexp, match)   reg_named_capture_assign_gen(parser,(regexp),(match))
#define get_id(id)   (id)
#define get_value(val)   (val)
#define formal_argument(id)   formal_argument_gen(parser, (id))
#define shadowing_lvar(name)   shadowing_lvar_gen(parser, (name))
#define new_bv(id)   new_bv_gen(parser, (id))
#define local_push(top)   local_push_gen(parser,(top))
#define local_pop()   local_pop_gen(parser)
#define local_var(id)   local_var_gen(parser, (id));
#define arg_var(id)   arg_var_gen(parser, (id))
#define local_id(id)   local_id_gen(parser, (id))
#define internal_id()   internal_id_gen(parser)
#define dyna_push()   dyna_push_gen(parser)
#define dyna_pop(node)   dyna_pop_gen(parser, (node))
#define dyna_in_block()   dyna_in_block_gen(parser)
#define dyna_var(id)   local_var(id)
#define dvar_defined(id)   dvar_defined_gen(parser, (id), 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 ifndef_ripper(x)   (x)
#define rb_warn0(fmt)   rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
#define rb_warnI(fmt, a)   rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
#define rb_warnS(fmt, a)   rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
#define rb_warning0(fmt)   rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
#define rb_warningS(fmt, a)   rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
#define 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 yylval   (*((YYSTYPE*)(parser->parser_yylval)))
#define nextc()   parser_nextc(parser)
#define pushback(c)   parser_pushback(parser, (c))
#define newtok()   parser_newtok(parser)
#define tokspace(n)   parser_tokspace(parser, (n))
#define tokadd(c)   parser_tokadd(parser, (c))
#define tok_hex(numlen)   parser_tok_hex(parser, (numlen))
#define read_escape(flags, e)   parser_read_escape(parser, (flags), (e))
#define tokadd_escape(e)   parser_tokadd_escape(parser, (e))
#define regx_options()   parser_regx_options(parser)
#define tokadd_string(f, t, p, n, e)   parser_tokadd_string(parser,(f),(t),(p),(n),(e))
#define parse_string(n)   parser_parse_string(parser,(n))
#define tokaddmbc(c, enc)   parser_tokaddmbc(parser, (c), (enc))
#define here_document(n)   parser_here_document(parser,(n))
#define heredoc_identifier()   parser_heredoc_identifier(parser)
#define heredoc_restore(n)   parser_heredoc_restore(parser,(n))
#define whole_match_p(e, l, i)   parser_whole_match_p(parser,(e),(l),(i))
#define set_yylval_str(x)   (yylval.node = NEW_STR(x))
#define set_yylval_num(x)   (yylval.num = (x))
#define set_yylval_id(x)   (yylval.id = (x))
#define set_yylval_name(x)   (yylval.id = (x))
#define set_yylval_literal(x)   (yylval.node = NEW_LIT(x))
#define set_yylval_node(x)   (yylval.node = (x))
#define yylval_id()   (yylval.id)
#define ripper_flush(p)   (void)(p)
#define SIGN_EXTEND_CHAR(c)   ((((unsigned char)(c)) ^ 128) - 128)
#define parser_encoding_name()   (parser->enc->name)
#define parser_mbclen()   mbclen((lex_p-1),lex_pend,parser->enc)
#define parser_precise_mbclen()   rb_enc_precise_mbclen((lex_p-1),lex_pend,parser->enc)
#define is_identchar(p, e, enc)   (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
#define parser_is_identchar()   (!parser->eofp && is_identchar((lex_p-1),lex_pend,parser->enc))
#define parser_isascii()   ISASCII(*(lex_p-1))
#define STR_FUNC_ESCAPE   0x01
#define STR_FUNC_EXPAND   0x02
#define STR_FUNC_REGEXP   0x04
#define STR_FUNC_QWORDS   0x08
#define STR_FUNC_SYMBOL   0x10
#define STR_FUNC_INDENT   0x20
#define lex_goto_eol(parser)   ((parser)->parser_lex_p = (parser)->parser_lex_pend)
#define 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 dispatch_heredoc_end()   ((void)0)
#define arg_ambiguous()   (arg_ambiguous_gen(parser), 1)
#define str_copy(_s, _p, _n)
#define IS_ARG()   (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)
#define IS_END()   (lex_state == EXPR_END || lex_state == EXPR_ENDARG || lex_state == EXPR_ENDFN)
#define IS_BEG()   (lex_state == EXPR_BEG || lex_state == EXPR_MID || lex_state == EXPR_VALUE || lex_state == EXPR_CLASS)
#define IS_SPCARG(c)   (IS_ARG() && space_seen && !ISSPACE(c))
#define IS_LABEL_POSSIBLE()   ((lex_state == EXPR_BEG && !cmd_state) || IS_ARG())
#define IS_LABEL_SUFFIX(n)   (peek_n(':',(n)) && !peek_n(':', (n)+1))
#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   ((int)1 << (sizeof(int) * CHAR_BIT - 1))
#define subnodes(n1, n2)
#define op_tbl_count   numberof(op_tbl)
#define ENABLE_SELECTOR_NAMESPACE   0
#define HEAPCNT(n, size)   ((n) * (size) / sizeof(YYSTYPE))
#define NEWHEAP()   rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
#define ADD2HEAP(n, c, p)
#define NEW_ERRINFO()   NEW_NODE(NODE_ERRINFO,0,0,0)

Typedefs

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

 if ($2)
 fixpos ($$, $1) = $2
 if (!$$)$$ = NEW_BEGIN(0)
 CMDARG_PUSH (1)
 fixpos ($$, $2?$2:$5)
 if (!node)
else switch (nd_type(node))
 if (!($$=$2))
 arg_var (shadowing_lvar(get_id($2)))
else if (!dyna_in_block()&&local_id($2)) yyerror("duplicated block argument name")
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 token_info_push (struct parser_params *parser, const char *token)
static void token_info_pop (struct parser_params *parser, const char *token)
static int parser_yyerror (struct parser_params *parser, const char *msg)
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, int tracing)
static NODE * yycompile (struct parser_params *parser, const char *f, int line)
static rb_encoding * must_be_ascii_compatible (VALUE s)
static VALUE lex_get_str (struct parser_params *parser, VALUE s)
static VALUE lex_getline (struct parser_params *parser)
static NODE * parser_compile_string (volatile VALUE vparser, const char *f, VALUE s, int line)
NODE * rb_compile_string (const char *f, VALUE s, int line)
NODE * rb_parser_compile_string (volatile VALUE vparser, const char *f, VALUE s, int line)
NODE * rb_compile_cstr (const char *f, const char *s, int len, int line)
NODE * rb_parser_compile_cstr (volatile VALUE vparser, const char *f, const char *s, int len, int line)
static VALUE lex_io_gets (struct parser_params *parser, VALUE io)
NODE * rb_compile_file (const char *f, VALUE file, int start)
NODE * rb_parser_compile_file (volatile VALUE vparser, const char *f, VALUE file, int start)
static VALUE parser_str_new (const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
static int parser_nextc (struct parser_params *parser)
static void parser_pushback (struct parser_params *parser, int c)
static char * parser_newtok (struct parser_params *parser)
static char * parser_tokspace (struct parser_params *parser, int n)
static void parser_tokadd (struct parser_params *parser, int c)
static int parser_tok_hex (struct parser_params *parser, size_t *numlen)
static int parser_tokadd_utf8 (struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
static int parser_read_escape (struct parser_params *parser, int flags, rb_encoding **encp)
static int parser_tokadd_escape (struct parser_params *parser, rb_encoding **encp)
static void dispose_string (VALUE str)
static int parser_tokadd_mbchar (struct parser_params *parser, int c)
static int 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 ID formal_argument_gen (struct parser_params *parser, ID lhs)
static int lvar_defined_gen (struct parser_params *parser, ID id)
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)
 yylex (void *p)
static NODE * node_newnode (struct parser_params *parser, enum node_type type, VALUE a0, VALUE a1, VALUE a2)
enum node_type nodetype (NODE *node)
int nodeline (NODE *node)
static NODE * newline_node (NODE *node)
static void fixpos (NODE *node, NODE *orig)
static void parser_warning (struct parser_params *parser, NODE *node, const char *mesg)
static void parser_warn (struct parser_params *parser, NODE *node, const char *mesg)
static NODE * block_append_gen (struct parser_params *parser, NODE *head, NODE *tail)
static NODE * list_append_gen (struct parser_params *parser, NODE *list, NODE *item)
static NODE * list_concat_gen (struct parser_params *parser, NODE *head, NODE *tail)
static int literal_concat0 (struct parser_params *parser, VALUE head, VALUE tail)
static NODE * literal_concat_gen (struct parser_params *parser, NODE *head, NODE *tail)
static NODE * evstr2dstr_gen (struct parser_params *parser, NODE *node)
static NODE * new_evstr_gen (struct parser_params *parser, NODE *node)
static NODE * call_bin_op_gen (struct parser_params *parser, NODE *recv, ID id, NODE *arg1)
static NODE * call_uni_op_gen (struct parser_params *parser, NODE *recv, ID id)
static NODE * match_op_gen (struct parser_params *parser, NODE *node1, NODE *node2)
static NODE * gettable_gen (struct parser_params *parser, ID id)
static NODE * assignable_gen (struct parser_params *parser, ID id, NODE *val)
static ID shadowing_lvar_gen (struct parser_params *parser, ID name)
static void new_bv_gen (struct parser_params *parser, ID name)
static NODE * aryset_gen (struct parser_params *parser, NODE *recv, NODE *idx)
static void block_dup_check_gen (struct parser_params *parser, NODE *node1, NODE *node2)
ID rb_id_attrset (ID id)
static NODE * attrset_gen (struct parser_params *parser, NODE *recv, ID id)
static void rb_backref_error_gen (struct parser_params *parser, NODE *node)
static NODE * arg_concat_gen (struct parser_params *parser, NODE *node1, NODE *node2)
static NODE * arg_append_gen (struct parser_params *parser, NODE *node1, NODE *node2)
static NODE * splat_array (NODE *node)
static NODE * node_assign_gen (struct parser_params *parser, NODE *lhs, NODE *rhs)
static int value_expr_gen (struct parser_params *parser, NODE *node)
static void void_expr_gen (struct parser_params *parser, NODE *node)
static void void_stmts_gen (struct parser_params *parser, NODE *node)
static NODE * remove_begin (NODE *node)
static void reduce_nodes_gen (struct parser_params *parser, NODE **body)
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 void fixup_nodes (NODE **rootnode)
static NODE * cond0 (struct parser_params *, NODE *)
static NODE * range_op (struct parser_params *parser, NODE *node)
static int literal_node (NODE *node)
static NODE * cond_gen (struct parser_params *parser, NODE *node)
static NODE * logop_gen (struct parser_params *parser, enum node_type type, NODE *left, NODE *right)
static void no_blockarg (struct parser_params *parser, NODE *node)
static NODE * ret_args_gen (struct parser_params *parser, NODE *node)
static NODE * new_yield_gen (struct parser_params *parser, NODE *node)
static NODE * negate_lit (NODE *node)
static NODE * arg_blk_pass (NODE *node1, NODE *node2)
static NODE * new_args_gen (struct parser_params *parser, NODE *m, NODE *o, ID r, NODE *p, ID b)
static void warn_unused_var (struct parser_params *parser, struct local_vars *local)
static void local_push_gen (struct parser_params *parser, int inherit_dvars)
static void local_pop_gen (struct parser_params *parser)
static ID * vtable_tblcpy (ID *buf, const struct vtable *src)
static ID * local_tbl_gen (struct parser_params *parser)
static int arg_var_gen (struct parser_params *parser, ID id)
static int local_var_gen (struct parser_params *parser, ID id)
static int local_id_gen (struct parser_params *parser, ID id)
static struct vtable * dyna_push_gen (struct parser_params *parser)
static void dyna_pop_1 (struct parser_params *parser)
static void dyna_pop_gen (struct parser_params *parser, const struct vtable *lvargs)
static int dyna_in_block_gen (struct parser_params *parser)
static int dvar_defined_gen (struct parser_params *parser, ID id, int get)
static int dvar_curr_gen (struct parser_params *parser, ID id)
static void reg_fragment_setenc_gen (struct parser_params *parser, VALUE str, int options)
static int reg_fragment_check_gen (struct parser_params *parser, VALUE str, int options)
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 NODE * reg_named_capture_assign_gen (struct parser_params *parser, VALUE regexp, NODE *match)
static VALUE reg_compile_gen (struct parser_params *parser, VALUE str, int options)
void rb_gc_mark_parser (void)
NODE * rb_parser_append_print (VALUE vparser, NODE *node)
NODE * rb_parser_while_loop (VALUE vparser, NODE *node, int chop, int split)
void Init_sym (void)
void rb_gc_mark_symbols (void)
static ID internal_id_gen (struct parser_params *parser)
static int is_special_global_name (const char *m, const char *e, rb_encoding *enc)
int rb_symname_p (const char *name)
int rb_enc_symname_p (const char *name, rb_encoding *enc)
int rb_enc_symname2_p (const char *name, long len, rb_encoding *enc)
static ID register_symid (ID id, const char *name, long len, rb_encoding *enc)
ID rb_intern3 (const char *name, long len, rb_encoding *enc)
ID rb_intern2 (const char *name, long len)
ID rb_intern (const char *name)
ID rb_intern_str (VALUE str)
VALUE rb_id2str (ID id)
const char * rb_id2name (ID id)
static int symbols_i (VALUE sym, ID value, VALUE ary)
VALUE rb_sym_all_symbols (void)
int rb_is_const_id (ID id)
int rb_is_class_id (ID id)
int rb_is_instance_id (ID id)
int rb_is_local_id (ID id)
int rb_is_junk_id (ID id)
static void parser_initialize (struct parser_params *parser)
static void parser_mark (void *ptr)
static void parser_free (void *ptr)
static size_t parser_memsize (const void *ptr)
struct kwtable * rb_reserved_word (const char *str, unsigned int len)
static struct parser_params * parser_new (void)
VALUE rb_parser_new (void)
VALUE rb_parser_end_seen_p (VALUE vparser)
VALUE rb_parser_encoding (VALUE vparser)
VALUE rb_parser_get_yydebug (VALUE self)
VALUE rb_parser_set_yydebug (VALUE self, VALUE flag)
void * rb_parser_malloc (struct parser_params *parser, size_t size)
void * rb_parser_calloc (struct parser_params *parser, size_t nelem, size_t size)
void * rb_parser_realloc (struct parser_params *parser, void *ptr, size_t size)
void rb_parser_free (struct parser_params *parser, void *ptr)

Variables

top_compstmt __pad0__
fixup_nodes & deferred_nodes
top_stmts __pad1__ = $1
top_stmt __pad2__
bodystmt __pad3__
compstmt __pad4__
stmts __pad5__ = $1
stmt __pad6__
command_asgn __pad7__
 lhs
expr __pad8__
expr_value __pad9__
command_call __pad10__
block_command __pad11__
cmd_brace_block __pad12__
command __pad13__ = ruby_sourceline
mlhs __pad14__
mlhs_inner __pad15__
mlhs_inner mlhs_basic
mlhs_item __pad16__
mlhs_head __pad17__
mlhs_post __pad18__
 mlhs_post
mlhs_node __pad19__
lhs __pad20__
cname __pad21__
 tCONSTANT
cpath __pad22__
fname __pad23__
fsym __pad24__ = $1
fitem __pad25__
 dsym
undef_list __pad26__
 undef_list
op __pad27__
reswords __pad28__
arg __pad29__
arg_value __pad30__
aref_args __pad31__
 args
paren_args __pad32__
opt_paren_args __pad33__
opt_call_args __pad34__
call_args __pad35__
command_args __pad36__ = NEW_LIST($1)
block_arg __pad37__
opt_block_arg __pad38__
args __pad39__
mrhs __pad40__
primary __pad41__
primary_value __pad42__
k_begin __pad43__
k_if __pad44__
k_unless __pad45__
k_while __pad46__
k_until __pad47__
k_case __pad48__
k_for __pad49__
k_class __pad50__
k_module __pad51__
k_def __pad52__
< num > k_end = ruby_sourceline
then __pad53__
do __pad54__
if_tail __pad55__
opt_else __pad56__
for_var __pad57__
f_marg __pad58__
f_marg_list __pad59__
 f_marg_list
f_margs __pad60__
block_param __pad61__
block_param f_block_optarg
opt_block_param __pad62__
block_param_def __pad63__
opt_bv_decl __pad64__
bv_decls __pad65__
bv_decls bvar
bvar __pad66__
lambda __pad67__
f_larglist __pad68__
lambda_body __pad69__
do_block __pad70__
block_call __pad71__ = ruby_sourceline
method_call __pad72__
brace_block __pad73__
case_body __pad74__ = ruby_sourceline
case_body cases
opt_rescue __pad75__
 none
exc_list __pad76__
exc_var __pad77__
opt_ensure __pad78__
literal __pad79__
strings __pad80__
string __pad81__
string string1
xstring __pad82__
regexp __pad83__
NODE * node = $2
NODE * list
NODE * prev
words __pad84__ = node
word_list __pad85__
word __pad86__
word qwords
qword_list __pad87__
string_contents __pad88__
xstring_contents __pad89__
regexp_contents __pad90__
string_content __pad91__
 lex_strterm = 0
 lex_state = EXPR_BEG
string_dvar __pad92__
symbol __pad93__
sym __pad94__ = $2
dsym __pad95__
numeric __pad96__
user_variable __pad97__
keyword_variable __pad98__
var_ref __pad99__
var_lhs __pad100__
backref __pad101__
superclass __pad102__
<'{lex_state=EXPR_BEG;}expr_valueterm{$$=$3;}|errorterm{yyerrok;$$=0;};f_arglist:'('f_argsrparen{$$=$2;lex_state=EXPR_BEG;command_start=TRUE;}|f_argsterm{$$=$1;lex_state=EXPR_BEG;command_start=TRUE;};f_args:f_arg','f_optarg','f_rest_argopt_f_block_arg{$$=new_args($1,
$3, $5, 0, $6);}|f_arg','f_optarg','f_rest_arg','f_argopt_f_block_arg{$$=new_args($1,
$3, $5, $7, $8);}|f_arg','f_optargopt_f_block_arg{$$=new_args($1,
$3, 0, 0, $4);}|f_arg','f_optarg','f_argopt_f_block_arg{$$=new_args($1,
$3, 0, $5, $6);}|f_arg','f_rest_argopt_f_block_arg{$$=new_args($1,
0, $3, 0, $4);}|f_arg','f_rest_arg','f_argopt_f_block_arg{$$=new_args($1,
0, $3, $5, $6);}|f_argopt_f_block_arg{$$=new_args($1,
0, 0, 0, $2);}|f_optarg','f_rest_argopt_f_block_arg{$$=new_args(0,
$1, $3, 0, $4);}|f_optarg','f_rest_arg','f_argopt_f_block_arg{$$=new_args(0,
$1, $3, $5, $6);}|f_optargopt_f_block_arg{$$=new_args(0,
$1, 0, 0, $2);}|f_optarg','f_argopt_f_block_arg{$$=new_args(0,
$1, 0, $3, $4);}|f_rest_argopt_f_block_arg{$$=new_args(0,
0, $1, 0, $2);}|f_rest_arg','f_argopt_f_block_arg{$$=new_args(0,
0, $1, $3, $4);}|f_block_arg{$$=new_args(0,
0, 0, 0, $1);}|{$$=new_args(0,
0, 0, 0, 0);};f_bad_arg:tCONSTANT{yyerror("formalargumentcannotbeaconstant");$$=0;}|tIVAR{yyerror("formalargumentcannotbeaninstancevariable");$$=0;}|tGVAR{yyerror("formalargumentcannotbeaglobalvariable");$$=0;}|tCVAR{yyerror("formalargumentcannotbeaclassvariable");$$=0;};f_norm_arg:f_bad_arg|tIDENTIFIER{formal_argument(get_id($1));$$=$1;};f_arg_item:f_norm_arg{arg_var(get_id($1));$$=NEW_ARGS_AUX($1,
1);}|tLPARENf_margsrparen{IDtid=internal_id();arg_var(tid);if(dyna_in_block()){$2-> 
nd_value = NEW_DVAR(tid)
 nd_next = $2
f_arg __pad103__
f_opt __pad104__
f_block_opt __pad105__ = assignable($1, $3) NEW_OPT_ARG(0, $$)
f_block_optarg __pad106__ = assignable($1, $3) NEW_OPT_ARG(0, $$)
f_optarg __pad107__
 f_optarg
restarg_mark __pad108__
f_rest_arg __pad109__
blkarg_mark __pad110__ = $2
f_block_arg __pad111__
opt_f_block_arg __pad112__ = $2
singleton __pad113__
assoc_list __pad114__
assocs __pad115__
assoc __pad116__
operation __pad117__
operation2 __pad118__
operation3 __pad119__
dot_or_colon __pad120__
opt_terms __pad121__
opt_nl __pad122__
rparen __pad123__
rbracket __pad124__
trailer __pad125__
trailer term
terms __pad126__
none __pad127__
static const rb_data_type_t parser_data_type
static struct magic_comment magic_comments []
struct {
   ID   token
   const char *   name
} op_tbl []
static struct symbols global_symbols
static struct st_hash_type symhash

Define Documentation

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

Definition at line 12086 of file parse.y.

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

Definition at line 8398 of file parse.y.

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

Definition at line 8064 of file parse.y.

#define arg_append (   h,
  t 
)    arg_append_gen(parser,(h),(t))
#define arg_concat (   h,
  t 
)    arg_concat_gen(parser,(h),(t))
#define arg_var (   id)    arg_var_gen(parser, (id))
#define aryset (   node1,
  node2 
)    aryset_gen(parser, (node1), (node2))
#define assignable (   id,
  node 
)    assignable_gen(parser, (id), (node))
#define assignable_result (   x)    (x)
#define attrset (   node,
  id 
)    attrset_gen(parser, (node), (id))
#define BITSTACK_LEXPOP (   stack)    ((stack) = ((stack) >> 1) | ((stack) & 1))
#define BITSTACK_POP (   stack)    ((stack) = (stack) >> 1)
#define BITSTACK_PUSH (   stack,
  n 
)    ((stack) = ((stack)<<1)|((n)&1))
#define BITSTACK_SET_P (   stack)    ((stack)&1)
#define block_append (   h,
  t 
)    block_append_gen(parser,(h),(t))
#define block_dup_check (   n1,
  n2 
)    block_dup_check_gen(parser,(n1),(n2))
#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 calloc   YYCALLOC
#define class_nest   (parser->parser_class_nest)
#define CMDARG_P ( )    BITSTACK_SET_P(cmdarg_stack)
#define CMDARG_POP ( )    BITSTACK_POP(cmdarg_stack)
#define CMDARG_PUSH (   n)    BITSTACK_PUSH(cmdarg_stack, (n))
#define cmdarg_stack   (parser->parser_cmdarg_stack)
#define command_start   (parser->parser_command_start)
#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))
#define COND_P ( )    BITSTACK_SET_P(cond_stack)
#define COND_POP ( )    BITSTACK_POP(cond_stack)
#define COND_PUSH (   n)    BITSTACK_PUSH(cond_stack, (n))
#define cond_stack   (parser->parser_cond_stack)
#define cur_mid   (parser->parser_cur_mid)
#define current_enc   (parser->enc)
#define deferred_nodes   (parser->parser_deferred_nodes)
#define dispatch_heredoc_end ( )    ((void)0)

Definition at line 7945 of file parse.y.

#define dvar_curr (   id)    dvar_curr_gen(parser, (id))
#define dvar_defined (   id)    dvar_defined_gen(parser, (id), 0)
#define dvar_defined_get (   id)    dvar_defined_gen(parser, (id), 1)
#define DVARS_INHERIT   ((void*)1)
#define DVARS_SPECIAL_P (   tbl)    (!POINTER_P(tbl))
#define DVARS_TOPSCOPE   NULL
#define dyna_in_block ( )    dyna_in_block_gen(parser)
#define dyna_pop (   node)    dyna_pop_gen(parser, (node))
#define dyna_push ( )    dyna_push_gen(parser)
#define dyna_var (   id)    local_var(id)
#define ENABLE_SELECTOR_NAMESPACE   0

Definition at line 11354 of file parse.y.

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

Definition at line 7397 of file parse.y.

#define ESCAPE_META   2

Definition at line 7398 of file parse.y.

#define evstr2dstr (   n)    evstr2dstr_gen(parser,(n))
#define formal_argument (   id)    formal_argument_gen(parser, (id))
#define free   YYFREE
#define get_id (   id)    (id)
#define get_value (   val)    (val)
#define gettable (   id)    gettable_gen(parser,(id))
#define HEAPCNT (   n,
  size 
)    ((n) * (size) / sizeof(YYSTYPE))

Definition at line 12084 of file parse.y.

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

Definition at line 6684 of file parse.y.

#define heredoc_end   (parser->parser_heredoc_end)
#define heredoc_identifier ( )    parser_heredoc_identifier(parser)

Definition at line 6685 of file parse.y.

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

Definition at line 6686 of file parse.y.

#define ifndef_ripper (   x)    (x)
#define in_def   (parser->parser_in_def)
#define in_defined   (parser->parser_in_defined)
#define in_single   (parser->parser_in_single)
#define internal_id ( )    internal_id_gen(parser)
#define IS_ARG ( )    (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)

Definition at line 8390 of file parse.y.

#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))
#define is_attrset_id (   id)    (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)

Definition at line 8392 of file parse.y.

#define is_class_id (   id)    (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
#define is_const_id (   id)    (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
#define IS_END ( )    (lex_state == EXPR_END || lex_state == EXPR_ENDARG || lex_state == EXPR_ENDFN)

Definition at line 8391 of file parse.y.

#define is_global_id (   id)    (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
#define is_identchar (   p,
  e,
  enc 
)    (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))

Definition at line 6783 of file parse.y.

#define is_instance_id (   id)    (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
#define is_junk_id (   id)    (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
#define IS_LABEL_POSSIBLE ( )    ((lex_state == EXPR_BEG && !cmd_state) || IS_ARG())

Definition at line 8394 of file parse.y.

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

Definition at line 8395 of file parse.y.

#define is_local_id (   id)    (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
#define is_notop_id (   id)    ((id)>tLAST_TOKEN)
#define IS_SPCARG (   c)    (IS_ARG() && space_seen && !ISSPACE(c))

Definition at line 8393 of file parse.y.

#define lex_eol_p ( )    (lex_p >= lex_pend)

Definition at line 7195 of file parse.y.

#define lex_gets   (parser->parser_lex_gets)
#define lex_gets_ptr   (parser->parser_lex_gets_ptr)
#define lex_goto_eol (   parser)    ((parser)->parser_lex_p = (parser)->parser_lex_pend)

Definition at line 7194 of file parse.y.

Referenced by parser_parse_string(), and token_info_push().

#define lex_input   (parser->parser_lex_input)
#define lex_lastline   (parser->parser_lex_lastline)
#define lex_nextline   (parser->parser_lex_nextline)
#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)
#define lex_strterm   (parser->parser_lex_strterm)
#define list_append (   l,
  i 
)    list_append_gen(parser,(l),(i))
#define list_concat (   h,
  t 
)    list_concat_gen(parser,(h),(t))
#define literal_concat (   h,
  t 
)    literal_concat_gen(parser,(h),(t))
#define local_id (   id)    local_id_gen(parser, (id))
#define local_pop ( )    local_pop_gen(parser)
#define local_push (   top)    local_push_gen(parser,(top))
#define local_tbl ( )    local_tbl_gen(parser)
#define local_var (   id)    local_var_gen(parser, (id));
#define logop (   type,
  node1,
  node2 
)    logop_gen(parser, (type), (node1), (node2))
#define lpar_beg   (parser->parser_lpar_beg)
#define lvar_defined (   id)    lvar_defined_gen(parser, (id))
#define LVAR_USED   ((int)1 << (sizeof(int) * CHAR_BIT - 1))

Definition at line 10178 of file parse.y.

#define lvtbl   (parser->parser_lvtbl)
#define malloc   YYMALLOC
#define match_op (   node1,
  node2 
)    match_op_gen(parser, (node1), (node2))
#define mixed_error (   enc1,
  enc2 
)
Value:
if (!errbuf) {  \
        size_t len = sizeof(mixed_msg) - 4;     \
        len += strlen(rb_enc_name(enc1));       \
        len += strlen(rb_enc_name(enc2));       \
        errbuf = ALLOCA_N(char, len);           \
        snprintf(errbuf, len, mixed_msg,        \
                 rb_enc_name(enc1),             \
                 rb_enc_name(enc2));            \
        yyerror(errbuf);                        \
    }
#define mixed_escape (   beg,
  enc1,
  enc2 
)
Value:
do {    \
        const char *pos = lex_p;                \
        lex_p = (beg);                          \
        mixed_error((enc1), (enc2));            \
        lex_p = pos;                            \
    } while (0)
#define nd_func   u1.id
#define nd_nest   u3.cnt
#define nd_paren (   node)    (char)((node)->u2.id >> CHAR_BIT*2)
#define nd_term (   node)    SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
#define new_args (   f,
  o,
  r,
  p,
  b 
)    new_args_gen(parser, (f),(o),(r),(p),(b))
#define new_bv (   id)    new_bv_gen(parser, (id))
#define NEW_ERRINFO ( )    NEW_NODE(NODE_ERRINFO,0,0,0)
#define new_evstr (   n)    new_evstr_gen(parser,(n))
#define NEW_STRTERM (   func,
  term,
  paren 
)    rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)

Definition at line 7762 of file parse.y.

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

Definition at line 12085 of file parse.y.

#define newtok ( )    parser_newtok(parser)

Definition at line 6674 of file parse.y.

#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))
#define NODE_HEREDOC   NODE_ARRAY /* 1, 3 to gc */
#define NODE_STRTERM   NODE_ZARRAY /* nothing to gc */
#define numberof (   array)    (int)(sizeof(array) / sizeof((array)[0]))
#define op_tbl_count   numberof(op_tbl)

Definition at line 11351 of file parse.y.

#define paren_nest   (parser->parser_paren_nest)
#define parse_string (   n)    parser_parse_string(parser,(n))

Definition at line 6682 of file parse.y.

#define parser_encoding_name ( )    (parser->enc->name)

Definition at line 6780 of file parse.y.

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

Definition at line 6784 of file parse.y.

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

Definition at line 6786 of file parse.y.

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

Definition at line 6781 of file parse.y.

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

Definition at line 6782 of file parse.y.

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

Definition at line 9780 of file parse.y.

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

Definition at line 9773 of file parse.y.

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

Definition at line 7196 of file parse.y.

Referenced by switch().

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

Definition at line 7197 of file parse.y.

#define POINTER_P (   val)    ((VALUE)(val) & ~(VALUE)3)
#define pushback (   c)    parser_pushback(parser, (c))
#define rb_backref_error (   n)    rb_backref_error_gen(parser,(n))
#define rb_node_newnode (   type,
  a1,
  a2,
  a3 
)    node_newnode(parser, (type), (a1), (a2), (a3))
#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_warningS (   fmt,
  a 
)    rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
#define rb_warnS (   fmt,
  a 
)    rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
#define RE_OPTION_ARG_ENCODING_NONE   32
#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_SHIFT   8
#define RE_OPTION_MASK   0xff
#define RE_OPTION_ONCE   (1<<16)
#define read_escape (   flags,
  e 
)    parser_read_escape(parser, (flags), (e))

Definition at line 6678 of file parse.y.

Referenced by switch().

#define realloc   YYREALLOC
#define reduce_nodes (   n)    reduce_nodes_gen(parser,(n))
#define reg_compile (   str,
  options 
)    reg_compile_gen(parser, (str), (options))
#define reg_fragment_check (   str,
  options 
)    reg_fragment_check_gen(parser, (str), (options))
#define reg_fragment_setenc (   str,
  options 
)    reg_fragment_setenc_gen(parser, (str), (options))
#define REGISTER_SYMID (   id,
  name 
)    register_symid((id), (name), strlen(name), enc)
#define regx_options ( )    parser_regx_options(parser)

Definition at line 6680 of file parse.y.

#define ret_args (   node)    ret_args_gen(parser, (node))
#define ripper_flush (   p)    (void)(p)

Definition at line 6713 of file parse.y.

#define ruby__end__seen   (parser->parser_ruby__end__seen)
#define ruby_coverage   (parser->coverage)
#define ruby_debug_lines   (parser->debug_lines)
#define ruby_eval_tree   (parser->parser_eval_tree)
#define ruby_eval_tree_begin   (parser->parser_eval_tree_begin)
#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 6692 of file parse.y.

Referenced by lex_get_str().

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

Definition at line 6694 of file parse.y.

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

Definition at line 6693 of file parse.y.

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

Definition at line 6695 of file parse.y.

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

Definition at line 6691 of file parse.y.

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

Definition at line 6690 of file parse.y.

#define shadowing_lvar (   name)    shadowing_lvar_gen(parser, (name))
#define SIGN_EXTEND (   x,
  n 
)    (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
#define SIGN_EXTEND_CHAR (   c)    ((((unsigned char)(c)) ^ 128) - 128)

Definition at line 6777 of file parse.y.

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

Definition at line 7159 of file parse.y.

#define STR_FUNC_EXPAND   0x02

Definition at line 7160 of file parse.y.

#define STR_FUNC_INDENT   0x20

Definition at line 7164 of file parse.y.

#define STR_FUNC_QWORDS   0x08

Definition at line 7162 of file parse.y.

#define STR_FUNC_REGEXP   0x04

Definition at line 7161 of file parse.y.

#define STR_FUNC_SYMBOL   0x10

Definition at line 7163 of file parse.y.

#define STR_NEW (   p,
  n 
)    rb_enc_str_new((p),(n),parser->enc)
#define STR_NEW0 ( )    rb_enc_str_new(0,0,parser->enc)
#define STR_NEW2 (   p)    rb_enc_str_new((p),strlen(p),parser->enc)
#define STR_NEW3 (   p,
  n,
  e,
  func 
)    parser_str_new((p),(n),(e),(func),parser->enc)
#define subnodes (   n1,
  n2 
)
Value:
((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
     (!node->n2) ? (body = &node->n1, 1) : \
     (reduce_nodes(&node->n1), body = &node->n2, 1))
#define tok ( )    tokenbuf

Definition at line 7268 of file parse.y.

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

Definition at line 6677 of file parse.y.

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

Definition at line 6676 of file parse.y.

Referenced by parser_newtok().

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

Definition at line 6679 of file parse.y.

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

Definition at line 7630 of file parse.y.

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

Definition at line 6681 of file parse.y.

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

Definition at line 6683 of file parse.y.

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

Definition at line 7323 of file parse.y.

#define token_info_pop (   token)    (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
#define token_info_push (   token)    (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
#define tokenbuf   (parser->parser_tokenbuf)
#define tokfix ( )    (tokenbuf[tokidx]='\0')

Definition at line 7267 of file parse.y.

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

Definition at line 7270 of file parse.y.

#define toklen ( )    tokidx

Definition at line 7269 of file parse.y.

Referenced by parser_newtok().

#define toksiz   (parser->parser_toksiz)
#define tokspace (   n)    parser_tokspace(parser, (n))

Definition at line 6675 of file parse.y.

#define UTF8_ENC ( )
Value:
(parser->utf8 ? parser->utf8 : \
                    (parser->utf8 = rb_utf8_encoding()))
#define value_expr (   node)    value_expr_gen(parser, (node) = remove_begin(node))
#define void_expr (   node)    void_expr0((node) = remove_begin(node))
#define void_expr0 (   node)    void_expr_gen(parser, (node))
#define void_stmts (   node)    void_stmts_gen(parser, (node))
#define VTBL_DEBUG   0
#define warn_balanced (   op,
  syn 
)
Value:
((void) \
    (last_state != EXPR_CLASS && last_state != EXPR_DOT && \
     last_state != EXPR_FNAME && last_state != EXPR_ENDFN && \
     last_state != EXPR_ENDARG && \
     space_seen && !ISSPACE(c) && \
     (ambiguous_operator(op, syn), 0)))

Definition at line 8404 of file parse.y.

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

Definition at line 7265 of file parse.y.

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

Definition at line 6687 of file parse.y.

#define YYCALLOC (   nelem,
  size 
)    rb_parser_calloc(parser, (nelem), (size))
#define YYDEBUG   1
#define yydebug   (parser->parser_yydebug)
#define yyerror (   msg)    parser_yyerror(parser, (msg))
#define YYERROR_VERBOSE   1
#define YYFREE (   ptr)    rb_parser_free(parser, (ptr))
#define YYLEX_PARAM   parser
#define yylval   (*((YYSTYPE*)(parser->parser_yylval)))

Definition at line 6663 of file parse.y.

#define yylval_id ( )    (yylval.id)

Definition at line 6696 of file parse.y.

#define YYMALLOC (   size)    rb_parser_malloc(parser, (size))
#define yyparse   ruby_yyparse
#define YYREALLOC (   ptr,
  size 
)    rb_parser_realloc(parser, (ptr), (size))
#define YYSTACK_USE_ALLOCA   0

Typedef Documentation

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

Definition at line 8149 of file parse.y.

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

Definition at line 8150 of file parse.y.


Enumeration Type Documentation

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 
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 7166 of file parse.y.


Function Documentation

static void arg_ambiguous_gen ( struct parser_params *  parser) [static]

Definition at line 8056 of file parse.y.

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

Definition at line 10289 of file parse.y.

References RTEST, TypedData_Get_Struct, and yydebug.

static NODE* arg_blk_pass ( NODE *  node1,
NODE *  node2 
) [static]

Definition at line 10843 of file parse.y.

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

Definition at line 10264 of file parse.y.

References parser_params::enc, rb_enc_from_encoding(), and TypedData_Get_Struct.

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

Definition at line 10957 of file parse.y.

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

Definition at line 10219 of file parse.y.

References reserved_word().

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

Definition at line 10582 of file parse.y.

References args, rb_funcall(), rb_intern, and rb_vsprintf().

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

Definition at line 10101 of file parse.y.

References NULL.

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

Definition at line 10243 of file parse.y.

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

Definition at line 9783 of file parse.y.

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

Definition at line 10227 of file parse.y.

References ALLOC_N, MEMZERO, and parser_initialize().

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

Definition at line 9982 of file parse.y.

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

Definition at line 9990 of file parse.y.

References ID_LOCAL, is_attrset_id, is_local_id, and rb_id2str().

CMDARG_PUSH ( 1  )
static int comment_at_top ( struct parser_params *  parser) [static]

Definition at line 8137 of file parse.y.

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

Definition at line 10703 of file parse.y.

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

Definition at line 10760 of file parse.y.

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

Definition at line 6945 of file parse.y.

static VALUE debug_lines ( const char *  f) [static]

Definition at line 6928 of file parse.y.

static void dispose_string ( VALUE  str) [static]

Definition at line 7608 of file parse.y.

References nextc.

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

Definition at line 11082 of file parse.y.

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

Definition at line 11051 of file parse.y.

static int dyna_in_block_gen ( struct parser_params *  parser) [static]

Definition at line 11045 of file parse.y.

static void dyna_pop_1 ( struct parser_params *  parser) [static]

Definition at line 11013 of file parse.y.

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

Definition at line 11031 of file parse.y.

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

Definition at line 11002 of file parse.y.

static int e_option_supplied ( struct parser_params *  parser) [static]

Definition at line 6962 of file parse.y.

References compile_error, and PARSER_ARG.

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

Definition at line 9959 of file parse.y.

References global_symbols, OBJ_FREEZE, symbols::op_sym, and rb_usascii_str_new().

method_call fixpos ( $$  ,
$  1 
) = $2
fixpos ( $$  ,
$2?$2:$  5 
)
static void fixpos ( NODE *  node,
NODE *  orig 
) [static]

Definition at line 9760 of file parse.y.

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

Definition at line 10635 of file parse.y.

References ALLOC_N, MEMZERO, and TypedData_Wrap_Struct.

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

Definition at line 8067 of file parse.y.

static NODE* gettable_gen ( struct parser_params *  parser,
ID  id 
) [static]
if ( $  2)
if ( !$$  ) = NEW_BEGIN(0)
if ( !  node)

Definition at line 5623 of file parse.y.

if ( !  $$=$2)

Definition at line 6006 of file parse.y.

else if ( !  dyna_in_block)&&local_id($2)
void Init_sym ( void  )

Definition at line 11401 of file parse.y.

static ID internal_id_gen ( struct parser_params *  parser) [static]

Definition at line 11423 of file parse.y.

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

Definition at line 11432 of file parse.y.

Referenced by yylex().

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

Definition at line 7035 of file parse.y.

References EXPR_BEG, lex_state, nextc, pushback, set_yylval_id, tANDOP, and tOP_ASGN.

static VALUE lex_getline ( struct parser_params *  parser) [static]

Definition at line 7055 of file parse.y.

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

Definition at line 7126 of file parse.y.

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

Definition at line 9837 of file parse.y.

References ID_INSTANCE.

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

Definition at line 9857 of file parse.y.

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

Definition at line 9881 of file parse.y.

References ISASCII, and rb_enc_mbclen().

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

Definition at line 9898 of file parse.y.

References ISASCII.

static int literal_node ( NODE *  node) [static]

Definition at line 10682 of file parse.y.

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

Definition at line 10974 of file parse.y.

static void local_pop_gen ( struct parser_params *  parser) [static]

Definition at line 10912 of file parse.y.

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

Definition at line 10899 of file parse.y.

static ID* local_tbl_gen ( struct parser_params *  parser) [static]

Definition at line 10942 of file parse.y.

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

Definition at line 10964 of file parse.y.

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

Definition at line 10767 of file parse.y.

References rb_eArgError, rb_raise(), and TypedData_Get_Struct.

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

Definition at line 8078 of file parse.y.

References last.

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

Definition at line 8153 of file parse.y.

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

Definition at line 8197 of file parse.y.

References NODE_DSTR, NODE_EVSTR, and NODE_STR.

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

Definition at line 9997 of file parse.y.

static rb_encoding* must_be_ascii_compatible ( VALUE  s) [static]

Definition at line 7025 of file parse.y.

static NODE* negate_lit ( NODE *  node) [static]

Definition at line 10824 of file parse.y.

References rb_data_type_struct::parent, rb_parser_new(), and RTYPEDDATA_TYPE.

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

Definition at line 10853 of file parse.y.

References rb_intern.

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

Definition at line 10205 of file parse.y.

References parser_free(), parser_mark(), and parser_memsize().

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

Definition at line 9968 of file parse.y.

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

Definition at line 10807 of file parse.y.

References Qnil, Qundef, rb_eArgError, rb_raise(), RSTRING_PTR, and StringValue.

static NODE* newline_node ( NODE *  node) [static]

Definition at line 9750 of file parse.y.

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

Definition at line 10782 of file parse.y.

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

Definition at line 10315 of file parse.y.

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

Definition at line 9730 of file parse.y.

References FALSE.

int nodeline ( NODE *  node)

Definition at line 9744 of file parse.y.

enum node_type nodetype ( NODE *  node)

Definition at line 9738 of file parse.y.

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

Definition at line 7078 of file parse.y.

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

Definition at line 8085 of file parse.y.

static void parser_free ( void *  ptr) [static]

Definition at line 11941 of file parse.y.

Referenced by new_bv_gen().

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

Definition at line 7949 of file parse.y.

static int parser_heredoc_identifier ( struct parser_params *  parser) [static]

Definition at line 7839 of file parse.y.

References pushback.

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

Definition at line 7902 of file parse.y.

static void parser_initialize ( struct parser_params *  parser) [static]

Definition at line 11863 of file parse.y.

Referenced by block_dup_check_gen().

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

Definition at line 8230 of file parse.y.

References NEW_MATCH2, and NODE_LIT.

static void parser_mark ( void *  ptr) [static]

Definition at line 11915 of file parse.y.

Referenced by new_bv_gen().

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

Definition at line 11961 of file parse.y.

Referenced by new_bv_gen().

static struct parser_params* parser_new ( void  ) [static, read]

Definition at line 12004 of file parse.y.

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

Definition at line 7273 of file parse.y.

References nextc, tokadd, and toklen.

static int parser_nextc ( struct parser_params *  parser) [inline, static]

Definition at line 7200 of file parse.y.

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

Definition at line 7766 of file parse.y.

References parser_params::eofp, k__END__, lex_goto_eol, Qtrue, and ruby__end__seen.

static void parser_prepare ( struct parser_params *  parser) [static]

Definition at line 8366 of file parse.y.

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

Definition at line 7256 of file parse.y.

References no_digits.

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

Definition at line 7401 of file parse.y.

static int parser_regx_options ( struct parser_params *  parser) [static]

Definition at line 7572 of file parse.y.

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]

Definition at line 8162 of file parse.y.

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

Definition at line 7178 of file parse.y.

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

Definition at line 7310 of file parse.y.

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

Definition at line 7300 of file parse.y.

References yyerror.

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

Definition at line 7499 of file parse.y.

static int parser_tokadd_mbchar ( struct parser_params *  parser,
int  c 
) [static]

Definition at line 7617 of file parse.y.

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

Definition at line 7633 of file parse.y.

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 7326 of file parse.y.

References ISDIGIT, nextc, and pushback.

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

Definition at line 7492 of file parse.y.

References EXPR_BEG, and lex_state.

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

Definition at line 7288 of file parse.y.

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

Definition at line 9776 of file parse.y.

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

Definition at line 9769 of file parse.y.

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

Definition at line 7919 of file parse.y.

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

Definition at line 6863 of file parse.y.

static int parser_yylex ( struct parser_params *  parser) [static]

Definition at line 8412 of file parse.y.

References lvtbl, and rb_warningS.

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

Definition at line 10666 of file parse.y.

References parser_params::parser_lex_gets.

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

Definition at line 10251 of file parse.y.

References Qfalse, Qtrue, ruby__end__seen, and TypedData_Get_Struct.

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

Definition at line 7112 of file parse.y.

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

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

Definition at line 7132 of file parse.y.

References rb_parser_compile_file(), and rb_parser_new().

NODE* rb_compile_string ( const char *  f,
VALUE  s,
int  line 
)
int rb_enc_symname2_p ( const char *  name,
long  len,
rb_encoding *  enc 
)
int rb_enc_symname_p ( const char *  name,
rb_encoding *  enc 
)

Definition at line 11469 of file parse.y.

References rb_enc_symname2_p(), and strlen().

void rb_gc_mark_parser ( void  )

Definition at line 11248 of file parse.y.

void rb_gc_mark_symbols ( void  )
const char* rb_id2name ( ID  id)

Definition at line 11790 of file parse.y.

References rb_id2str(), and RSTRING_PTR.

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

Definition at line 10235 of file parse.y.

References id, and ID_ATTRSET.

ID rb_intern ( const char *  name)

Definition at line 11706 of file parse.y.

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

ID rb_intern2 ( const char *  name,
long  len 
)

Definition at line 11699 of file parse.y.

References rb_intern3(), and rb_usascii_encoding().

ID rb_intern3 ( const char *  name,
long  len,
rb_encoding *  enc 
)
int rb_is_class_id ( ID  id)

Definition at line 11837 of file parse.y.

References is_class_id.

int rb_is_const_id ( ID  id)

Definition at line 11831 of file parse.y.

References is_const_id.

int rb_is_instance_id ( ID  id)

Definition at line 11843 of file parse.y.

References is_instance_id.

int rb_is_junk_id ( ID  id)

Definition at line 11855 of file parse.y.

References is_junk_id.

int rb_is_local_id ( ID  id)

Definition at line 11849 of file parse.y.

References is_local_id.

NODE* rb_parser_append_print ( VALUE  vparser,
NODE *  node 
)
void* rb_parser_calloc ( struct parser_params *  parser,
size_t  nelem,
size_t  size 
)

Definition at line 12100 of file parse.y.

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

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

Definition at line 7119 of file parse.y.

References parser_compile_string(), and rb_str_new().

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

Definition at line 7105 of file parse.y.

References must_be_ascii_compatible(), and parser_compile_string().

Definition at line 12044 of file parse.y.

References parser_params::enc, rb_enc_from_encoding(), and TypedData_Get_Struct.

Definition at line 12029 of file parse.y.

References Qfalse, Qtrue, ruby__end__seen, and TypedData_Get_Struct.

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

Definition at line 12130 of file parse.y.

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

Definition at line 12059 of file parse.y.

References Qfalse, Qtrue, and TypedData_Get_Struct.

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

Definition at line 12090 of file parse.y.

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

VALUE rb_parser_new ( void  )

Definition at line 12015 of file parse.y.

References parser_new(), and TypedData_Wrap_Struct.

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

Definition at line 12074 of file parse.y.

References RTEST, and TypedData_Get_Struct.

NODE* rb_parser_while_loop ( VALUE  vparser,
NODE *  node,
int  chop,
int  split 
)
struct kwtable* rb_reserved_word ( const char *  str,
unsigned int  len 
) [read]

Definition at line 11998 of file parse.y.

References reserved_word().

int rb_symname_p ( const char *  name)

Definition at line 11463 of file parse.y.

References rb_ascii8bit_encoding(), and rb_enc_symname_p().

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

Definition at line 10521 of file parse.y.

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

Definition at line 11224 of file parse.y.

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

Definition at line 11129 of file parse.y.

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

Definition at line 11090 of file parse.y.

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

Definition at line 11192 of file parse.y.

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

Definition at line 11152 of file parse.y.

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

Definition at line 11558 of file parse.y.

static NODE* remove_begin ( NODE *  node) [static]

Definition at line 10511 of file parse.y.

References keyword__ENCODING__.

static NODE* ret_args_gen ( struct parser_params *  parser,
NODE *  node 
) [static]
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]

Definition at line 10181 of file parse.y.

static NODE* splat_array ( NODE *  node) [static]

Definition at line 10307 of file parse.y.

else switch ( nd_type(node)  )

Definition at line 5694 of file parse.y.

References peek, and read_escape.

Referenced by dump_node().

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

Definition at line 11799 of file parse.y.

Referenced by gettable_gen().

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

Definition at line 6790 of file parse.y.

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

Definition at line 6804 of file parse.y.

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

Definition at line 6834 of file parse.y.

References compile_error, and PARSER_ARG.

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

Definition at line 6817 of file parse.y.

References FALSE, lex_goto_eol, nextc, tEMBDOC, tEMBDOC_BEG, and TRUE.

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

Definition at line 10346 of file parse.y.

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

Definition at line 10408 of file parse.y.

References rb_funcall().

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

Definition at line 10497 of file parse.y.

References keyword_and.

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

Definition at line 10927 of file parse.y.

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

Definition at line 10623 of file parse.y.

References rb_intern, and STR_NEW2.

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

Definition at line 10879 of file parse.y.

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

Definition at line 10629 of file parse.y.

References rb_funcall().

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

Definition at line 7016 of file parse.y.

static VALUE yycompile0 ( VALUE  arg,
int  tracing 
) [static]

Definition at line 6968 of file parse.y.

yylex ( void *  p)

Definition at line 9705 of file parse.y.

References FALSE, id, is_special_global_name(), and TRUE.


Variable Documentation

top_compstmt __pad0__

Definition at line 2588 of file parse.y.

var_lhs __pad100__

Definition at line 6089 of file parse.y.

backref __pad101__

Definition at line 6089 of file parse.y.

superclass __pad102__

Definition at line 6116 of file parse.y.

f_arg __pad103__

Definition at line 6353 of file parse.y.

f_opt __pad104__

Definition at line 6353 of file parse.y.

f_block_opt __pad105__ = assignable($1, $3) NEW_OPT_ARG(0, $$)

Definition at line 6380 of file parse.y.

Definition at line 6392 of file parse.y.

Definition at line 6407 of file parse.y.

restarg_mark __pad108__

Definition at line 6431 of file parse.y.

f_rest_arg __pad109__

Definition at line 6455 of file parse.y.

command_call __pad10__

Definition at line 3072 of file parse.y.

blkarg_mark __pad110__ = $2

Definition at line 6459 of file parse.y.

f_block_arg __pad111__

Definition at line 6483 of file parse.y.

opt_f_block_arg __pad112__ = $2

Definition at line 6489 of file parse.y.

singleton __pad113__

Definition at line 6489 of file parse.y.

assoc_list __pad114__

Definition at line 6547 of file parse.y.

assocs __pad115__

Definition at line 6558 of file parse.y.

assoc __pad116__

Definition at line 6558 of file parse.y.

operation __pad117__

Definition at line 6558 of file parse.y.

operation2 __pad118__

Definition at line 6604 of file parse.y.

operation3 __pad119__

Definition at line 6609 of file parse.y.

block_command __pad11__

Definition at line 3082 of file parse.y.

dot_or_colon __pad120__

Definition at line 6621 of file parse.y.

opt_terms __pad121__

Definition at line 6625 of file parse.y.

opt_nl __pad122__

Definition at line 6629 of file parse.y.

rparen __pad123__

Definition at line 6632 of file parse.y.

rbracket __pad124__

Definition at line 6635 of file parse.y.

trailer __pad125__

Definition at line 6639 of file parse.y.

terms __pad126__

Definition at line 6644 of file parse.y.

Definition at line 6648 of file parse.y.

cmd_brace_block __pad12__

Definition at line 3082 of file parse.y.

Definition at line 3103 of file parse.y.

mlhs __pad14__

Definition at line 3226 of file parse.y.

Definition at line 3237 of file parse.y.

mlhs_item __pad16__

Definition at line 3237 of file parse.y.

Definition at line 3345 of file parse.y.

Definition at line 3345 of file parse.y.

mlhs_node __pad19__

Definition at line 3373 of file parse.y.

top_stmts __pad1__ = $1

Definition at line 2597 of file parse.y.

Definition at line 3373 of file parse.y.

cname __pad21__

Definition at line 3542 of file parse.y.

cpath __pad22__

Definition at line 3558 of file parse.y.

fname __pad23__

Definition at line 3579 of file parse.y.

fsym __pad24__ = $1

Definition at line 3587 of file parse.y.

fitem __pad25__

Definition at line 3607 of file parse.y.

Definition at line 3618 of file parse.y.

Definition at line 3623 of file parse.y.

reswords __pad28__

Definition at line 3662 of file parse.y.

arg __pad29__

Definition at line 3681 of file parse.y.

top_stmt __pad2__

Definition at line 2630 of file parse.y.

arg_value __pad30__

Definition at line 4161 of file parse.y.

aref_args __pad31__

Definition at line 4168 of file parse.y.

paren_args __pad32__

Definition at line 4175 of file parse.y.

opt_paren_args __pad33__

Definition at line 4201 of file parse.y.

opt_call_args __pad34__

Definition at line 4209 of file parse.y.

call_args __pad35__

Definition at line 4209 of file parse.y.

command_args __pad36__ = NEW_LIST($1)

Definition at line 4235 of file parse.y.

block_arg __pad37__

Definition at line 4286 of file parse.y.

opt_block_arg __pad38__

Definition at line 4296 of file parse.y.

Definition at line 4296 of file parse.y.

bodystmt __pad3__

Definition at line 2655 of file parse.y.

mrhs __pad40__

Definition at line 4352 of file parse.y.

primary __pad41__

Definition at line 4352 of file parse.y.

primary_value __pad42__

Definition at line 4352 of file parse.y.

k_begin __pad43__

Definition at line 4858 of file parse.y.

k_if __pad44__

Definition at line 4864 of file parse.y.

k_unless __pad45__

Definition at line 4870 of file parse.y.

k_while __pad46__

Definition at line 4876 of file parse.y.

k_until __pad47__

Definition at line 4882 of file parse.y.

k_case __pad48__

Definition at line 4888 of file parse.y.

k_for __pad49__

Definition at line 4894 of file parse.y.

compstmt __pad4__

Definition at line 2688 of file parse.y.

k_class __pad50__

Definition at line 4900 of file parse.y.

k_module __pad51__

Definition at line 4906 of file parse.y.

k_def __pad52__

Definition at line 4912 of file parse.y.

then __pad53__

Definition at line 4928 of file parse.y.

Definition at line 4949 of file parse.y.

if_tail __pad55__

Definition at line 4957 of file parse.y.

opt_else __pad56__

Definition at line 4963 of file parse.y.

Definition at line 4974 of file parse.y.

f_marg __pad58__

Definition at line 4982 of file parse.y.

Definition at line 4982 of file parse.y.

stmts __pad5__ = $1

Definition at line 2697 of file parse.y.

f_margs __pad60__

Definition at line 5006 of file parse.y.

block_param __pad61__

Definition at line 5006 of file parse.y.

opt_block_param __pad62__

Definition at line 5006 of file parse.y.

block_param_def __pad63__

Definition at line 5225 of file parse.y.

opt_bv_decl __pad64__

Definition at line 5253 of file parse.y.

Definition at line 5265 of file parse.y.

Definition at line 5285 of file parse.y.

lambda __pad67__

Definition at line 5295 of file parse.y.

f_larglist __pad68__

Definition at line 5316 of file parse.y.

lambda_body __pad69__

Definition at line 5334 of file parse.y.

stmt __pad6__

Definition at line 2730 of file parse.y.

do_block __pad70__

Definition at line 5344 of file parse.y.

block_call __pad71__ = ruby_sourceline

Definition at line 5350 of file parse.y.

method_call __pad72__

Definition at line 5401 of file parse.y.

brace_block __pad73__

Definition at line 5490 of file parse.y.

Definition at line 5496 of file parse.y.

opt_rescue __pad75__

Definition at line 5554 of file parse.y.

exc_list __pad76__

Definition at line 5573 of file parse.y.

exc_var __pad77__

Definition at line 5587 of file parse.y.

opt_ensure __pad78__

Definition at line 5599 of file parse.y.

literal __pad79__

Definition at line 5611 of file parse.y.

command_asgn __pad7__

Definition at line 3003 of file parse.y.

strings __pad80__

Definition at line 5622 of file parse.y.

string __pad81__

Definition at line 5629 of file parse.y.

Definition at line 5656 of file parse.y.

Definition at line 5678 of file parse.y.

Definition at line 5743 of file parse.y.

word_list __pad85__

Definition at line 5767 of file parse.y.

word __pad86__

Definition at line 5785 of file parse.y.

qword_list __pad87__

Definition at line 5822 of file parse.y.

string_contents __pad88__

Definition at line 5840 of file parse.y.

xstring_contents __pad89__

Definition at line 5858 of file parse.y.

expr __pad8__

Definition at line 3030 of file parse.y.

regexp_contents __pad90__

Definition at line 5876 of file parse.y.

string_content __pad91__

Definition at line 5913 of file parse.y.

string_dvar __pad92__

Definition at line 5956 of file parse.y.

symbol __pad93__

Definition at line 5983 of file parse.y.

sym __pad94__ = $2

Definition at line 5989 of file parse.y.

Definition at line 6004 of file parse.y.

numeric __pad96__

Definition at line 6030 of file parse.y.

user_variable __pad97__

Definition at line 6050 of file parse.y.

keyword_variable __pad98__

Definition at line 6059 of file parse.y.

var_ref __pad99__

Definition at line 6066 of file parse.y.

expr_value __pad9__

Definition at line 3030 of file parse.y.

Definition at line 4175 of file parse.y.

Definition at line 5265 of file parse.y.

case_body cases

Definition at line 5496 of file parse.y.

Definition at line 2594 of file parse.y.

Definition at line 3613 of file parse.y.

Definition at line 5006 of file parse.y.

f_margs f_marg_list

Definition at line 5006 of file parse.y.

Definition at line 6431 of file parse.y.

struct symbols global_symbols [static]

Referenced by evstr2dstr_gen(), and gettable_gen().

Definition at line 4918 of file parse.y.

Definition at line 5920 of file parse.y.

Definition at line 5919 of file parse.y.

lhs
Initial value:
 node_assign($1, $3)' command_asgn
                    {
                    
                        value_expr($3);
                        $$ = node_assign($1, $3);
                    
                    }

Definition at line 3014 of file parse.y.

Definition at line 5690 of file parse.y.

struct magic_comment magic_comments[] [static]
Initial value:

Definition at line 8189 of file parse.y.

Definition at line 3237 of file parse.y.

Definition at line 3373 of file parse.y.

const char* name

Definition at line 11327 of file parse.y.

nd_next = $2

Definition at line 6348 of file parse.y.

Referenced by dump_node(), reduce_nodes_gen(), and yyparse().

<'{lex_state=EXPR_BEG;}expr_valueterm{$$=$3;}|errorterm{yyerrok;$$=0;};f_arglist:'('f_argsrparen{$$=$2;lex_state=EXPR_BEG;command_start=TRUE;}|f_argsterm{$$=$1;lex_state=EXPR_BEG;command_start=TRUE;};f_args:f_arg','f_optarg','f_rest_argopt_f_block_arg{$$=new_args($1,$3,$5,0,$6);}|f_arg','f_optarg','f_rest_arg','f_argopt_f_block_arg{$$=new_args($1,$3,$5,$7,$8);}|f_arg','f_optargopt_f_block_arg{$$=new_args($1,$3,0,0,$4);}|f_arg','f_optarg','f_argopt_f_block_arg{$$=new_args($1,$3,0,$5,$6);}|f_arg','f_rest_argopt_f_block_arg{$$=new_args($1,0,$3,0,$4);}|f_arg','f_rest_arg','f_argopt_f_block_arg{$$=new_args($1,0,$3,$5,$6);}|f_argopt_f_block_arg{$$=new_args($1,0,0,0,$2);}|f_optarg','f_rest_argopt_f_block_arg{$$=new_args(0,$1,$3,0,$4);}|f_optarg','f_rest_arg','f_argopt_f_block_arg{$$=new_args(0,$1,$3,$5,$6);}|f_optargopt_f_block_arg{$$=new_args(0,$1,0,0,$2);}|f_optarg','f_argopt_f_block_arg{$$=new_args(0,$1,0,$3,$4);}|f_rest_argopt_f_block_arg{$$=new_args(0,0,$1,0,$2);}|f_rest_arg','f_argopt_f_block_arg{$$=new_args(0,0,$1,$3,$4);}|f_block_arg{$$=new_args(0,0,0,0,$1);}|{$$=new_args(0,0,0,0,0);};f_bad_arg:tCONSTANT{yyerror("formalargumentcannotbeaconstant");$$=0;}|tIVAR{yyerror("formalargumentcannotbeaninstancevariable");$$=0;}|tGVAR{yyerror("formalargumentcannotbeaglobalvariable");$$=0;}|tCVAR{yyerror("formalargumentcannotbeaclassvariable");$$=0;};f_norm_arg:f_bad_arg|tIDENTIFIER{formal_argument(get_id($1));$$=$1;};f_arg_item:f_norm_arg{arg_var(get_id($1));$$=NEW_ARGS_AUX($1,1);}|tLPARENf_margsrparen{IDtid=internal_id();arg_var(tid);if(dyna_in_block()){$2-> nd_value = NEW_DVAR(tid)

Definition at line 6342 of file parse.y.

Referenced by dump_node(), and yyparse().

NODE* node = $2

Definition at line 5689 of file parse.y.

Referenced by addrinfo_s_getaddrinfo(), compile_array_(), compile_tree(), cond0(), count_nodes(), defined_expr(), divide_look_behind_alternatives(), evstr2dstr_gen(), expand_case_fold_make_rem_string(), fixup_nodes(), get_head_value_node(), get_min_match_length(), iseq_compile_each(), iseq_s_compile_file(), iseq_set_arguments(), literal_concat_gen(), logop_gen(), match_at(), negate_lit(), new_args_gen(), new_evstr_gen(), newline_node(), node_new(), node_new_anychar(), node_new_backref(), node_new_call(), node_new_cclass(), node_new_cclass_by_codepoint_range(), node_new_ctype(), node_new_enclose(), node_new_enclose_memory(), node_new_list(), node_new_option(), node_new_quantifier(), node_new_str(), node_new_str_raw(), onig_node_new_alt(), onig_node_new_anchor(), optimize_node_left(), parse_branch(), parse_char_class(), parse_string(), parse_subexp(), parser_compile_string(), push_ensure_entry(), rb_getaddrinfo(), rb_iseq_compile_with_option(), rb_iterate(), rb_load_internal(), rb_parser_append_print(), rb_parser_compile_file(), rb_parser_while_loop(), rb_proc_arity(), rb_proc_get_iseq(), reduce_nodes_gen(), remove_begin(), ret_args_gen(), ruby_debug_print_node(), scan_env_set_mem_node(), splat_array(), syck_map_add_m(), syck_map_alloc(), syck_map_initialize(), syck_map_style_set(), syck_map_value_set(), syck_node_type_id_set(), syck_scalar_alloc(), syck_scalar_style_set(), syck_scalar_value_set(), syck_seq_add_m(), syck_seq_alloc(), syck_seq_initialize(), syck_seq_style_set(), syck_seq_value_set(), and yyparse().

Definition at line 5568 of file parse.y.

struct { ... } op_tbl[] [static]
Initial value:
 {
    "parser",
    {
        parser_mark,
        parser_free,
        parser_memsize,
    },
}

Definition at line 7075 of file parse.y.

word qwords

Definition at line 5785 of file parse.y.

string string1

Definition at line 5629 of file parse.y.

struct st_hash_type symhash [static]
Initial value:

Definition at line 11368 of file parse.y.

Definition at line 3553 of file parse.y.

trailer term

Definition at line 6639 of file parse.y.

Definition at line 11326 of file parse.y.

Definition at line 3623 of file parse.y.