Ruby
2.0.0p247(2013-06-27revision41674)
|
#include "ruby/ruby.h"
#include "ruby/st.h"
#include "ruby/encoding.h"
#include "internal.h"
#include "node.h"
#include "parse.h"
#include "id.h"
#include "regenc.h"
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include "probes.h"
#include "id.c"
#include "ruby/regex.h"
#include "ruby/util.h"
#include "lex.c"
Go to the source code of this file.
Data Structures | |
struct | magic_comment |
struct | reg_named_capture_assign_t |
struct | symbols |
Defines | |
#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 | 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 | 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 | yylval (*((YYSTYPE*)(parser->parser_yylval))) |
#define | nextc() parser_nextc(parser) |
#define | pushback(c) parser_pushback(parser, (c)) |
#define | newtok() parser_newtok(parser) |
#define | tokspace(n) parser_tokspace(parser, (n)) |
#define | tokadd(c) parser_tokadd(parser, (c)) |
#define | tok_hex(numlen) parser_tok_hex(parser, (numlen)) |
#define | read_escape(flags, e) parser_read_escape(parser, (flags), (e)) |
#define | tokadd_escape(e) parser_tokadd_escape(parser, (e)) |
#define | regx_options() parser_regx_options(parser) |
#define | tokadd_string(f, t, p, n, e) parser_tokadd_string(parser,(f),(t),(p),(n),(e)) |
#define | parse_string(n) parser_parse_string(parser,(n)) |
#define | tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc)) |
#define | here_document(n) parser_here_document(parser,(n)) |
#define | heredoc_identifier() parser_heredoc_identifier(parser) |
#define | heredoc_restore(n) parser_heredoc_restore(parser,(n)) |
#define | whole_match_p(e, l, i) parser_whole_match_p(parser,(e),(l),(i)) |
#define | set_yylval_str(x) (yylval.node = NEW_STR(x)) |
#define | set_yylval_num(x) (yylval.num = (x)) |
#define | set_yylval_id(x) (yylval.id = (x)) |
#define | set_yylval_name(x) (yylval.id = (x)) |
#define | set_yylval_literal(x) (yylval.node = NEW_LIT(x)) |
#define | set_yylval_node(x) (yylval.node = (x)) |
#define | yylval_id() (yylval.id) |
#define | ripper_flush(p) (void)(p) |
#define | SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128) |
#define | parser_encoding_name() (current_enc->name) |
#define | parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc) |
#define | parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc) |
#define | is_identchar(p, e, enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p))) |
#define | parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc)) |
#define | parser_isascii() ISASCII(*(lex_p-1)) |
#define | STR_FUNC_ESCAPE 0x01 |
#define | STR_FUNC_EXPAND 0x02 |
#define | STR_FUNC_REGEXP 0x04 |
#define | STR_FUNC_QWORDS 0x08 |
#define | STR_FUNC_SYMBOL 0x10 |
#define | STR_FUNC_INDENT 0x20 |
#define | lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend) |
#define | lex_eol_p() (lex_p >= lex_pend) |
#define | peek(c) peek_n((c), 0) |
#define | peek_n(c, n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n]) |
#define | was_bol() (lex_p == lex_pbeg + 1) |
#define | tokfix() (tokenbuf[tokidx]='\0') |
#define | tok() tokenbuf |
#define | toklen() tokidx |
#define | toklast() (tokidx>0?tokenbuf[tokidx-1]:0) |
#define | tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n)) |
#define | ESCAPE_CONTROL 1 |
#define | ESCAPE_META 2 |
#define | tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c)) |
#define | mixed_error(enc1, enc2) |
#define | mixed_escape(beg, enc1, enc2) |
#define | NEW_STRTERM(func, term, paren) rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0) |
#define | flush_string_content(enc) ((void)(enc)) |
#define | BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0) |
#define | SPECIAL_PUNCT(idx) |
#define | dispatch_heredoc_end() ((void)0) |
#define | arg_ambiguous() (arg_ambiguous_gen(parser), 1) |
#define | str_copy(_s, _p, _n) |
#define | IS_ARG() IS_lex_state(EXPR_ARG_ANY) |
#define | IS_END() IS_lex_state(EXPR_END_ANY) |
#define | IS_BEG() IS_lex_state(EXPR_BEG_ANY) |
#define | IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c)) |
#define | IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG()) |
#define | IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1)) |
#define | IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT) |
#define | ambiguous_operator(op, syn) |
#define | warn_balanced(op, syn) |
#define | no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0) |
#define | parser_warning(node, mesg) parser_warning(parser, (node), (mesg)) |
#define | parser_warn(node, mesg) parser_warn(parser, (node), (mesg)) |
#define | assignable_result(x) (x) |
#define | LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1)) |
#define | subnodes(n1, n2) |
#define | op_tbl_count numberof(op_tbl) |
#define | ENABLE_SELECTOR_NAMESPACE 0 |
#define | HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE)) |
#define | NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0) |
#define | ADD2HEAP(n, c, p) |
#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) | |
fcall | nd_set_line ($$, tokline) |
CMDARG_PUSH (1) | |
fixpos ($$, $2?$2:$5) | |
if (!node) | |
else | switch (nd_type(node)) |
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) |
static NODE * | yycompile (struct parser_params *parser, const char *f, int line) |
static rb_encoding * | must_be_ascii_compatible (VALUE s) |
static VALUE | lex_get_str (struct parser_params *parser, VALUE s) |
static VALUE | lex_getline (struct parser_params *parser) |
static NODE * | parser_compile_string (volatile VALUE vparser, const char *f, VALUE s, int line) |
NODE * | rb_compile_string (const char *f, VALUE s, int line) |
NODE * | rb_parser_compile_string (volatile VALUE vparser, const char *f, VALUE s, int line) |
NODE * | rb_compile_cstr (const char *f, const char *s, int len, int line) |
NODE * | rb_parser_compile_cstr (volatile VALUE vparser, const char *f, const char *s, int len, int line) |
static VALUE | lex_io_gets (struct parser_params *parser, VALUE io) |
NODE * | rb_compile_file (const char *f, VALUE file, int start) |
NODE * | rb_parser_compile_file (volatile VALUE vparser, const char *f, VALUE file, int start) |
static VALUE | parser_str_new (const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0) |
static int | parser_nextc (struct parser_params *parser) |
static void | parser_pushback (struct parser_params *parser, int c) |
static char * | parser_newtok (struct parser_params *parser) |
static char * | parser_tokspace (struct parser_params *parser, int n) |
static void | parser_tokadd (struct parser_params *parser, int c) |
static int | parser_tok_hex (struct parser_params *parser, size_t *numlen) |
static int | parser_tokadd_utf8 (struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal) |
static int | parser_read_escape (struct parser_params *parser, int flags, rb_encoding **encp) |
static int | parser_tokadd_escape (struct parser_params *parser, rb_encoding **encp) |
static void | dispose_string (VALUE str) |
static int | parser_tokadd_mbchar (struct parser_params *parser, int c) |
static int | simple_re_meta (int c) |
static int | is_global_name_punct (const char c) |
static int | parser_peek_variable_name (struct parser_params *parser) |
static int | parser_heredoc_identifier (struct parser_params *parser) |
static void | parser_heredoc_restore (struct parser_params *parser, NODE *here) |
static int | parser_whole_match_p (struct parser_params *parser, const char *eos, long len, int indent) |
static void | arg_ambiguous_gen (struct parser_params *parser) |
static 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) |
static enum node_type | nodetype (NODE *node) |
static 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 int | is_private_local_id (ID name) |
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 | 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 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, NODE *tail) |
static NODE * | new_args_tail_gen (struct parser_params *parser, NODE *k, ID kr, ID b) |
static NODE * | dsym_node_gen (struct parser_params *parser, NODE *node) |
static NODE * | new_op_assign_gen (struct parser_params *parser, NODE *lhs, ID op, NODE *rhs) |
static NODE * | new_attr_op_assign_gen (struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs) |
static NODE * | new_const_op_assign_gen (struct parser_params *parser, NODE *lhs, ID op, NODE *rhs) |
static 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) |
static int | rb_enc_symname_type (const char *name, long len, rb_encoding *enc) |
int | rb_enc_symname2_p (const char *name, long len, rb_encoding *enc) |
static int | rb_str_symname_type (VALUE name) |
static ID | register_symid (ID id, const char *name, long len, rb_encoding *enc) |
static ID | register_symid_str (ID id, VALUE str) |
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. | |
ID | rb_check_id_cstr (const char *ptr, long len, rb_encoding *enc) |
int | rb_is_const_name (VALUE name) |
int | rb_is_class_name (VALUE name) |
int | rb_is_global_name (VALUE name) |
int | rb_is_instance_name (VALUE name) |
int | rb_is_attrset_name (VALUE name) |
int | rb_is_local_name (VALUE name) |
int | rb_is_method_name (VALUE name) |
int | rb_is_junk_name (VALUE name) |
static void | parser_initialize (struct parser_params *parser) |
static void | parser_mark (void *ptr) |
static void | parser_free (void *ptr) |
static size_t | parser_memsize (const void *ptr) |
struct kwtable * | rb_reserved_word (const char *str, unsigned int len) |
static struct parser_params * | parser_new (void) |
VALUE | rb_parser_new (void) |
VALUE | rb_parser_end_seen_p (VALUE vparser) |
VALUE | rb_parser_encoding (VALUE vparser) |
VALUE | rb_parser_get_yydebug (VALUE self) |
VALUE | rb_parser_set_yydebug (VALUE self, VALUE flag) |
void * | rb_parser_malloc (struct parser_params *parser, size_t size) |
void * | rb_parser_calloc (struct parser_params *parser, size_t nelem, size_t size) |
void * | rb_parser_realloc (struct parser_params *parser, void *ptr, size_t size) |
void | rb_parser_free (struct parser_params *parser, void *ptr) |
Variables | |
top_compstmt | __pad0__ |
fixup_nodes & | deferred_nodes |
top_stmts | __pad1__ = $1 |
top_stmt | __pad2__ |
top_stmt | bodystmt = NEW_BEGIN(0) |
compstmt | __pad3__ |
stmts | __pad4__ = $1 |
stmt_or_begin | __pad5__ |
command_asgn | __pad6__ |
lhs | |
expr | __pad7__ |
expr_value | __pad8__ |
command_call | __pad9__ |
block_command | __pad10__ |
block_command | cmd_brace_block |
fcall | __pad11__ = ruby_sourceline |
command | __pad12__ |
nd_args = $2 | |
mlhs | __pad13__ |
mlhs_inner | __pad14__ |
mlhs_inner | mlhs_basic |
mlhs_item | __pad15__ |
mlhs_head | __pad16__ |
mlhs_post | __pad17__ |
mlhs_post | |
mlhs_node | __pad18__ |
lhs | __pad19__ |
cname | __pad20__ |
tCONSTANT | |
cpath | __pad21__ |
fname | __pad22__ |
fsym | __pad23__ = $1 |
fitem | __pad24__ |
dsym | |
undef_list | __pad25__ |
undef_list | |
op | __pad26__ |
reswords | __pad27__ |
arg | __pad28__ |
arg_value | __pad29__ |
aref_args | __pad30__ |
args | |
paren_args | __pad31__ |
opt_paren_args | __pad32__ |
opt_call_args | __pad33__ |
call_args | __pad34__ |
command_args | __pad35__ = NEW_LIST($1) |
block_arg | __pad36__ |
opt_block_arg | __pad37__ |
args | __pad38__ |
mrhs | __pad39__ |
primary | __pad40__ |
primary_value | __pad41__ |
k_begin | __pad42__ |
k_if | __pad43__ |
k_unless | __pad44__ |
k_while | __pad45__ |
k_until | __pad46__ |
k_case | __pad47__ |
k_for | __pad48__ |
k_class | __pad49__ |
k_module | __pad50__ |
k_def | __pad51__ |
< num > | k_end = ruby_sourceline |
then | __pad52__ |
do | __pad53__ |
if_tail | __pad54__ |
opt_else | __pad55__ |
for_var | __pad56__ |
f_marg | __pad57__ |
f_marg_list | __pad58__ |
f_marg_list | |
f_margs | __pad59__ |
block_args_tail | __pad60__ |
opt_block_args_tail | __pad61__ |
block_param | __pad62__ |
block_param | f_block_optarg |
opt_block_param | __pad63__ |
block_param_def | __pad64__ |
opt_bv_decl | __pad65__ |
opt_nl | |
bv_decls | __pad66__ |
bv_decls | bvar |
bvar | __pad67__ |
lambda | __pad68__ |
f_larglist | __pad69__ |
lambda_body | __pad70__ |
do_block | __pad71__ |
block_call | __pad72__ = ruby_sourceline |
method_call | __pad73__ |
brace_block | __pad74__ |
case_body | __pad75__ = ruby_sourceline |
case_body | cases |
opt_rescue | __pad76__ |
none | |
exc_list | __pad77__ |
exc_var | __pad78__ |
opt_ensure | __pad79__ |
literal | __pad80__ |
strings | __pad81__ |
string | __pad82__ |
string | string1 |
xstring | __pad83__ |
regexp | __pad84__ |
NODE * | node = $2 |
NODE * | list |
NODE * | prev |
words | __pad85__ = node |
word_list | __pad86__ |
word | __pad87__ |
word | symbols |
symbol_list | __pad88__ |
qwords | __pad89__ |
qsymbols | __pad90__ |
qword_list | __pad91__ |
qsym_list | __pad92__ |
string_contents | __pad93__ |
xstring_contents | __pad94__ |
regexp_contents | __pad95__ |
string_content | __pad96__ |
lex_strterm = 0 | |
lex_state = EXPR_BEG | |
string_dvar | __pad97__ |
symbol | __pad98__ |
sym | __pad99__ = $2 |
dsym | __pad100__ |
numeric | __pad101__ = dsym_node($2) |
user_variable | __pad102__ |
keyword_variable | __pad103__ |
var_ref | __pad104__ |
var_lhs | __pad105__ |
backref | __pad106__ |
superclass | __pad107__ |
<'{lex_state=EXPR_BEG;command_start=TRUE;}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;};args_tail:f_kwarg','f_kwrestopt_f_block_arg{$$=new_args_tail($1, $3, $4);}|f_kwargopt_f_block_arg{$$=new_args_tail($1, Qnone, $2);}|f_kwrestopt_f_block_arg{$$=new_args_tail(Qnone, $1, $2);}|f_block_arg{$$=new_args_tail(Qnone, Qnone, $1);};opt_args_tail:','args_tail{$$=$2;}|{$$=new_args_tail(Qnone, Qnone, Qnone);};f_args:f_arg','f_optarg','f_rest_argopt_args_tail{$$=new_args($1, $3, $5, Qnone, $6);}|f_arg','f_optarg','f_rest_arg','f_argopt_args_tail{$$=new_args($1, $3, $5, $7, $8);}|f_arg','f_optargopt_args_tail{$$=new_args($1, $3, Qnone, Qnone, $4);}|f_arg','f_optarg','f_argopt_args_tail{$$=new_args($1, $3, Qnone, $5, $6);}|f_arg','f_rest_argopt_args_tail{$$=new_args($1, Qnone, $3, Qnone, $4);}|f_arg','f_rest_arg','f_argopt_args_tail{$$=new_args($1, Qnone, $3, $5, $6);}|f_argopt_args_tail{$$=new_args($1, Qnone, Qnone, Qnone, $2);}|f_optarg','f_rest_argopt_args_tail{$$=new_args(Qnone, $1, $3, Qnone, $4);}|f_optarg','f_rest_arg','f_argopt_args_tail{$$=new_args(Qnone, $1, $3, $5, $6);}|f_optargopt_args_tail{$$=new_args(Qnone, $1, Qnone, Qnone, $2);}|f_optarg','f_argopt_args_tail{$$=new_args(Qnone, $1, Qnone, $3, $4);}|f_rest_argopt_args_tail{$$=new_args(Qnone, Qnone, $1, Qnone, $2);}|f_rest_arg','f_argopt_args_tail{$$=new_args(Qnone, Qnone, $1, $3, $4);}|args_tail{$$=new_args(Qnone, Qnone, Qnone, Qnone, $1);}|{$$=new_args_tail(Qnone, Qnone, Qnone);$$=new_args(Qnone, Qnone, Qnone, Qnone,$$);};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 | __pad108__ |
f_kw | __pad109__ |
f_block_kw | __pad110__ = assignable($1, $2) NEW_KW_ARG(0, $$) |
f_block_kwarg | __pad111__ = assignable($1, $2) NEW_KW_ARG(0, $$) |
f_block_kwarg | |
f_kwarg | __pad112__ |
f_kwarg | |
kwrest_mark | __pad113__ |
f_kwrest | __pad114__ |
f_opt | __pad115__ = $2 |
f_block_opt | __pad116__ = assignable($1, $3) NEW_OPT_ARG(0, $$) |
f_block_optarg | __pad117__ = assignable($1, $3) NEW_OPT_ARG(0, $$) |
f_optarg | __pad118__ |
f_optarg | |
restarg_mark | __pad119__ |
f_rest_arg | __pad120__ |
blkarg_mark | __pad121__ = $2 |
f_block_arg | __pad122__ |
opt_f_block_arg | __pad123__ = $2 |
singleton | __pad124__ |
assoc_list | __pad125__ |
assocs | __pad126__ |
assoc | __pad127__ |
operation | __pad128__ |
operation2 | __pad129__ |
operation3 | __pad130__ |
dot_or_colon | __pad131__ |
opt_terms | __pad132__ |
opt_nl | __pad133__ |
rparen | __pad134__ |
rbracket | __pad135__ |
trailer | __pad136__ |
trailer | term |
terms | __pad137__ |
none | __pad138__ |
static const rb_data_type_t | parser_data_type |
RUBY_FUNC_EXPORTED const unsigned int | ruby_global_name_punct_bits [(0x7e-0x20+31)/32] |
static struct magic_comment | magic_comments [] |
struct { | |
ID token | |
const char * name | |
} | op_tbl [] |
static struct symbols | global_symbols |
static struct st_hash_type | symhash |
#define ADD2HEAP | ( | n, | |
c, | |||
p | |||
) |
#define ambiguous_operator | ( | op, | |
syn | |||
) |
#define arg_ambiguous | ( | ) | (arg_ambiguous_gen(parser), 1) |
#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 BIT | ( | c, | |
idx | |||
) | (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0) |
#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 brace_nest (parser->parser_brace_nest) |
#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 class_nest (parser->parser_class_nest) |
#define CMDARG_LEXPOP | ( | ) | BITSTACK_LEXPOP(cmdarg_stack) |
#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_LEXPOP | ( | ) | BITSTACK_LEXPOP(cond_stack) |
#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 DEF_EXPR | ( | n | ) | EXPR_##n = (1 << EXPR_##n##_bit) |
#define deferred_nodes (parser->parser_deferred_nodes) |
#define dispatch_heredoc_end | ( | ) | ((void)0) |
#define dsym_node | ( | node | ) | dsym_node_gen(parser, (node)) |
#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 ENABLE_SELECTOR_NAMESPACE 0 |
#define ENC_SINGLE | ( | cr | ) | ((cr)==ENC_CODERANGE_7BIT) |
#define ESCAPE_CONTROL 1 |
#define ESCAPE_META 2 |
#define evstr2dstr | ( | n | ) | evstr2dstr_gen(parser,(n)) |
#define flush_string_content | ( | enc | ) | ((void)(enc)) |
#define formal_argument | ( | id | ) | formal_argument_gen(parser, (id)) |
#define gettable | ( | id | ) | gettable_gen(parser,(id)) |
#define here_document | ( | n | ) | parser_here_document(parser,(n)) |
#define heredoc_end (parser->parser_heredoc_end) |
#define heredoc_identifier | ( | ) | parser_heredoc_identifier(parser) |
#define heredoc_restore | ( | n | ) | parser_heredoc_restore(parser,(n)) |
#define id_type | ( | id | ) | (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1) |
#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_AFTER_OPERATOR | ( | ) | IS_lex_state(EXPR_FNAME | EXPR_DOT) |
#define IS_ARG | ( | ) | IS_lex_state(EXPR_ARG_ANY) |
#define is_asgn_or_id | ( | id | ) |
((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) |
#define IS_BEG | ( | ) | IS_lex_state(EXPR_BEG_ANY) |
#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 | ( | ) | IS_lex_state(EXPR_END_ANY) |
#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))) |
#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 | ( | ) | ((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_lex_state | ( | ls | ) | IS_lex_state_for(lex_state, (ls)) |
#define IS_lex_state_for | ( | x, | |
ls | |||
) | ((x) & (ls)) |
#define is_local_id | ( | id | ) | (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL) |
#define is_notop_id | ( | id | ) | ((id)>tLAST_OP_ID) |
#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) |
#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 lpar_beg (parser->parser_lpar_beg) |
#define lvar_defined | ( | id | ) | lvar_defined_gen(parser, (id)) |
#define lvtbl (parser->parser_lvtbl) |
#define match_op | ( | node1, | |
node2 | |||
) | match_op_gen(parser, (node1), (node2)) |
#define mixed_error | ( | enc1, | |
enc2 | |||
) |
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 | |||
) |
do { \ const char *pos = lex_p; \ lex_p = (beg); \ mixed_error((enc1), (enc2)); \ lex_p = pos; \ } while (0)
#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 new_attr_op_assign | ( | lhs, | |
type, | |||
attr, | |||
op, | |||
rhs | |||
) | new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs)) |
#define new_bv | ( | id | ) | new_bv_gen(parser, (id)) |
#define new_const_op_assign | ( | lhs, | |
op, | |||
rhs | |||
) | new_const_op_assign_gen(parser, (lhs), (op), (rhs)) |
#define NEW_ERRINFO | ( | ) | NEW_NODE(NODE_ERRINFO,0,0,0) |
#define new_evstr | ( | n | ) | new_evstr_gen(parser,(n)) |
#define new_op_assign | ( | lhs, | |
op, | |||
rhs | |||
) | new_op_assign_gen(parser, (lhs), (op), (rhs)) |
#define NEW_STRTERM | ( | func, | |
term, | |||
paren | |||
) | rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0) |
#define new_yield | ( | node | ) | new_yield_gen(parser, (node)) |
#define NEWHEAP | ( | ) | rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0) |
#define newtok | ( | ) | parser_newtok(parser) |
#define nextc | ( | ) | parser_nextc(parser) |
#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 op_tbl_count numberof(op_tbl) |
#define paren_nest (parser->parser_paren_nest) |
#define parse_string | ( | n | ) | parser_parse_string(parser,(n)) |
#define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc, |
#define PARSER_DEBUG 0 |
#define parser_encoding_name | ( | ) | (current_enc->name) |
#define parser_is_identchar | ( | ) | (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc)) |
#define parser_isascii | ( | ) | ISASCII(*(lex_p-1)) |
#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 parser_warn | ( | node, | |
mesg | |||
) | parser_warn(parser, (node), (mesg)) |
#define parser_warning | ( | node, | |
mesg | |||
) | parser_warning(parser, (node), (mesg)) |
#define pushback | ( | c | ) | parser_pushback(parser, (c)) |
#define Qnone 0 |
#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_warn4S | ( | file, | |
line, | |||
fmt, | |||
a | |||
) | rb_compile_warn((file), (line), (fmt), (a)) |
#define rb_warnI | ( | 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_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_NONE | ( | o | ) | ((o)&RE_OPTION_ARG_ENCODING_NONE) |
#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)) |
#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 reg_named_capture_assign | ( | regexp, | |
match | |||
) | reg_named_capture_assign_gen(parser,(regexp),(match)) |
#define REGISTER_SYMID | ( | id, | |
name | |||
) | register_symid((id), (name), strlen(name), enc) |
#define regx_options | ( | ) | parser_regx_options(parser) |
#define ret_args | ( | node | ) | ret_args_gen(parser, (node)) |
#define ripper_flush | ( | p | ) | (void)(p) |
#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)) |
#define set_yylval_literal | ( | x | ) | (yylval.node = NEW_LIT(x)) |
#define set_yylval_name | ( | x | ) | (yylval.id = (x)) |
#define set_yylval_node | ( | x | ) | (yylval.node = (x)) |
#define set_yylval_num | ( | x | ) | (yylval.num = (x)) |
#define set_yylval_str | ( | x | ) | (yylval.node = NEW_STR(x)) |
#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) |
#define SPECIAL_PUNCT | ( | 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('+', idx) | \ BIT('0', idx))
#define str_copy | ( | _s, | |
_p, | |||
_n | |||
) |
((_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 |
#define STR_FUNC_EXPAND 0x02 |
#define STR_FUNC_INDENT 0x20 |
#define STR_FUNC_QWORDS 0x08 |
#define STR_FUNC_REGEXP 0x04 |
#define STR_FUNC_SYMBOL 0x10 |
#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 subnodes | ( | n1, | |
n2 | |||
) |
#define tok_hex | ( | numlen | ) | parser_tok_hex(parser, (numlen)) |
#define TOK_INTERN | ( | mb | ) | rb_intern3(tok(), toklen(), current_enc) |
#define tokadd | ( | c | ) | parser_tokadd(parser, (c)) |
#define tokadd_escape | ( | e | ) | parser_tokadd_escape(parser, (e)) |
#define tokadd_mbchar | ( | c | ) | parser_tokadd_mbchar(parser, (c)) |
#define tokadd_string | ( | f, | |
t, | |||
p, | |||
n, | |||
e | |||
) | parser_tokadd_string(parser,(f),(t),(p),(n),(e)) |
#define tokaddmbc | ( | c, | |
enc | |||
) | parser_tokaddmbc(parser, (c), (enc)) |
#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 tokidx (parser->parser_tokidx) |
#define tokline (parser->parser_tokline) |
#define toksiz (parser->parser_toksiz) |
#define tokspace | ( | n | ) | parser_tokspace(parser, (n)) |
#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 | |||
) |
((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)))
#define whole_match_p | ( | e, | |
l, | |||
i | |||
) | parser_whole_match_p(parser,(e),(l),(i)) |
#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 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 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) |
enum string_type |
static void arg_ambiguous_gen | ( | struct parser_params * | parser | ) | [static] |
static NODE* arg_append_gen | ( | struct parser_params * | parser, |
NODE * | node1, | ||
NODE * | node2 | ||
) | [static] |
static NODE* arg_blk_pass | ( | NODE * | node1, |
NODE * | node2 | ||
) | [static] |
static NODE* arg_concat_gen | ( | struct parser_params * | parser, |
NODE * | node1, | ||
NODE * | node2 | ||
) | [static] |
arg_var | ( | shadowing_lvar(get_id($2)) | ) |
static int arg_var_gen | ( | struct parser_params * | parser, |
ID | id | ||
) | [static] |
static NODE* aryset_gen | ( | struct parser_params * | parser, |
NODE * | recv, | ||
NODE * | idx | ||
) | [static] |
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] |
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] |
static NODE* call_bin_op_gen | ( | struct parser_params * | parser, |
NODE * | recv, | ||
ID | id, | ||
NODE * | arg1 | ||
) | [static] |
static NODE* call_uni_op_gen | ( | struct parser_params * | parser, |
NODE * | recv, | ||
ID | id | ||
) | [static] |
CMDARG_PUSH | ( | 1 | ) |
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] |
static VALUE debug_lines | ( | const char * | f | ) | [static] |
static void dispose_string | ( | VALUE | str | ) | [static] |
static NODE* dsym_node_gen | ( | struct parser_params * | parser, |
NODE * | node | ||
) | [static] |
static int dvar_curr_gen | ( | struct parser_params * | parser, |
ID | id | ||
) | [static] |
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] |
static void dyna_pop_1 | ( | struct parser_params * | parser | ) | [static] |
static void dyna_pop_gen | ( | struct parser_params * | parser, |
const struct vtable * | lvargs | ||
) | [static] |
static struct vtable* dyna_push_gen | ( | struct parser_params * | parser | ) | [static, read] |
static int e_option_supplied | ( | struct parser_params * | parser | ) | [static] |
static NODE* evstr2dstr_gen | ( | struct parser_params * | parser, |
NODE * | node | ||
) | [static] |
fixpos | ( | $$ | , |
$ | 1 | ||
) | = $2 |
fixpos | ( | $$ | , |
$2?$2:$ | 5 | ||
) |
static void fixup_nodes | ( | NODE ** | rootnode | ) | [static] |
static ID formal_argument_gen | ( | struct parser_params * | parser, |
ID | lhs | ||
) | [static] |
static NODE* gettable_gen | ( | struct parser_params * | parser, |
ID | id | ||
) | [static] |
if | ( | $ | 2 | ) |
Definition at line 9114 of file parse.y.
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 assign_heap_slot(), concat_left_node_opt_info(), gc_mark_children(), getaddrinfo(), getnameinfo(), io_reopen(), iseq_insns_unification(), iseq_peephole_optimize(), name_add(), names_clear(), onig_foreach_name(), onig_memsize(), onig_names_free(), onig_number_of_names(), onig_renumber_name_table(), parse_char_class(), parse_enclose(), parse_exp(), pruby_eval(), rb_iseq_line_trace_each(), rb_thread_call_with_gvl(), rb_threadptr_execute_interrupts(), rb_w32_select_with_thread(), ruby__sfvextra(), set_optimize_map_info(), vm_callee_setup_arg_complex(), VpSqrt(), yaml_emitter_write_block_scalar_hints(), yaml_emitter_write_indent(), yaml_parser_scan_block_scalar_breaks(), and zstream_detach_buffer().
else if | ( | ! | dyna_in_block)&&local_id($2 | ) |
static ID intern_str | ( | VALUE | str | ) | [static] |
static ID internal_id_gen | ( | struct parser_params * | parser | ) | [static] |
static int is_global_name_punct | ( | const char | c | ) | [inline, static] |
static int is_private_local_id | ( | ID | name | ) | [static] |
static int is_special_global_name | ( | const char * | m, |
const char * | e, | ||
rb_encoding * | enc | ||
) | [static] |
static int is_static_content | ( | NODE * | node | ) | [static] |
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] |
static NODE* list_append_gen | ( | struct parser_params * | parser, |
NODE * | list, | ||
NODE * | item | ||
) | [static] |
static NODE* list_concat_gen | ( | struct parser_params * | parser, |
NODE * | head, | ||
NODE * | tail | ||
) | [static] |
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] |
static int local_id_gen | ( | struct parser_params * | parser, |
ID | id | ||
) | [static] |
static void local_pop_gen | ( | struct parser_params * | parser | ) | [static] |
static void local_push_gen | ( | struct parser_params * | parser, |
int | inherit_dvars | ||
) | [static] |
static ID* local_tbl_gen | ( | struct parser_params * | parser | ) | [static] |
static int local_var_gen | ( | struct parser_params * | parser, |
ID | id | ||
) | [static] |
static int lvar_defined_gen | ( | struct parser_params * | parser, |
ID | id | ||
) | [static] |
static void magic_comment_encoding | ( | struct parser_params * | parser, |
const char * | name, | ||
const char * | val | ||
) | [static] |
static const char* magic_comment_marker | ( | const char * | str, |
long | len | ||
) | [static] |
static NODE* match_op_gen | ( | struct parser_params * | parser, |
NODE * | node1, | ||
NODE * | node2 | ||
) | [static] |
static rb_encoding* must_be_ascii_compatible | ( | VALUE | s | ) | [static] |
fcall nd_set_line | ( | $$ | , |
tokline | |||
) |
Referenced by fixpos(), node_newnode(), parser_heredoc_identifier(), and yyparse().
static NODE* negate_lit | ( | NODE * | node | ) | [static] |
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] |
static void new_bv_gen | ( | struct parser_params * | parser, |
ID | name | ||
) | [static] |
static NODE* new_const_op_assign_gen | ( | struct parser_params * | parser, |
NODE * | lhs, | ||
ID | op, | ||
NODE * | rhs | ||
) | [static] |
static NODE* new_evstr_gen | ( | struct parser_params * | parser, |
NODE * | node | ||
) | [static] |
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] |
static NODE* newline_node | ( | NODE * | node | ) | [static] |
static void no_blockarg | ( | struct parser_params * | parser, |
NODE * | node | ||
) | [static] |
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] |
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] |
static void parser_free | ( | void * | ptr | ) | [static] |
static int parser_here_document | ( | struct parser_params * | parser, |
NODE * | here | ||
) | [static] |
static int parser_heredoc_identifier | ( | struct parser_params * | parser | ) | [static] |
static void parser_heredoc_restore | ( | struct parser_params * | parser, |
NODE * | here | ||
) | [static] |
static void parser_initialize | ( | struct parser_params * | parser | ) | [static] |
static int parser_magic_comment | ( | struct parser_params * | parser, |
const char * | str, | ||
long | len | ||
) | [static] |
static void parser_mark | ( | void * | ptr | ) | [static] |
static size_t parser_memsize | ( | const void * | ptr | ) | [static] |
static struct parser_params* parser_new | ( | void | ) | [static, read] |
static char* parser_newtok | ( | struct parser_params * | parser | ) | [static] |
static int parser_nextc | ( | struct parser_params * | parser | ) | [inline, static] |
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] |
static int parser_read_escape | ( | struct parser_params * | parser, |
int | flags, | ||
rb_encoding ** | encp | ||
) | [static] |
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] |
static void parser_tokadd | ( | struct parser_params * | parser, |
int | c | ||
) | [static] |
static int parser_tokadd_escape | ( | struct parser_params * | parser, |
rb_encoding ** | encp | ||
) | [static] |
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] |
static void parser_tokaddmbc | ( | struct parser_params * | parser, |
int | c, | ||
rb_encoding * | enc | ||
) | [static] |
static char* parser_tokspace | ( | struct parser_params * | parser, |
int | n | ||
) | [static] |
static void parser_warn | ( | struct parser_params * | parser, |
NODE * | node, | ||
const char * | mesg | ||
) | [static] |
static void parser_warning | ( | struct parser_params * | parser, |
NODE * | node, | ||
const char * | mesg | ||
) | [static] |
static int parser_whole_match_p | ( | struct parser_params * | parser, |
const char * | eos, | ||
long | len, | ||
int | indent | ||
) | [static] |
static int parser_yyerror | ( | struct parser_params * | parser, |
const char * | msg | ||
) | [static] |
static int parser_yylex | ( | struct parser_params * | parser | ) | [static] |
static NODE* range_op | ( | struct parser_params * | parser, |
NODE * | node | ||
) | [static] |
static void rb_backref_error_gen | ( | struct parser_params * | parser, |
NODE * | node | ||
) | [static] |
ID rb_check_id | ( | volatile VALUE * | namep | ) |
Returns ID for the given name if it is interned already, or 0.
namep | the pointer to the name object |
namep
must be a Symbol or a String, or possible to convert with to_str method. namep
is a Symbol or a String if non-zero value is returned, or is a String if 0 is returned. Definition at line 18672 of file parse.y.
References RString::as, RString::basic, RBasic::flags, global_symbols, RString::heap, id, RBasic::klass, name, NIL_P, OBJ_FREEZE, rb_check_string_type(), rb_cString, rb_enc_copy(), rb_eTypeError, RB_GC_GUARD, rb_id_attrset(), rb_inspect(), rb_is_attrset_name(), rb_raise(), RB_TYPE_P, RSTRING_LEN, RSTRING_NOEMBED, RSTRING_PTR, st_lookup(), SYM2ID, sym_check_asciionly(), symbols::sym_id, SYMBOL_P, and T_STRING.
ID rb_check_id_cstr | ( | const char * | ptr, |
long | len, | ||
rb_encoding * | enc | ||
) |
Definition at line 18719 of file parse.y.
References RString::as, RString::basic, RBasic::flags, global_symbols, RString::heap, id, RBasic::klass, RString::len, rb_cString, rb_enc_associate(), rb_id_attrset(), rb_is_attrset_name(), RSTRING_NOEMBED, st_lookup(), sym_check_asciionly(), symbols::sym_id, and T_STRING.
NODE* rb_compile_cstr | ( | const char * | f, |
const char * | s, | ||
int | len, | ||
int | line | ||
) |
Definition at line 13614 of file parse.y.
References parser_compile_string(), rb_parser_new(), and rb_str_new().
NODE* rb_compile_file | ( | const char * | f, |
VALUE | file, | ||
int | start | ||
) |
Definition at line 13634 of file parse.y.
References rb_parser_compile_file(), and rb_parser_new().
NODE* rb_compile_string | ( | const char * | f, |
VALUE | s, | ||
int | line | ||
) |
Definition at line 13600 of file parse.y.
References must_be_ascii_compatible(), parser_compile_string(), and rb_parser_new().
int rb_enc_symname2_p | ( | const char * | name, |
long | len, | ||
rb_encoding * | enc | ||
) |
Definition at line 18314 of file parse.y.
References rb_enc_symname_type().
int rb_enc_symname_p | ( | const char * | name, |
rb_encoding * | enc | ||
) |
Definition at line 18213 of file parse.y.
References rb_enc_symname2_p(), and strlen().
static int rb_enc_symname_type | ( | const char * | name, |
long | len, | ||
rb_encoding * | enc | ||
) | [static] |
void rb_gc_mark_parser | ( | void | ) |
void rb_gc_mark_symbols | ( | void | ) |
Definition at line 18163 of file parse.y.
References global_symbols, symbols::id_str, numberof, symbols::op_sym, rb_gc_mark_locations, and rb_mark_tbl().
const char* rb_id2name | ( | ID | id | ) |
Definition at line 18578 of file parse.y.
References rb_id2str(), and RSTRING_PTR.
Definition at line 18517 of file parse.y.
References global_symbols, ID_CONST, ID_LOCAL, symbols::id_str, is_attrset_id, is_local_id, OBJ_FREEZE, symbols::op_sym, op_tbl, op_tbl_count, rb_cString, rb_id2str(), rb_intern_str, rb_ispunct(), rb_str_cat(), rb_str_dup(), rb_usascii_str_new(), rb_usascii_str_new2(), RBASIC, st_lookup(), tLAST_TOKEN, and token.
ID rb_id_attrset | ( | ID | id | ) |
Definition at line 16836 of file parse.y.
References id, and ID_ATTRSET.
Definition at line 18501 of file parse.y.
References rb_intern, rb_intern2(), and strlen().
ID rb_intern2 | ( | const char * | name, |
long | len | ||
) |
Definition at line 18494 of file parse.y.
References rb_intern3(), and rb_usascii_encoding().
ID rb_intern3 | ( | const char * | name, |
long | len, | ||
rb_encoding * | enc | ||
) |
Definition at line 18366 of file parse.y.
References RString::as, RString::basic, RBasic::flags, global_symbols, RString::heap, intern_str(), RBasic::klass, RString::len, OBJ_FREEZE, rb_cString, rb_enc_associate(), rb_enc_str_new(), RSTRING_NOEMBED, st_lookup(), symbols::sym_id, and T_STRING.
ID rb_intern_str | ( | VALUE | str | ) |
Definition at line 18507 of file parse.y.
References global_symbols, id, intern_str(), rb_str_dup(), st_lookup(), and symbols::sym_id.
int rb_is_attrset_id | ( | ID | id | ) |
Definition at line 18643 of file parse.y.
References is_attrset_id.
int rb_is_attrset_name | ( | VALUE | name | ) |
Definition at line 18771 of file parse.y.
References ID_ATTRSET, and rb_str_symname_type().
int rb_is_class_id | ( | ID | id | ) |
Definition at line 18625 of file parse.y.
References is_class_id.
int rb_is_class_name | ( | VALUE | name | ) |
Definition at line 18753 of file parse.y.
References ID_CLASS, and rb_str_symname_type().
int rb_is_const_id | ( | ID | id | ) |
Definition at line 18619 of file parse.y.
References is_const_id.
int rb_is_const_name | ( | VALUE | name | ) |
Definition at line 18747 of file parse.y.
References ID_CONST, and rb_str_symname_type().
int rb_is_global_id | ( | ID | id | ) |
Definition at line 18631 of file parse.y.
References is_global_id.
int rb_is_global_name | ( | VALUE | name | ) |
Definition at line 18759 of file parse.y.
References ID_GLOBAL, and rb_str_symname_type().
int rb_is_instance_id | ( | ID | id | ) |
Definition at line 18637 of file parse.y.
References is_instance_id.
int rb_is_instance_name | ( | VALUE | name | ) |
Definition at line 18765 of file parse.y.
References ID_INSTANCE, and rb_str_symname_type().
int rb_is_junk_id | ( | ID | id | ) |
Definition at line 18655 of file parse.y.
References is_junk_id.
int rb_is_junk_name | ( | VALUE | name | ) |
Definition at line 18793 of file parse.y.
References rb_str_symname_type().
int rb_is_local_id | ( | ID | id | ) |
Definition at line 18649 of file parse.y.
References is_local_id.
int rb_is_local_name | ( | VALUE | name | ) |
Definition at line 18777 of file parse.y.
References ID_LOCAL, and rb_str_symname_type().
int rb_is_method_name | ( | VALUE | name | ) |
Definition at line 18783 of file parse.y.
References FALSE, ID_ATTRSET, ID_JUNK, ID_LOCAL, rb_str_symname_type(), and TRUE.
NODE* rb_parser_append_print | ( | VALUE | vparser, |
NODE * | node | ||
) |
Definition at line 17995 of file parse.y.
References block_append, nd_type, NEW_ARRAY, NEW_FCALL, NEW_GVAR, node, NODE_PRELUDE, rb_intern, and TypedData_Get_Struct.
void* rb_parser_calloc | ( | struct parser_params * | parser, |
size_t | nelem, | ||
size_t | size | ||
) |
NODE* rb_parser_compile_cstr | ( | volatile VALUE | vparser, |
const char * | f, | ||
const char * | s, | ||
int | len, | ||
int | line | ||
) |
Definition at line 13621 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 | ||
) |
Definition at line 13642 of file parse.y.
References compile_for_eval, lex_gets, lex_input, lex_io_gets(), lex_p, lex_pbeg, lex_pend, node, RB_GC_GUARD, rb_parse_in_eval(), TypedData_Get_Struct, and yycompile().
NODE* rb_parser_compile_string | ( | volatile VALUE | vparser, |
const char * | f, | ||
VALUE | s, | ||
int | line | ||
) |
Definition at line 13607 of file parse.y.
References must_be_ascii_compatible(), and parser_compile_string().
VALUE rb_parser_encoding | ( | VALUE | vparser | ) |
Definition at line 18983 of file parse.y.
References current_enc, rb_enc_from_encoding(), and TypedData_Get_Struct.
VALUE rb_parser_end_seen_p | ( | VALUE | vparser | ) |
Definition at line 18968 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 19069 of file parse.y.
References parser_params::heap, RNode::node, NULL, prev, rb_gc_force_recycle(), RNode::u2, and xfree().
VALUE rb_parser_get_yydebug | ( | VALUE | self | ) |
Definition at line 18998 of file parse.y.
References Qfalse, Qtrue, and TypedData_Get_Struct.
void* rb_parser_malloc | ( | struct parser_params * | parser, |
size_t | size | ||
) |
VALUE rb_parser_new | ( | void | ) |
Definition at line 18954 of file parse.y.
References parser_new(), and TypedData_Wrap_Struct.
void* rb_parser_realloc | ( | struct parser_params * | parser, |
void * | ptr, | ||
size_t | size | ||
) |
Definition at line 19049 of file parse.y.
References ADD2HEAP, RNode::cnt, cnt, parser_params::heap, HEAPCNT, NEWHEAP, RNode::node, NULL, RNode::u1, RNode::u2, RNode::u3, and xrealloc.
VALUE rb_parser_set_yydebug | ( | VALUE | self, |
VALUE | flag | ||
) |
Definition at line 19013 of file parse.y.
References RTEST, and TypedData_Get_Struct.
NODE* rb_parser_while_loop | ( | VALUE | vparser, |
NODE * | node, | ||
int | chop, | ||
int | split | ||
) |
Definition at line 18027 of file parse.y.
References block_append, nd_type, NEW_CALL, NEW_GASGN, NEW_GVAR, NEW_OPT_N, node, NODE_PRELUDE, rb_intern, and TypedData_Get_Struct.
struct kwtable* rb_reserved_word | ( | const char * | str, |
unsigned int | len | ||
) | [read] |
Definition at line 18937 of file parse.y.
References reserved_word().
static int rb_str_symname_type | ( | VALUE | name | ) | [static] |
VALUE rb_sym_all_symbols | ( | void | ) |
Definition at line 18610 of file parse.y.
References RString::ary, global_symbols, st_table::num_entries, rb_ary_new2(), st_foreach(), symbols::sym_id, and symbols_i().
int rb_symname_p | ( | const char * | name | ) |
Definition at line 18207 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] |
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 ID register_symid | ( | ID | id, |
const char * | name, | ||
long | len, | ||
rb_encoding * | enc | ||
) | [static] |
static ID register_symid_str | ( | ID | id, |
VALUE | str | ||
) | [static] |
static NODE* remove_begin | ( | NODE * | node | ) | [static] |
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] |
static int simple_re_meta | ( | int | c | ) | [inline, static] |
static NODE* splat_array | ( | NODE * | node | ) | [static] |
static int sym_check_asciionly | ( | VALUE | str | ) | [static] |
static int token_info_get_column | ( | struct parser_params * | parser, |
const char * | token | ||
) | [static] |
static int token_info_has_nonspaces | ( | struct parser_params * | parser, |
const char * | token | ||
) | [static] |
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] |
static ID* vtable_tblcpy | ( | ID * | buf, |
const struct vtable * | src | ||
) | [static] |
static void warn_unless_e_option | ( | struct parser_params * | parser, |
NODE * | node, | ||
const char * | str | ||
) | [static] |
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] |
static NODE* yycompile | ( | struct parser_params * | parser, |
const char * | f, | ||
int | line | ||
) | [static] |
static VALUE yycompile0 | ( | VALUE | arg | ) | [static] |
numeric __pad101__ = dsym_node($2) |
user_variable __pad102__ |
keyword_variable __pad103__ |
var_ref __pad104__ |
var_lhs __pad105__ |
backref __pad106__ |
superclass __pad107__ |
f_arg __pad108__ |
f_kw __pad109__ |
f_block_kw __pad110__ = assignable($1, $2) NEW_KW_ARG(0, $$) |
f_block_kwarg __pad111__ = assignable($1, $2) NEW_KW_ARG(0, $$) |
kwrest_mark __pad113__ |
f_kwrest __pad114__ |
f_opt __pad115__ = $2 |
f_block_opt __pad116__ = assignable($1, $3) NEW_OPT_ARG(0, $$) |
f_block_optarg __pad117__ = assignable($1, $3) NEW_OPT_ARG(0, $$) |
restarg_mark __pad119__ |
fcall __pad11__ = ruby_sourceline |
f_rest_arg __pad120__ |
blkarg_mark __pad121__ = $2 |
f_block_arg __pad122__ |
opt_f_block_arg __pad123__ = $2 |
singleton __pad124__ |
assoc_list __pad125__ |
assocs __pad126__ |
assoc __pad127__ |
operation __pad128__ |
operation2 __pad129__ |
operation3 __pad130__ |
dot_or_colon __pad131__ |
opt_terms __pad132__ |
rparen __pad134__ |
rbracket __pad135__ |
trailer __pad136__ |
terms __pad137__ |
block_call __pad72__ = ruby_sourceline |
case_body __pad75__ = ruby_sourceline |
block_command cmd_brace_block |
f_margs f_marg_list |
struct symbols global_symbols [static] |
<num> k_end = ruby_sourceline |
lex_strterm = 0 |
node_assign($1, $3)' command_asgn { value_expr($3); $$ = node_assign($1, $3); }
struct magic_comment magic_comments[] [static] |
{ {"coding", magic_comment_encoding, parser_encode_length}, {"encoding", magic_comment_encoding, parser_encode_length}, {"warn_indent", parser_set_token_info}, }
nd_args = $2 |
Definition at line 9540 of file parse.y.
Referenced by dump_node(), and yyparse().
nd_next = $2 |
Definition at line 12741 of file parse.y.
Referenced by dump_node(), reduce_nodes_gen(), and yyparse().
<'{lex_state=EXPR_BEG;command_start=TRUE;}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;};args_tail:f_kwarg','f_kwrestopt_f_block_arg{$$=new_args_tail($1,$3,$4);}|f_kwargopt_f_block_arg{$$=new_args_tail($1,Qnone,$2);}|f_kwrestopt_f_block_arg{$$=new_args_tail(Qnone,$1,$2);}|f_block_arg{$$=new_args_tail(Qnone,Qnone,$1);};opt_args_tail:','args_tail{$$=$2;}|{$$=new_args_tail(Qnone,Qnone,Qnone);};f_args:f_arg','f_optarg','f_rest_argopt_args_tail{$$=new_args($1,$3,$5,Qnone,$6);}|f_arg','f_optarg','f_rest_arg','f_argopt_args_tail{$$=new_args($1,$3,$5,$7,$8);}|f_arg','f_optargopt_args_tail{$$=new_args($1,$3,Qnone,Qnone,$4);}|f_arg','f_optarg','f_argopt_args_tail{$$=new_args($1,$3,Qnone,$5,$6);}|f_arg','f_rest_argopt_args_tail{$$=new_args($1,Qnone,$3,Qnone,$4);}|f_arg','f_rest_arg','f_argopt_args_tail{$$=new_args($1,Qnone,$3,$5,$6);}|f_argopt_args_tail{$$=new_args($1,Qnone,Qnone,Qnone,$2);}|f_optarg','f_rest_argopt_args_tail{$$=new_args(Qnone,$1,$3,Qnone,$4);}|f_optarg','f_rest_arg','f_argopt_args_tail{$$=new_args(Qnone,$1,$3,$5,$6);}|f_optargopt_args_tail{$$=new_args(Qnone,$1,Qnone,Qnone,$2);}|f_optarg','f_argopt_args_tail{$$=new_args(Qnone,$1,Qnone,$3,$4);}|f_rest_argopt_args_tail{$$=new_args(Qnone,Qnone,$1,Qnone,$2);}|f_rest_arg','f_argopt_args_tail{$$=new_args(Qnone,Qnone,$1,$3,$4);}|args_tail{$$=new_args(Qnone,Qnone,Qnone,Qnone,$1);}|{$$=new_args_tail(Qnone,Qnone,Qnone);$$=new_args(Qnone,Qnone,Qnone,Qnone,$$);};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 12735 of file parse.y.
Referenced by dump_node(), and yyparse().
Definition at line 12046 of file parse.y.
Referenced by addrinfo_s_getaddrinfo(), compile_array_(), compile_tree(), cond0(), count_nodes(), defined_expr(), divide_look_behind_alternatives(), dsym_node_gen(), 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_tail_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(), noname_disable_map(), 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_get_iseq(), rb_proc_min_max_arity(), reduce_nodes_gen(), remove_begin(), ret_args_gen(), ruby_debug_print_node(), scan_env_set_mem_node(), splat_array(), subexp_inf_recursive_check(), unset_addr_list_add(), yaml_document_add_mapping(), yaml_document_add_scalar(), yaml_document_add_sequence(), yaml_document_delete(), yaml_emitter_anchor_node(), yaml_emitter_delete_document_and_anchors(), yaml_emitter_dump_node(), yaml_parser_load_mapping(), yaml_parser_load_scalar(), yaml_parser_load_sequence(), and yyparse().
struct { ... } op_tbl[] [static] |
static const rb_data_type_t parser_data_type [static] |
{ "parser", { parser_mark, parser_free, parser_memsize, }, }
Definition at line 12047 of file parse.y.
Referenced by add_ctype_to_cc_by_range(), backward_search_range(), compile_length_option_node(), compile_length_string_node(), compile_option_node(), compile_string_node(), fetch_char_property_to_ctype(), fetch_named_backref_token(), fetch_range_quantifier(), fetch_token(), fetch_token_in_cc(), force_chain_object(), forward_search_range(), is_mbc_newline_ex(), onig_chain_reduce(), onig_match(), onig_search_gpos(), parse_enclose(), parse_exp(), parser_free(), pop_mark_stack_chunk(), qpencode(), rb_cstr_to_dbl(), rb_iseq_disasm_insn(), rb_parser_free(), rb_str_inspect(), rb_str_scan(), return_fiber(), st_copy(), st_delete(), vtable_alloc(), and yyparse().
const unsigned int ruby_global_name_punct_bits[] |
{ SPECIAL_PUNCT(0), SPECIAL_PUNCT(1), SPECIAL_PUNCT(2), }
struct st_hash_type symhash [static] |
{ rb_str_hash_cmp, rb_str_hash, }