Ruby  2.1.3p242(2014-09-19revision47630)
Data Structures | Macros | 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 "probes.h"
#include "id.c"
#include "ruby/regex.h"
#include "ruby/util.h"
#include "lex.c"
Include dependency graph for parse.y:

Go to the source code of this file.

Data Structures

struct  timespec
 
struct  timezone
 
struct  RBasic
 
struct  RObject
 
struct  RClass
 
struct  RFloat
 
struct  RString
 
struct  RArray
 
struct  RRegexp
 
struct  RHash
 
struct  RFile
 
struct  RRational
 
struct  RComplex
 
struct  RData
 
struct  rb_data_type_struct
 
struct  RTypedData
 
struct  RStruct
 
struct  RBignum
 
struct  timeval
 
struct  timespec
 
struct  timezone
 
struct  timeval
 
struct  timespec
 
struct  timezone
 
struct  st_hash_type
 
struct  st_table
 
struct  rb_exec_arg
 
struct  timeval
 
struct  timespec
 
struct  timezone
 
struct  st_hash_type
 
struct  st_table
 
struct  OnigCaseFoldCodeItem
 
struct  OnigMetaCharTableType
 
struct  OnigEncodingTypeST
 
struct  OnigSyntaxType
 
struct  OnigCaptureTreeNodeStruct
 
struct  re_registers
 
struct  OnigErrorInfo
 
struct  OnigRepeatRange
 
struct  re_pattern_buffer
 
struct  OnigCompileInfo
 
struct  rb_deprecated_classext_struct
 
struct  rb_subclass_entry
 
struct  rb_classext_struct
 
struct  method_table_wrapper
 
struct  RBasicRaw
 
struct  rb_execarg
 
struct  RNode
 
struct  rb_global_entry
 
struct  rb_args_info
 
struct  OnigCaseFoldCodeItem
 
struct  OnigMetaCharTableType
 
struct  OnigEncodingTypeST
 
struct  OnigSyntaxType
 
struct  OnigCaptureTreeNodeStruct
 
struct  re_registers
 
struct  OnigErrorInfo
 
struct  OnigRepeatRange
 
struct  re_pattern_buffer
 
struct  OnigCompileInfo
 
struct  OnigPairCaseFoldCodes
 
struct  PosixBracketEntryType
 
struct  vtable
 
struct  local_vars
 
struct  token_info
 
struct  parser_params
 

Macros

#define PARSER_DEBUG   0
 
#define YYDEBUG   1
 
#define YYERROR_VERBOSE   1
 
#define YYSTACK_USE_ALLOCA   0
 
#define YYMALLOC(size)   rb_parser_malloc(parser, (size))
 
#define YYREALLOC(ptr, size)   rb_parser_realloc(parser, (ptr), (size))
 
#define YYCALLOC(nelem, size)   rb_parser_calloc(parser, (nelem), (size))
 
#define YYFREE(ptr)   rb_parser_free(parser, (ptr))
 
#define malloc   YYMALLOC
 
#define realloc   YYREALLOC
 
#define calloc   YYCALLOC
 
#define free   YYFREE
 
#define REGISTER_SYMID(id, name)   register_symid((id), (name), strlen(name), enc)
 
#define is_notop_id(id)   ((id)>tLAST_OP_ID)
 
#define is_local_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
 
#define is_global_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
 
#define is_instance_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
 
#define is_attrset_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
 
#define is_const_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
 
#define is_class_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
 
#define is_junk_id(id)   (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
 
#define id_type(id)   (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1)
 
#define is_asgn_or_id(id)
 
#define DEF_EXPR(n)   EXPR_##n = (1 << EXPR_##n##_bit)
 
#define IS_lex_state_for(x, ls)   ((x) & (ls))
 
#define IS_lex_state(ls)   IS_lex_state_for(lex_state, (ls))
 
#define BITSTACK_PUSH(stack, n)   ((stack) = ((stack)<<1)|((n)&1))
 
#define BITSTACK_POP(stack)   ((stack) = (stack) >> 1)
 
#define BITSTACK_LEXPOP(stack)   ((stack) = ((stack) >> 1) | ((stack) & 1))
 
#define BITSTACK_SET_P(stack)   ((stack)&1)
 
#define COND_PUSH(n)   BITSTACK_PUSH(cond_stack, (n))
 
#define COND_POP()   BITSTACK_POP(cond_stack)
 
#define COND_LEXPOP()   BITSTACK_LEXPOP(cond_stack)
 
#define COND_P()   BITSTACK_SET_P(cond_stack)
 
#define CMDARG_PUSH(n)   BITSTACK_PUSH(cmdarg_stack, (n))
 
#define CMDARG_POP()   BITSTACK_POP(cmdarg_stack)
 
#define CMDARG_LEXPOP()   BITSTACK_LEXPOP(cmdarg_stack)
 
#define CMDARG_P()   BITSTACK_SET_P(cmdarg_stack)
 
#define DVARS_INHERIT   ((void*)1)
 
#define DVARS_TOPSCOPE   NULL
 
#define DVARS_SPECIAL_P(tbl)   (!POINTER_P(tbl))
 
#define POINTER_P(val)   ((VALUE)(val) & ~(VALUE)3)
 
#define VTBL_DEBUG   0
 
#define STR_NEW(p, n)   rb_enc_str_new((p),(n),current_enc)
 
#define STR_NEW0()   rb_enc_str_new(0,0,current_enc)
 
#define STR_NEW2(p)   rb_enc_str_new((p),strlen(p),current_enc)
 
#define STR_NEW3(p, n, e, func)   parser_str_new((p),(n),(e),(func),current_enc)
 
#define ENC_SINGLE(cr)   ((cr)==ENC_CODERANGE_7BIT)
 
#define TOK_INTERN(mb)   rb_intern3(tok(), toklen(), current_enc)
 
#define yyerror(msg)   parser_yyerror(parser, (msg))
 
#define lex_strterm   (parser->parser_lex_strterm)
 
#define lex_state   (parser->parser_lex_state)
 
#define cond_stack   (parser->parser_cond_stack)
 
#define cmdarg_stack   (parser->parser_cmdarg_stack)
 
#define class_nest   (parser->parser_class_nest)
 
#define paren_nest   (parser->parser_paren_nest)
 
#define lpar_beg   (parser->parser_lpar_beg)
 
#define brace_nest   (parser->parser_brace_nest)
 
#define in_single   (parser->parser_in_single)
 
#define in_def   (parser->parser_in_def)
 
#define compile_for_eval   (parser->parser_compile_for_eval)
 
#define cur_mid   (parser->parser_cur_mid)
 
#define in_defined   (parser->parser_in_defined)
 
#define tokenbuf   (parser->parser_tokenbuf)
 
#define tokidx   (parser->parser_tokidx)
 
#define toksiz   (parser->parser_toksiz)
 
#define tokline   (parser->parser_tokline)
 
#define lex_input   (parser->parser_lex_input)
 
#define lex_lastline   (parser->parser_lex_lastline)
 
#define lex_nextline   (parser->parser_lex_nextline)
 
#define lex_pbeg   (parser->parser_lex_pbeg)
 
#define lex_p   (parser->parser_lex_p)
 
#define lex_pend   (parser->parser_lex_pend)
 
#define heredoc_end   (parser->parser_heredoc_end)
 
#define command_start   (parser->parser_command_start)
 
#define deferred_nodes   (parser->parser_deferred_nodes)
 
#define lex_gets_ptr   (parser->parser_lex_gets_ptr)
 
#define lex_gets   (parser->parser_lex_gets)
 
#define lvtbl   (parser->parser_lvtbl)
 
#define ruby__end__seen   (parser->parser_ruby__end__seen)
 
#define ruby_sourceline   (parser->parser_ruby_sourceline)
 
#define ruby_sourcefile   (parser->parser_ruby_sourcefile)
 
#define ruby_sourcefile_string   (parser->parser_ruby_sourcefile_string)
 
#define current_enc   (parser->enc)
 
#define yydebug   (parser->parser_yydebug)
 
#define ruby_eval_tree   (parser->parser_eval_tree)
 
#define ruby_eval_tree_begin   (parser->parser_eval_tree_begin)
 
#define ruby_debug_lines   (parser->debug_lines)
 
#define ruby_coverage   (parser->coverage)
 
#define yyparse   ruby_yyparse
 
#define rb_node_newnode(type, a1, a2, a3)   node_newnode(parser, (type), (a1), (a2), (a3))
 
#define cond(node)   cond_gen(parser, (node))
 
#define logop(type, node1, node2)   logop_gen(parser, (type), (node1), (node2))
 
#define value_expr(node)   value_expr_gen(parser, (node) = remove_begin(node))
 
#define void_expr0(node)   void_expr_gen(parser, (node))
 
#define void_expr(node)   void_expr0((node) = remove_begin(node))
 
#define void_stmts(node)   void_stmts_gen(parser, (node))
 
#define reduce_nodes(n)   reduce_nodes_gen(parser,(n))
 
#define block_dup_check(n1, n2)   block_dup_check_gen(parser,(n1),(n2))
 
#define block_append(h, t)   block_append_gen(parser,(h),(t))
 
#define list_append(l, i)   list_append_gen(parser,(l),(i))
 
#define list_concat(h, t)   list_concat_gen(parser,(h),(t))
 
#define arg_append(h, t)   arg_append_gen(parser,(h),(t))
 
#define arg_concat(h, t)   arg_concat_gen(parser,(h),(t))
 
#define literal_concat(h, t)   literal_concat_gen(parser,(h),(t))
 
#define new_evstr(n)   new_evstr_gen(parser,(n))
 
#define evstr2dstr(n)   evstr2dstr_gen(parser,(n))
 
#define call_bin_op(recv, id, arg1)   call_bin_op_gen(parser, (recv),(id),(arg1))
 
#define call_uni_op(recv, id)   call_uni_op_gen(parser, (recv),(id))
 
#define new_args(f, o, r, p, t)   new_args_gen(parser, (f),(o),(r),(p),(t))
 
#define new_args_tail(k, kr, b)   new_args_tail_gen(parser, (k),(kr),(b))
 
#define ret_args(node)   ret_args_gen(parser, (node))
 
#define new_yield(node)   new_yield_gen(parser, (node))
 
#define dsym_node(node)   dsym_node_gen(parser, (node))
 
#define gettable(id)   gettable_gen(parser,(id))
 
#define assignable(id, node)   assignable_gen(parser, (id), (node))
 
#define aryset(node1, node2)   aryset_gen(parser, (node1), (node2))
 
#define attrset(node, id)   attrset_gen(parser, (node), (id))
 
#define rb_backref_error(n)   rb_backref_error_gen(parser,(n))
 
#define node_assign(node1, node2)   node_assign_gen(parser, (node1), (node2))
 
#define new_attr_op_assign(lhs, type, attr, op, rhs)   new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs))
 
#define new_const_op_assign(lhs, op, rhs)   new_const_op_assign_gen(parser, (lhs), (op), (rhs))
 
#define new_defined(expr)   NEW_DEFINED(remove_begin_all(expr))
 
#define match_op(node1, node2)   match_op_gen(parser, (node1), (node2))
 
#define local_tbl()   local_tbl_gen(parser)
 
#define reg_compile(str, options)   reg_compile_gen(parser, (str), (options))
 
#define reg_fragment_setenc(str, options)   reg_fragment_setenc_gen(parser, (str), (options))
 
#define reg_fragment_check(str, options)   reg_fragment_check_gen(parser, (str), (options))
 
#define reg_named_capture_assign(regexp, match)   reg_named_capture_assign_gen(parser,(regexp),(match))
 
#define get_id(id)   (id)
 
#define get_value(val)   (val)
 
#define new_op_assign(lhs, op, rhs)   new_op_assign_gen(parser, (lhs), (op), (rhs))
 
#define formal_argument(id)   formal_argument_gen(parser, (id))
 
#define shadowing_lvar(name)   shadowing_lvar_gen(parser, (name))
 
#define new_bv(id)   new_bv_gen(parser, (id))
 
#define local_push(top)   local_push_gen(parser,(top))
 
#define local_pop()   local_pop_gen(parser)
 
#define local_var(id)   local_var_gen(parser, (id))
 
#define arg_var(id)   arg_var_gen(parser, (id))
 
#define local_id(id)   local_id_gen(parser, (id))
 
#define internal_id()   internal_id_gen(parser)
 
#define dyna_push()   dyna_push_gen(parser)
 
#define dyna_pop(node)   dyna_pop_gen(parser, (node))
 
#define dyna_in_block()   dyna_in_block_gen(parser)
 
#define dyna_var(id)   local_var(id)
 
#define dvar_defined(id)   dvar_defined_gen(parser, (id), 0)
 
#define dvar_defined_get(id)   dvar_defined_gen(parser, (id), 1)
 
#define dvar_curr(id)   dvar_curr_gen(parser, (id))
 
#define lvar_defined(id)   lvar_defined_gen(parser, (id))
 
#define RE_OPTION_ONCE   (1<<16)
 
#define RE_OPTION_ENCODING_SHIFT   8
 
#define RE_OPTION_ENCODING(e)   (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
 
#define RE_OPTION_ENCODING_IDX(o)   (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
 
#define RE_OPTION_ENCODING_NONE(o)   ((o)&RE_OPTION_ARG_ENCODING_NONE)
 
#define RE_OPTION_MASK   0xff
 
#define RE_OPTION_ARG_ENCODING_NONE   32
 
#define NODE_STRTERM   NODE_ZARRAY /* 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 number_literal_suffix(f)   parser_number_literal_suffix(parser, (f))
 
#define set_number_literal(v, t, f)   parser_set_number_literal(parser, (v), (t), (f))
 
#define set_integer_literal(v, f)   parser_set_integer_literal(parser, (v), (f))
 
#define set_yylval_str(x)   (yylval.node = NEW_STR(x))
 
#define set_yylval_num(x)   (yylval.num = (x))
 
#define set_yylval_id(x)   (yylval.id = (x))
 
#define set_yylval_name(x)   (yylval.id = (x))
 
#define set_yylval_literal(x)   (yylval.node = NEW_LIT(x))
 
#define set_yylval_node(x)   (yylval.node = (x))
 
#define yylval_id()   (yylval.id)
 
#define ripper_flush(p)   (void)(p)
 
#define SIGN_EXTEND_CHAR(c)   ((((unsigned char)(c)) ^ 128) - 128)
 
#define parser_encoding_name()   (current_enc->name)
 
#define parser_mbclen()   mbclen((lex_p-1),lex_pend,current_enc)
 
#define parser_precise_mbclen()   rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)
 
#define is_identchar(p, e, enc)   (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
 
#define parser_is_identchar()   (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc))
 
#define parser_isascii()   ISASCII(*(lex_p-1))
 
#define STR_FUNC_ESCAPE   0x01
 
#define STR_FUNC_EXPAND   0x02
 
#define STR_FUNC_REGEXP   0x04
 
#define STR_FUNC_QWORDS   0x08
 
#define STR_FUNC_SYMBOL   0x10
 
#define STR_FUNC_INDENT   0x20
 
#define lex_goto_eol(parser)   ((parser)->parser_lex_p = (parser)->parser_lex_pend)
 
#define lex_eol_p()   (lex_p >= lex_pend)
 
#define peek(c)   peek_n((c), 0)
 
#define peek_n(c, n)   (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
 
#define was_bol()   (lex_p == lex_pbeg + 1)
 
#define tokfix()   (tokenbuf[tokidx]='\0')
 
#define tok()   tokenbuf
 
#define toklen()   tokidx
 
#define toklast()   (tokidx>0?tokenbuf[tokidx-1]:0)
 
#define tokcopy(n)   memcpy(tokspace(n), lex_p - (n), (n))
 
#define ESCAPE_CONTROL   1
 
#define ESCAPE_META   2
 
#define tokadd_mbchar(c)   parser_tokadd_mbchar(parser, (c))
 
#define mixed_error(enc1, enc2)
 
#define mixed_escape(beg, enc1, enc2)
 
#define NEW_STRTERM(func, term, paren)   rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
 
#define flush_string_content(enc)   ((void)(enc))
 
#define BIT(c, idx)   (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
 
#define SPECIAL_PUNCT(idx)
 
#define NUM_SUFFIX_R   (1<<0)
 
#define NUM_SUFFIX_I   (1<<1)
 
#define NUM_SUFFIX_ALL   3
 
#define dispatch_heredoc_end()   ((void)0)
 
#define arg_ambiguous()   (arg_ambiguous_gen(parser), 1)
 
#define str_copy(_s, _p, _n)
 
#define IS_ARG()   IS_lex_state(EXPR_ARG_ANY)
 
#define IS_END()   IS_lex_state(EXPR_END_ANY)
 
#define IS_BEG()   IS_lex_state(EXPR_BEG_ANY)
 
#define IS_SPCARG(c)   (IS_ARG() && space_seen && !ISSPACE(c))
 
#define IS_LABEL_POSSIBLE()   ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG())
 
#define IS_LABEL_SUFFIX(n)   (peek_n(':',(n)) && !peek_n(':', (n)+1))
 
#define IS_AFTER_OPERATOR()   IS_lex_state(EXPR_FNAME | EXPR_DOT)
 
#define ambiguous_operator(op, syn)
 
#define warn_balanced(op, syn)
 
#define no_digits()   do {yyerror("numeric literal without digits"); return 0;} while (0)
 
#define parser_warning(node, mesg)   parser_warning(parser, (node), (mesg))
 
#define parser_warn(node, mesg)   parser_warn(parser, (node), (mesg))
 
#define assignable_result(x)   (x)
 
#define LVAR_USED   ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
 
#define subnodes(n1, n2)
 
#define op_tbl_count   numberof(op_tbl)
 
#define ENABLE_SELECTOR_NAMESPACE   0
 
#define IDSET_ATTRSET_FOR_SYNTAX   ((1U<<ID_LOCAL)|(1U<<ID_CONST))
 
#define IDSET_ATTRSET_FOR_INTERN   (~(~0U<<ID_SCOPE_MASK) & ~(1U<<ID_ATTRSET))
 
#define HEAPCNT(n, size)   ((n) * (size) / sizeof(YYSTYPE))
 
#define NEWHEAP()   rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
 
#define ADD2HEAP(n, c, p)
 

Typedefs

typedef VALUE stack_type
 
typedef struct token_info token_info
 

Enumerations

enum  ruby_special_consts {
  RUBY_Qfalse = 0x00, RUBY_Qtrue = 0x14, RUBY_Qnil = 0x08, RUBY_Qundef = 0x34,
  RUBY_IMMEDIATE_MASK = 0x07, RUBY_FIXNUM_FLAG = 0x01, RUBY_FLONUM_MASK = 0x03, RUBY_FLONUM_FLAG = 0x02,
  RUBY_SYMBOL_FLAG = 0x0c, RUBY_SPECIAL_SHIFT = 8, RUBY_Qfalse = 0x00, RUBY_Qtrue = 0x14,
  RUBY_Qnil = 0x08, RUBY_Qundef = 0x34, RUBY_IMMEDIATE_MASK = 0x07, RUBY_FIXNUM_FLAG = 0x01,
  RUBY_FLONUM_MASK = 0x03, RUBY_FLONUM_FLAG = 0x02, RUBY_SYMBOL_FLAG = 0x0c, RUBY_SPECIAL_SHIFT = 8
}
 
enum  ruby_value_type {
  RUBY_T_NONE = 0x00, RUBY_T_OBJECT = 0x01, RUBY_T_CLASS = 0x02, RUBY_T_MODULE = 0x03,
  RUBY_T_FLOAT = 0x04, RUBY_T_STRING = 0x05, RUBY_T_REGEXP = 0x06, RUBY_T_ARRAY = 0x07,
  RUBY_T_HASH = 0x08, RUBY_T_STRUCT = 0x09, RUBY_T_BIGNUM = 0x0a, RUBY_T_FILE = 0x0b,
  RUBY_T_DATA = 0x0c, RUBY_T_MATCH = 0x0d, RUBY_T_COMPLEX = 0x0e, RUBY_T_RATIONAL = 0x0f,
  RUBY_T_NIL = 0x11, RUBY_T_TRUE = 0x12, RUBY_T_FALSE = 0x13, RUBY_T_SYMBOL = 0x14,
  RUBY_T_FIXNUM = 0x15, RUBY_T_UNDEF = 0x1b, RUBY_T_NODE = 0x1c, RUBY_T_ICLASS = 0x1d,
  RUBY_T_ZOMBIE = 0x1e, RUBY_T_MASK = 0x1f, RUBY_T_NONE = 0x00, RUBY_T_OBJECT = 0x01,
  RUBY_T_CLASS = 0x02, RUBY_T_MODULE = 0x03, RUBY_T_FLOAT = 0x04, RUBY_T_STRING = 0x05,
  RUBY_T_REGEXP = 0x06, RUBY_T_ARRAY = 0x07, RUBY_T_HASH = 0x08, RUBY_T_STRUCT = 0x09,
  RUBY_T_BIGNUM = 0x0a, RUBY_T_FILE = 0x0b, RUBY_T_DATA = 0x0c, RUBY_T_MATCH = 0x0d,
  RUBY_T_COMPLEX = 0x0e, RUBY_T_RATIONAL = 0x0f, RUBY_T_NIL = 0x11, RUBY_T_TRUE = 0x12,
  RUBY_T_FALSE = 0x13, RUBY_T_SYMBOL = 0x14, RUBY_T_FIXNUM = 0x15, RUBY_T_UNDEF = 0x1b,
  RUBY_T_NODE = 0x1c, RUBY_T_ICLASS = 0x1d, RUBY_T_ZOMBIE = 0x1e, RUBY_T_MASK = 0x1f
}
 
enum  st_retval {
  ST_CONTINUE, ST_CONTINUE, ST_STOP, ST_STOP,
  ST_DELETE, ST_DELETE, ST_CHECK, ST_CHECK,
  ST_CONTINUE, ST_CONTINUE, ST_STOP, ST_STOP,
  ST_DELETE, ST_DELETE, ST_CHECK, ST_CHECK,
  ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK
}
 
enum  st_retval {
  ST_CONTINUE, ST_CONTINUE, ST_STOP, ST_STOP,
  ST_DELETE, ST_DELETE, ST_CHECK, ST_CHECK,
  ST_CONTINUE, ST_CONTINUE, ST_STOP, ST_STOP,
  ST_DELETE, ST_DELETE, ST_CHECK, ST_CHECK,
  ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK
}
 
enum  rb_econv_result_t {
  econv_invalid_byte_sequence, econv_undefined_conversion, econv_destination_buffer_full, econv_source_buffer_empty,
  econv_finished, econv_after_output, econv_incomplete_input, econv_invalid_byte_sequence,
  econv_undefined_conversion, econv_destination_buffer_full, econv_source_buffer_empty, econv_finished,
  econv_after_output, econv_incomplete_input
}
 
enum  node_type {
  NODE_SCOPE, NODE_SCOPE, NODE_BLOCK, NODE_BLOCK,
  NODE_IF, NODE_IF, NODE_CASE, NODE_CASE,
  NODE_WHEN, NODE_WHEN, NODE_OPT_N, NODE_OPT_N,
  NODE_WHILE, NODE_WHILE, NODE_UNTIL, NODE_UNTIL,
  NODE_ITER, NODE_ITER, NODE_FOR, NODE_FOR,
  NODE_BREAK, NODE_BREAK, NODE_NEXT, NODE_NEXT,
  NODE_REDO, NODE_REDO, NODE_RETRY, NODE_RETRY,
  NODE_BEGIN, NODE_BEGIN, NODE_RESCUE, NODE_RESCUE,
  NODE_RESBODY, NODE_RESBODY, NODE_ENSURE, NODE_ENSURE,
  NODE_AND, NODE_AND, NODE_OR, NODE_OR,
  NODE_MASGN, NODE_MASGN, NODE_LASGN, NODE_LASGN,
  NODE_DASGN, NODE_DASGN, NODE_DASGN_CURR, NODE_DASGN_CURR,
  NODE_GASGN, NODE_GASGN, NODE_IASGN, NODE_IASGN,
  NODE_IASGN2, NODE_IASGN2, NODE_CDECL, NODE_CDECL,
  NODE_CVASGN, NODE_CVASGN, NODE_CVDECL, NODE_CVDECL,
  NODE_OP_ASGN1, NODE_OP_ASGN1, NODE_OP_ASGN2, NODE_OP_ASGN2,
  NODE_OP_ASGN_AND, NODE_OP_ASGN_AND, NODE_OP_ASGN_OR, NODE_OP_ASGN_OR,
  NODE_OP_CDECL, NODE_OP_CDECL, NODE_CALL, NODE_CALL,
  NODE_FCALL, NODE_FCALL, NODE_VCALL, NODE_VCALL,
  NODE_SUPER, NODE_SUPER, NODE_ZSUPER, NODE_ZSUPER,
  NODE_ARRAY, NODE_ARRAY, NODE_ZARRAY, NODE_ZARRAY,
  NODE_VALUES, NODE_VALUES, NODE_HASH, NODE_HASH,
  NODE_RETURN, NODE_RETURN, NODE_YIELD, NODE_YIELD,
  NODE_LVAR, NODE_LVAR, NODE_DVAR, NODE_DVAR,
  NODE_GVAR, NODE_GVAR, NODE_IVAR, NODE_IVAR,
  NODE_CONST, NODE_CONST, NODE_CVAR, NODE_CVAR,
  NODE_NTH_REF, NODE_NTH_REF, NODE_BACK_REF, NODE_BACK_REF,
  NODE_MATCH, NODE_MATCH, NODE_MATCH2, NODE_MATCH2,
  NODE_MATCH3, NODE_MATCH3, NODE_LIT, NODE_LIT,
  NODE_STR, NODE_STR, NODE_DSTR, NODE_DSTR,
  NODE_XSTR, NODE_XSTR, NODE_DXSTR, NODE_DXSTR,
  NODE_EVSTR, NODE_EVSTR, NODE_DREGX, NODE_DREGX,
  NODE_DREGX_ONCE, NODE_DREGX_ONCE, NODE_ARGS, NODE_ARGS,
  NODE_ARGS_AUX, NODE_ARGS_AUX, NODE_OPT_ARG, NODE_OPT_ARG,
  NODE_KW_ARG, NODE_KW_ARG, NODE_POSTARG, NODE_POSTARG,
  NODE_ARGSCAT, NODE_ARGSCAT, NODE_ARGSPUSH, NODE_ARGSPUSH,
  NODE_SPLAT, NODE_SPLAT, NODE_TO_ARY, NODE_TO_ARY,
  NODE_BLOCK_ARG, NODE_BLOCK_ARG, NODE_BLOCK_PASS, NODE_BLOCK_PASS,
  NODE_DEFN, NODE_DEFN, NODE_DEFS, NODE_DEFS,
  NODE_ALIAS, NODE_ALIAS, NODE_VALIAS, NODE_VALIAS,
  NODE_UNDEF, NODE_UNDEF, NODE_CLASS, NODE_CLASS,
  NODE_MODULE, NODE_MODULE, NODE_SCLASS, NODE_SCLASS,
  NODE_COLON2, NODE_COLON2, NODE_COLON3, NODE_COLON3,
  NODE_CREF, NODE_CREF, NODE_DOT2, NODE_DOT2,
  NODE_DOT3, NODE_DOT3, NODE_FLIP2, NODE_FLIP2,
  NODE_FLIP3, NODE_FLIP3, NODE_SELF, NODE_SELF,
  NODE_NIL, NODE_NIL, NODE_TRUE, NODE_TRUE,
  NODE_FALSE, NODE_FALSE, NODE_ERRINFO, NODE_ERRINFO,
  NODE_DEFINED, NODE_DEFINED, NODE_POSTEXE, NODE_POSTEXE,
  NODE_ALLOCA, NODE_ALLOCA, NODE_BMETHOD, NODE_BMETHOD,
  NODE_MEMO, NODE_MEMO, NODE_IFUNC, NODE_IFUNC,
  NODE_DSYM, NODE_DSYM, NODE_ATTRASGN, NODE_ATTRASGN,
  NODE_PRELUDE, NODE_PRELUDE, NODE_LAMBDA, NODE_LAMBDA,
  NODE_SCOPE, NODE_SCOPE, NODE_BLOCK, NODE_BLOCK,
  NODE_IF, NODE_IF, NODE_CASE, NODE_CASE,
  NODE_WHEN, NODE_WHEN, NODE_OPT_N, NODE_OPT_N,
  NODE_WHILE, NODE_WHILE, NODE_UNTIL, NODE_UNTIL,
  NODE_ITER, NODE_ITER, NODE_FOR, NODE_FOR,
  NODE_BREAK, NODE_BREAK, NODE_NEXT, NODE_NEXT,
  NODE_REDO, NODE_REDO, NODE_RETRY, NODE_RETRY,
  NODE_BEGIN, NODE_BEGIN, NODE_RESCUE, NODE_RESCUE,
  NODE_RESBODY, NODE_RESBODY, NODE_ENSURE, NODE_ENSURE,
  NODE_AND, NODE_AND, NODE_OR, NODE_OR,
  NODE_MASGN, NODE_MASGN, NODE_LASGN, NODE_LASGN,
  NODE_DASGN, NODE_DASGN, NODE_DASGN_CURR, NODE_DASGN_CURR,
  NODE_GASGN, NODE_GASGN, NODE_IASGN, NODE_IASGN,
  NODE_IASGN2, NODE_IASGN2, NODE_CDECL, NODE_CDECL,
  NODE_CVASGN, NODE_CVASGN, NODE_CVDECL, NODE_CVDECL,
  NODE_OP_ASGN1, NODE_OP_ASGN1, NODE_OP_ASGN2, NODE_OP_ASGN2,
  NODE_OP_ASGN_AND, NODE_OP_ASGN_AND, NODE_OP_ASGN_OR, NODE_OP_ASGN_OR,
  NODE_OP_CDECL, NODE_OP_CDECL, NODE_CALL, NODE_CALL,
  NODE_FCALL, NODE_FCALL, NODE_VCALL, NODE_VCALL,
  NODE_SUPER, NODE_SUPER, NODE_ZSUPER, NODE_ZSUPER,
  NODE_ARRAY, NODE_ARRAY, NODE_ZARRAY, NODE_ZARRAY,
  NODE_VALUES, NODE_VALUES, NODE_HASH, NODE_HASH,
  NODE_RETURN, NODE_RETURN, NODE_YIELD, NODE_YIELD,
  NODE_LVAR, NODE_LVAR, NODE_DVAR, NODE_DVAR,
  NODE_GVAR, NODE_GVAR, NODE_IVAR, NODE_IVAR,
  NODE_CONST, NODE_CONST, NODE_CVAR, NODE_CVAR,
  NODE_NTH_REF, NODE_NTH_REF, NODE_BACK_REF, NODE_BACK_REF,
  NODE_MATCH, NODE_MATCH, NODE_MATCH2, NODE_MATCH2,
  NODE_MATCH3, NODE_MATCH3, NODE_LIT, NODE_LIT,
  NODE_STR, NODE_STR, NODE_DSTR, NODE_DSTR,
  NODE_XSTR, NODE_XSTR, NODE_DXSTR, NODE_DXSTR,
  NODE_EVSTR, NODE_EVSTR, NODE_DREGX, NODE_DREGX,
  NODE_DREGX_ONCE, NODE_DREGX_ONCE, NODE_ARGS, NODE_ARGS,
  NODE_ARGS_AUX, NODE_ARGS_AUX, NODE_OPT_ARG, NODE_OPT_ARG,
  NODE_KW_ARG, NODE_KW_ARG, NODE_POSTARG, NODE_POSTARG,
  NODE_ARGSCAT, NODE_ARGSCAT, NODE_ARGSPUSH, NODE_ARGSPUSH,
  NODE_SPLAT, NODE_SPLAT, NODE_TO_ARY, NODE_TO_ARY,
  NODE_BLOCK_ARG, NODE_BLOCK_ARG, NODE_BLOCK_PASS, NODE_BLOCK_PASS,
  NODE_DEFN, NODE_DEFN, NODE_DEFS, NODE_DEFS,
  NODE_ALIAS, NODE_ALIAS, NODE_VALIAS, NODE_VALIAS,
  NODE_UNDEF, NODE_UNDEF, NODE_CLASS, NODE_CLASS,
  NODE_MODULE, NODE_MODULE, NODE_SCLASS, NODE_SCLASS,
  NODE_COLON2, NODE_COLON2, NODE_COLON3, NODE_COLON3,
  NODE_CREF, NODE_CREF, NODE_DOT2, NODE_DOT2,
  NODE_DOT3, NODE_DOT3, NODE_FLIP2, NODE_FLIP2,
  NODE_FLIP3, NODE_FLIP3, NODE_SELF, NODE_SELF,
  NODE_NIL, NODE_NIL, NODE_TRUE, NODE_TRUE,
  NODE_FALSE, NODE_FALSE, NODE_ERRINFO, NODE_ERRINFO,
  NODE_DEFINED, NODE_DEFINED, NODE_POSTEXE, NODE_POSTEXE,
  NODE_ALLOCA, NODE_ALLOCA, NODE_BMETHOD, NODE_BMETHOD,
  NODE_MEMO, NODE_MEMO, NODE_IFUNC, NODE_IFUNC,
  NODE_DSYM, NODE_DSYM, NODE_ATTRASGN, NODE_ATTRASGN,
  NODE_PRELUDE, NODE_PRELUDE, NODE_LAMBDA, NODE_LAMBDA
}
 
enum  yytokentype {
  END_OF_INPUT = 0, keyword_class = 258, keyword_module = 259, keyword_def = 260,
  keyword_undef = 261, keyword_begin = 262, keyword_rescue = 263, keyword_ensure = 264,
  keyword_end = 265, keyword_if = 266, keyword_unless = 267, keyword_then = 268,
  keyword_elsif = 269, keyword_else = 270, keyword_case = 271, keyword_when = 272,
  keyword_while = 273, keyword_until = 274, keyword_for = 275, keyword_break = 276,
  keyword_next = 277, keyword_redo = 278, keyword_retry = 279, keyword_in = 280,
  keyword_do = 281, keyword_do_cond = 282, keyword_do_block = 283, keyword_do_LAMBDA = 284,
  keyword_return = 285, keyword_yield = 286, keyword_super = 287, keyword_self = 288,
  keyword_nil = 289, keyword_true = 290, keyword_false = 291, keyword_and = 292,
  keyword_or = 293, keyword_not = 294, modifier_if = 295, modifier_unless = 296,
  modifier_while = 297, modifier_until = 298, modifier_rescue = 299, keyword_alias = 300,
  keyword_defined = 301, keyword_BEGIN = 302, keyword_END = 303, keyword__LINE__ = 304,
  keyword__FILE__ = 305, keyword__ENCODING__ = 306, tIDENTIFIER = 307, tFID = 308,
  tGVAR = 309, tIVAR = 310, tCONSTANT = 311, tCVAR = 312,
  tLABEL = 313, tINTEGER = 314, tFLOAT = 315, tRATIONAL = 316,
  tIMAGINARY = 317, tSTRING_CONTENT = 318, tCHAR = 319, tNTH_REF = 320,
  tBACK_REF = 321, tREGEXP_END = 322, tUPLUS = 130, tUMINUS = 131,
  tPOW = 132, tCMP = 134, tEQ = 139, tEQQ = 140,
  tNEQ = 141, tGEQ = 138, tLEQ = 137, tANDOP = 323,
  tOROP = 324, tMATCH = 142, tNMATCH = 143, tDOT2 = 128,
  tDOT3 = 129, tAREF = 144, tASET = 145, tLSHFT = 135,
  tRSHFT = 136, tCOLON2 = 325, tCOLON3 = 326, tOP_ASGN = 327,
  tASSOC = 328, tLPAREN = 329, tLPAREN_ARG = 330, tRPAREN = 331,
  tLBRACK = 332, tLBRACE = 333, tLBRACE_ARG = 334, tSTAR = 335,
  tDSTAR = 336, tAMPER = 337, tLAMBDA = 338, tSYMBEG = 339,
  tSTRING_BEG = 340, tXSTRING_BEG = 341, tREGEXP_BEG = 342, tWORDS_BEG = 343,
  tQWORDS_BEG = 344, tSYMBOLS_BEG = 345, tQSYMBOLS_BEG = 346, tSTRING_DBEG = 347,
  tSTRING_DEND = 348, tSTRING_DVAR = 349, tSTRING_END = 350, tLAMBEG = 351,
  tLOWEST = 352, tUMINUS_NUM = 353, tLAST_TOKEN = 354, END_OF_INPUT = 0,
  keyword_class = 258, keyword_module = 259, keyword_def = 260, keyword_undef = 261,
  keyword_begin = 262, keyword_rescue = 263, keyword_ensure = 264, keyword_end = 265,
  keyword_if = 266, keyword_unless = 267, keyword_then = 268, keyword_elsif = 269,
  keyword_else = 270, keyword_case = 271, keyword_when = 272, keyword_while = 273,
  keyword_until = 274, keyword_for = 275, keyword_break = 276, keyword_next = 277,
  keyword_redo = 278, keyword_retry = 279, keyword_in = 280, keyword_do = 281,
  keyword_do_cond = 282, keyword_do_block = 283, keyword_do_LAMBDA = 284, keyword_return = 285,
  keyword_yield = 286, keyword_super = 287, keyword_self = 288, keyword_nil = 289,
  keyword_true = 290, keyword_false = 291, keyword_and = 292, keyword_or = 293,
  keyword_not = 294, modifier_if = 295, modifier_unless = 296, modifier_while = 297,
  modifier_until = 298, modifier_rescue = 299, keyword_alias = 300, keyword_defined = 301,
  keyword_BEGIN = 302, keyword_END = 303, keyword__LINE__ = 304, keyword__FILE__ = 305,
  keyword__ENCODING__ = 306, tIDENTIFIER = 307, tFID = 308, tGVAR = 309,
  tIVAR = 310, tCONSTANT = 311, tCVAR = 312, tLABEL = 313,
  tINTEGER = 314, tFLOAT = 315, tRATIONAL = 316, tIMAGINARY = 317,
  tSTRING_CONTENT = 318, tCHAR = 319, tNTH_REF = 320, tBACK_REF = 321,
  tREGEXP_END = 322, tUPLUS = 130, tUMINUS = 131, tPOW = 132,
  tCMP = 134, tEQ = 139, tEQQ = 140, tNEQ = 141,
  tGEQ = 138, tLEQ = 137, tANDOP = 323, tOROP = 324,
  tMATCH = 142, tNMATCH = 143, tDOT2 = 128, tDOT3 = 129,
  tAREF = 144, tASET = 145, tLSHFT = 135, tRSHFT = 136,
  tCOLON2 = 325, tCOLON3 = 326, tOP_ASGN = 327, tASSOC = 328,
  tLPAREN = 329, tLPAREN_ARG = 330, tRPAREN = 331, tLBRACK = 332,
  tLBRACE = 333, tLBRACE_ARG = 334, tSTAR = 335, tDSTAR = 336,
  tAMPER = 337, tLAMBDA = 338, tSYMBEG = 339, tSTRING_BEG = 340,
  tXSTRING_BEG = 341, tREGEXP_BEG = 342, tWORDS_BEG = 343, tQWORDS_BEG = 344,
  tSYMBOLS_BEG = 345, tQSYMBOLS_BEG = 346, tSTRING_DBEG = 347, tSTRING_DEND = 348,
  tSTRING_DVAR = 349, tSTRING_END = 350, tLAMBEG = 351, tLOWEST = 352,
  tUMINUS_NUM = 353, tLAST_TOKEN = 354, END_OF_INPUT = 0, keyword_class = 258,
  keyword_module = 259, keyword_def = 260, keyword_undef = 261, keyword_begin = 262,
  keyword_rescue = 263, keyword_ensure = 264, keyword_end = 265, keyword_if = 266,
  keyword_unless = 267, keyword_then = 268, keyword_elsif = 269, keyword_else = 270,
  keyword_case = 271, keyword_when = 272, keyword_while = 273, keyword_until = 274,
  keyword_for = 275, keyword_break = 276, keyword_next = 277, keyword_redo = 278,
  keyword_retry = 279, keyword_in = 280, keyword_do = 281, keyword_do_cond = 282,
  keyword_do_block = 283, keyword_do_LAMBDA = 284, keyword_return = 285, keyword_yield = 286,
  keyword_super = 287, keyword_self = 288, keyword_nil = 289, keyword_true = 290,
  keyword_false = 291, keyword_and = 292, keyword_or = 293, keyword_not = 294,
  modifier_if = 295, modifier_unless = 296, modifier_while = 297, modifier_until = 298,
  modifier_rescue = 299, keyword_alias = 300, keyword_defined = 301, keyword_BEGIN = 302,
  keyword_END = 303, keyword__LINE__ = 304, keyword__FILE__ = 305, keyword__ENCODING__ = 306,
  tIDENTIFIER = 307, tFID = 308, tGVAR = 309, tIVAR = 310,
  tCONSTANT = 311, tCVAR = 312, tLABEL = 313, tINTEGER = 314,
  tFLOAT = 315, tRATIONAL = 316, tIMAGINARY = 317, tSTRING_CONTENT = 318,
  tCHAR = 319, tNTH_REF = 320, tBACK_REF = 321, tREGEXP_END = 322,
  tUPLUS = 130, tUMINUS = 131, tPOW = 132, tCMP = 134,
  tEQ = 139, tEQQ = 140, tNEQ = 141, tGEQ = 138,
  tLEQ = 137, tANDOP = 323, tOROP = 324, tMATCH = 142,
  tNMATCH = 143, tDOT2 = 128, tDOT3 = 129, tAREF = 144,
  tASET = 145, tLSHFT = 135, tRSHFT = 136, tCOLON2 = 325,
  tCOLON3 = 326, tOP_ASGN = 327, tASSOC = 328, tLPAREN = 329,
  tLPAREN_ARG = 330, tRPAREN = 331, tLBRACK = 332, tLBRACE = 333,
  tLBRACE_ARG = 334, tSTAR = 335, tDSTAR = 336, tAMPER = 337,
  tLAMBDA = 338, tSYMBEG = 339, tSTRING_BEG = 340, tXSTRING_BEG = 341,
  tREGEXP_BEG = 342, tWORDS_BEG = 343, tQWORDS_BEG = 344, tSYMBOLS_BEG = 345,
  tQSYMBOLS_BEG = 346, tSTRING_DBEG = 347, tSTRING_DEND = 348, tSTRING_DVAR = 349,
  tSTRING_END = 350, tLAMBEG = 351, tLOWEST = 352, tUMINUS_NUM = 353,
  tLAST_TOKEN = 354
}
 
enum  ruby_id_types {
  RUBY_ID_LOCAL = 0x00, RUBY_ID_INSTANCE = 0x01, RUBY_ID_GLOBAL = 0x03, RUBY_ID_ATTRSET = 0x04,
  RUBY_ID_CONST = 0x05, RUBY_ID_CLASS = 0x06, RUBY_ID_JUNK = 0x07, RUBY_ID_INTERNAL = RUBY_ID_JUNK,
  RUBY_ID_SCOPE_SHIFT = 3, RUBY_ID_SCOPE_MASK = ~(~0U<<RUBY_ID_SCOPE_SHIFT), RUBY_ID_LOCAL = 0x00, RUBY_ID_INSTANCE = 0x01,
  RUBY_ID_GLOBAL = 0x03, RUBY_ID_ATTRSET = 0x04, RUBY_ID_CONST = 0x05, RUBY_ID_CLASS = 0x06,
  RUBY_ID_JUNK = 0x07, RUBY_ID_INTERNAL = RUBY_ID_JUNK, RUBY_ID_SCOPE_SHIFT = 3, RUBY_ID_SCOPE_MASK = ~(~0U<<RUBY_ID_SCOPE_SHIFT)
}
 
enum  ruby_method_ids {
  idDot2 = RUBY_TOKEN(DOT2), idDot3 = RUBY_TOKEN(DOT3), idUPlus = RUBY_TOKEN(UPLUS), idUMinus = RUBY_TOKEN(UMINUS),
  idPow = RUBY_TOKEN(POW), idCmp = RUBY_TOKEN(CMP), idPLUS = '+', idMINUS = '-',
  idMULT = '*', idDIV = '/', idMOD = '', idLT = '<',
  idLTLT = RUBY_TOKEN(LSHFT), idLE = RUBY_TOKEN(LEQ), idGT = '>', idGE = RUBY_TOKEN(GEQ),
  idEq = RUBY_TOKEN(EQ), idEqq = RUBY_TOKEN(EQQ), idNeq = RUBY_TOKEN(NEQ), idNot = '!',
  idBackquote = '`', idEqTilde = RUBY_TOKEN(MATCH), idNeqTilde = RUBY_TOKEN(NMATCH), idAREF = RUBY_TOKEN(AREF),
  idASET = RUBY_TOKEN(ASET), tPRESERVED_ID_BEGIN = 147, idNULL, idEmptyP,
  idEqlP, idRespond_to, idRespond_to_missing, idIFUNC,
  idCFUNC, id_core_set_method_alias, id_core_set_variable_alias, id_core_undef_method,
  id_core_define_method, id_core_define_singleton_method, id_core_set_postexe, id_core_hash_from_ary,
  id_core_hash_merge_ary, id_core_hash_merge_ptr, id_core_hash_merge_kwd, tPRESERVED_ID_END,
  tFreeze, tInspect, tIntern, tObject_id,
  tConst_missing, tMethodMissing, tMethod_added, tSingleton_method_added,
  tMethod_removed, tSingleton_method_removed, tMethod_undefined, tSingleton_method_undefined,
  tLength, tSize, tGets, tSucc,
  tEach, tProc, tLambda, tSend,
  t__send__, t__attached__, tInitialize, tInitialize_copy,
  tInitialize_clone, tInitialize_dup, tUScore, TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing),
  TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed),
  TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length),
  TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each),
  TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__),
  TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone),
  TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect),
  TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing),
  TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed),
  TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size),
  TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc),
  TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__),
  TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup),
  TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern),
  TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added),
  TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined),
  TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets),
  TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda),
  TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize),
  TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id),
  TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added),
  TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined),
  TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ),
  TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send),
  TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy),
  TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing),
  TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed),
  TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length),
  TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each),
  TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__),
  TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone),
  TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect),
  TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing),
  TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed),
  TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size),
  TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc),
  TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__),
  TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup),
  TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern),
  TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added),
  TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined),
  TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets),
  TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda),
  TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize),
  TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id),
  TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added),
  TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined),
  TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ),
  TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send),
  TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy),
  TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing),
  TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed),
  TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length),
  TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each),
  TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__),
  TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone),
  TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect),
  TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing),
  TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed),
  TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size),
  TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc),
  TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__),
  TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup),
  TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern),
  TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added),
  TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined),
  TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets),
  TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda),
  TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize),
  TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id),
  TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added),
  TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined),
  TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ),
  TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send),
  TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy),
  TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing),
  TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed),
  TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length),
  TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each),
  TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__),
  TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone),
  TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect),
  TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing),
  TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed),
  TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size),
  TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc),
  TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__),
  TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup),
  TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern),
  TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added),
  TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined),
  TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets),
  TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda),
  TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize),
  TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id),
  TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added),
  TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined),
  TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ),
  TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send),
  TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy),
  TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing),
  TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed),
  TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length),
  TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each),
  TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__),
  TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone),
  TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect),
  TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing),
  TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed),
  TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size),
  TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc),
  TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__),
  TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup),
  TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern),
  TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added),
  TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined),
  TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets),
  TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda),
  TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize),
  TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id),
  TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added),
  TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined),
  TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ),
  TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send),
  TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy),
  TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing),
  TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed),
  TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length),
  TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each),
  TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__),
  TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone),
  TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect),
  TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing),
  TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed),
  TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size),
  TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc),
  TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__),
  TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup),
  TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern),
  TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added),
  TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined),
  TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets),
  TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda),
  TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize),
  TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id),
  TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added),
  TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined),
  TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ),
  TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send),
  TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy),
  TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing),
  TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed),
  TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length),
  TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each),
  TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__),
  TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone),
  TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect),
  TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing),
  TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed),
  TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size),
  TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc),
  TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__),
  TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup),
  TOKEN2LOCALID =(UScore), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern),
  TOKEN2LOCALID =(Object_id), TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added),
  TOKEN2LOCALID =(Singleton_method_added), TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined),
  TOKEN2LOCALID =(Singleton_method_undefined), TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets),
  TOKEN2LOCALID =(Succ), TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda),
  TOKEN2LOCALID =(Send), TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize),
  TOKEN2LOCALID =(Initialize_copy), TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Inspect), TOKEN2LOCALID =(Intern), TOKEN2LOCALID =(Object_id),
  TOKEN2LOCALID =(Const_missing), TOKEN2LOCALID =(MethodMissing), TOKEN2LOCALID =(Method_added), TOKEN2LOCALID =(Singleton_method_added),
  TOKEN2LOCALID =(Method_removed), TOKEN2LOCALID =(Singleton_method_removed), TOKEN2LOCALID =(Method_undefined), TOKEN2LOCALID =(Singleton_method_undefined),
  TOKEN2LOCALID =(Length), TOKEN2LOCALID =(Size), TOKEN2LOCALID =(Gets), TOKEN2LOCALID =(Succ),
  TOKEN2LOCALID =(Each), TOKEN2LOCALID =(Proc), TOKEN2LOCALID =(Lambda), TOKEN2LOCALID =(Send),
  TOKEN2LOCALID =(__send__), TOKEN2LOCALID =(__attached__), TOKEN2LOCALID =(Initialize), TOKEN2LOCALID =(Initialize_copy),
  TOKEN2LOCALID =(Initialize_clone), TOKEN2LOCALID =(Initialize_dup), TOKEN2LOCALID =(UScore), tLAST_OP_ID = tPRESERVED_ID_END-1,
  idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT, idDot2 = RUBY_TOKEN(DOT2), idDot3 = RUBY_TOKEN(DOT3), idUPlus = RUBY_TOKEN(UPLUS),
  idUMinus = RUBY_TOKEN(UMINUS), idPow = RUBY_TOKEN(POW), idCmp = RUBY_TOKEN(CMP), idPLUS = '+',
  idMINUS = '-', idMULT = '*', idDIV = '/', idMOD = '',
  idLT = '<', idLTLT = RUBY_TOKEN(LSHFT), idLE = RUBY_TOKEN(LEQ), idGT = '>',
  idGE = RUBY_TOKEN(GEQ), idEq = RUBY_TOKEN(EQ), idEqq = RUBY_TOKEN(EQQ), idNeq = RUBY_TOKEN(NEQ),
  idNot = '!', idBackquote = '`', idEqTilde = RUBY_TOKEN(MATCH), idNeqTilde = RUBY_TOKEN(NMATCH),
  idAREF = RUBY_TOKEN(AREF), idASET = RUBY_TOKEN(ASET), tPRESERVED_ID_BEGIN = 147, idNULL,
  idEmptyP, idEqlP, idRespond_to, idRespond_to_missing,
  idIFUNC, idCFUNC, id_core_set_method_alias, id_core_set_variable_alias,
  id_core_undef_method, id_core_define_method, id_core_define_singleton_method, id_core_set_postexe,
  id_core_hash_from_ary, id_core_hash_merge_ary, id_core_hash_merge_ptr, id_core_hash_merge_kwd,
  tPRESERVED_ID_END, tFreeze, tInspect, tIntern,
  tObject_id, tConst_missing, tMethodMissing, tMethod_added,
  tSingleton_method_added, tMethod_removed, tSingleton_method_removed, tMethod_undefined,
  tSingleton_method_undefined, tLength, tSize, tGets,
  tSucc, tEach, tProc, tLambda,
  tSend, t__send__, t__attached__, tInitialize,
  tInitialize_copy, tInitialize_clone, tInitialize_dup, tUScore,
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze),
  TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze), TOKEN2LOCALID =(Freeze),
  tLAST_OP_ID = tPRESERVED_ID_END-1, idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
}
 
enum  lex_state_bits {
  EXPR_BEG_bit, EXPR_END_bit, EXPR_ENDARG_bit, EXPR_ENDFN_bit,
  EXPR_ARG_bit, EXPR_CMDARG_bit, EXPR_MID_bit, EXPR_FNAME_bit,
  EXPR_DOT_bit, EXPR_CLASS_bit, EXPR_VALUE_bit, EXPR_LABELARG_bit,
  EXPR_MAX_STATE, EXPR_BEG_bit, EXPR_END_bit, EXPR_ENDARG_bit,
  EXPR_ENDFN_bit, EXPR_ARG_bit, EXPR_CMDARG_bit, EXPR_MID_bit,
  EXPR_FNAME_bit, EXPR_DOT_bit, EXPR_CLASS_bit, EXPR_VALUE_bit,
  EXPR_LABELARG_bit, EXPR_MAX_STATE, EXPR_BEG_bit, EXPR_END_bit,
  EXPR_ENDARG_bit, EXPR_ENDFN_bit, EXPR_ARG_bit, EXPR_CMDARG_bit,
  EXPR_MID_bit, EXPR_FNAME_bit, EXPR_DOT_bit, EXPR_CLASS_bit,
  EXPR_VALUE_bit, EXPR_LABELARG_bit, EXPR_MAX_STATE, EXPR_BEG_bit,
  EXPR_END_bit, EXPR_ENDARG_bit, EXPR_ENDFN_bit, EXPR_ARG_bit,
  EXPR_CMDARG_bit, EXPR_MID_bit, EXPR_FNAME_bit, EXPR_DOT_bit,
  EXPR_CLASS_bit, EXPR_VALUE_bit, EXPR_LABELARG_bit, EXPR_MAX_STATE
}
 
enum  lex_state_e {
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS | EXPR_LABELARG), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS | EXPR_LABELARG), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS | EXPR_LABELARG), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG), DEF_EXPR =(BEG),
  DEF_EXPR =(BEG), EXPR_BEG_ANY = (EXPR_BEG | EXPR_VALUE | EXPR_MID | EXPR_CLASS | EXPR_LABELARG), EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG), EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN)
}
 

Functions

RUBY_SYMBOL_EXPORT_BEGIN
RUBY_EXTERN double 
acosh (double)
 
RUBY_EXTERN double asinh (double)
 
RUBY_EXTERN double atanh (double)
 
RUBY_EXTERN char * crypt (const char *, const char *)
 
RUBY_EXTERN int dup2 (int, int)
 
RUBY_EXTERN int eaccess (const char *, int)
 
RUBY_EXTERN double round (double)
 
RUBY_EXTERN int finite (double)
 
RUBY_EXTERN int flock (int, int)
 
RUBY_EXTERN double hypot (double, double)
 
RUBY_EXTERN double erf (double)
 
RUBY_EXTERN double erfc (double)
 
RUBY_EXTERN double tgamma (double)
 
RUBY_EXTERN double lgamma_r (double, int *)
 
RUBY_EXTERN double cbrt (double)
 
RUBY_EXTERN int isinf (double)
 
RUBY_EXTERN int isnan (double)
 
RUBY_EXTERN void * memmove (void *, const void *, size_t)
 
RUBY_EXTERN char * strchr (const char *, int)
 
RUBY_EXTERN char * strrchr (const char *, int)
 
RUBY_EXTERN char * strerror (int)
 
RUBY_EXTERN char * strstr (const char *, const char *)
 
RUBY_EXTERN size_t strlcpy (char *, const char *, size_t)
 
RUBY_EXTERN size_t strlcat (char *, const char *, size_t)
 
RUBY_EXTERN int signbit (double x)
 
RUBY_EXTERN int ffs (int)
 
RUBY_EXTERN void setproctitle (const char *fmt,...)
 
void * xmalloc (size_t) RUBY_ATTR_ALLOC_SIZE((1))
 
void * xmalloc2 (size_t, size_t) RUBY_ATTR_ALLOC_SIZE((1
 
void void * xcalloc (size_t, size_t) RUBY_ATTR_ALLOC_SIZE((1
 
void void void * xrealloc (void *, size_t) RUBY_ATTR_ALLOC_SIZE((2))
 
void * xrealloc2 (void *, size_t, size_t) RUBY_ATTR_ALLOC_SIZE((2
 
void void xfree (void *)
 
RUBY_SYMBOL_EXPORT_BEGIN void * alloca ()
 
VALUE rb_int2inum (SIGNED_VALUE)
 
VALUE rb_uint2inum (VALUE)
 
static int rb_type (VALUE obj)
 
volatile VALUE * rb_gc_guarded_ptr (volatile VALUE *ptr)
 
void rb_check_type (VALUE, int)
 
VALUE rb_str_to_str (VALUE)
 
VALUE rb_string_value (volatile VALUE *)
 
char * rb_string_value_ptr (volatile VALUE *)
 
char * rb_string_value_cstr (volatile VALUE *)
 
void rb_check_safe_obj (VALUE)
 
 DEPRECATED (void rb_check_safe_str(VALUE))
 
VALUE rb_str_export (VALUE)
 
VALUE rb_str_export_locale (VALUE)
 
VALUE rb_get_path (VALUE)
 
VALUE rb_get_path_no_checksafe (VALUE)
 
void rb_secure (int)
 
int rb_safe_level (void)
 
void rb_set_safe_level (int)
 
void rb_set_safe_level_force (int)
 
void rb_secure_update (VALUE)
 
 NORETURN (void rb_insecure_operation(void))
 
VALUE rb_errinfo (void)
 
void rb_set_errinfo (VALUE)
 
SIGNED_VALUE rb_num2long (VALUE)
 
VALUE rb_num2ulong (VALUE)
 
static long rb_num2long_inline (VALUE x)
 
static unsigned long rb_num2ulong_inline (VALUE x)
 
short rb_num2short (VALUE)
 
unsigned short rb_num2ushort (VALUE)
 
short rb_fix2short (VALUE)
 
unsigned short rb_fix2ushort (VALUE)
 
static short rb_num2short_inline (VALUE x)
 
double rb_num2dbl (VALUE)
 
VALUE rb_uint2big (VALUE)
 
VALUE rb_int2big (SIGNED_VALUE)
 
VALUE rb_newobj (void)
 
VALUE rb_newobj_of (VALUE, VALUE)
 
VALUE rb_obj_setup (VALUE obj, VALUE klass, VALUE type)
 
VALUE rb_obj_hide (VALUE obj)
 
VALUE rb_obj_reveal (VALUE obj, VALUE klass)
 
double rb_float_value (VALUE)
 
VALUE rb_float_new (double)
 
VALUE rb_float_new_in_heap (double)
 
VALUE rb_data_object_alloc (VALUE, void *, RUBY_DATA_FUNC, RUBY_DATA_FUNC)
 
VALUE rb_data_typed_object_alloc (VALUE klass, void *datap, const rb_data_type_t *)
 
int rb_typeddata_inherited_p (const rb_data_type_t *child, const rb_data_type_t *parent)
 
int rb_typeddata_is_kind_of (VALUE, const rb_data_type_t *)
 
void * rb_check_typeddata (VALUE, const rb_data_type_t *)
 
void rb_gc_writebarrier (VALUE a, VALUE b)
 
void rb_gc_writebarrier_unprotect_promoted (VALUE obj)
 
static VALUE rb_obj_wb_unprotect (VALUE x, RB_UNUSED_VAR(const char *filename), RB_UNUSED_VAR(int line))
 
static VALUE rb_obj_written (VALUE a, RB_UNUSED_VAR(VALUE oldv), VALUE b, RB_UNUSED_VAR(const char *filename), RB_UNUSED_VAR(int line))
 
static VALUE rb_obj_write (VALUE a, VALUE *slot, VALUE b, RB_UNUSED_VAR(const char *filename), RB_UNUSED_VAR(int line))
 
static VALUE rb_int2num_inline (int v)
 
static VALUE rb_uint2num_inline (unsigned int v)
 
static VALUE rb_long2num_inline (long v)
 
static VALUE rb_ulong2num_inline (unsigned long v)
 
static char rb_num2char_inline (VALUE x)
 
void * rb_alloc_tmp_buffer (volatile VALUE *store, long len) RUBY_ATTR_ALLOC_SIZE((2))
 
void rb_free_tmp_buffer (volatile VALUE *store)
 
void rb_obj_infect (VALUE, VALUE)
 
void rb_glob (const char *, void(*)(const char *, VALUE, void *), VALUE)
 
int ruby_glob (const char *, int, ruby_glob_func *, VALUE)
 
int ruby_brace_glob (const char *, int, ruby_glob_func *, VALUE)
 
VALUE rb_define_class (const char *, VALUE)
 Defines a top-level class.
 
VALUE rb_define_module (const char *)
 
VALUE rb_define_class_under (VALUE, const char *, VALUE)
 Defines a class under the namespace of outer.
 
VALUE rb_define_module_under (VALUE, const char *)
 
void rb_include_module (VALUE, VALUE)
 
void rb_extend_object (VALUE, VALUE)
 
void rb_prepend_module (VALUE, VALUE)
 
VALUE rb_gvar_undef_getter (ID id, void *data, struct rb_global_variable *gvar)
 
void rb_gvar_undef_setter (VALUE val, ID id, void *data, struct rb_global_variable *gvar)
 
void rb_gvar_undef_marker (VALUE *var)
 
VALUE rb_gvar_val_getter (ID id, void *data, struct rb_global_variable *gvar)
 
void rb_gvar_val_setter (VALUE val, ID id, void *data, struct rb_global_variable *gvar)
 
void rb_gvar_val_marker (VALUE *var)
 
VALUE rb_gvar_var_getter (ID id, void *data, struct rb_global_variable *gvar)
 
void rb_gvar_var_setter (VALUE val, ID id, void *data, struct rb_global_variable *gvar)
 
void rb_gvar_var_marker (VALUE *var)
 
void rb_gvar_readonly_setter (VALUE val, ID id, void *data, struct rb_global_variable *gvar)
 
void rb_define_variable (const char *, VALUE *)
 
void rb_define_virtual_variable (const char *, VALUE(*)(ANYARGS), void(*)(ANYARGS))
 
void rb_define_hooked_variable (const char *, VALUE *, VALUE(*)(ANYARGS), void(*)(ANYARGS))
 
void rb_define_readonly_variable (const char *, VALUE *)
 
void rb_define_const (VALUE, const char *, VALUE)
 
void rb_define_global_const (const char *, VALUE)
 
void rb_define_method (VALUE, const char *, VALUE(*)(ANYARGS), int)
 
void rb_define_module_function (VALUE, const char *, VALUE(*)(ANYARGS), int)
 Defines a module function for module.
 
void rb_define_global_function (const char *, VALUE(*)(ANYARGS), int)
 Defines a global function.
 
void rb_undef_method (VALUE, const char *)
 
void rb_define_alias (VALUE, const char *, const char *)
 Defines an alias of a method.
 
void rb_define_attr (VALUE, const char *, int, int)
 Defines (a) public accessor method(s) for an attribute.
 
void rb_global_variable (VALUE *)
 
void rb_gc_register_mark_object (VALUE)
 
void rb_gc_register_address (VALUE *)
 
void rb_gc_unregister_address (VALUE *)
 
ID rb_intern (const char *)
 
ID rb_intern2 (const char *, long)
 
ID rb_intern_str (VALUE str)
 
const char * rb_id2name (ID)
 
ID rb_check_id (volatile VALUE *)
 Returns ID for the given name if it is interned already, or 0.
 
ID rb_to_id (VALUE)
 
VALUE rb_id2str (ID)
 
const char * rb_class2name (VALUE)
 
const char * rb_obj_classname (VALUE)
 
void rb_p (VALUE)
 
VALUE rb_eval_string (const char *)
 Evaluates the given string in an isolated binding.
 
VALUE rb_eval_string_protect (const char *, int *)
 Evaluates the given string in an isolated binding.
 
VALUE rb_eval_string_wrap (const char *, int *)
 Evaluates the given string under a module binding in an isolated binding.
 
VALUE rb_funcall (VALUE, ID, int,...)
 Calls a method.
 
VALUE rb_funcallv (VALUE, ID, int, const VALUE *)
 Calls a method.
 
VALUE rb_funcallv_public (VALUE, ID, int, const VALUE *)
 Calls a method.
 
VALUE rb_funcall_passing_block (VALUE, ID, int, const VALUE *)
 
VALUE rb_funcall_with_block (VALUE, ID, int, const VALUE *, VALUE)
 
int rb_scan_args (int, const VALUE *, const char *,...)
 
VALUE rb_call_super (int, const VALUE *)
 
VALUE rb_gv_set (const char *, VALUE)
 
VALUE rb_gv_get (const char *)
 
VALUE rb_iv_get (VALUE, const char *)
 
VALUE rb_iv_set (VALUE, const char *, VALUE)
 
VALUE rb_equal (VALUE, VALUE)
 
VALUE * rb_ruby_verbose_ptr (void)
 
VALUE * rb_ruby_debug_ptr (void)
 
 PRINTF_ARGS (NORETURN(void rb_raise(VALUE, const char *,...)), 2, 3)
 
 PRINTF_ARGS (NORETURN(void rb_fatal(const char *,...)), 1, 2)
 
 PRINTF_ARGS (NORETURN(void rb_bug(const char *,...)), 1, 2)
 
 NORETURN (void rb_bug_errno(const char *, int))
 
 NORETURN (void rb_sys_fail(const char *))
 
 NORETURN (void rb_sys_fail_str(VALUE))
 
 NORETURN (void rb_mod_sys_fail(VALUE, const char *))
 
 NORETURN (void rb_mod_sys_fail_str(VALUE, VALUE))
 
 NORETURN (void rb_readwrite_sys_fail(int, const char *))
 
 NORETURN (void rb_exit(int))
 
VALUE rb_syserr_new (int, const char *)
 
VALUE rb_syserr_new_str (int n, VALUE arg)
 
 NORETURN (void rb_syserr_fail_str(int, VALUE))
 
 NORETURN (void rb_mod_syserr_fail(VALUE, int, const char *))
 
 NORETURN (void rb_mod_syserr_fail_str(VALUE, int, VALUE))
 
 PRINTF_ARGS (void rb_warning(const char *,...), 1, 2)
 
 PRINTF_ARGS (void rb_compile_warning(const char *, int, const char *,...), 3, 4)
 
VALUE rb_each (VALUE)
 
VALUE rb_yield (VALUE)
 
VALUE rb_yield_values (int n,...)
 
VALUE rb_yield_values2 (int n, const VALUE *argv)
 
VALUE rb_yield_splat (VALUE)
 
VALUE rb_yield_block (VALUE, VALUE, int, const VALUE *, VALUE)
 
int rb_block_given_p (void)
 
void rb_need_block (void)
 
VALUE rb_iterate (VALUE(*)(VALUE), VALUE, VALUE(*)(ANYARGS), VALUE)
 
VALUE rb_block_call (VALUE, ID, int, const VALUE *, rb_block_call_func_t, VALUE)
 
VALUE rb_rescue (VALUE(*)(ANYARGS), VALUE, VALUE(*)(ANYARGS), VALUE)
 
VALUE rb_rescue2 (VALUE(*)(ANYARGS), VALUE, VALUE(*)(ANYARGS), VALUE,...)
 
VALUE rb_ensure (VALUE(*)(ANYARGS), VALUE, VALUE(*)(ANYARGS), VALUE)
 
VALUE rb_catch (const char *, VALUE(*)(ANYARGS), VALUE)
 
VALUE rb_catch_obj (VALUE, VALUE(*)(ANYARGS), VALUE)
 
 NORETURN (void rb_throw(const char *, VALUE))
 
VALUE rb_require (const char *)
 
static VALUE rb_class_of (VALUE obj)
 
static int rb_special_const_p (VALUE obj)
 
RUBY_SYMBOL_EXPORT_BEGIN
RUBY_EXTERN double 
acosh (double)
 
RUBY_EXTERN double asinh (double)
 
RUBY_EXTERN double atanh (double)
 
RUBY_EXTERN char * crypt (const char *, const char *)
 
RUBY_EXTERN int dup2 (int, int)
 
RUBY_EXTERN int eaccess (const char *, int)
 
RUBY_EXTERN double round (double)
 
RUBY_EXTERN int finite (double)
 
RUBY_EXTERN int flock (int, int)
 
RUBY_EXTERN double hypot (double, double)
 
RUBY_EXTERN double erf (double)
 
RUBY_EXTERN double erfc (double)
 
RUBY_EXTERN double tgamma (double)
 
RUBY_EXTERN double lgamma_r (double, int *)
 
RUBY_EXTERN double cbrt (double)
 
RUBY_EXTERN int isinf (double)
 
RUBY_EXTERN int isnan (double)
 
RUBY_EXTERN void * memmove (void *, const void *, size_t)
 
RUBY_EXTERN char * strchr (const char *, int)
 
RUBY_EXTERN char * strrchr (const char *, int)
 
RUBY_EXTERN char * strerror (int)
 
RUBY_EXTERN char * strstr (const char *, const char *)
 
RUBY_EXTERN size_t strlcpy (char *, const char *, size_t)
 
RUBY_EXTERN size_t strlcat (char *, const char *, size_t)
 
RUBY_EXTERN int signbit (double x)
 
RUBY_EXTERN int ffs (int)
 
RUBY_EXTERN void setproctitle (const char *fmt,...)
 
st_table * st_init_table (const struct st_hash_type *)
 
st_table * st_init_table_with_size (const struct st_hash_type *, st_index_t)
 
st_table * st_init_numtable (void)
 
st_table * st_init_numtable_with_size (st_index_t)
 
st_table * st_init_strtable (void)
 
st_table * st_init_strtable_with_size (st_index_t)
 
st_table * st_init_strcasetable (void)
 
st_table * st_init_strcasetable_with_size (st_index_t)
 
int st_delete (st_table *, st_data_t *, st_data_t *)
 
int st_delete_safe (st_table *, st_data_t *, st_data_t *, st_data_t)
 
int st_shift (st_table *, st_data_t *, st_data_t *)
 
int st_insert (st_table *, st_data_t, st_data_t)
 
int st_insert2 (st_table *, st_data_t, st_data_t, st_data_t(*)(st_data_t))
 
int st_lookup (st_table *, st_data_t, st_data_t *)
 
int st_get_key (st_table *, st_data_t, st_data_t *)
 
int st_update (st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg)
 
int st_foreach (st_table *, int(*)(ANYARGS), st_data_t)
 
int st_foreach_check (st_table *, int(*)(ANYARGS), st_data_t, st_data_t)
 
int st_reverse_foreach (st_table *, int(*)(ANYARGS), st_data_t)
 
st_index_t st_keys (st_table *table, st_data_t *keys, st_index_t size)
 
st_index_t st_keys_check (st_table *table, st_data_t *keys, st_index_t size, st_data_t never)
 
st_index_t st_values (st_table *table, st_data_t *values, st_index_t size)
 
st_index_t st_values_check (st_table *table, st_data_t *values, st_index_t size, st_data_t never)
 
void st_add_direct (st_table *, st_data_t, st_data_t)
 
void st_free_table (st_table *)
 
void st_cleanup_safe (st_table *, st_data_t)
 
void st_clear (st_table *)
 
st_table * st_copy (st_table *)
 
int st_numcmp (st_data_t, st_data_t)
 
st_index_t st_numhash (st_data_t)
 
int st_locale_insensitive_strcasecmp (const char *s1, const char *s2)
 
int st_locale_insensitive_strncasecmp (const char *s1, const char *s2, size_t n)
 
size_t st_memsize (const st_table *)
 
st_index_t st_hash (const void *ptr, size_t len, st_index_t h)
 
st_index_t st_hash_uint32 (st_index_t h, uint32_t i)
 
st_index_t st_hash_uint (st_index_t h, st_index_t i)
 
st_index_t st_hash_end (st_index_t h)
 
st_index_t st_hash_start (st_index_t h)
 
void rb_mem_clear (register VALUE *, register long)
 
VALUE rb_assoc_new (VALUE, VALUE)
 
VALUE rb_check_array_type (VALUE)
 
VALUE rb_ary_new (void)
 
VALUE rb_ary_new_capa (long capa)
 
VALUE rb_ary_new_from_args (long n,...)
 
VALUE rb_ary_new_from_values (long n, const VALUE *elts)
 
VALUE rb_ary_tmp_new (long)
 
void rb_ary_free (VALUE)
 
void rb_ary_modify (VALUE)
 
VALUE rb_ary_freeze (VALUE)
 
VALUE rb_ary_shared_with_p (VALUE, VALUE)
 
VALUE rb_ary_aref (int, VALUE *, VALUE)
 
VALUE rb_ary_subseq (VALUE, long, long)
 
void rb_ary_store (VALUE, long, VALUE)
 
VALUE rb_ary_dup (VALUE)
 
VALUE rb_ary_resurrect (VALUE ary)
 
VALUE rb_ary_to_ary (VALUE)
 
VALUE rb_ary_to_s (VALUE)
 
VALUE rb_ary_cat (VALUE, const VALUE *, long)
 
VALUE rb_ary_push (VALUE, VALUE)
 
VALUE rb_ary_pop (VALUE)
 
VALUE rb_ary_shift (VALUE)
 
VALUE rb_ary_unshift (VALUE, VALUE)
 
VALUE rb_ary_entry (VALUE, long)
 
VALUE rb_ary_each (VALUE)
 
VALUE rb_ary_join (VALUE, VALUE)
 
VALUE rb_ary_reverse (VALUE)
 
VALUE rb_ary_rotate (VALUE, long)
 
VALUE rb_ary_sort (VALUE)
 
VALUE rb_ary_sort_bang (VALUE)
 
VALUE rb_ary_delete (VALUE, VALUE)
 
VALUE rb_ary_delete_at (VALUE, long)
 
VALUE rb_ary_clear (VALUE)
 
VALUE rb_ary_plus (VALUE, VALUE)
 
VALUE rb_ary_concat (VALUE, VALUE)
 
VALUE rb_ary_assoc (VALUE, VALUE)
 
VALUE rb_ary_rassoc (VALUE, VALUE)
 
VALUE rb_ary_includes (VALUE, VALUE)
 
VALUE rb_ary_cmp (VALUE, VALUE)
 
VALUE rb_ary_replace (VALUE copy, VALUE orig)
 
VALUE rb_get_values_at (VALUE, long, int, VALUE *, VALUE(*)(VALUE, long))
 
VALUE rb_ary_resize (VALUE ary, long len)
 expands or shrinks ary to len elements.
 
VALUE rb_big_new (long, int)
 
int rb_bigzero_p (VALUE x)
 
VALUE rb_big_clone (VALUE)
 
void rb_big_2comp (VALUE)
 
VALUE rb_big_norm (VALUE)
 
void rb_big_resize (VALUE big, long len)
 
VALUE rb_cstr_to_inum (const char *, int, int)
 
VALUE rb_str_to_inum (VALUE, int, int)
 
VALUE rb_cstr2inum (const char *, int)
 
VALUE rb_str2inum (VALUE, int)
 
VALUE rb_big2str (VALUE, int)
 
 DEPRECATED (VALUE rb_big2str0(VALUE, int, int))
 
SIGNED_VALUE rb_big2long (VALUE)
 
VALUE rb_big2ulong (VALUE)
 
 DEPRECATED (VALUE rb_big2ulong_pack(VALUE x))
 
 DEPRECATED (void rb_quad_pack(char *, VALUE))
 
 DEPRECATED (VALUE rb_quad_unpack(const char *, int))
 
void rb_big_pack (VALUE val, unsigned long *buf, long num_longs)
 
VALUE rb_big_unpack (unsigned long *buf, long num_longs)
 
int rb_uv_to_utf8 (char[6], unsigned long)
 
VALUE rb_dbl2big (double)
 
double rb_big2dbl (VALUE)
 
VALUE rb_big_cmp (VALUE, VALUE)
 
VALUE rb_big_eq (VALUE, VALUE)
 
VALUE rb_big_eql (VALUE, VALUE)
 
VALUE rb_big_plus (VALUE, VALUE)
 
VALUE rb_big_minus (VALUE, VALUE)
 
VALUE rb_big_mul (VALUE, VALUE)
 
VALUE rb_big_div (VALUE, VALUE)
 
VALUE rb_big_idiv (VALUE, VALUE)
 
VALUE rb_big_modulo (VALUE, VALUE)
 
VALUE rb_big_divmod (VALUE, VALUE)
 
VALUE rb_big_pow (VALUE, VALUE)
 
VALUE rb_big_and (VALUE, VALUE)
 
VALUE rb_big_or (VALUE, VALUE)
 
VALUE rb_big_xor (VALUE, VALUE)
 
VALUE rb_big_lshift (VALUE, VALUE)
 
VALUE rb_big_rshift (VALUE, VALUE)
 
int rb_integer_pack (VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags)
 
VALUE rb_integer_unpack (const void *words, size_t numwords, size_t wordsize, size_t nails, int flags)
 
size_t rb_absint_size (VALUE val, int *nlz_bits_ret)
 
size_t rb_absint_numwords (VALUE val, size_t word_numbits, size_t *nlz_bits_ret)
 
int rb_absint_singlebit_p (VALUE val)
 
VALUE rb_rational_raw (VALUE, VALUE)
 
VALUE rb_rational_new (VALUE, VALUE)
 
VALUE rb_Rational (VALUE, VALUE)
 
VALUE rb_flt_rationalize_with_prec (VALUE, VALUE)
 
VALUE rb_flt_rationalize (VALUE)
 
VALUE rb_complex_raw (VALUE, VALUE)
 
VALUE rb_complex_new (VALUE, VALUE)
 
VALUE rb_complex_polar (VALUE, VALUE)
 
VALUE rb_Complex (VALUE, VALUE)
 
VALUE rb_class_boot (VALUE)
 A utility function that wraps class_alloc.
 
VALUE rb_class_new (VALUE)
 Creates a new class.
 
VALUE rb_mod_init_copy (VALUE, VALUE)
 
VALUE rb_singleton_class_clone (VALUE)
 
void rb_singleton_class_attached (VALUE, VALUE)
 Attach a object to a singleton class.
 
VALUE rb_make_metaclass (VALUE, VALUE)
 
void rb_check_inheritable (VALUE)
 Ensures a class can be derived from super.
 
VALUE rb_class_inherited (VALUE, VALUE)
 Calls Class::inherited.
 
VALUE rb_define_class_id (ID, VALUE)
 Defines a new class.
 
VALUE rb_define_class_id_under (VALUE, ID, VALUE)
 Defines a class under the namespace of outer.
 
VALUE rb_module_new (void)
 
VALUE rb_define_module_id (ID)
 
VALUE rb_define_module_id_under (VALUE, ID)
 
VALUE rb_include_class_new (VALUE, VALUE)
 
VALUE rb_mod_included_modules (VALUE)
 
VALUE rb_mod_include_p (VALUE, VALUE)
 
VALUE rb_mod_ancestors (VALUE)
 
VALUE rb_class_instance_methods (int, VALUE *, VALUE)
 
VALUE rb_class_public_instance_methods (int, VALUE *, VALUE)
 
VALUE rb_class_protected_instance_methods (int, VALUE *, VALUE)
 
VALUE rb_class_private_instance_methods (int, VALUE *, VALUE)
 
VALUE rb_obj_singleton_methods (int, VALUE *, VALUE)
 
void rb_define_method_id (VALUE, ID, VALUE(*)(ANYARGS), int)
 
void rb_frozen_class_p (VALUE)
 
void rb_undef (VALUE, ID)
 
void rb_define_protected_method (VALUE, const char *, VALUE(*)(ANYARGS), int)
 
void rb_define_private_method (VALUE, const char *, VALUE(*)(ANYARGS), int)
 
void rb_define_singleton_method (VALUE, const char *, VALUE(*)(ANYARGS), int)
 Defines a singleton method for obj.
 
VALUE rb_singleton_class (VALUE)
 Returns the singleton class of obj.
 
int rb_cmpint (VALUE, VALUE, VALUE)
 
 NORETURN (void rb_cmperr(VALUE, VALUE))
 
VALUE rb_fiber_new (VALUE(*)(ANYARGS), VALUE)
 
VALUE rb_fiber_resume (VALUE fib, int argc, VALUE *args)
 
VALUE rb_fiber_yield (int argc, VALUE *args)
 
VALUE rb_fiber_current (void)
 
VALUE rb_fiber_alive_p (VALUE)
 
VALUE rb_enum_values_pack (int, const VALUE *)
 
VALUE rb_enumeratorize (VALUE, VALUE, int, VALUE *)
 
VALUE rb_enumeratorize_with_size (VALUE, VALUE, int, VALUE *, rb_enumerator_size_func *)
 
VALUE rb_exc_new (VALUE, const char *, long)
 
VALUE rb_exc_new_cstr (VALUE, const char *)
 
VALUE rb_exc_new_str (VALUE, VALUE)
 
 PRINTF_ARGS (NORETURN(void rb_loaderror(const char *,...)), 1, 2)
 
 PRINTF_ARGS (NORETURN(void rb_loaderror_with_path(VALUE path, const char *,...)), 2, 3)
 
 PRINTF_ARGS (NORETURN(void rb_name_error(ID, const char *,...)), 2, 3)
 
 PRINTF_ARGS (NORETURN(void rb_name_error_str(VALUE, const char *,...)), 2, 3)
 
 NORETURN (void rb_invalid_str(const char *, const char *))
 
 PRINTF_ARGS (void rb_compile_error(const char *, int, const char *,...), 3, 4)
 
 PRINTF_ARGS (void rb_compile_error_with_enc(const char *, int, void *, const char *,...), 4, 5)
 
 PRINTF_ARGS (void rb_compile_error_append(const char *,...), 1, 2)
 
 NORETURN (void rb_error_frozen(const char *))
 
void rb_error_untrusted (VALUE)
 
void rb_check_frozen (VALUE)
 
void rb_check_trusted (VALUE)
 
static void rb_check_frozen_inline (VALUE obj)
 
static void rb_check_trusted_inline (VALUE obj)
 
void rb_check_copyable (VALUE obj, VALUE orig)
 
int rb_sourceline (void)
 
const char * rb_sourcefile (void)
 
VALUE rb_check_funcall (VALUE, ID, int, const VALUE *)
 
 NORETURN (void rb_error_arity(int, int, int))
 
static void rb_check_arity (int argc, int min, int max)
 
 NORETURN (void rb_exc_raise(VALUE))
 
VALUE rb_f_exit (int, VALUE *)
 
VALUE rb_f_abort (int, VALUE *)
 
void rb_remove_method (VALUE, const char *)
 
void rb_remove_method_id (VALUE, ID)
 
void rb_define_alloc_func (VALUE, rb_alloc_func_t)
 
void rb_undef_alloc_func (VALUE)
 
rb_alloc_func_t rb_get_alloc_func (VALUE)
 
void rb_clear_cache (void)
 
void rb_clear_constant_cache (void)
 
void rb_clear_method_cache_by_class (VALUE)
 
void rb_alias (VALUE, ID, ID)
 
void rb_attr (VALUE, ID, int, int, int)
 
int rb_method_boundp (VALUE, ID, int)
 
int rb_method_basic_definition_p (VALUE, ID)
 
VALUE rb_eval_cmd (VALUE, VALUE, int)
 
int rb_obj_respond_to (VALUE, ID, int)
 
int rb_respond_to (VALUE, ID)
 
VALUE rb_f_notimplement (int argc, VALUE *argv, VALUE obj)
 
void rb_interrupt (void)
 
VALUE rb_apply (VALUE, ID, VALUE)
 Calls a method.
 
void rb_backtrace (void)
 
ID rb_frame_this_func (void)
 
VALUE rb_obj_instance_eval (int, VALUE *, VALUE)
 
VALUE rb_obj_instance_exec (int, VALUE *, VALUE)
 
VALUE rb_mod_module_eval (int, VALUE *, VALUE)
 
VALUE rb_mod_module_exec (int, VALUE *, VALUE)
 
void rb_load (VALUE, int)
 
void rb_load_protect (VALUE, int, int *)
 
 NORETURN (void rb_jump_tag(int))
 
int rb_provided (const char *)
 
int rb_feature_provided (const char *, const char **)
 
void rb_provide (const char *)
 
VALUE rb_f_require (VALUE, VALUE)
 
VALUE rb_require_safe (VALUE, int)
 
void rb_obj_call_init (VALUE, int, VALUE *)
 
VALUE rb_class_new_instance (int, VALUE *, VALUE)
 
VALUE rb_block_proc (void)
 
VALUE rb_block_lambda (void)
 
VALUE rb_proc_new (VALUE(*)(ANYARGS), VALUE)
 
VALUE rb_obj_is_proc (VALUE)
 
VALUE rb_proc_call (VALUE, VALUE)
 
VALUE rb_proc_call_with_block (VALUE, int argc, const VALUE *argv, VALUE)
 
int rb_proc_arity (VALUE)
 
VALUE rb_proc_lambda_p (VALUE)
 
VALUE rb_binding_new (void)
 
VALUE rb_obj_method (VALUE, VALUE)
 
VALUE rb_obj_is_method (VALUE)
 
VALUE rb_method_call (int, VALUE *, VALUE)
 
VALUE rb_method_call_with_block (int, VALUE *, VALUE, VALUE)
 
int rb_mod_method_arity (VALUE, ID)
 
int rb_obj_method_arity (VALUE, ID)
 
VALUE rb_protect (VALUE(*)(VALUE), VALUE, int *)
 
void rb_set_end_proc (void(*)(VALUE), VALUE)
 
void rb_exec_end_proc (void)
 
void rb_thread_schedule (void)
 
void rb_thread_wait_fd (int)
 
int rb_thread_fd_writable (int)
 
void rb_thread_fd_close (int)
 
int rb_thread_alone (void)
 
 DEPRECATED (void rb_thread_polling(void))
 
void rb_thread_sleep (int)
 
void rb_thread_sleep_forever (void)
 
void rb_thread_sleep_deadly (void)
 
VALUE rb_thread_stop (void)
 
VALUE rb_thread_wakeup (VALUE)
 
VALUE rb_thread_wakeup_alive (VALUE)
 
VALUE rb_thread_run (VALUE)
 
VALUE rb_thread_kill (VALUE)
 
VALUE rb_thread_create (VALUE(*)(ANYARGS), void *)
 
 DEPRECATED (int rb_thread_select(int, fd_set *, fd_set *, fd_set *, struct timeval *))
 
int rb_thread_fd_select (int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *)
 
void rb_thread_wait_for (struct timeval)
 
VALUE rb_thread_current (void)
 
VALUE rb_thread_main (void)
 
VALUE rb_thread_local_aref (VALUE, ID)
 
VALUE rb_thread_local_aset (VALUE, ID, VALUE)
 
void rb_thread_atfork (void)
 
void rb_thread_atfork_before_exec (void)
 
VALUE rb_exec_recursive (VALUE(*)(VALUE, VALUE, int), VALUE, VALUE)
 
VALUE rb_exec_recursive_paired (VALUE(*)(VALUE, VALUE, int), VALUE, VALUE, VALUE)
 
VALUE rb_exec_recursive_outer (VALUE(*)(VALUE, VALUE, int), VALUE, VALUE)
 
VALUE rb_exec_recursive_paired_outer (VALUE(*)(VALUE, VALUE, int), VALUE, VALUE, VALUE)
 
VALUE rb_dir_getwd (void)
 
VALUE rb_file_s_expand_path (int, VALUE *)
 
VALUE rb_file_expand_path (VALUE, VALUE)
 
VALUE rb_file_s_absolute_path (int, VALUE *)
 
VALUE rb_file_absolute_path (VALUE, VALUE)
 
VALUE rb_file_dirname (VALUE fname)
 
int rb_find_file_ext_safe (VALUE *, const char *const *, int)
 
VALUE rb_find_file_safe (VALUE, int)
 
int rb_find_file_ext (VALUE *, const char *const *)
 
VALUE rb_find_file (VALUE)
 
VALUE rb_file_directory_p (VALUE, VALUE)
 
VALUE rb_str_encode_ospath (VALUE)
 
int rb_is_absolute_path (const char *)
 
 NORETURN (void rb_memerror(void))
 
int rb_during_gc (void)
 
void rb_gc_mark_locations (VALUE *, VALUE *)
 
void rb_mark_tbl (struct st_table *)
 
void rb_mark_set (struct st_table *)
 
void rb_mark_hash (struct st_table *)
 
void rb_gc_mark_maybe (VALUE)
 
void rb_gc_mark (VALUE)
 
void rb_gc_force_recycle (VALUE)
 
void rb_gc (void)
 
void rb_gc_copy_finalizer (VALUE, VALUE)
 
void rb_gc_finalize_deferred (void)
 
void rb_gc_call_finalizer_at_exit (void)
 
VALUE rb_gc_enable (void)
 
VALUE rb_gc_disable (void)
 
VALUE rb_gc_start (void)
 
VALUE rb_define_finalizer (VALUE, VALUE)
 
VALUE rb_undefine_finalizer (VALUE)
 
size_t rb_gc_count (void)
 
size_t rb_gc_stat (VALUE)
 
VALUE rb_gc_latest_gc_info (VALUE)
 
void st_foreach_safe (struct st_table *, int(*)(ANYARGS), st_data_t)
 
VALUE rb_check_hash_type (VALUE)
 
void rb_hash_foreach (VALUE, int(*)(ANYARGS), VALUE)
 
VALUE rb_hash (VALUE)
 
VALUE rb_hash_new (void)
 
VALUE rb_hash_dup (VALUE)
 
VALUE rb_hash_freeze (VALUE)
 
VALUE rb_hash_aref (VALUE, VALUE)
 
VALUE rb_hash_lookup (VALUE, VALUE)
 
VALUE rb_hash_lookup2 (VALUE, VALUE, VALUE)
 
VALUE rb_hash_fetch (VALUE, VALUE)
 
VALUE rb_hash_aset (VALUE, VALUE, VALUE)
 
VALUE rb_hash_clear (VALUE)
 
VALUE rb_hash_delete_if (VALUE)
 
VALUE rb_hash_delete (VALUE, VALUE)
 
VALUE rb_hash_set_ifnone (VALUE hash, VALUE ifnone)
 
VALUE rb_hash_update_by (VALUE hash1, VALUE hash2, rb_hash_update_func *func)
 
struct st_table * rb_hash_tbl (VALUE)
 
int rb_path_check (const char *)
 
int rb_env_path_tainted (void)
 
VALUE rb_env_clear (void)
 
VALUE rb_io_write (VALUE, VALUE)
 
VALUE rb_io_gets (VALUE)
 
VALUE rb_io_getbyte (VALUE)
 
VALUE rb_io_ungetc (VALUE, VALUE)
 
VALUE rb_io_ungetbyte (VALUE, VALUE)
 
VALUE rb_io_close (VALUE)
 
VALUE rb_io_flush (VALUE)
 
VALUE rb_io_eof (VALUE)
 
VALUE rb_io_binmode (VALUE)
 
VALUE rb_io_ascii8bit_binmode (VALUE)
 
VALUE rb_io_addstr (VALUE, VALUE)
 
VALUE rb_io_printf (int, VALUE *, VALUE)
 
VALUE rb_io_print (int, VALUE *, VALUE)
 
VALUE rb_io_puts (int, VALUE *, VALUE)
 
VALUE rb_io_fdopen (int, int, const char *)
 
VALUE rb_io_get_io (VALUE)
 
VALUE rb_file_open (const char *, const char *)
 
VALUE rb_file_open_str (VALUE, const char *)
 
VALUE rb_gets (void)
 
void rb_write_error (const char *)
 
void rb_write_error2 (const char *, long)
 
void rb_close_before_exec (int lowfd, int maxhint, VALUE noclose_fds)
 
int rb_pipe (int *pipes)
 
int rb_reserved_fd_p (int fd)
 
int rb_cloexec_open (const char *pathname, int flags, mode_t mode)
 
int rb_cloexec_dup (int oldfd)
 
int rb_cloexec_dup2 (int oldfd, int newfd)
 
int rb_cloexec_pipe (int fildes[2])
 
int rb_cloexec_fcntl_dupfd (int fd, int minfd)
 
void rb_update_max_fd (int fd)
 
void rb_fd_fix_cloexec (int fd)
 
VALUE rb_marshal_dump (VALUE, VALUE)
 
VALUE rb_marshal_load (VALUE)
 
void rb_marshal_define_compat (VALUE newclass, VALUE oldclass, VALUE(*dumper)(VALUE), VALUE(*loader)(VALUE, VALUE))
 
VALUE rb_num_coerce_bin (VALUE, VALUE, ID)
 
VALUE rb_num_coerce_cmp (VALUE, VALUE, ID)
 
VALUE rb_num_coerce_relop (VALUE, VALUE, ID)
 
VALUE rb_num_coerce_bit (VALUE, VALUE, ID)
 
VALUE rb_num2fix (VALUE)
 
VALUE rb_fix2str (VALUE, int)
 
VALUE rb_dbl_cmp (double, double)
 
int rb_eql (VALUE, VALUE)
 
VALUE rb_any_to_s (VALUE)
 
VALUE rb_inspect (VALUE)
 
VALUE rb_obj_is_instance_of (VALUE, VALUE)
 
VALUE rb_obj_is_kind_of (VALUE, VALUE)
 
VALUE rb_obj_alloc (VALUE)
 
VALUE rb_obj_clone (VALUE)
 
VALUE rb_obj_dup (VALUE)
 
VALUE rb_obj_init_copy (VALUE, VALUE)
 
VALUE rb_obj_taint (VALUE)
 
VALUE rb_obj_tainted (VALUE)
 
VALUE rb_obj_untaint (VALUE)
 
VALUE rb_obj_untrust (VALUE)
 
VALUE rb_obj_untrusted (VALUE)
 
VALUE rb_obj_trust (VALUE)
 
VALUE rb_obj_freeze (VALUE)
 
VALUE rb_obj_frozen_p (VALUE)
 
VALUE rb_obj_id (VALUE)
 
VALUE rb_obj_class (VALUE)
 
VALUE rb_class_real (VALUE)
 
VALUE rb_class_inherited_p (VALUE, VALUE)
 
VALUE rb_class_superclass (VALUE)
 
VALUE rb_class_get_superclass (VALUE)
 
VALUE rb_convert_type (VALUE, int, const char *, const char *)
 
VALUE rb_check_convert_type (VALUE, int, const char *, const char *)
 
VALUE rb_check_to_integer (VALUE, const char *)
 
VALUE rb_check_to_float (VALUE)
 
VALUE rb_to_int (VALUE)
 
VALUE rb_check_to_int (VALUE)
 
VALUE rb_Integer (VALUE)
 
VALUE rb_to_float (VALUE)
 
VALUE rb_Float (VALUE)
 
VALUE rb_String (VALUE)
 
VALUE rb_Array (VALUE)
 
VALUE rb_Hash (VALUE)
 
double rb_cstr_to_dbl (const char *, int)
 
double rb_str_to_dbl (VALUE, int)
 
ID rb_id_attrset (ID)
 
int rb_is_const_id (ID)
 
int rb_is_global_id (ID)
 
int rb_is_instance_id (ID)
 
int rb_is_attrset_id (ID)
 
int rb_is_class_id (ID)
 
int rb_is_local_id (ID)
 
int rb_is_junk_id (ID)
 
int rb_symname_p (const char *)
 
int rb_sym_interned_p (VALUE)
 
VALUE rb_backref_get (void)
 
void rb_backref_set (VALUE)
 
VALUE rb_lastline_get (void)
 
void rb_lastline_set (VALUE)
 
VALUE rb_sym_all_symbols (void)
 
void rb_last_status_set (int status, rb_pid_t pid)
 
VALUE rb_last_status_get (void)
 
 DEPRECATED (int rb_proc_exec_n(int, VALUE *, const char *))
 
int rb_proc_exec (const char *)
 
 DEPRECATED (VALUE rb_exec_arg_init(int argc, VALUE *argv, int accept_shell, struct rb_exec_arg *e))
 
 DEPRECATED (int rb_exec_arg_addopt(struct rb_exec_arg *e, VALUE key, VALUE val))
 
 DEPRECATED (void rb_exec_arg_fixup(struct rb_exec_arg *e))
 
 DEPRECATED (int rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s))
 
 DEPRECATED (int rb_run_exec_options_err(const struct rb_exec_arg *e, struct rb_exec_arg *s, char *, size_t))
 
 DEPRECATED (int rb_exec(const struct rb_exec_arg *))
 
 DEPRECATED (int rb_exec_err(const struct rb_exec_arg *, char *, size_t))
 
 DEPRECATED (rb_pid_t rb_fork(int *, int(*)(void *), void *, VALUE))
 
 DEPRECATED (rb_pid_t rb_fork_err(int *, int(*)(void *, char *, size_t), void *, VALUE, char *, size_t))
 
VALUE rb_f_exec (int, VALUE *)
 
rb_pid_t rb_waitpid (rb_pid_t pid, int *status, int flags)
 
void rb_syswait (rb_pid_t pid)
 
rb_pid_t rb_spawn (int, VALUE *)
 
rb_pid_t rb_spawn_err (int, VALUE *, char *, size_t)
 
VALUE rb_proc_times (VALUE)
 
VALUE rb_detach_process (rb_pid_t pid)
 
VALUE rb_range_new (VALUE, VALUE, int)
 
VALUE rb_range_beg_len (VALUE, long *, long *, long, int)
 
int rb_range_values (VALUE range, VALUE *begp, VALUE *endp, int *exclp)
 
unsigned int rb_genrand_int32 (void)
 
double rb_genrand_real (void)
 
void rb_reset_random_seed (void)
 
VALUE rb_random_bytes (VALUE rnd, long n)
 
VALUE rb_random_int (VALUE rnd, VALUE max)
 
unsigned int rb_random_int32 (VALUE rnd)
 
double rb_random_real (VALUE rnd)
 
unsigned long rb_random_ulong_limited (VALUE rnd, unsigned long limit)
 
unsigned long rb_genrand_ulong_limited (unsigned long i)
 
int rb_memcicmp (const void *, const void *, long)
 
void rb_match_busy (VALUE)
 
VALUE rb_reg_nth_defined (int, VALUE)
 
VALUE rb_reg_nth_match (int, VALUE)
 
int rb_reg_backref_number (VALUE match, VALUE backref)
 
VALUE rb_reg_last_match (VALUE)
 
VALUE rb_reg_match_pre (VALUE)
 
VALUE rb_reg_match_post (VALUE)
 
VALUE rb_reg_match_last (VALUE)
 
VALUE rb_reg_new_str (VALUE, int)
 
VALUE rb_reg_new (const char *, long, int)
 
VALUE rb_reg_alloc (void)
 
VALUE rb_reg_init_str (VALUE re, VALUE s, int options)
 
VALUE rb_reg_match (VALUE, VALUE)
 
VALUE rb_reg_match2 (VALUE)
 
int rb_reg_options (VALUE)
 
VALUE rb_get_argv (void)
 
void * rb_load_file (const char *)
 
void * rb_load_file_str (VALUE)
 
VALUE rb_f_kill (int, VALUE *)
 
void rb_trap_exit (void)
 
void rb_trap_exec (void)
 
const char * ruby_signal_name (int)
 
void ruby_default_signal (int)
 
VALUE rb_f_sprintf (int, const VALUE *)
 
 PRINTF_ARGS (VALUE rb_sprintf(const char *,...), 1, 2)
 
VALUE rb_vsprintf (const char *, va_list)
 
 PRINTF_ARGS (VALUE rb_str_catf(VALUE, const char *,...), 2, 3)
 
VALUE rb_str_vcatf (VALUE, const char *, va_list)
 
VALUE rb_str_format (int, const VALUE *, VALUE)
 
VALUE rb_str_new (const char *, long)
 
VALUE rb_str_new_cstr (const char *)
 
VALUE rb_str_new_shared (VALUE)
 
VALUE rb_str_new_frozen (VALUE)
 
VALUE rb_str_new_with_class (VALUE, const char *, long)
 
VALUE rb_tainted_str_new_cstr (const char *)
 
VALUE rb_tainted_str_new (const char *, long)
 
VALUE rb_external_str_new (const char *, long)
 
VALUE rb_external_str_new_cstr (const char *)
 
VALUE rb_locale_str_new (const char *, long)
 
VALUE rb_locale_str_new_cstr (const char *)
 
VALUE rb_filesystem_str_new (const char *, long)
 
VALUE rb_filesystem_str_new_cstr (const char *)
 
VALUE rb_str_buf_new (long)
 
VALUE rb_str_buf_new_cstr (const char *)
 
VALUE rb_str_buf_new2 (const char *)
 
VALUE rb_str_tmp_new (long)
 
VALUE rb_usascii_str_new (const char *, long)
 
VALUE rb_usascii_str_new_cstr (const char *)
 
void rb_str_free (VALUE)
 
void rb_str_shared_replace (VALUE, VALUE)
 
VALUE rb_str_buf_append (VALUE, VALUE)
 
VALUE rb_str_buf_cat (VALUE, const char *, long)
 
VALUE rb_str_buf_cat2 (VALUE, const char *)
 
VALUE rb_str_buf_cat_ascii (VALUE, const char *)
 
VALUE rb_obj_as_string (VALUE)
 
VALUE rb_check_string_type (VALUE)
 
void rb_must_asciicompat (VALUE)
 
VALUE rb_str_dup (VALUE)
 
VALUE rb_str_resurrect (VALUE str)
 
VALUE rb_str_locktmp (VALUE)
 
VALUE rb_str_unlocktmp (VALUE)
 
VALUE rb_str_dup_frozen (VALUE)
 
VALUE rb_str_plus (VALUE, VALUE)
 
VALUE rb_str_times (VALUE, VALUE)
 
long rb_str_sublen (VALUE, long)
 
VALUE rb_str_substr (VALUE, long, long)
 
VALUE rb_str_subseq (VALUE, long, long)
 
char * rb_str_subpos (VALUE, long, long *)
 
void rb_str_modify (VALUE)
 
void rb_str_modify_expand (VALUE, long)
 
VALUE rb_str_freeze (VALUE)
 
void rb_str_set_len (VALUE, long)
 
VALUE rb_str_resize (VALUE, long)
 
VALUE rb_str_cat (VALUE, const char *, long)
 
VALUE rb_str_cat2 (VALUE, const char *)
 
VALUE rb_str_append (VALUE, VALUE)
 
VALUE rb_str_concat (VALUE, VALUE)
 
st_index_t rb_memhash (const void *ptr, long len)
 
st_index_t rb_hash_start (st_index_t)
 
st_index_t rb_hash_uint32 (st_index_t, uint32_t)
 
st_index_t rb_hash_uint (st_index_t, st_index_t)
 
st_index_t rb_hash_end (st_index_t)
 
st_index_t rb_str_hash (VALUE)
 
int rb_str_hash_cmp (VALUE, VALUE)
 
int rb_str_comparable (VALUE, VALUE)
 
int rb_str_cmp (VALUE, VALUE)
 
VALUE rb_str_equal (VALUE str1, VALUE str2)
 
VALUE rb_str_drop_bytes (VALUE, long)
 
void rb_str_update (VALUE, long, long, VALUE)
 
VALUE rb_str_replace (VALUE, VALUE)
 
VALUE rb_str_inspect (VALUE)
 
VALUE rb_str_dump (VALUE)
 
VALUE rb_str_split (VALUE, const char *)
 
void rb_str_associate (VALUE, VALUE)
 
VALUE rb_str_associated (VALUE)
 
void rb_str_setter (VALUE, ID, VALUE *)
 
VALUE rb_str_intern (VALUE)
 
VALUE rb_sym_to_s (VALUE)
 
long rb_str_strlen (VALUE)
 
VALUE rb_str_length (VALUE)
 
long rb_str_offset (VALUE, long)
 
size_t rb_str_capacity (VALUE)
 
VALUE rb_str_ellipsize (VALUE, long)
 Shortens str and adds three dots, an ellipsis, if it is longer than len characters.
 
VALUE rb_str_scrub (VALUE, VALUE)
 
VALUE rb_struct_new (VALUE,...)
 
VALUE rb_struct_define (const char *,...)
 
VALUE rb_struct_define_under (VALUE, const char *,...)
 
VALUE rb_struct_alloc (VALUE, VALUE)
 
VALUE rb_struct_initialize (VALUE, VALUE)
 
VALUE rb_struct_aref (VALUE, VALUE)
 
VALUE rb_struct_aset (VALUE, VALUE, VALUE)
 
VALUE rb_struct_getmember (VALUE, ID)
 
 DEPRECATED (VALUE rb_struct_iv_get(VALUE, const char *))
 
VALUE rb_struct_s_members (VALUE)
 
VALUE rb_struct_members (VALUE)
 
VALUE rb_struct_alloc_noinit (VALUE)
 
VALUE rb_struct_define_without_accessor (const char *, VALUE, rb_alloc_func_t,...)
 
VALUE rb_struct_define_without_accessor_under (VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc,...)
 
void rb_thread_check_ints (void)
 
int rb_thread_interrupted (VALUE thval)
 
 DEPRECATED (VALUE rb_thread_blocking_region(rb_blocking_function_t *func, void *data1, rb_unblock_function_t *ubf, void *data2))
 
VALUE rb_mutex_new (void)
 
VALUE rb_mutex_locked_p (VALUE mutex)
 
VALUE rb_mutex_trylock (VALUE mutex)
 
VALUE rb_mutex_lock (VALUE mutex)
 
VALUE rb_mutex_unlock (VALUE mutex)
 
VALUE rb_mutex_sleep (VALUE self, VALUE timeout)
 
VALUE rb_mutex_synchronize (VALUE mutex, VALUE(*func)(VALUE arg), VALUE arg)
 
VALUE rb_time_new (time_t, long)
 
VALUE rb_time_nano_new (time_t, long)
 
VALUE rb_time_num_new (VALUE, VALUE)
 
struct timeval rb_time_interval (VALUE num)
 
struct timeval rb_time_timeval (VALUE time)
 
struct timespec rb_time_timespec (VALUE time)
 
VALUE rb_mod_name (VALUE)
 
VALUE rb_class_path (VALUE)
 
VALUE rb_class_path_cached (VALUE)
 
void rb_set_class_path (VALUE, VALUE, const char *)
 
void rb_set_class_path_string (VALUE, VALUE, VALUE)
 
VALUE rb_path_to_class (VALUE)
 
VALUE rb_path2class (const char *)
 
void rb_name_class (VALUE, ID)
 
VALUE rb_class_name (VALUE)
 
void rb_autoload (VALUE, ID, const char *)
 
VALUE rb_autoload_load (VALUE, ID)
 
VALUE rb_autoload_p (VALUE, ID)
 
VALUE rb_f_trace_var (int, VALUE *)
 
VALUE rb_f_untrace_var (int, VALUE *)
 
VALUE rb_f_global_variables (void)
 
void rb_alias_variable (ID, ID)
 
struct st_table * rb_generic_ivar_table (VALUE)
 
void rb_copy_generic_ivar (VALUE, VALUE)
 
void rb_free_generic_ivar (VALUE)
 
VALUE rb_ivar_get (VALUE, ID)
 
VALUE rb_ivar_set (VALUE, ID, VALUE)
 
VALUE rb_ivar_defined (VALUE, ID)
 
void rb_ivar_foreach (VALUE, int(*)(ANYARGS), st_data_t)
 
st_index_t rb_ivar_count (VALUE)
 
VALUE rb_attr_get (VALUE, ID)
 
VALUE rb_obj_instance_variables (VALUE)
 
VALUE rb_obj_remove_instance_variable (VALUE, VALUE)
 
void * rb_mod_const_at (VALUE, void *)
 
void * rb_mod_const_of (VALUE, void *)
 
VALUE rb_const_list (void *)
 
VALUE rb_mod_constants (int, VALUE *, VALUE)
 
VALUE rb_mod_remove_const (VALUE, VALUE)
 
int rb_const_defined (VALUE, ID)
 
int rb_const_defined_at (VALUE, ID)
 
int rb_const_defined_from (VALUE, ID)
 
VALUE rb_const_get (VALUE, ID)
 
VALUE rb_const_get_at (VALUE, ID)
 
VALUE rb_const_get_from (VALUE, ID)
 
void rb_const_set (VALUE, ID, VALUE)
 
VALUE rb_const_remove (VALUE, ID)
 
VALUE rb_mod_const_missing (VALUE, VALUE)
 
VALUE rb_cvar_defined (VALUE, ID)
 
void rb_cvar_set (VALUE, ID, VALUE)
 
VALUE rb_cvar_get (VALUE, ID)
 
void rb_cv_set (VALUE, const char *, VALUE)
 
VALUE rb_cv_get (VALUE, const char *)
 
void rb_define_class_variable (VALUE, const char *, VALUE)
 
VALUE rb_mod_class_variables (int, VALUE *, VALUE)
 
VALUE rb_mod_remove_cvar (VALUE, VALUE)
 
ID rb_frame_callee (void)
 
VALUE rb_str_succ (VALUE)
 
VALUE rb_time_succ (VALUE)
 
int rb_frame_method_id_and_class (ID *idp, VALUE *klassp)
 
VALUE rb_make_backtrace (void)
 
VALUE rb_make_exception (int, VALUE *)
 
int ruby_native_thread_p (void)
 
void rb_add_event_hook (rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)
 
int rb_remove_event_hook (rb_event_hook_func_t func)
 
int rb_isalnum (int c)
 
int rb_isalpha (int c)
 
int rb_isblank (int c)
 
int rb_iscntrl (int c)
 
int rb_isdigit (int c)
 
int rb_isgraph (int c)
 
int rb_islower (int c)
 
int rb_isprint (int c)
 
int rb_ispunct (int c)
 
int rb_isspace (int c)
 
int rb_isupper (int c)
 
int rb_isxdigit (int c)
 
int rb_tolower (int c)
 
int rb_toupper (int c)
 
int st_locale_insensitive_strcasecmp (const char *s1, const char *s2)
 
int st_locale_insensitive_strncasecmp (const char *s1, const char *s2, size_t n)
 
unsigned long ruby_strtoul (const char *str, char **endptr, int base)
 
 PRINTF_ARGS (int ruby_snprintf(char *str, size_t n, char const *fmt,...), 3, 4)
 
int ruby_vsnprintf (char *str, size_t n, char const *fmt, va_list ap)
 
void ruby_sysinit (int *argc, char ***argv)
 Initializes the process for ruby(1).
 
void ruby_init (void)
 
void * ruby_options (int argc, char **argv)
 Processes command line arguments and compiles the Ruby source to execute.
 
int ruby_executable_node (void *n, int *status)
 Checks the return value of ruby_options().
 
int ruby_run_node (void *n)
 Runs the given compiled source and exits this process.
 
void ruby_show_version (void)
 Prints the version information of the CRuby interpreter to stdout.
 
void ruby_show_copyright (void)
 Prints the copyright notice of the CRuby interpreter to stdout and exits this process successfully.
 
void ruby_init_stack (volatile VALUE *)
 
int ruby_setup (void)
 
int ruby_cleanup (volatile int)
 Destructs the VM.
 
void ruby_finalize (void)
 Runs the VM finalization processes.
 
 NORETURN (void ruby_stop(int))
 
void ruby_set_stack_size (size_t)
 
int ruby_stack_check (void)
 
size_t ruby_stack_length (VALUE **)
 
int ruby_exec_node (void *n)
 Runs the given compiled source.
 
void ruby_script (const char *name)
 Sets the current script name to this value.
 
void ruby_set_script_name (VALUE name)
 Sets the current script name to this value.
 
void ruby_prog_init (void)
 Defines built-in variables.
 
void ruby_set_argv (int, char **)
 
void * ruby_process_options (int, char **)
 
void ruby_init_loadpath (void)
 
void ruby_incpush (const char *)
 
void ruby_sig_finalize (void)
 
ONIG_EXTERN int
onigenc_mbclen_approximate 
P_ ((const OnigUChar *p, const OnigUChar *e, struct OnigEncodingTypeST *enc))
 
ONIG_EXTERN OnigUChar
*onigenc_step_back 
P_ ((OnigEncoding enc, const OnigUChar *start, const OnigUChar *s, const OnigUChar *end, int n))
 
ONIG_EXTERN int onigenc_init P_ ((void))
 
ONIG_EXTERN int
onigenc_set_default_encoding 
P_ ((OnigEncoding enc))
 
ONIG_EXTERN void
onigenc_set_default_caseconv_table 
P_ ((const OnigUChar *table))
 
ONIG_EXTERN OnigUChar
*onigenc_get_right_adjust_char_head_with_prev 
P_ ((OnigEncoding enc, const OnigUChar *start, const OnigUChar *s, const OnigUChar *end, const OnigUChar **prev))
 
ONIG_EXTERN OnigUChar
*onigenc_get_prev_char_head 
P_ ((OnigEncoding enc, const OnigUChar *start, const OnigUChar *s, const OnigUChar *end))
 
ONIG_EXTERN int onigenc_strlen P_ ((OnigEncoding enc, const OnigUChar *p, const OnigUChar *end))
 
ONIG_EXTERN int onigenc_strlen_null P_ ((OnigEncoding enc, const OnigUChar *p))
 
void onig_null_warn P_ ((const char *s))
 
ONIG_EXTERN int
onig_error_code_to_str 
PV_ ((OnigUChar *s, OnigPosition err_code,...))
 
ONIG_EXTERN void onig_set_warn_func P_ ((OnigWarnFunc f))
 
ONIG_EXTERN int onig_new P_ ((OnigRegex *, const OnigUChar *pattern, const OnigUChar *pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType *syntax, OnigErrorInfo *einfo))
 
ONIG_EXTERN int onig_reg_init P_ ((OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, const OnigSyntaxType *syntax))
 
ONIG_EXTERN int
onig_new_without_alloc 
P_ ((OnigRegex, const OnigUChar *pattern, const OnigUChar *pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType *syntax, OnigErrorInfo *einfo))
 
ONIG_EXTERN int onig_new_deluxe P_ ((OnigRegex *reg, const OnigUChar *pattern, const OnigUChar *pattern_end, OnigCompileInfo *ci, OnigErrorInfo *einfo))
 
ONIG_EXTERN void onig_free P_ ((OnigRegex))
 
ONIG_EXTERN int
onig_recompile_deluxe 
P_ ((OnigRegex reg, const OnigUChar *pattern, const OnigUChar *pattern_end, OnigCompileInfo *ci, OnigErrorInfo *einfo))
 
ONIG_EXTERN OnigPosition
onig_search 
P_ ((OnigRegex, const OnigUChar *str, const OnigUChar *end, const OnigUChar *start, const OnigUChar *range, OnigRegion *region, OnigOptionType option))
 
ONIG_EXTERN OnigPosition
onig_search_gpos 
P_ ((OnigRegex, const OnigUChar *str, const OnigUChar *end, const OnigUChar *global_pos, const OnigUChar *start, const OnigUChar *range, OnigRegion *region, OnigOptionType option))
 
ONIG_EXTERN OnigPosition onig_match P_ ((OnigRegex, const OnigUChar *str, const OnigUChar *end, const OnigUChar *at, OnigRegion *region, OnigOptionType option))
 
ONIG_EXTERN void onig_region_init P_ ((OnigRegion *region))
 
ONIG_EXTERN void onig_region_free P_ ((OnigRegion *region, int free_self))
 
ONIG_EXTERN void onig_region_copy P_ ((OnigRegion *to, OnigRegion *from))
 
ONIG_EXTERN int onig_region_resize P_ ((OnigRegion *region, int n))
 
ONIG_EXTERN int onig_region_set P_ ((OnigRegion *region, int at, int beg, int end))
 
ONIG_EXTERN int
onig_name_to_group_numbers 
P_ ((OnigRegex reg, const OnigUChar *name, const OnigUChar *name_end, int **nums))
 
ONIG_EXTERN int
onig_name_to_backref_number 
P_ ((OnigRegex reg, const OnigUChar *name, const OnigUChar *name_end, OnigRegion *region))
 
ONIG_EXTERN int onig_foreach_name P_ ((OnigRegex reg, int(*func)(const OnigUChar *, const OnigUChar *, int, int *, OnigRegex, void *), void *arg))
 
ONIG_EXTERN int
onig_number_of_names 
P_ ((OnigRegex reg))
 
ONIG_EXTERN int
onig_capture_tree_traverse 
P_ ((OnigRegion *region, int at, int(*callback_func)(int, OnigPosition, OnigPosition, int, int, void *), void *arg))
 
ONIG_EXTERN int
onig_set_default_syntax 
P_ ((const OnigSyntaxType *syntax))
 
ONIG_EXTERN void onig_copy_syntax P_ ((OnigSyntaxType *to, const OnigSyntaxType *from))
 
ONIG_EXTERN unsigned int
onig_get_syntax_op 
P_ ((OnigSyntaxType *syntax))
 
ONIG_EXTERN void onig_set_syntax_op P_ ((OnigSyntaxType *syntax, unsigned int op))
 
ONIG_EXTERN void
onig_set_syntax_op2 
P_ ((OnigSyntaxType *syntax, unsigned int op2))
 
ONIG_EXTERN void
onig_set_syntax_behavior 
P_ ((OnigSyntaxType *syntax, unsigned int behavior))
 
ONIG_EXTERN void
onig_set_syntax_options 
P_ ((OnigSyntaxType *syntax, OnigOptionType options))
 
ONIG_EXTERN int onig_set_meta_char P_ ((OnigSyntaxType *syntax, unsigned int what, OnigCodePoint code))
 
ONIG_EXTERN void onig_copy_encoding P_ ((OnigEncoding to, OnigEncoding from))
 
ONIG_EXTERN int
onig_set_default_case_fold_flag 
P_ ((OnigCaseFoldType case_fold_flag))
 
ONIG_EXTERN int
onig_set_match_stack_limit_size 
P_ ((unsigned int size))
 
int rb_char_to_option_kcode (int c, int *option, int *kcode)
 
int rb_enc_replicate (const char *, rb_encoding *)
 
int rb_define_dummy_encoding (const char *)
 
int rb_enc_get_index (VALUE obj)
 
void rb_enc_set_index (VALUE obj, int encindex)
 
int rb_enc_find_index (const char *name)
 
int rb_to_encoding_index (VALUE)
 
rb_encoding * rb_to_encoding (VALUE)
 
rb_encoding * rb_find_encoding (VALUE)
 
rb_encoding * rb_enc_get (VALUE)
 
rb_encoding * rb_enc_compatible (VALUE, VALUE)
 
rb_encoding * rb_enc_check (VALUE, VALUE)
 
VALUE rb_enc_associate_index (VALUE, int)
 
VALUE rb_enc_associate (VALUE, rb_encoding *)
 
void rb_enc_copy (VALUE dst, VALUE src)
 
VALUE rb_enc_str_new (const char *, long, rb_encoding *)
 
VALUE rb_enc_str_new_cstr (const char *, rb_encoding *)
 
VALUE rb_enc_reg_new (const char *, long, rb_encoding *, int)
 
 PRINTF_ARGS (VALUE rb_enc_sprintf(rb_encoding *, const char *,...), 2, 3)
 
VALUE rb_enc_vsprintf (rb_encoding *, const char *, va_list)
 
long rb_enc_strlen (const char *, const char *, rb_encoding *)
 
char * rb_enc_nth (const char *, const char *, long, rb_encoding *)
 
VALUE rb_obj_encoding (VALUE)
 
VALUE rb_enc_str_buf_cat (VALUE str, const char *ptr, long len, rb_encoding *enc)
 
VALUE rb_enc_uint_chr (unsigned int code, rb_encoding *enc)
 
VALUE rb_external_str_new_with_enc (const char *ptr, long len, rb_encoding *)
 
VALUE rb_str_export_to_enc (VALUE, rb_encoding *)
 
VALUE rb_str_conv_enc (VALUE str, rb_encoding *from, rb_encoding *to)
 
VALUE rb_str_conv_enc_opts (VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts)
 
 PRINTF_ARGS (NORETURN(void rb_enc_raise(rb_encoding *, VALUE, const char *,...)), 3, 4)
 
rb_encoding * rb_enc_from_index (int idx)
 
rb_encoding * rb_enc_find (const char *name)
 
int rb_enc_mbclen (const char *p, const char *e, rb_encoding *enc)
 
int rb_enc_fast_mbclen (const char *p, const char *e, rb_encoding *enc)
 
int rb_enc_precise_mbclen (const char *p, const char *e, rb_encoding *enc)
 
int rb_enc_ascget (const char *p, const char *e, int *len, rb_encoding *enc)
 
unsigned int rb_enc_codepoint_len (const char *p, const char *e, int *len, rb_encoding *enc)
 
unsigned int rb_enc_codepoint (const char *p, const char *e, rb_encoding *enc)
 
int rb_enc_codelen (int code, rb_encoding *enc)
 
int rb_enc_code_to_mbclen (int code, rb_encoding *enc)
 
int rb_enc_casefold (char *to, const char *p, const char *e, rb_encoding *enc)
 
int rb_enc_toupper (int c, rb_encoding *enc)
 
int rb_enc_tolower (int c, rb_encoding *enc)
 
ID rb_intern3 (const char *, long, rb_encoding *)
 
ID rb_interned_id_p (const char *, long, rb_encoding *)
 
int rb_enc_symname_p (const char *, rb_encoding *)
 
int rb_enc_symname2_p (const char *, long, rb_encoding *)
 
int rb_enc_str_coderange (VALUE)
 
long rb_str_coderange_scan_restartable (const char *, const char *, rb_encoding *, int *)
 
int rb_enc_str_asciionly_p (VALUE)
 
VALUE rb_enc_from_encoding (rb_encoding *enc)
 
int rb_enc_unicode_p (rb_encoding *enc)
 
rb_encoding * rb_ascii8bit_encoding (void)
 
rb_encoding * rb_utf8_encoding (void)
 
rb_encoding * rb_usascii_encoding (void)
 
rb_encoding * rb_locale_encoding (void)
 
rb_encoding * rb_filesystem_encoding (void)
 
rb_encoding * rb_default_external_encoding (void)
 
rb_encoding * rb_default_internal_encoding (void)
 
int rb_ascii8bit_encindex (void)
 
int rb_utf8_encindex (void)
 
int rb_usascii_encindex (void)
 
int rb_locale_encindex (void)
 
int rb_filesystem_encindex (void)
 
VALUE rb_enc_default_external (void)
 
VALUE rb_enc_default_internal (void)
 
void rb_enc_set_default_external (VALUE encoding)
 
void rb_enc_set_default_internal (VALUE encoding)
 
VALUE rb_locale_charmap (VALUE klass)
 
long rb_memsearch (const void *, long, const void *, long, rb_encoding *)
 
char * rb_enc_path_next (const char *, const char *, rb_encoding *)
 
char * rb_enc_path_skip_prefix (const char *, const char *, rb_encoding *)
 
char * rb_enc_path_last_separator (const char *, const char *, rb_encoding *)
 
char * rb_enc_path_end (const char *, const char *, rb_encoding *)
 
const char * ruby_enc_find_basename (const char *name, long *baselen, long *alllen, rb_encoding *enc)
 
const char * ruby_enc_find_extname (const char *name, long *len, rb_encoding *enc)
 
ID rb_check_id_cstr (const char *ptr, long len, rb_encoding *enc)
 
static int rb_enc_dummy_p (rb_encoding *enc)
 
VALUE rb_str_encode (VALUE str, VALUE to, int ecflags, VALUE ecopts)
 
int rb_econv_has_convpath_p (const char *from_encoding, const char *to_encoding)
 
int rb_econv_prepare_options (VALUE opthash, VALUE *ecopts, int ecflags)
 
int rb_econv_prepare_opts (VALUE opthash, VALUE *ecopts)
 
rb_econv_t * rb_econv_open (const char *source_encoding, const char *destination_encoding, int ecflags)
 
rb_econv_t * rb_econv_open_opts (const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts)
 
rb_econv_result_t rb_econv_convert (rb_econv_t *ec, const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end, unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end, int flags)
 
void rb_econv_close (rb_econv_t *ec)
 
int rb_econv_set_replacement (rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname)
 
int rb_econv_decorate_at_first (rb_econv_t *ec, const char *decorator_name)
 
int rb_econv_decorate_at_last (rb_econv_t *ec, const char *decorator_name)
 
VALUE rb_econv_open_exc (const char *senc, const char *denc, int ecflags)
 
int rb_econv_insert_output (rb_econv_t *ec, const unsigned char *str, size_t len, const char *str_encoding)
 
const char * rb_econv_encoding_to_insert_output (rb_econv_t *ec)
 
void rb_econv_check_error (rb_econv_t *ec)
 
VALUE rb_econv_make_exception (rb_econv_t *ec)
 
int rb_econv_putbackable (rb_econv_t *ec)
 
void rb_econv_putback (rb_econv_t *ec, unsigned char *p, int n)
 
const char * rb_econv_asciicompat_encoding (const char *encname)
 
VALUE rb_econv_str_convert (rb_econv_t *ec, VALUE src, int flags)
 
VALUE rb_econv_substr_convert (rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags)
 
VALUE rb_econv_str_append (rb_econv_t *ec, VALUE src, VALUE dst, int flags)
 
VALUE rb_econv_substr_append (rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags)
 
VALUE rb_econv_append (rb_econv_t *ec, const char *bytesrc, long bytesize, VALUE dst, int flags)
 
void rb_econv_binmode (rb_econv_t *ec)
 
static int nlz_int (unsigned int x)
 
static int nlz_long (unsigned long x)
 
void rb_class_subclass_add (VALUE super, VALUE klass)
 
void rb_class_remove_from_super_subclasses (VALUE)
 
static void RCLASS_M_TBL_INIT (VALUE c)
 
static VALUE RCLASS_SUPER (VALUE klass)
 
static VALUE RCLASS_SET_SUPER (VALUE klass, VALUE super)
 
VALUE rb_ary_last (int, VALUE *, VALUE)
 
void rb_ary_set_len (VALUE, long)
 
void rb_ary_delete_same (VALUE, VALUE)
 
VALUE rb_big_fdiv (VALUE x, VALUE y)
 
VALUE rb_big_uminus (VALUE x)
 
VALUE rb_integer_float_cmp (VALUE x, VALUE y)
 
VALUE rb_integer_float_eq (VALUE x, VALUE y)
 
void rb_class_foreach_subclass (VALUE klass, void(*f)(VALUE))
 
void rb_class_detach_subclasses (VALUE)
 
void rb_class_detach_module_subclasses (VALUE)
 
void rb_class_remove_from_module_subclasses (VALUE)
 
VALUE rb_obj_methods (int argc, VALUE *argv, VALUE obj)
 
VALUE rb_obj_protected_methods (int argc, VALUE *argv, VALUE obj)
 
VALUE rb_obj_private_methods (int argc, VALUE *argv, VALUE obj)
 
VALUE rb_obj_public_methods (int argc, VALUE *argv, VALUE obj)
 
int rb_obj_basic_to_s_p (VALUE)
 
VALUE rb_special_singleton_class (VALUE)
 
VALUE rb_singleton_class_clone_and_attach (VALUE obj, VALUE attach)
 
VALUE rb_singleton_class_get (VALUE obj)
 Returns the singleton class of obj, or nil if obj is not a singleton object.
 
void Init_class_hierarchy (void)
 
VALUE rb_invcmp (VALUE, VALUE)
 
int rb_dvar_defined (ID)
 
int rb_local_defined (ID)
 
int rb_parse_in_eval (void)
 
int rb_parse_in_main (void)
 
const char * rb_insns_name (int i)
 
VALUE rb_insns_name_array (void)
 
VALUE rb_obj_is_fiber (VALUE)
 
void rb_fiber_reset_root_local_storage (VALUE)
 
void ruby_register_rollback_func_for_ensure (VALUE(*ensure_func)(ANYARGS), VALUE(*rollback_func)(ANYARGS))
 
 PRINTF_ARGS (void ruby_debug_printf(const char *,...), 1, 2)
 
void Init_ext (void)
 
ID rb_id_encoding (void)
 
void rb_gc_mark_encodings (void)
 
 NORETURN (PRINTF_ARGS(void rb_compile_bug(const char *, int, const char *,...), 3, 4))
 
VALUE rb_check_backtrace (VALUE)
 
 NORETURN (void rb_async_bug_errno(const char *, int))
 
const char * rb_builtin_type_name (int t)
 
const char * rb_builtin_class_name (VALUE x)
 
VALUE rb_refinement_module_get_refined_class (VALUE module)
 
void ruby_error_print (void)
 
VALUE rb_get_backtrace (VALUE info)
 
void rb_call_end_proc (VALUE data)
 
void rb_mark_end_proc (void)
 
VALUE rb_home_dir_of (VALUE user, VALUE result)
 
VALUE rb_default_home_dir (VALUE result)
 
VALUE rb_realpath_internal (VALUE basedir, VALUE path, int strict)
 
void rb_file_const (const char *, VALUE)
 
int rb_file_load_ok (const char *)
 
VALUE rb_file_expand_path_fast (VALUE, VALUE)
 
VALUE rb_file_expand_path_internal (VALUE, VALUE, int, int, VALUE)
 
VALUE rb_get_path_check_to_string (VALUE, int)
 
VALUE rb_get_path_check_convert (VALUE, VALUE, int)
 
void Init_File (void)
 
void Init_heap (void)
 
void * ruby_mimmalloc (size_t size)
 
void ruby_mimfree (void *ptr)
 
void rb_objspace_set_event_hook (const rb_event_flag_t event)
 
void rb_gc_writebarrier_remember_promoted (VALUE obj)
 
void ruby_gc_set_params (int safe_level)
 
void * ruby_sized_xrealloc (void *ptr, size_t new_size, size_t old_size) RUBY_ATTR_ALLOC_SIZE((2))
 
void * ruby_sized_xrealloc2 (void *ptr, size_t new_count, size_t element_size, size_t old_count) RUBY_ATTR_ALLOC_SIZE((2
 
void void ruby_sized_xfree (void *x, size_t size)
 
void rb_gc_resurrect (VALUE ptr)
 
struct st_table * rb_hash_tbl_raw (VALUE hash)
 
VALUE rb_hash_keys (VALUE hash)
 
VALUE rb_hash_values (VALUE hash)
 
void rb_call_inits (void)
 
const char * ruby_get_inplace_mode (void)
 
void ruby_set_inplace_mode (const char *)
 
ssize_t rb_io_bufread (VALUE io, void *buf, size_t size)
 
void rb_stdio_set_default_encoding (void)
 
void rb_write_error_str (VALUE mesg)
 
VALUE rb_io_flush_raw (VALUE, int)
 
VALUE rb_iseq_clone (VALUE iseqval, VALUE newcbase)
 
VALUE rb_iseq_path (VALUE iseqval)
 
VALUE rb_iseq_absolute_path (VALUE iseqval)
 
VALUE rb_iseq_label (VALUE iseqval)
 
VALUE rb_iseq_base_label (VALUE iseqval)
 
VALUE rb_iseq_first_lineno (VALUE iseqval)
 
VALUE rb_iseq_klass (VALUE iseqval)
 
VALUE rb_iseq_method_name (VALUE self)
 
VALUE rb_get_load_path (void)
 
VALUE rb_get_expanded_load_path (void)
 
 NORETURN (void rb_load_fail(VALUE, const char *))
 
VALUE rb_math_atan2 (VALUE, VALUE)
 
VALUE rb_math_cos (VALUE)
 
VALUE rb_math_cosh (VALUE)
 
VALUE rb_math_exp (VALUE)
 
VALUE rb_math_hypot (VALUE, VALUE)
 
VALUE rb_math_log (int argc, VALUE *argv)
 
VALUE rb_math_sin (VALUE)
 
VALUE rb_math_sinh (VALUE)
 
VALUE rb_math_sqrt (VALUE)
 
void Init_newline (void)
 
int rb_num_to_uint (VALUE val, unsigned int *ret)
 
VALUE ruby_num_interval_step_size (VALUE from, VALUE to, VALUE step, int excl)
 
int ruby_float_step (VALUE from, VALUE to, VALUE step, int excl)
 
double ruby_float_mod (double x, double y)
 
int rb_num_negative_p (VALUE)
 
VALUE rb_int_succ (VALUE num)
 
VALUE rb_int_pred (VALUE num)
 
static double rb_float_value_inline (VALUE v)
 
static VALUE rb_float_new_inline (double d)
 
void rb_obj_copy_ivar (VALUE dest, VALUE obj)
 
VALUE rb_obj_equal (VALUE obj1, VALUE obj2)
 
VALUE rb_class_search_ancestor (VALUE klass, VALUE super)
 
VALUE rb_parser_get_yydebug (VALUE)
 
VALUE rb_parser_set_yydebug (VALUE, VALUE)
 
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)
 
void rb_gc_mark_parser (void)
 
void rb_gc_mark_symbols (int full_mark)
 
VALUE rb_proc_location (VALUE self)
 
st_index_t rb_hash_proc (st_index_t hash, VALUE proc)
 
int rb_block_arity (void)
 
rb_pid_t rb_fork_ruby (int *status)
 
void rb_last_status_clear (void)
 
VALUE rb_lcm (VALUE x, VALUE y)
 
VALUE rb_rational_reciprocal (VALUE x)
 
VALUE rb_reg_compile (VALUE str, int options, const char *sourcefile, int sourceline)
 
VALUE rb_reg_check_preprocess (VALUE)
 
int rb_get_next_signal (void)
 
int rb_sigaltstack_size (void)
 
VALUE rb_fstring (VALUE)
 
int rb_str_buf_cat_escaped_char (VALUE result, unsigned int c, int unicode_p)
 
int rb_str_symname_p (VALUE)
 
VALUE rb_str_quote_unprintable (VALUE)
 
VALUE rb_id_quote_unprintable (ID)
 
void rb_str_fill_terminator (VALUE str, const int termlen)
 
VALUE rb_str_locktmp_ensure (VALUE str, VALUE(*func)(VALUE), VALUE arg)
 
VALUE rb_struct_init_copy (VALUE copy, VALUE s)
 
struct timeval rb_time_timeval (VALUE)
 
VALUE rb_obj_is_mutex (VALUE obj)
 
VALUE rb_suppress_tracing (VALUE(*func)(VALUE), VALUE arg)
 
void rb_thread_execute_interrupts (VALUE th)
 
void rb_clear_trace_func (void)
 
VALUE rb_get_coverages (void)
 
VALUE rb_thread_shield_new (void)
 
VALUE rb_thread_shield_wait (VALUE self)
 
VALUE rb_thread_shield_release (VALUE self)
 
VALUE rb_thread_shield_destroy (VALUE self)
 
void rb_mutex_allow_trap (VALUE self, int val)
 
VALUE rb_uninterruptible (VALUE(*b_proc)(ANYARGS), VALUE data)
 
VALUE rb_mutex_owned_p (VALUE self)
 
void ruby_kill (rb_pid_t pid, int sig)
 
void Init_native_thread (void)
 
rb_serial_t rb_next_class_serial (void)
 
VALUE rb_obj_is_thread (VALUE obj)
 
void rb_vm_mark (void *ptr)
 
void Init_BareVM (void)
 
VALUE rb_vm_top_self (void)
 
void rb_thread_recycle_stack_release (VALUE *)
 
void rb_vm_change_state (void)
 
void rb_vm_inc_const_missing_count (void)
 
void rb_thread_mark (void *th)
 
const void ** rb_vm_get_insns_address_table (void)
 
VALUE rb_sourcefilename (void)
 
void rb_vm_pop_cfunc_frame (void)
 
void rb_vm_bugreport (void)
 
void rb_print_backtrace (void)
 
void Init_vm_eval (void)
 
VALUE rb_current_realfilepath (void)
 
VALUE rb_check_block_call (VALUE, ID, int, const VALUE *, rb_block_call_func_t, VALUE)
 
VALUE rb_check_funcall_with_hook (VALUE recv, ID mid, int argc, const VALUE *argv, rb_check_funcall_hook *hook, VALUE arg)
 
VALUE rb_catch_protect (VALUE t, rb_block_call_func *func, VALUE data, int *stateptr)
 
VALUE rb_equal_opt (VALUE obj1, VALUE obj2)
 
int rb_get_kwargs (VALUE keyword_hash, const ID *table, int required, int optional, VALUE *)
 
VALUE rb_extract_keywords (VALUE *orighash)
 
void Init_eval_method (void)
 
int rb_method_defined_by (VALUE obj, ID mid, VALUE(*cfunc)(ANYARGS))
 
void Init_prelude (void)
 
void Init_vm_backtrace (void)
 
VALUE rb_vm_thread_backtrace (int argc, VALUE *argv, VALUE thval)
 
VALUE rb_vm_thread_backtrace_locations (int argc, VALUE *argv, VALUE thval)
 
VALUE rb_make_backtrace (void)
 
void rb_backtrace_print_as_bugreport (void)
 
int rb_backtrace_p (VALUE obj)
 
VALUE rb_backtrace_to_str_ary (VALUE obj)
 
VALUE rb_backtrace_to_location_ary (VALUE obj)
 
void rb_backtrace_print_to (VALUE output)
 
VALUE rb_vm_backtrace_object (void)
 
RUBY_SYMBOL_EXPORT_BEGIN const
char * 
rb_objspace_data_type_name (VALUE obj)
 
VALUE rb_thread_io_blocking_region (rb_blocking_function_t *func, void *data1, int fd)
 
VALUE rb_big_mul_normal (VALUE x, VALUE y)
 
VALUE rb_big_mul_balance (VALUE x, VALUE y)
 
VALUE rb_big_mul_karatsuba (VALUE x, VALUE y)
 
VALUE rb_big_mul_toom3 (VALUE x, VALUE y)
 
VALUE rb_big_sq_fast (VALUE x)
 
VALUE rb_big_divrem_normal (VALUE x, VALUE y)
 
VALUE rb_big2str_poweroftwo (VALUE x, int base)
 
VALUE rb_big2str_generic (VALUE x, int base)
 
VALUE rb_str2big_poweroftwo (VALUE arg, int base, int badcheck)
 
VALUE rb_str2big_normal (VALUE arg, int base, int badcheck)
 
VALUE rb_str2big_karatsuba (VALUE arg, int base, int badcheck)
 
int rb_bug_reporter_add (void(*func)(FILE *, void *), void *data)
 
void rb_maygvl_fd_fix_cloexec (int fd)
 
VALUE rb_int_positive_pow (long x, unsigned long y)
 
int rb_exec_async_signal_safe (const struct rb_execarg *e, char *errmsg, size_t errmsg_buflen)
 
rb_pid_t rb_fork_async_signal_safe (int *status, int(*chfunc)(void *, char *, size_t), void *charg, VALUE fds, char *errmsg, size_t errmsg_buflen)
 
VALUE rb_execarg_new (int argc, VALUE *argv, int accept_shell)
 
struct rb_execarg * rb_execarg_get (VALUE execarg_obj)
 
VALUE rb_execarg_init (int argc, VALUE *argv, int accept_shell, VALUE execarg_obj)
 
int rb_execarg_addopt (VALUE execarg_obj, VALUE key, VALUE val)
 
void rb_execarg_fixup (VALUE execarg_obj)
 
int rb_execarg_run_options (const struct rb_execarg *e, struct rb_execarg *s, char *errmsg, size_t errmsg_buflen)
 
VALUE rb_execarg_extract_options (VALUE execarg_obj, VALUE opthash)
 
void rb_execarg_setenv (VALUE execarg_obj, VALUE env)
 
VALUE rb_gcd_normal (VALUE self, VALUE other)
 
void rb_gc_mark_global_tbl (void)
 
void rb_mark_generic_ivar (VALUE)
 
void rb_mark_generic_ivar_tbl (void)
 
int rb_st_insert_id_and_value (VALUE obj, st_table *tbl, ID key, VALUE value)
 
st_table * rb_st_copy (VALUE obj, struct st_table *orig_tbl)
 
size_t rb_obj_memsize_of (VALUE)
 
size_t rb_obj_gc_flags (VALUE, ID[], size_t)
 
RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_parser_new (void)
 
VALUE rb_parser_end_seen_p (VALUE)
 
VALUE rb_parser_encoding (VALUE)
 
VALUE rb_parser_get_yydebug (VALUE)
 
VALUE rb_parser_set_yydebug (VALUE, VALUE)
 
VALUE rb_parser_dump_tree (NODE *node, int comment)
 
NODE * rb_parser_append_print (VALUE, NODE *)
 
NODE * rb_parser_while_loop (VALUE, NODE *, int, int)
 
NODE * rb_parser_compile_cstr (volatile VALUE, const char *, const char *, int, int)
 
NODE * rb_parser_compile_string (volatile VALUE, const char *, VALUE, int)
 
NODE * rb_parser_compile_file (volatile VALUE, const char *, VALUE, int)
 
NODE * rb_parser_compile_string_path (volatile VALUE vparser, VALUE fname, VALUE src, int line)
 
NODE * rb_parser_compile_file_path (volatile VALUE vparser, VALUE fname, VALUE input, int line)
 
NODE * rb_compile_cstr (const char *, const char *, int, int)
 
NODE * rb_compile_string (const char *, VALUE, int)
 
NODE * rb_compile_file (const char *, VALUE, int)
 
NODE * rb_node_newnode (enum node_type, VALUE, VALUE, VALUE)
 
NODE * rb_node_newnode_longlife (enum node_type, VALUE, VALUE, VALUE)
 
struct rb_global_entry * rb_global_entry (ID)
 
VALUE rb_gvar_get (struct rb_global_entry *)
 
VALUE rb_gvar_set (struct rb_global_entry *, VALUE)
 
VALUE rb_gvar_defined (struct rb_global_entry *)
 
struct kwtable * rb_reserved_word (const char *, unsigned int)
 
void * rb_parser_malloc (struct parser_params *, size_t)
 
void * rb_parser_realloc (struct parser_params *, void *, size_t)
 
void * rb_parser_calloc (struct parser_params *, size_t, size_t)
 
void rb_parser_free (struct parser_params *, void *)
 
ONIG_EXTERN int
onigenc_ascii_apply_all_case_fold 
P_ ((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void *arg, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_ascii_get_case_fold_codes_by_str 
P_ ((OnigCaseFoldType flag, const OnigUChar *p, const OnigUChar *end, OnigCaseFoldCodeItem items[], OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_apply_all_case_fold_with_map 
P_ ((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void *arg))
 
ONIG_EXTERN int
onigenc_get_case_fold_codes_by_str_with_map 
P_ ((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, const OnigUChar *p, const OnigUChar *end, OnigCaseFoldCodeItem items[]))
 
ONIG_EXTERN int
onigenc_not_support_get_ctype_code_range 
P_ ((OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint *ranges[], OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_is_mbc_newline_0x0a 
P_ ((const UChar *p, const UChar *end, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_ascii_mbc_case_fold 
P_ ((OnigCaseFoldType flag, const UChar **p, const UChar *end, UChar *lower, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_single_byte_mbc_enc_len 
P_ ((const UChar *p, const UChar *e, OnigEncoding enc))
 
ONIG_EXTERN OnigCodePoint
onigenc_single_byte_mbc_to_code 
P_ ((const UChar *p, const UChar *end, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_single_byte_code_to_mbclen 
P_ ((OnigCodePoint code, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_single_byte_code_to_mbc 
P_ ((OnigCodePoint code, UChar *buf, OnigEncoding enc))
 
ONIG_EXTERN UChar
*onigenc_single_byte_left_adjust_char_head 
P_ ((const UChar *start, const UChar *s, const OnigUChar *end, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_always_true_is_allowed_reverse_match 
P_ ((const UChar *s, const UChar *end, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_always_false_is_allowed_reverse_match 
P_ ((const UChar *s, const UChar *end, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_ascii_is_code_ctype 
P_ ((OnigCodePoint code, unsigned int ctype, OnigEncoding enc))
 
ONIG_EXTERN OnigCodePoint
onigenc_mbn_mbc_to_code 
P_ ((OnigEncoding enc, const UChar *p, const UChar *end))
 
ONIG_EXTERN int
onigenc_mbn_mbc_case_fold 
P_ ((OnigEncoding enc, OnigCaseFoldType flag, const UChar **p, const UChar *end, UChar *lower))
 
ONIG_EXTERN int
onigenc_mb2_code_to_mbclen 
P_ ((OnigCodePoint code, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_mb2_code_to_mbc 
P_ ((OnigEncoding enc, OnigCodePoint code, UChar *buf))
 
ONIG_EXTERN int
onigenc_minimum_property_name_to_ctype 
P_ ((OnigEncoding enc, UChar *p, UChar *end))
 
ONIG_EXTERN int
onigenc_unicode_property_name_to_ctype 
P_ ((OnigEncoding enc, UChar *p, UChar *end))
 
ONIG_EXTERN int
onigenc_mb2_is_code_ctype 
P_ ((OnigEncoding enc, OnigCodePoint code, unsigned int ctype))
 
ONIG_EXTERN int
onigenc_mb4_code_to_mbclen 
P_ ((OnigCodePoint code, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_mb4_code_to_mbc 
P_ ((OnigEncoding enc, OnigCodePoint code, UChar *buf))
 
ONIG_EXTERN int
onigenc_mb4_is_code_ctype 
P_ ((OnigEncoding enc, OnigCodePoint code, unsigned int ctype))
 
ONIG_EXTERN int
onigenc_unicode_is_code_ctype 
P_ ((OnigCodePoint code, unsigned int ctype, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_utf16_32_get_ctype_code_range 
P_ ((OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint *ranges[], OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_unicode_ctype_code_range 
P_ ((int ctype, const OnigCodePoint *ranges[]))
 
ONIG_EXTERN int
onigenc_unicode_get_case_fold_codes_by_str 
P_ ((OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar *p, const OnigUChar *end, OnigCaseFoldCodeItem items[]))
 
ONIG_EXTERN int
onigenc_unicode_mbc_case_fold 
P_ ((OnigEncoding enc, OnigCaseFoldType flag, const UChar **pp, const UChar *end, UChar *fold))
 
ONIG_EXTERN int
onigenc_unicode_apply_all_case_fold 
P_ ((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void *arg, OnigEncoding enc))
 
ONIG_EXTERN int
onigenc_with_ascii_strncmp 
P_ ((OnigEncoding enc, const UChar *p, const UChar *end, const UChar *sascii, int n))
 
ONIG_EXTERN int
onigenc_with_ascii_strnicmp 
P_ ((OnigEncoding enc, const UChar *p, const UChar *end, const UChar *sascii, int n))
 
ONIG_EXTERN UChar *onigenc_step P_ ((OnigEncoding enc, const UChar *p, const UChar *end, int n))
 
int onig_is_in_code_range P_ ((const UChar *p, OnigCodePoint code))
 
static ID register_symid (ID, const char *, long, rb_encoding *)
 
static ID register_symid_str (ID, VALUE)
 
static void Init_id (void)
 
static int vtable_size (const struct vtable *tbl)
 
static struct vtable * vtable_alloc (struct vtable *prev)
 
static void vtable_free (struct vtable *tbl)
 
static void vtable_add (struct vtable *tbl, ID id)
 
static int vtable_included (const struct vtable *tbl, ID id)
 
static int parser_yyerror (struct parser_params *, const char *)
 
static int yylex (void *)
 
static NODE * node_newnode (struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
 
static NODE * cond_gen (struct parser_params *, NODE *)
 
static NODE * logop_gen (struct parser_params *, enum node_type, NODE *, NODE *)
 
static NODE * newline_node (NODE *)
 
static void fixpos (NODE *, NODE *)
 
static int value_expr_gen (struct parser_params *, NODE *)
 
static void void_expr_gen (struct parser_params *, NODE *)
 
static NODE * remove_begin (NODE *)
 
static NODE * remove_begin_all (NODE *)
 
static void void_stmts_gen (struct parser_params *, NODE *)
 
static void reduce_nodes_gen (struct parser_params *, NODE **)
 
static void block_dup_check_gen (struct parser_params *, NODE *, NODE *)
 
static NODE * block_append_gen (struct parser_params *, NODE *, NODE *)
 
static NODE * list_append_gen (struct parser_params *, NODE *, NODE *)
 
static NODE * list_concat_gen (struct parser_params *, NODE *, NODE *)
 
static NODE * arg_append_gen (struct parser_params *, NODE *, NODE *)
 
static NODE * arg_concat_gen (struct parser_params *, NODE *, NODE *)
 
static NODE * literal_concat_gen (struct parser_params *, NODE *, NODE *)
 
static int literal_concat0 (struct parser_params *, VALUE, VALUE)
 
static NODE * new_evstr_gen (struct parser_params *, NODE *)
 
static NODE * evstr2dstr_gen (struct parser_params *, NODE *)
 
static NODE * splat_array (NODE *)
 
static NODE * call_bin_op_gen (struct parser_params *, NODE *, ID, NODE *)
 
static NODE * call_uni_op_gen (struct parser_params *, NODE *, ID)
 
static NODE * new_args_gen (struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
 
static NODE * new_args_tail_gen (struct parser_params *, NODE *, ID, ID)
 
static NODE * negate_lit (NODE *)
 
static NODE * ret_args_gen (struct parser_params *, NODE *)
 
static NODE * arg_blk_pass (NODE *, NODE *)
 
static NODE * new_yield_gen (struct parser_params *, NODE *)
 
static NODE * dsym_node_gen (struct parser_params *, NODE *)
 
static NODE * gettable_gen (struct parser_params *, ID)
 
static NODE * assignable_gen (struct parser_params *, ID, NODE *)
 
static NODE * aryset_gen (struct parser_params *, NODE *, NODE *)
 
static NODE * attrset_gen (struct parser_params *, NODE *, ID)
 
static void rb_backref_error_gen (struct parser_params *, NODE *)
 
static NODE * node_assign_gen (struct parser_params *, 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 NODE * match_op_gen (struct parser_params *, NODE *, NODE *)
 
static ID * local_tbl_gen (struct parser_params *)
 
static void fixup_nodes (NODE **)
 
static VALUE reg_compile_gen (struct parser_params *, VALUE, int)
 
static void reg_fragment_setenc_gen (struct parser_params *, VALUE, int)
 
static int reg_fragment_check_gen (struct parser_params *, VALUE, int)
 
static NODE * reg_named_capture_assign_gen (struct parser_params *parser, VALUE regexp, NODE *match)
 
static ID formal_argument_gen (struct parser_params *, ID)
 
static ID shadowing_lvar_gen (struct parser_params *, ID)
 
static void new_bv_gen (struct parser_params *, ID)
 
static void local_push_gen (struct parser_params *, int)
 
static void local_pop_gen (struct parser_params *)
 
static int local_var_gen (struct parser_params *, ID)
 
static int arg_var_gen (struct parser_params *, ID)
 
static int local_id_gen (struct parser_params *, ID)
 
static ID internal_id_gen (struct parser_params *)
 
static struct vtable * dyna_push_gen (struct parser_params *)
 
static void dyna_pop_gen (struct parser_params *, const struct vtable *)
 
static int dyna_in_block_gen (struct parser_params *)
 
static int dvar_defined_gen (struct parser_params *, ID, int)
 
static int dvar_curr_gen (struct parser_params *, ID)
 
static int lvar_defined_gen (struct parser_params *, ID)
 
static void token_info_push (struct parser_params *, const char *token)
 
static void token_info_pop (struct parser_params *, const char *token)
 
 if ($2)
 
 fixpos ($$, $1) = $3
 
 if (!$$)$$
 
 nd_set_line ($$,$< num >2)
 
 dyna_pop ($< vars >1)
 
fcall nd_set_line ($$, tokline)
 
 if (c== ')') lex_state
 
 if (IS_END()||ISSPACE(c))
 
 switch (c)
 
 if ((c=nextc())== '=')
 
 if (IS_SPCARG(c))
 
 warn_balanced ("/","regexp literal")
 

Variables

primary_value['opt_call_args
rbracket{$$=aryset($1,
$3);}|primary_value
'.'tIDENTIFIER{$$=attrset($1,
$3);}|primary_value tCOLON2
tIDENTIFIER{$$=attrset($1,
$3);}|primary_value
'.'tCONSTANT{$$=attrset($1,
$3);}|primary_value tCOLON2
tCONSTANT{if(in_def||in_single)
yyerror("dynamic constant
assignment");$$=NEW_CDECL(0,
0, NEW_COLON2($1,
$3));}|tCOLON3 tCONSTANT{if(in_def||in_single)
yyerror("dynamic constant
assignment");$$=NEW_CDECL(0,
0, NEW_COLON3($2));}|backref{rb_backref_error($1);$$=NEW_BEGIN(0);};lhs:user_variable{$$=assignable($1,
0);if(!$$)$$=NEW_BEGIN(0);}|keyword_variable{$$=assignable($1,
0);if(!$$)$$=NEW_BEGIN(0);}|primary_value
'['opt_call_args rbracket{$$=aryset($1,
$3);}|primary_value
'.'tIDENTIFIER{$$=attrset($1,
$3);}|primary_value tCOLON2
tIDENTIFIER{$$=attrset($1,
$3);}|primary_value
'.'tCONSTANT{$$=attrset($1,
$3);}|primary_value tCOLON2
tCONSTANT{if(in_def||in_single)
yyerror("dynamic constant
assignment");$$=NEW_CDECL(0,
0, NEW_COLON2($1,
$3));}|tCOLON3 tCONSTANT{if(in_def||in_single)
yyerror("dynamic constant
assignment");$$=NEW_CDECL(0,
0, NEW_COLON3($2));}|backref{rb_backref_error($1);$$=NEW_BEGIN(0);};cname:tIDENTIFIER{yyerror("class/module
name must be CONSTANT");}|tCONSTANT;cpath:tCOLON3
cname{$$=NEW_COLON3($2);}|cname{$$=NEW_COLON2(0,$$);}|primary_value
tCOLON2 cname{$$=NEW_COLON2($1,
$3);};fname:tIDENTIFIER|tCONSTANT|tFID|op{lex_state=EXPR_ENDFN;$$=$1;}|reswords{lex_state=EXPR_ENDFN;$$=$
< id >1;};fsym:fname|symbol;fitem:fsym{$$=NEW_LIT(ID2SYM($1));}|dsym;undef_list:fitem{$$=NEW_UNDEF($1);}|undef_list
','{lex_state=EXPR_FNAME;}fitem{$$=block_append($1,
NEW_UNDEF($4));};op:
'|'{ifndef_ripper($$=
'|');}| '^'{ifndef_ripper($$=
'^');}| '&'{ifndef_ripper($$=
'&');}|tCMP{ifndef_ripper($$=tCMP);}|tEQ{ifndef_ripper($$=tEQ);}|tEQQ{ifndef_ripper($$=tEQQ);}|tMATCH{ifndef_ripper($$=tMATCH);}|tNMATCH{ifndef_ripper($$=tNMATCH);}| '>
'{ifndef_ripper($$= '>
');}|tGEQ{ifndef_ripper($$=tGEQ);}| '
<'{ifndef_ripper($$= '
<');}|tLEQ{ifndef_ripper($$=tLEQ);}|tNEQ{ifndef_ripper($$=tNEQ);}|tLSHFT{ifndef_ripper($$=tLSHFT);}|tRSHFT{ifndef_ripper($$=tRSHFT);}|
'+'{ifndef_ripper($$=
'+');}| '-'{ifndef_ripper($$=
'-');}| '*'{ifndef_ripper($$=
'*');}|tSTAR{ifndef_ripper($$=
'*');}| '/'{ifndef_ripper($$=
'/');}| '%'{ifndef_ripper($$=
'%');}|tPOW{ifndef_ripper($$=tPOW);}|tDSTAR{ifndef_ripper($$=tDSTAR);}|
'!'{ifndef_ripper($$=
'!');}| '~'{ifndef_ripper($$=
'~');}|tUPLUS{ifndef_ripper($$=tUPLUS);}|tUMINUS{ifndef_ripper($$=tUMINUS);}|tAREF{ifndef_ripper($$=tAREF);}|tASET{ifndef_ripper($$=tASET);}|
'`'{ifndef_ripper($$=
'`');};reswords:keyword__LINE__|keyword__FILE__|keyword__ENCODING__|keyword_BEGIN|keyword_END|keyword_alias|keyword_and|keyword_begin|keyword_break|keyword_case|keyword_class|keyword_def|keyword_defined|keyword_do|keyword_else|keyword_elsif|keyword_end|keyword_ensure|keyword_false|keyword_for|keyword_in|keyword_module|keyword_next|keyword_nil|keyword_not|keyword_or|keyword_redo|keyword_rescue|keyword_retry|keyword_return|keyword_self|keyword_super|keyword_then|keyword_true|keyword_undef|keyword_when|keyword_yield|keyword_if|keyword_unless|keyword_while|keyword_until;arg:lhs
'='arg{value_expr($3);$$=node_assign($1,
$3);}|lhs '='arg
modifier_rescue arg{value_expr($3);$3=NEW_RESCUE($3,
NEW_RESBODY(0,
$5, 0), 0);$$=node_assign($1,
$3);}|var_lhs tOP_ASGN arg{value_expr($3);$$=new_op_assign($1,
$2, $3);}|var_lhs tOP_ASGN arg
modifier_rescue arg{value_expr($3);$3=NEW_RESCUE($3,
NEW_RESBODY(0,
$5, 0), 0);$$=new_op_assign($1,
$2, $3);}|primary_value
'['opt_call_args rbracket
tOP_ASGN arg{NODE *args;value_expr($6);if(!$3)
$3=NEW_ZARRAY();if(nd_type($3)==NODE_BLOCK_PASS){args=NEW_ARGSCAT($3,
$6);}else{args=arg_concat($3,
$6);}if($5==tOROP){$5=0;}else
if($5==tANDOP){$5=1;}$$=NEW_OP_ASGN1($1,
$5, args);fixpos($$,
$1);}|primary_value
'.'tIDENTIFIER tOP_ASGN arg{value_expr($5);$$=new_attr_op_assign($1,
ripper_id2sym('.'),
$3, $4, $5);}|primary_value
'.'tCONSTANT tOP_ASGN arg{value_expr($5);$$=new_attr_op_assign($1,
ripper_id2sym('.'),
$3, $4, $5);}|primary_value
tCOLON2 tIDENTIFIER tOP_ASGN
arg{value_expr($5);$$=new_attr_op_assign($1,
ripper_intern("::"),
$3, $4, $5);}|primary_value
tCOLON2 tCONSTANT tOP_ASGN arg{$$=NEW_COLON2($1,
$3);$$=new_const_op_assign($$,
$4, $5);}|tCOLON3 tCONSTANT
tOP_ASGN arg{$$=NEW_COLON3($2);$$=new_const_op_assign($$,
$3, $4);}|backref tOP_ASGN arg{rb_backref_error($1);$$=NEW_BEGIN(0);}|arg
tDOT2 arg{value_expr($1);value_expr($3);$$=NEW_DOT2($1,
$3);if(nd_type($1)==NODE_LIT
&&FIXNUM_P($1->nd_lit)&&nd_type($3)==NODE_LIT
&&FIXNUM_P($3->nd_lit)){deferred_nodes=list_append(deferred_nodes,$$);}}|arg
tDOT3 arg{value_expr($1);value_expr($3);$$=NEW_DOT3($1,
$3);if(nd_type($1)==NODE_LIT
&&FIXNUM_P($1->nd_lit)&&nd_type($3)==NODE_LIT
&&FIXNUM_P($3->nd_lit)){deferred_nodes=list_append(deferred_nodes,$$);}}|arg
'+'arg{$$=call_bin_op($1,
'+', $3);}|arg '-'arg{$$=call_bin_op($1,
'-', $3);}|arg '*'arg{$$=call_bin_op($1,
'*', $3);}|arg '/'arg{$$=call_bin_op($1,
'/', $3);}|arg '%'arg{$$=call_bin_op($1,
'%', $3);}|arg tPOW arg{$$=call_bin_op($1,
tPOW, $3);}|tUMINUS_NUM
simple_numeric tPOW arg{$$=NEW_CALL(call_bin_op($2,
tPOW, $4), tUMINUS,
0);}|tUPLUS arg{$$=call_uni_op($2,
tUPLUS);}|tUMINUS arg{$$=call_uni_op($2,
tUMINUS);}|arg '|'arg{$$=call_bin_op($1,
'|', $3);}|arg '^'arg{$$=call_bin_op($1,
'^', $3);}|arg '&'arg{$$=call_bin_op($1,
'&', $3);}|arg tCMP arg{$$=call_bin_op($1,
tCMP, $3);}|arg '>'arg{$$=call_bin_op($1, '>
', $3);}|arg tGEQ arg{$$=call_bin_op($1,
tGEQ, $3);}|arg '<'arg{$$=call_bin_op($1, '
<', $3);}|arg tLEQ arg{$$=call_bin_op($1,
tLEQ, $3);}|arg tEQ arg{$$=call_bin_op($1,
tEQ, $3);}|arg tEQQ arg{$$=call_bin_op($1,
tEQQ, $3);}|arg tNEQ arg{$$=call_bin_op($1,
tNEQ, $3);}|arg tMATCH arg{$$=match_op($1,
$3);if(nd_type($1)==NODE_LIT
&&RB_TYPE_P($1->nd_lit,
T_REGEXP)){$$=reg_named_capture_assign($1->
nd_lit,$$);}}|arg tNMATCH arg{$$=call_bin_op($1,
tNMATCH, $3);}| '!'arg{$$=call_uni_op(cond($2),
'!');}| '~'arg{$$=call_uni_op($2,
'~');}|arg tLSHFT arg{$$=call_bin_op($1,
tLSHFT, $3);}|arg tRSHFT arg{$$=call_bin_op($1,
tRSHFT, $3);}|arg tANDOP arg{$$=logop(NODE_AND,
$1, $3);}|arg tOROP arg{$$=logop(NODE_OR,
$1, $3);}|keyword_defined
opt_nl{in_defined=1;}arg{in_defined=0;$$=new_defined($4);}|arg
'?'arg opt_nl ':'arg{value_expr($1);$$=NEW_IF(cond($1),
$3, $6);fixpos($$,
$1);}|primary{$$=$1;};arg_value:arg{value_expr($1);$$=$1;if(!$$)$$=NEW_NIL();};aref_args:none|args
trailer{$$=$1;}|args ','assocs
trailer{$$=arg_append($1,
NEW_HASH($3));}|assocs trailer{$$=NEW_LIST(NEW_HASH($1));};paren_args:
'('opt_call_args rparen{$$=$2;};opt_paren_args:none|paren_args;opt_call_args:none|call_args|args
','{$$=$1;}|args ','assocs
','{$$=arg_append($1, NEW_HASH($3));}|assocs
','{$$=NEW_LIST(NEW_HASH($1));};call_args:command{value_expr($1);$$=NEW_LIST($1);}|args
opt_block_arg{$$=arg_blk_pass($1,
$2);}|assocs opt_block_arg{$$=NEW_LIST(NEW_HASH($1));$$=arg_blk_pass($$,
$2);}|args ','assocs
opt_block_arg{$$=arg_append($1,
NEW_HASH($3));$$=arg_blk_pass($$,
$4);}|block_arg;command_args:{$
< val > $=cmdarg_stack;CMDARG_PUSH(1);}call_args{cmdarg_stack=$
< val >
1;$$=$2;};block_arg:tAMPER
arg_value{$$=NEW_BLOCK_PASS($2);};opt_block_arg:
','block_arg{$$=$2;}|none{$$=0;};args:arg_value{$$=NEW_LIST($1);}|tSTAR
arg_value{$$=NEW_SPLAT($2);}|args
','arg_value{NODE *n1;if((n1=splat_array($1))!=0){$$=list_append(n1,
$3);}else{$$=arg_append($1,
$3);}}|args ','tSTAR arg_value{NODE
*n1;if((nd_type($4)==NODE_ARRAY)&&(n1=splat_array($1))!=0){$$=list_concat(n1,
$4);}else{$$=arg_concat($1,
$4);}};mrhs_arg:mrhs|arg_value;mrhs:args
','arg_value{NODE *n1;if((n1=splat_array($1))!=0){$$=list_append(n1,
$3);}else{$$=arg_append($1,
$3);}}|args ','tSTAR arg_value{NODE
*n1;if(nd_type($4)==NODE_ARRAY
&&(n1=splat_array($1))!=0){$$=list_concat(n1,
$4);}else{$$=arg_concat($1,
$4);}}|tSTAR arg_value{$$=NEW_SPLAT($2);};primary:literal|strings|xstring|regexp|words|qwords|symbols|qsymbols|var_ref|backref|tFID{$$=NEW_FCALL($1,
0);}|k_begin{$< val >
1=cmdarg_stack;cmdarg_stack=0;$
< num > $=ruby_sourceline;}bodystmt
k_end{cmdarg_stack=$< val >
1;if($3==NULL){$$=NEW_NIL();}else{if(nd_type($3)==NODE_RESCUE||nd_type($3)==NODE_ENSURE)
nd_set_line($3,$< num >
2);$$=NEW_BEGIN($3);}nd_set_line($$,$
< num >2);}|tLPAREN_ARG{lex_state=EXPR_ENDARG;}rparen{$$=0;}|tLPAREN_ARG{$
< val >1=cmdarg_stack;cmdarg_stack=0;}expr{lex_state=EXPR_ENDARG;}rparen{cmdarg_stack=$
< val >1;$$=$3;}|tLPAREN
compstmt
')'{$$=$2;}|primary_value
tCOLON2 tCONSTANT{$$=NEW_COLON2($1,
$3);}|tCOLON3 tCONSTANT{$$=NEW_COLON3($2);}|tLBRACK
aref_args ']'{if($2==0){$$=NEW_ZARRAY();}else{$$=$2;}}|tLBRACE
assoc_list '}'{$$=NEW_HASH($2);}|keyword_return{$$=NEW_RETURN(0);}|keyword_yield
'('call_args rparen{$$=new_yield($3);}|keyword_yield
'('rparen{$$=NEW_YIELD(0);}|keyword_yield{$$=NEW_YIELD(0);}|keyword_defined
opt_nl '('{in_defined=1;}expr
rparen{in_defined=0;$$=new_defined($5);}|keyword_not
'('expr rparen{$$=call_uni_op(cond($3),
'!');}|keyword_not '('rparen{$$=call_uni_op(cond(NEW_NIL()),
'!');}|fcall brace_block{$2->
nd_iter=$1;$$=$2;}|method_call|method_call
brace_block{block_dup_check($1->
nd_args, $2);$2->nd_iter=$1;$$=$2;}|tLAMBDA
lambda{$$=$2;}|k_if expr_value
then compstmt if_tail k_end{$$=NEW_IF(cond($2),
$4, $5);fixpos($$,
$2);}|k_unless expr_value then
compstmt opt_else k_end{$$=NEW_UNLESS(cond($2),
$4, $5);fixpos($$,
$2);}|k_while{COND_PUSH(1);}expr_value
do{COND_POP();}compstmt k_end{$$=NEW_WHILE(cond($3),
$6, 1);fixpos($$,
$3);}|k_until{COND_PUSH(1);}expr_value
do{COND_POP();}compstmt k_end{$$=NEW_UNTIL(cond($3),
$6, 1);fixpos($$, $3);}|k_case
expr_value opt_terms case_body
k_end{$$=NEW_CASE($2,
$4);fixpos($$, $2);}|k_case
opt_terms case_body k_end{$$=NEW_CASE(0,
$3);}|k_for for_var keyword_in{COND_PUSH(1);}expr_value
do{COND_POP();}compstmt k_end{ID
id=internal_id();ID *tbl=ALLOC_N(ID,
2);NODE *m=NEW_ARGS_AUX(0,
0);NODE *args,*scope;if(nd_type($2)==NODE_MASGN){NODE
*one=NEW_LIST(NEW_LIT(INT2FIX(1)));NODE
*zero=NEW_LIST(NEW_LIT(INT2FIX(0)));m->
nd_next=block_append(NEW_IF(NEW_NODE(NODE_AND,
NEW_CALL(NEW_CALL(NEW_DVAR(id),
idLength, 0), idEq, one),
NEW_CALL(NEW_CALL(NEW_DVAR(id),
idAREF, zero), rb_intern("kind_of?"),
NEW_LIST(NEW_LIT(rb_cArray))),
0), NEW_DASGN_CURR(id,
NEW_CALL(NEW_DVAR(id), idAREF,
zero)), 0), node_assign($2,
NEW_DVAR(id)));args=new_args(m,
0, id, 0, new_args_tail(0,
0, 0));}else{if(nd_type($2)==NODE_LASGN||nd_type($2)==NODE_DASGN||nd_type($2)==NODE_DASGN_CURR){$2->
nd_value=NEW_DVAR(id);m->
nd_plen=1;m->nd_next=$2;args=new_args(m,
0, 0, 0, new_args_tail(0,
0, 0));}else{m->nd_next=node_assign(NEW_MASGN(NEW_LIST($2),
0), NEW_DVAR(id));args=new_args(m,
0, id, 0, new_args_tail(0,
0, 0));}}scope=NEW_NODE(NODE_SCOPE,
tbl, $8, args);tbl[0]=1;tbl[1]=id;$$=NEW_FOR(0,
$5, scope);fixpos($$,
$2);}|k_class cpath superclass{if(in_def||in_single)
yyerror("class definition in
method body");local_push(0);$
< num > $=ruby_sourceline;}bodystmt
k_end{$$=NEW_CLASS($2,
$5, $3);nd_set_line($$,$< num >
4);local_pop();}|k_class
tLSHFT expr{$< num > $=in_def;in_def=0;}term{$
< num > $=in_single;in_single=0;local_push(0);}bodystmt
k_end{$$=NEW_SCLASS($3,
$7);fixpos($$, $3);local_pop();in_def=$
< num >4;in_single=$< num >
6;}|k_module cpath{if(in_def||in_single)
yyerror("module definition in
method body");local_push(0);$
< num > $=ruby_sourceline;}bodystmt
k_end{$$=NEW_MODULE($2,
$4);nd_set_line($$,$< num >
3);local_pop();}|k_def fname{$
< id > $=cur_mid;cur_mid=$2;in_def++;local_push(0);}f_arglist
bodystmt k_end{NODE *body=remove_begin($5);reduce_nodes(&body);$$=NEW_DEFN($2,
$4, body, NOEX_PRIVATE);nd_set_line($$,$
< num >1);local_pop();in_def--;cur_mid=$
< id >3;}|k_def singleton
dot_or_colon{lex_state=EXPR_FNAME;}fname{in_single++;lex_state=EXPR_ENDFN;local_push(0);}f_arglist
bodystmt k_end{NODE *body=remove_begin($8);reduce_nodes(&body);$$=NEW_DEFS($2,
$5, $7, body);nd_set_line($$,$
< num >1);local_pop();in_single--;}|keyword_break{$$=NEW_BREAK(0);}|keyword_next{$$=NEW_NEXT(0);}|keyword_redo{$$=NEW_REDO();}|keyword_retry{$$=NEW_RETRY();};primary_value:primary{value_expr($1);$$=$1;if(!$$)$$=NEW_NIL();};k_begin:keyword_begin{token_info_push("begin");};k_if:keyword_if{token_info_push("if");};k_unless:keyword_unless{token_info_push("unless");};k_while:keyword_while{token_info_push("while");};k_until:keyword_until{token_info_push("until");};k_case:keyword_case{token_info_push("case");};k_for:keyword_for{token_info_push("for");};k_class:keyword_class{token_info_push("class");};k_module:keyword_module{token_info_push("module");};k_def:keyword_def{token_info_push("def");$
< num > $=ruby_sourceline;};k_end:keyword_end{token_info_pop("end");};then:term|keyword_then|term
keyword_then;do:term|keyword_do_cond;if_tail:opt_else|keyword_elsif
expr_value then compstmt
if_tail{$$=NEW_IF(cond($2),
$4, $5);fixpos($$,
$2);};opt_else:none|keyword_else
compstmt{$$=$2;};for_var:lhs|mlhs;f_marg:f_norm_arg{$$=assignable($1,
0);}|tLPAREN f_margs rparen{$$=$2;};f_marg_list:f_marg{$$=NEW_LIST($1);}|f_marg_list
','f_marg{$$=list_append($1,
$3);};f_margs:f_marg_list{$$=NEW_MASGN($1,
0);}|f_marg_list ','tSTAR
f_norm_arg{$$=assignable($4,
0);$$=NEW_MASGN($1,$$);}|f_marg_list
','tSTAR f_norm_arg
','f_marg_list{$$=assignable($4,
0);$$=NEW_MASGN($1,
NEW_POSTARG($$,
$6));}|f_marg_list ','tSTAR{$$=NEW_MASGN($1,-1);}|f_marg_list
','tSTAR ','f_marg_list{$$=NEW_MASGN($1,
NEW_POSTARG(-1, $5));}|tSTAR
f_norm_arg{$$=assignable($2,
0);$$=NEW_MASGN(0,$$);}|tSTAR
f_norm_arg ','f_marg_list{$$=assignable($2,
0);$$=NEW_MASGN(0, NEW_POSTARG($$,
$4));}|tSTAR{$$=NEW_MASGN(0,-1);}|tSTAR
','f_marg_list{$$=NEW_MASGN(0,
NEW_POSTARG(-1,
$3));};block_args_tail:f_block_kwarg
','f_kwrest opt_f_block_arg{$$=new_args_tail($1,
$3, $4);}|f_block_kwarg
opt_f_block_arg{$$=new_args_tail($1,
Qnone, $2);}|f_kwrest
opt_f_block_arg{$$=new_args_tail(Qnone,
$1, $2);}|f_block_arg{$$=new_args_tail(Qnone,
Qnone,
$1);};opt_block_args_tail:
','block_args_tail{$$=$2;}|{$$=new_args_tail(Qnone,
Qnone, Qnone);};block_param:f_arg
','f_block_optarg
','f_rest_arg
opt_block_args_tail{$$=new_args($1,
$3, $5, Qnone, $6);}|f_arg
','f_block_optarg
','f_rest_arg ','f_arg
opt_block_args_tail{$$=new_args($1,
$3, $5, $7, $8);}|f_arg
','f_block_optarg
opt_block_args_tail{$$=new_args($1,
$3, Qnone, Qnone, $4);}|f_arg
','f_block_optarg ','f_arg
opt_block_args_tail{$$=new_args($1,
$3, Qnone, $5, $6);}|f_arg
','f_rest_arg
opt_block_args_tail{$$=new_args($1,
Qnone, $3, Qnone, $4);}|f_arg
','{$$=new_args($1, Qnone,
1, Qnone, new_args_tail(Qnone,
Qnone, Qnone));}|f_arg
','f_rest_arg ','f_arg
opt_block_args_tail{$$=new_args($1,
Qnone, $3, $5, $6);}|f_arg
opt_block_args_tail{$$=new_args($1,
Qnone, Qnone, Qnone,
$2);}|f_block_optarg
','f_rest_arg
opt_block_args_tail{$$=new_args(Qnone,
$1, $3, Qnone,
$4);}|f_block_optarg
','f_rest_arg ','f_arg
opt_block_args_tail{$$=new_args(Qnone,
$1, $3, $5, $6);}|f_block_optarg
opt_block_args_tail{$$=new_args(Qnone,
$1, Qnone, Qnone,
$2);}|f_block_optarg ','f_arg
opt_block_args_tail{$$=new_args(Qnone,
$1, Qnone,
$3, $4);}|f_rest_arg
opt_block_args_tail{$$=new_args(Qnone,
Qnone, $1, Qnone,
$2);}|f_rest_arg ','f_arg
opt_block_args_tail{$$=new_args(Qnone,
Qnone,
$1, $3, $4);}|block_args_tail{$$=new_args(Qnone,
Qnone, Qnone, Qnone,
$1);};opt_block_param:none|block_param_def{command_start=TRUE;};block_param_def:
'|'opt_bv_decl
'|'{$$=0;}|tOROP{$$=0;}|
'|'block_param opt_bv_decl
'|'{$$=$2;};opt_bv_decl:opt_nl{$$=0;}|opt_nl
';'bv_decls opt_nl{$$=0;};bv_decls:bvar|bv_decls
','bvar;bvar:tIDENTIFIER{new_bv(get_id($1));}|f_bad_arg{$$=0;};lambda:{$
< vars > $=dyna_push();}{$
< num > $=lpar_beg;lpar_beg=++paren_nest;}f_larglist{$
< num > $=ruby_sourceline;}lambda_body{lpar_beg=$
< num >2;$$=NEW_LAMBDA($3,
$5);nd_set_line($$,$< num >
4);dyna_pop($< vars >
1);};f_larglist: '('f_args
opt_bv_decl ')'{$$=$2;}|f_args{$$=$1;};lambda_body:tLAMBEG
compstmt
'}'{$$=$2;}|keyword_do_LAMBDA
compstmt keyword_end{$$=$2;};do_block:keyword_do_block{$
< vars >1=dyna_push();$< num >
$=ruby_sourceline;}opt_block_param
compstmt keyword_end{$$=NEW_ITER($3,
$4);nd_set_line($$,$< num >
2);dyna_pop($< vars >
1);};block_call:command
do_block{if(nd_type($1)==NODE_YIELD){compile_error(PARSER_ARG"block
given to yield");}else{block_dup_check($1->
nd_args, $2);}$2->nd_iter=$1;$$=$2;fixpos($$,
$1);}|block_call dot_or_colon
operation2 opt_paren_args{$$=NEW_CALL($1,
$3, $4);}|block_call
dot_or_colon operation2
opt_paren_args brace_block{block_dup_check($4, $5);$5->
nd_iter=NEW_CALL($1,
$3, $4);$$=$5;fixpos($$,
$1);}|block_call dot_or_colon
operation2 command_args
do_block{block_dup_check($4, $5);$5->
nd_iter=NEW_CALL($1,
$3, $4);$$=$5;fixpos($$,
$1);};method_call:fcall
paren_args{$$=$1;$$->nd_args=$2;}|primary_value
'.'operation2{$< num >
$=ruby_sourceline;}opt_paren_args{$$=NEW_CALL($1,
$3, $5);nd_set_line($$,$< num >
4);}|primary_value tCOLON2
operation2{$< num >
$=ruby_sourceline;}paren_args{$$=NEW_CALL($1,
$3, $5);nd_set_line($$,$< num >
4);}|primary_value tCOLON2
operation3{$$=NEW_CALL($1,
$3, 0);}|primary_value '.'{$
< num > $=ruby_sourceline;}paren_args{$$=NEW_CALL($1,
rb_intern("call"),
$4);nd_set_line($$,$< num >
3);}|primary_value tCOLON2{$
< num > $=ruby_sourceline;}paren_args{$$=NEW_CALL($1,
rb_intern("call"),
$4);nd_set_line($$,$< num >
3);}|keyword_super paren_args{$$=NEW_SUPER($2);}|keyword_super{$$=NEW_ZSUPER();}|primary_value
'['opt_call_args rbracket{if($1
&&nd_type($1)==NODE_SELF)$$=NEW_FCALL(tAREF,
$3);else $$=NEW_CALL($1, tAREF,
$3);fixpos($$,
$1);};brace_block: '{'{$< vars >
1=dyna_push();$< num >
$=ruby_sourceline;}opt_block_param
compstmt '}'{$$=NEW_ITER($3,
$4);nd_set_line($$,$< num >
2);dyna_pop($< vars >
1);}|keyword_do{$< vars >
1=dyna_push();$< num >
$=ruby_sourceline;}opt_block_param
compstmt keyword_end{$$=NEW_ITER($3,
$4);nd_set_line($$,$< num >
2);dyna_pop($< vars >
1);};case_body:keyword_when
args then compstmt cases{$$=NEW_WHEN($2,
$4, $5);};cases:opt_else|case_body;opt_rescue:keyword_rescue
exc_list exc_var then compstmt
opt_rescue{if($3){$3=node_assign($3,
NEW_ERRINFO());$5=block_append($3,
$5);}$$=NEW_RESBODY($2,
$5, $6);fixpos($$,
$2?$2:$5);}|none;exc_list:arg_value{$$=NEW_LIST($1);}|mrhs{if(!($$=splat_array($1)))$$=$1;}|none;exc_var:tASSOC
lhs{$$=$2;}|none;opt_ensure:keyword_ensure
compstmt{$$=$2;}|none;literal:numeric|symbol{$$=NEW_LIT(ID2SYM($1));}|dsym;strings:string{NODE
*node=$1;if(!node){node=NEW_STR(STR_NEW0());}else{node=evstr2dstr(node);}$$=node;};string:tCHAR|string1|string
string1{$$=literal_concat($1,
$2);};string1:tSTRING_BEG
string_contents tSTRING_END{$$=$2;};xstring:tXSTRING_BEG
xstring_contents tSTRING_END{NODE
*node=$2;if(!node){node=NEW_XSTR(STR_NEW0());}else{switch(nd_type(node)){case
NODE_STR:nd_set_type(node,
NODE_XSTR);break;case
NODE_DSTR:nd_set_type(node,
NODE_DXSTR);break;default:node=NEW_NODE(NODE_DXSTR,
Qnil, 1, NEW_LIST(node));break;}}$$=node;};regexp:tREGEXP_BEG
regexp_contents tREGEXP_END{int
options=$3;NODE *node=$2;NODE
*list,*prev;if(!node){node=NEW_LIT(reg_compile(STR_NEW0(),
options));}else switch(nd_type(node)){case
NODE_STR:{VALUE src=node->
nd_lit;nd_set_type(node,
NODE_LIT);node->nd_lit=reg_compile(src,
options);}break;default:node=NEW_NODE(NODE_DSTR,
STR_NEW0(), 1, NEW_LIST(node));case
NODE_DSTR:if(options
&RE_OPTION_ONCE){nd_set_type(node,
NODE_DREGX_ONCE);}else{nd_set_type(node,
NODE_DREGX);}node->nd_cflag=options
&RE_OPTION_MASK;if(!NIL_P(node->
nd_lit)) reg_fragment_check(node->
nd_lit, options);for(list=(prev=node) ->
nd_next;list;list=list->
nd_next){if(nd_type(list->
nd_head)==NODE_STR){VALUE tail=list->
nd_head->nd_lit;if(reg_fragment_check(tail,
options)&&prev &&!NIL_P(prev->
nd_lit)){VALUE lit=prev==node?prev->
nd_lit:prev->nd_head->nd_lit;if(!literal_concat0(parser,
lit, tail)){node=0;break;}rb_str_resize(tail,
0);prev->nd_next=list->nd_next;rb_gc_force_recycle((VALUE)
list->nd_head);rb_gc_force_recycle((VALUE)
list);list=prev;}else{prev=list;}}else{prev=0;}}if(!node->
nd_next){VALUE src=node->
nd_lit;nd_set_type(node,
NODE_LIT);node->nd_lit=reg_compile(src,
options);}break;}$$=node;};words:tWORDS_BEG
' 'tSTRING_END{$$=NEW_ZARRAY();}|tWORDS_BEG
word_list tSTRING_END{$$=$2;};word_list:{$$=0;}|word_list
word ' '{$$=list_append($1,
evstr2dstr($2));};word:string_content|word
string_content{$$=literal_concat($1,
$2);};symbols:tSYMBOLS_BEG
' 'tSTRING_END{$$=NEW_ZARRAY();}|tSYMBOLS_BEG
symbol_list tSTRING_END{$$=$2;};symbol_list:{$$=0;}|symbol_list
word ' '{$2=evstr2dstr($2);nd_set_type($2,
NODE_DSYM);$$=list_append($1,
$2);};qwords:tQWORDS_BEG
' 'tSTRING_END{$$=NEW_ZARRAY();}|tQWORDS_BEG
qword_list tSTRING_END{$$=$2;};qsymbols:tQSYMBOLS_BEG
' 'tSTRING_END{$$=NEW_ZARRAY();}|tQSYMBOLS_BEG
qsym_list tSTRING_END{$$=$2;};qword_list:{$$=0;}|qword_list
tSTRING_CONTENT
' '{$$=list_append($1,
$2);};qsym_list:{$$=0;}|qsym_list
tSTRING_CONTENT ' '{VALUE lit;lit=$2->
nd_lit;$2->nd_lit=ID2SYM(rb_intern_str(lit));nd_set_type($2,
NODE_LIT);$$=list_append($1,
$2);};string_contents:{$$=0;}|string_contents
string_content{$$=literal_concat($1,
$2);};xstring_contents:{$$=0;}|xstring_contents
string_content{$$=literal_concat($1,
$2);};regexp_contents:{$$=0;}|regexp_contents
string_content{NODE *head=$1,*tail=$2;if(!head){$$=tail;}else
if(!tail){$$=head;}else{switch(nd_type(head)){case
NODE_STR:nd_set_type(head,
NODE_DSTR);break;case
NODE_DSTR:break;default:head=list_append(NEW_DSTR(Qnil),
head);break;}$$=list_append(head,
tail);}};string_content:tSTRING_CONTENT|tSTRING_DVAR{$
< node > $=lex_strterm;lex_strterm=0;lex_state=EXPR_BEG;}string_dvar{lex_strterm=$
< node >2;$$=NEW_EVSTR($3);}|tSTRING_DBEG{$
< val >1=cond_stack;$< val >
$=cmdarg_stack;cond_stack=0;cmdarg_stack=0;}{$
< node > $=lex_strterm;lex_strterm=0;lex_state=EXPR_BEG;}{$
< num > $=brace_nest;brace_nest=0;}compstmt
tSTRING_DEND{cond_stack=$< val >
1;cmdarg_stack=$< val >
2;lex_strterm=$< node >
3;brace_nest=$< num >4;if($5) $5->
flags &=~NODE_FL_NEWLINE;$$=new_evstr($5);};string_dvar:tGVAR{$$=NEW_GVAR($1);}|tIVAR{$$=NEW_IVAR($1);}|tCVAR{$$=NEW_CVAR($1);}|backref;symbol:tSYMBEG
sym{lex_state=EXPR_END;$$=$2;};sym:fname|tIVAR|tGVAR|tCVAR;dsym:tSYMBEG
xstring_contents tSTRING_END{lex_state=EXPR_END;$$=dsym_node($2);};numeric:simple_numeric|tUMINUS_NUM
simple_numeric%prec tLOWEST{$$=negate_lit($2);};simple_numeric:tINTEGER|tFLOAT|tRATIONAL|tIMAGINARY;user_variable:tIDENTIFIER|tIVAR|tGVAR|tCONSTANT|tCVAR;keyword_variable:keyword_nil{ifndef_ripper($$=keyword_nil);}|keyword_self{ifndef_ripper($$=keyword_self);}|keyword_true{ifndef_ripper($$=keyword_true);}|keyword_false{ifndef_ripper($$=keyword_false);}|keyword__FILE__{ifndef_ripper($$=keyword__FILE__);}|keyword__LINE__{ifndef_ripper($$=keyword__LINE__);}|keyword__ENCODING__{ifndef_ripper($$=keyword__ENCODING__);};var_ref:user_variable{if(!($$=gettable($1)))$$=NEW_BEGIN(0);}|keyword_variable{if(!($$=gettable($1)))$$=NEW_BEGIN(0);};var_lhs:user_variable{$$=assignable($1,
0);}|keyword_variable{$$=assignable($1,
0);};backref:tNTH_REF|tBACK_REF;superclass:term{$$=0;}| '
<'{lex_state=EXPR_BEG;command_start=TRUE;}expr_value
term{$$=$3;}|error term{yyerrok;$$=0;};f_arglist:
'('f_args rparen{$$=$2;lex_state=EXPR_BEG;command_start=TRUE;}|{$
< num > $=parser->
parser_in_kwarg;parser->
parser_in_kwarg=1;}f_args term{parser->
parser_in_kwarg=$< num >
1;$$=$2;lex_state=EXPR_BEG;command_start=TRUE;};args_tail:f_kwarg
','f_kwrest opt_f_block_arg{$$=new_args_tail($1,
$3, $4);}|f_kwarg
opt_f_block_arg{$$=new_args_tail($1,
Qnone, $2);}|f_kwrest
opt_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_arg
opt_args_tail{$$=new_args($1,
$3, $5, Qnone, $6);}|f_arg
','f_optarg ','f_rest_arg
','f_arg opt_args_tail{$$=new_args($1,
$3, $5, $7, $8);}|f_arg
','f_optarg opt_args_tail{$$=new_args($1,
$3, Qnone, Qnone, $4);}|f_arg
','f_optarg ','f_arg
opt_args_tail{$$=new_args($1,
$3, Qnone, $5, $6);}|f_arg
','f_rest_arg opt_args_tail{$$=new_args($1,
Qnone, $3, Qnone, $4);}|f_arg
','f_rest_arg ','f_arg
opt_args_tail{$$=new_args($1,
Qnone, $3, $5, $6);}|f_arg
opt_args_tail{$$=new_args($1,
Qnone, Qnone, Qnone,
$2);}|f_optarg ','f_rest_arg
opt_args_tail{$$=new_args(Qnone,
$1, $3, Qnone, $4);}|f_optarg
','f_rest_arg ','f_arg
opt_args_tail{$$=new_args(Qnone,
$1, $3, $5, $6);}|f_optarg
opt_args_tail{$$=new_args(Qnone,
$1, Qnone, Qnone,
$2);}|f_optarg ','f_arg
opt_args_tail{$$=new_args(Qnone,
$1, Qnone,
$3, $4);}|f_rest_arg
opt_args_tail{$$=new_args(Qnone,
Qnone, $1, Qnone,
$2);}|f_rest_arg ','f_arg
opt_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("formal
argument cannot be a constant");$$=0;}|tIVAR{yyerror("formal
argument cannot be an instance
variable");$$=0;}|tGVAR{yyerror("formal
argument cannot be a global
variable");$$=0;}|tCVAR{yyerror("formal
argument cannot be a class
variable");$$=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);}|tLPAREN f_margs rparen{ID
tid=internal_id();arg_var(tid);if(dyna_in_block()){$2->
nd_value=NEW_DVAR(tid);}else{$2->
nd_value=NEW_LVAR(tid);}$$=NEW_ARGS_AUX(tid, 1);$$->
nd_next=$2;};f_arg:f_arg_item|f_arg
','f_arg_item{$$=$1;$$->
nd_plen++;$$->nd_next=block_append($$->
nd_next, $3->nd_next);rb_gc_force_recycle((VALUE)$3);};f_label:tLABEL{arg_var(formal_argument(get_id($1)));$$=$1;};f_kw:f_label
arg_value{$$=assignable($1,
$2);$$=NEW_KW_ARG(0,$$);}|f_label{$$=assignable($1,(NODE
*)-1);$$=NEW_KW_ARG(0,$$);};f_block_kw:f_label
primary_value{$$=assignable($1,
$2);$$=NEW_KW_ARG(0,$$);}|f_label{$$=assignable($1,(NODE
*)-1);$$=NEW_KW_ARG(0,$$);};f_block_kwarg:f_block_kw{$$=$1;}|f_block_kwarg
','f_block_kw{NODE *kws=$1;while(kws->
nd_next){kws=kws->nd_next;}kws->
nd_next=$3;$$=$1;};f_kwarg:f_kw{$$=$1;}|f_kwarg
','f_kw{NODE *kws=$1;while(kws->
nd_next){kws=kws->nd_next;}kws->
nd_next=$3;$$=$1;};kwrest_mark:tPOW|tDSTAR;f_kwrest:kwrest_mark
tIDENTIFIER{shadowing_lvar(get_id($2));$$=$2;}|kwrest_mark{$$=internal_id();};f_opt:f_norm_arg
'='arg_value{arg_var(get_id($1));$$=assignable($1,
$3);$$=NEW_OPT_ARG(0,$$);};f_block_opt:f_norm_arg
'='primary_value{arg_var(get_id($1));$$=assignable($1,
$3);$$=NEW_OPT_ARG(0,$$);};f_block_optarg:f_block_opt{$$=$1;}|f_block_optarg
','f_block_opt{NODE *opts=$1;while(opts->
nd_next){opts=opts->nd_next;}opts->
nd_next=$3;$$=$1;};f_optarg:f_opt{$$=$1;}|f_optarg
','f_opt{NODE *opts=$1;while(opts->
nd_next){opts=opts->nd_next;}opts->
nd_next=$3;$$=$1;};restarg_mark:
'*'|tSTAR;f_rest_arg:restarg_mark
tIDENTIFIER{if(!is_local_id($2))
yyerror("rest argument must be
local variable");arg_var(shadowing_lvar(get_id($2)));$$=$2;}|restarg_mark{$$=internal_id();arg_var($$);};blkarg_mark:
'&'|tAMPER;f_block_arg:blkarg_mark
tIDENTIFIER{if(!is_local_id($2))
yyerror("block argument must
be local variable");else if(!dyna_in_block()&&local_id($2))
yyerror("duplicated block
argument name");arg_var(shadowing_lvar(get_id($2)));$$=$2;};opt_f_block_arg:
','f_block_arg{$$=$2;}|none{$$=0;};singleton:var_ref{value_expr($1);$$=$1;if(!$$)$$=NEW_NIL();}|
'('{lex_state=EXPR_BEG;}expr
rparen{if($3==0){yyerror("can't
define singleton method for
().");}else{switch(nd_type($3)){case
NODE_STR:case NODE_DSTR:case
NODE_XSTR:case NODE_DXSTR:case
NODE_DREGX:case NODE_LIT:case
NODE_ARRAY:case
NODE_ZARRAY:yyerror("can't
define singleton method for
literals");default:value_expr($3);break;}}$$=$3;};assoc_list:none|assocs
trailer{$$=$1;};assocs:assoc|assocs
','assoc{$$=list_concat($1,
$3);};assoc:arg_value tASSOC
arg_value{if(nd_type($1)==NODE_STR){nd_set_type($1,
NODE_LIT);$1->nd_lit=rb_fstring($1->
nd_lit);}$$=list_append(NEW_LIST($1),
$3);}|tLABEL arg_value{$$=list_append(NEW_LIST(NEW_LIT(ID2SYM($1))),
$2);}|tDSTAR arg_value{$$=list_append(NEW_LIST(0),
$2);};;operation:tIDENTIFIER|tCONSTANT|tFID;operation2:tIDENTIFIER|tCONSTANT|tFID|op;operation3:tIDENTIFIER|tFID|op;dot_or_colon:
'.'|tCOLON2;opt_terms:|terms;opt_nl:|
'\n';rparen:opt_nl
')';rbracket:opt_nl
']';trailer:| '\n'| ',';term:
';'{yyerrok;}| '\n';terms:term|terms
';'{yyerrok;};none:{$$=0;};%%#define
yylvalstatic 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
*);#define nextc()#define
pushback(c)#define newtok()#define
tokspace(n)#define tokadd(c)#define
tok_hex(numlen)#define
read_escape(flags, e)#define
tokadd_escape(e)#define
regx_options()#define
tokadd_string(f, t, p, n, e)#define
parse_string(n)#define
tokaddmbc(c, enc)#define
here_document(n)#define
heredoc_identifier()#define
heredoc_restore(n)#define
whole_match_p(e, l, i)#define
number_literal_suffix(f)#define
set_number_literal(v, t, f)#define
set_integer_literal(v, f)#define
set_yylval_str(x)#define
set_yylval_num(x)#define
set_yylval_id(x)#define
set_yylval_name(x)#define
set_yylval_literal(x)#define
set_yylval_node(x)#define
yylval_id()#define
ripper_flush(p)#define
SIGN_EXTEND_CHAR(c)#define
parser_encoding_name()#define
parser_mbclen()#define
parser_precise_mbclen()#define
is_identchar(p, e, enc)#define
parser_is_identchar()#define
parser_isascii() static
inttoken_info_get_column(struct
parser_params *parser, const
char *token){int column=1;const
char *p,*pend=lex_p-strlen(token);for(p=lex_pbeg;p
< pend;p++){if(*p== '\t'){column=(((column-1)/8)+1)*8;}column++;}return
column;}static
inttoken_info_has_nonspaces(struct
parser_params *parser, const
char *token){const char *p,*pend=lex_p-strlen(token);for(p=lex_pbeg;p
< pend;p++){if(*p!= ' '&&*p!=
'\t'){return 1;}}return
0;}static voidtoken_info_push(struct
parser_params *parser, const
char *token){token_info
*ptinfo;if(!parser->
parser_token_info_enabled)
return;ptinfo=ALLOC(token_info);ptinfo->
token=token;ptinfo->linenum=ruby_sourceline;ptinfo->
column=token_info_get_column(parser,
token);ptinfo->nonspc=token_info_has_nonspaces(parser,
token);ptinfo->next=parser->
parser_token_info;parser->
parser_token_info=ptinfo;}static
voidtoken_info_pop(struct
parser_params *parser, const
char *token){int linenum;token_info
*ptinfo=parser->
parser_token_info;if(!ptinfo)
return;parser->
parser_token_info=ptinfo->next;if(token_info_get_column(parser,
token)==ptinfo->column){goto
finish;}linenum=ruby_sourceline;if(linenum==ptinfo->
linenum){goto finish;}if(token_info_has_nonspaces(parser,
token)||ptinfo->nonspc){goto
finish;}if(parser->
parser_token_info_enabled){rb_compile_warn(ruby_sourcefile,
linenum,"mismatched
indentations at '%s' with '%s'
at %d", token, ptinfo->token,
ptinfo->linenum);}finish:xfree(ptinfo);}static
intparser_yyerror(struct
parser_params *parser, const
char *msg){const int
max_line_margin=30;const char
*p,*pe;char *buf;long len;int
i;compile_error(PARSER_ARG"%s",
msg);p=lex_p;while(lex_pbeg<=p){if(*p==
'\n') break;p--;}p++;pe=lex_p;while(pe
< lex_pend){if(*pe== '\n')
break;pe++;}len=pe-p;if(len >
4){char *p2;const char *pre="",*post="";if(len >
max_line_margin *2+10){if(lex_p-p >
max_line_margin){p=rb_enc_prev_char(p,
lex_p-max_line_margin, pe,
rb_enc_get(lex_lastline));pre="...";}if(pe-lex_p >
max_line_margin){pe=rb_enc_prev_char(lex_p,
lex_p+max_line_margin, pe,
rb_enc_get(lex_lastline));post="...";}len=pe-p;}buf=ALLOCA_N(char,
len+2);MEMCPY(buf, p, char,
len);buf[len]=
'\0';rb_compile_error_with_enc(NULL,
0,(void *) current_enc,"%s%s%s",
pre, buf, post);i=(int)(lex_p-p);p2=buf;pe=buf+len;while(p2
< pe){if(*p2!= '\t')*p2=
' ';p2++;}buf[i]= '^';buf[i+1]=
'\0';rb_compile_error_append("%s%s",
pre, buf);}return 0;}static
void parser_prepare(struct
parser_params *parser);static
VALUEdebug_lines(VALUE fname){ID
script_lines;CONST_ID(script_lines,"SCRIPT_LINES__");if(rb_const_defined_at(rb_cObject,
script_lines)){VALUE hash=rb_const_get_at(rb_cObject,
script_lines);if(RB_TYPE_P(hash,
T_HASH)){VALUE lines=rb_ary_new();rb_hash_aset(hash,
fname, lines);return lines;}}return
0;}static VALUEcoverage(VALUE
fname, int n){VALUE coverages=rb_get_coverages();if(RTEST(coverages)&&RBASIC(coverages) ->
klass==0){VALUE lines=rb_ary_new2(n);int
i;RBASIC_CLEAR_CLASS(lines);for(i=0;i
< n;i++) RARRAY_ASET(lines, i,
Qnil);RARRAY(lines) ->
as.heap.len=n;rb_hash_aset(coverages,
fname, lines);return lines;}return
0;}static inte_option_supplied(struct
parser_params *parser){return
strcmp(ruby_sourcefile,"-e")==0;}static
VALUEyycompile0(VALUE arg){int
n;NODE *tree;struct
parser_params *parser=(struct
parser_params *) arg;if(!compile_for_eval
&&rb_safe_level()==0){ruby_debug_lines=debug_lines(ruby_sourcefile_string);if(ruby_debug_lines
&&ruby_sourceline > 0){VALUE
str=STR_NEW0();n=ruby_sourceline;do{rb_ary_push(ruby_debug_lines,
str);}while(--n);}if(!e_option_supplied(parser)){ruby_coverage=coverage(ruby_sourcefile_string,
ruby_sourceline);}}parser->
last_cr_line=ruby_sourceline-1;parser_prepare(parser);deferred_nodes=0;parser->
parser_token_info_enabled=!compile_for_eval
&&RTEST(ruby_verbose);if(RUBY_DTRACE_PARSE_BEGIN_ENABLED()){RUBY_DTRACE_PARSE_BEGIN(parser->
parser_ruby_sourcefile, parser->
parser_ruby_sourceline);}n=yyparse((void
*) parser);if(RUBY_DTRACE_PARSE_END_ENABLED()){RUBY_DTRACE_PARSE_END(parser->
parser_ruby_sourcefile, parser->
parser_ruby_sourceline);}ruby_debug_lines=0;ruby_coverage=0;compile_for_eval=0;lex_strterm=0;lex_p=lex_pbeg=lex_pend=0;lex_lastline=lex_nextline=0;if(parser->
nerr){return 0;}tree=ruby_eval_tree;if(!tree){tree=NEW_NIL();}else
if(ruby_eval_tree_begin){tree->
nd_body=NEW_PRELUDE(ruby_eval_tree_begin,
tree->nd_body);}return(VALUE)
tree;}static NODE *yycompile(struct
parser_params *parser, VALUE
fname, int line){ruby_sourcefile_string=rb_str_new_frozen(fname);ruby_sourcefile=RSTRING_PTR(fname);ruby_sourceline=line-1;return(NODE
*) rb_suppress_tracing(yycompile0,(VALUE)
parser);}static rb_encoding
*must_be_ascii_compatible(VALUE
s){rb_encoding *enc=rb_enc_get(s);if(!rb_enc_asciicompat(enc)){rb_raise(rb_eArgError,"invalid
source encoding");}return enc;}static
VALUElex_get_str(struct
parser_params *parser, VALUE s){char
*beg,*end,*pend;rb_encoding
*enc=must_be_ascii_compatible(s);beg=RSTRING_PTR(s);if(lex_gets_ptr){if(RSTRING_LEN(s)==lex_gets_ptr)
return Qnil;beg+=lex_gets_ptr;}pend=RSTRING_PTR(s)+RSTRING_LEN(s);end=beg;while(end
< pend){if(*end++== '\n')
break;}lex_gets_ptr=end-RSTRING_PTR(s);return
rb_enc_str_new(beg, end-beg,
enc);}static VALUElex_getline(struct
parser_params *parser){VALUE
line=(*parser->parser_lex_gets)(parser,
parser->parser_lex_input);if(NIL_P(line))
return line;must_be_ascii_compatible(line);if(ruby_debug_lines){rb_enc_associate(line,
current_enc);rb_ary_push(ruby_debug_lines,
line);}if(ruby_coverage){rb_ary_push(ruby_coverage,
Qnil);}return line;}static
const rb_data_type_t
parser_data_type;static NODE
*parser_compile_string(volatile
VALUE vparser, VALUE fname,
VALUE s, int line){struct
parser_params *parser;NODE
*node;TypedData_Get_Struct(vparser,
struct parser_params,&parser_data_type,
parser);lex_gets=lex_get_str;lex_gets_ptr=0;lex_input=s;lex_pbeg=lex_p=lex_pend=0;compile_for_eval=rb_parse_in_eval();node=yycompile(parser,
fname, line);RB_GC_GUARD(vparser);return
node;}NODE *rb_compile_string(const
char *f, VALUE s, int line){must_be_ascii_compatible(s);return
parser_compile_string(rb_parser_new(),
rb_filesystem_str_new_cstr(f),
s, line);}NODE
*rb_parser_compile_string(volatile
VALUE vparser, const char *f,
VALUE s, int line){return
rb_parser_compile_string_path(vparser,
rb_filesystem_str_new_cstr(f),
s, line);}NODE
*rb_parser_compile_string_path(volatile
VALUE vparser, VALUE f, VALUE
s, int line){must_be_ascii_compatible(s);return
parser_compile_string(vparser,
f, s, line);}NODE
*rb_compile_cstr(const char *f,
const char *s, int len, int
line){VALUE str=rb_str_new(s,
len);return
parser_compile_string(rb_parser_new(),
rb_filesystem_str_new_cstr(f),
str, line);}NODE
*rb_parser_compile_cstr(volatile
VALUE vparser, const char *f,
const char *s, int len, int
line){VALUE str=rb_str_new(s,
len);return
parser_compile_string(vparser,
rb_filesystem_str_new_cstr(f),
str, line);}static
VALUElex_io_gets(struct
parser_params *parser, VALUE
io){return rb_io_gets(io);}NODE
*rb_compile_file(const char *f,
VALUE file, int start){VALUE
volatile vparser=rb_parser_new();return
rb_parser_compile_file(vparser,
f, file, start);}NODE
*rb_parser_compile_file(volatile
VALUE vparser, const char *f,
VALUE file, int start){return
rb_parser_compile_file_path(vparser,
rb_filesystem_str_new_cstr(f),
file, start);}NODE
*rb_parser_compile_file_path(volatile
VALUE vparser, VALUE fname,
VALUE file, int start){struct
parser_params *parser;NODE
*node;TypedData_Get_Struct(vparser,
struct parser_params,&parser_data_type,
parser);lex_gets=lex_io_gets;lex_input=file;lex_pbeg=lex_p=lex_pend=0;compile_for_eval=rb_parse_in_eval();node=yycompile(parser,
fname, start);RB_GC_GUARD(vparser);return
node;}#define STR_FUNC_ESCAPE#define
STR_FUNC_EXPAND#define
STR_FUNC_REGEXP#define
STR_FUNC_QWORDS#define
STR_FUNC_SYMBOL#define
STR_FUNC_INDENTenum
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)};static
VALUEparser_str_new(const char
*p, long n, rb_encoding *enc,
int func, rb_encoding *enc0){VALUE
str;str=rb_enc_str_new(p, n,
enc);if(!(func
&STR_FUNC_REGEXP)&&rb_enc_asciicompat(enc)){if(rb_enc_str_coderange(str)==ENC_CODERANGE_7BIT){}else
if(enc0==rb_usascii_encoding()&&enc!=rb_utf8_encoding()){rb_enc_associate(str,
rb_ascii8bit_encoding());}}return
str;}#define lex_goto_eol(parser)#define
lex_eol_p()#define peek(c)#define
peek_n(c, n) static inline
intparser_nextc(struct
parser_params *parser){int c;if(lex_p==lex_pend){VALUE
v=lex_nextline;lex_nextline=0;if(!v){if(parser->
eofp) return-1;if(!lex_input||NIL_P(v=lex_getline(parser))){parser->
eofp=Qtrue;lex_goto_eol(parser);return-1;}}{if(heredoc_end >
0){ruby_sourceline=heredoc_end;heredoc_end=0;}ruby_sourceline++;parser->
line_count++;lex_pbeg=lex_p=RSTRING_PTR(v);lex_pend=lex_p+RSTRING_LEN(v);ripper_flush(parser);lex_lastline=v;}}c=(unsigned
char)*lex_p++;if(c== '\r'){if(peek('\n')){lex_p++;c=
'\n';}else if(ruby_sourceline >
parser->last_cr_line){parser->
last_cr_line=ruby_sourceline;rb_compile_warn(ruby_sourcefile,
ruby_sourceline,"encountered
\\r in middle of line, treated
as a mere space");}}return c;}static
voidparser_pushback(struct
parser_params *parser, int c){if(c==-1)
return;lex_p--;if(lex_p >
lex_pbeg &&lex_p[0]== '\n'&&lex_p[-1]==
'\r'){lex_p--;}}#define
was_bol()#define tokfix()#define
tok()#define toklen()#define
toklast() static char
*parser_newtok(struct
parser_params *parser){tokidx=0;tokline=ruby_sourceline;if(!tokenbuf){toksiz=60;tokenbuf=ALLOC_N(char,
60);}if(toksiz > 4096){toksiz=60;REALLOC_N(tokenbuf,
char, 60);}return tokenbuf;}static
char *parser_tokspace(struct
parser_params *parser, int n){tokidx+=n;if(tokidx >
=toksiz){do{toksiz *=2;}while(toksiz
< tokidx);REALLOC_N(tokenbuf,
char, toksiz);}return
&tokenbuf[tokidx-n];}static
voidparser_tokadd(struct
parser_params *parser, int c){tokenbuf[tokidx++]=(char)
c;if(tokidx >=toksiz){toksiz
*=2;REALLOC_N(tokenbuf, char,
toksiz);}}static
intparser_tok_hex(struct
parser_params *parser, size_t
*numlen){int c;c=scan_hex(lex_p,
2, numlen);if(!*numlen){yyerror("invalid
hex escape");return 0;}lex_p+=*numlen;return
c;}#define tokcopy(n) static
intparser_tokadd_utf8(struct
parser_params *parser,
rb_encoding **encp, int
string_literal, int
symbol_literal, int
regexp_literal){int codepoint;size_t
numlen;if(regexp_literal){tokadd('\\');tokadd('u');}if(peek('{')){do{if(regexp_literal){tokadd(*lex_p);}nextc();codepoint=scan_hex(lex_p,
6,&numlen);if(numlen==0){yyerror("invalid
Unicode escape");return 0;}if(codepoint > 0x10ffff){yyerror("invalid Unicode codepoint (too large)");return 0;}lex_p+=numlen;if(regexp_literal){tokcopy((int) numlen);}else if(codepoint >=0x80){*encp=rb_utf8_encoding();if(string_literal) tokaddmbc(codepoint,*encp);}else if(string_literal){tokadd(codepoint);}}while(string_literal &&(peek(' ')||peek('\t')));if(!peek('}')){yyerror("unterminated Unicode escape");return 0;}if(regexp_literal){tokadd('}');}nextc();}else{codepoint=scan_hex(lex_p, 4,&numlen);if(numlen< 4){yyerror("invalid Unicode escape");return 0;}lex_p+=4;if(regexp_literal){tokcopy(4);}else if(codepoint >=0x80){*encp=rb_utf8_encoding();if(string_literal) tokaddmbc(codepoint,*encp);}else if(string_literal){tokadd(codepoint);}}return codepoint;}#define ESCAPE_CONTROL#define ESCAPE_METAstatic intparser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp){int c;size_t numlen;switch(c=nextc()){case '\\':return c;case 'n':return '\n';case 't':return '\t';case 'r':return '\r';case 'f':return '\f';case 'v':return '\13';case 'a':return '\007';case 'e':return 033;case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':pushback(c);c=scan_oct(lex_p, 3,&numlen);lex_p+=numlen;return c;case 'x':c=tok_hex(&numlen);if(numlen==0) return 0;return c;case 'b':return '\010';case 's':return ' ';case 'M':if(flags &ESCAPE_META) goto eof;if((c=nextc())!= '-'){pushback(c);goto eof;}if((c=nextc())== '\\'){if(peek('u')) goto eof;return read_escape(flags|ESCAPE_META, encp)|0x80;}else if(c==-1||!ISASCII(c)) goto eof;else{return((c &0xff)|0x80);}case 'C':if((c=nextc())!= '-'){pushback(c);goto eof;}case 'c':if(flags &ESCAPE_CONTROL) goto eof;if((c=nextc())== '\\'){if(peek('u')) goto eof;c=read_escape(flags|ESCAPE_CONTROL, encp);}else if(c== '?') return 0177;else if(c==-1||!ISASCII(c)) goto eof;return c &0x9f;eof:case-1:yyerror("Invalid escape character syntax");return '\0';default:return c;}}static voidparser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc){int len=rb_enc_codelen(c, enc);rb_enc_mbcput(c, tokspace(len), enc);}static intparser_tokadd_escape(struct parser_params *parser, rb_encoding **encp){int c;int flags=0;size_t numlen;first:switch(c=nextc()){case '\n':return 0;case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':{ruby_scan_oct(--lex_p, 3,&numlen);if(numlen==0) goto eof;lex_p+=numlen;tokcopy((int) numlen+1);}return 0;case 'x':{tok_hex(&numlen);if(numlen==0) return-1;tokcopy((int) numlen+2);}return 0;case 'M':if(flags &ESCAPE_META) goto eof;if((c=nextc())!= '-'){pushback(c);goto eof;}tokcopy(3);flags|=ESCAPE_META;goto escaped;case 'C':if(flags &ESCAPE_CONTROL) goto eof;if((c=nextc())!= '-'){pushback(c);goto eof;}tokcopy(3);goto escaped;case 'c':if(flags &ESCAPE_CONTROL) goto eof;tokcopy(2);flags|=ESCAPE_CONTROL;escaped:if((c=nextc())== '\\'){goto first;}else if(c==-1) goto eof;tokadd(c);return 0;eof:case-1:yyerror("Invalid escape character syntax");return-1;default:tokadd('\\');tokadd(c);}return 0;}static intparser_regx_options(struct parser_params *parser){int kcode=0;int kopt=0;int options=0;int c, opt, kc;newtok();while(c=nextc(), ISALPHA(c)){if(c== 'o'){options|=RE_OPTION_ONCE;}else if(rb_char_to_option_kcode(c,&opt,&kc)){if(kc >=0){if(kc!=rb_ascii8bit_encindex()) kcode=c;kopt=opt;}else{options|=opt;}}else{tokadd(c);}}options|=kopt;pushback(c);if(toklen()){tokfix();compile_error(PARSER_ARG"unknown regexp option%s - %s", toklen() > 1?"s":"", tok());}return options|RE_OPTION_ENCODING(kcode);}static voiddispose_string(VALUE str){rb_str_free(str);rb_gc_force_recycle(str);}static intparser_tokadd_mbchar(struct parser_params *parser, int c){int len=parser_precise_mbclen();if(!MBCLEN_CHARFOUND_P(len)){compile_error(PARSER_ARG"invalid multibyte char (%s)", parser_encoding_name());return-1;}tokadd(c);lex_p+=--len;if(len > 0) tokcopy(len);return c;}#define tokadd_mbchar(c) static inline intsimple_re_meta(int c){switch(c){case '$':case '*':case '+':case '.':case '?':case '^':case '|':case ')':case ']':case '}':case '>':return TRUE;default:return FALSE;}}static intparser_tokadd_string(struct parser_params *parser, int func, int term, int paren, long *nest, rb_encoding **encp){int c;int has_nonascii=0;rb_encoding *enc=*encp;char *errbuf=0;static const char mixed_msg[]="%s mixed within %s source";#define mixed_error(enc1, enc2)#define mixed_escape(beg, enc1, enc2) while((c=nextc())!=-1){if(paren &&c==paren){++*nest;}else if(c==term){if(!nest||!*nest){pushback(c);break;}--*nest;}else if((func &STR_FUNC_EXPAND)&&c== '#'&&lex_p< lex_pend){int c2=*lex_p;if(c2== '$'||c2== '@'||c2== '{'){pushback(c);break;}}else if(c== '\\'){const char *beg=lex_p-1;c=nextc();switch(c){case '\n':if(func &STR_FUNC_QWORDS) break;if(func &STR_FUNC_EXPAND) continue;tokadd('\\');break;case '\\':if(func &STR_FUNC_ESCAPE) tokadd(c);break;case 'u':if((func &STR_FUNC_EXPAND)==0){tokadd('\\');break;}parser_tokadd_utf8(parser,&enc, 1, func &STR_FUNC_SYMBOL, func &STR_FUNC_REGEXP);if(has_nonascii &&enc!=*encp){mixed_escape(beg, enc,*encp);}continue;default:if(c==-1) return-1;if(!ISASCII(c)){if((func &STR_FUNC_EXPAND)==0) tokadd('\\');goto non_ascii;}if(func &STR_FUNC_REGEXP){if(c==term &&!simple_re_meta(c)){tokadd(c);continue;}pushback(c);if((c=tokadd_escape(&enc))< 0) return-1;if(has_nonascii &&enc!=*encp){mixed_escape(beg, enc,*encp);}continue;}else if(func &STR_FUNC_EXPAND){pushback(c);if(func &STR_FUNC_ESCAPE) tokadd('\\');c=read_escape(0,&enc);}else if((func &STR_FUNC_QWORDS)&&ISSPACE(c)){}else if(c!=term &&!(paren &&c==paren)){tokadd('\\');pushback(c);continue;}}}else if(!parser_isascii()){non_ascii:has_nonascii=1;if(enc!=*encp){mixed_error(enc,*encp);continue;}if(tokadd_mbchar(c)==-1) return-1;continue;}else if((func &STR_FUNC_QWORDS)&&ISSPACE(c)){pushback(c);break;}if(c &0x80){has_nonascii=1;if(enc!=*encp){mixed_error(enc,*encp);continue;}}tokadd(c);}*encp=enc;return c;}#define NEW_STRTERM(func, term, paren)#define flush_string_content(enc) RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32];#define BIT(c, idx)#define SPECIAL_PUNCT(idx) const unsigned int ruby_global_name_punct_bits[]={SPECIAL_PUNCT(0), SPECIAL_PUNCT(1), SPECIAL_PUNCT(2),};static inline intis_global_name_punct(const int c){if(c<=0x20||0x7e< c) return 0;return(ruby_global_name_punct_bits[(c-0x20)/32] >>(c%32))&1;}static intparser_peek_variable_name(struct parser_params *parser){int c;const char *p=lex_p;if(p+1 >=lex_pend) return 0;c=*p++;switch(c){case '$':if((c=*p)== '-'){if(++p >=lex_pend) return 0;c=*p;}else if(is_global_name_punct(c)||ISDIGIT(c)){return tSTRING_DVAR;}break;case '@':if((c=*p)== '@'){if(++p >=lex_pend) return 0;c=*p;}break;case '{':lex_p=p;command_start=TRUE;return tSTRING_DBEG;default:return 0;}if(!ISASCII(c)||c== '_'||ISALPHA(c)) return tSTRING_DVAR;return 0;}static intparser_parse_string(struct parser_params *parser, NODE *quote){int func=(int) quote->nd_func;int term=nd_term(quote);int paren=nd_paren(quote);int c, space=0;rb_encoding *enc=current_enc;if(func==-1) return tSTRING_END;c=nextc();if((func &STR_FUNC_QWORDS)&&ISSPACE(c)){do{c=nextc();}while(ISSPACE(c));space=1;}if(c==term &&!quote->nd_nest){if(func &STR_FUNC_QWORDS){quote->nd_func=-1;return ' ';}if(!(func &STR_FUNC_REGEXP)) return tSTRING_END;set_yylval_num(regx_options());return tREGEXP_END;}if(space){pushback(c);return ' ';}newtok();if((func &STR_FUNC_EXPAND)&&c== '#'){int t=parser_peek_variable_name(parser);if(t) return t;tokadd('#');c=nextc();}pushback(c);if(tokadd_string(func, term, paren,&quote->nd_nest,&enc)==-1){ruby_sourceline=nd_line(quote);if(func &STR_FUNC_REGEXP){if(parser->eofp) compile_error(PARSER_ARG"unterminated regexp meets end of file");return tREGEXP_END;}else{if(parser->eofp) compile_error(PARSER_ARG"unterminated string meets end of file");return tSTRING_END;}}tokfix();set_yylval_str(STR_NEW3(tok(), toklen(), enc, func));flush_string_content(enc);return tSTRING_CONTENT;}static intparser_heredoc_identifier(struct parser_params *parser){int c=nextc(), term, func=0;long len;if(c== '-'){c=nextc();func=STR_FUNC_INDENT;}switch(c){case '\'':func|=str_squote;goto quoted;case '"': func |= str_dquote; goto quoted; case '`': func |= str_xquote; quoted: newtok(); tokadd(func); term = c; while ((c = nextc()) != -1 && c != term) { if (tokadd_mbchar(c) == -1) return 0; } if (c == -1) { compile_error(PARSER_ARG "unterminated here document identifier"); return 0; } break; default: if (!parser_is_identchar()) { pushback(c); if (func & STR_FUNC_INDENT) { pushback('-'); } return 0; } newtok(); term = '"';tokadd(func|=str_dquote);do{if(tokadd_mbchar(c)==-1) return 0;}while((c=nextc())!=-1 &&parser_is_identchar());pushback(c);break;}tokfix();len=lex_p-lex_pbeg;lex_goto_eol(parser);lex_strterm=rb_node_newnode(NODE_HEREDOC, STR_NEW(tok(), toklen()), len, lex_lastline);nd_set_line(lex_strterm, ruby_sourceline);ripper_flush(parser);return term== '`'?tXSTRING_BEG:tSTRING_BEG;}static voidparser_heredoc_restore(struct parser_params *parser, NODE *here){VALUE line;lex_strterm=0;line=here->nd_orig;lex_lastline=line;lex_pbeg=RSTRING_PTR(line);lex_pend=lex_pbeg+RSTRING_LEN(line);lex_p=lex_pbeg+here->nd_nth;heredoc_end=ruby_sourceline;ruby_sourceline=nd_line(here);dispose_string(here->nd_lit);rb_gc_force_recycle((VALUE) here);ripper_flush(parser);}static intparser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent){const char *p=lex_pbeg;long n;if(indent){while(*p &&ISSPACE(*p)) p++;}n=lex_pend-(p+len);if(n< 0) return FALSE;if(n > 0 &&p[len]!= '\n'){if(p[len]!= '\r') return FALSE;if(n<=1||p[len+1]!= '\n') return FALSE;}return strncmp(eos, p, len)==0;}#define NUM_SUFFIX_R#define NUM_SUFFIX_I#define NUM_SUFFIX_ALLstatic intparser_number_literal_suffix(struct parser_params *parser, int mask){int c, result=0;const char *lastp=lex_p;while((c=nextc())!=-1){if((mask &NUM_SUFFIX_I)&&c== 'i'){result|=(mask &NUM_SUFFIX_I);mask &=~NUM_SUFFIX_I;mask &=~NUM_SUFFIX_R;continue;}if((mask &NUM_SUFFIX_R)&&c== 'r'){result|=(mask &NUM_SUFFIX_R);mask &=~NUM_SUFFIX_R;continue;}if(!ISASCII(c)||ISALPHA(c)||c== '_'){lex_p=lastp;return 0;}pushback(c);break;}return result;}static intparser_set_number_literal(struct parser_params *parser, VALUE v, int type, int suffix){if(suffix &NUM_SUFFIX_I){v=rb_complex_raw(INT2FIX(0), v);type=tIMAGINARY;}set_yylval_literal(v);return type;}static intparser_set_integer_literal(struct parser_params *parser, VALUE v, int suffix){int type=tINTEGER;if(suffix &NUM_SUFFIX_R){v=rb_rational_raw1(v);type=tRATIONAL;}return set_number_literal(v, type, suffix);}#define dispatch_heredoc_end() static intparser_here_document(struct parser_params *parser, NODE *here){int c, func, indent=0;const char *eos,*p,*pend;long len;VALUE str=0;rb_encoding *enc=current_enc;eos=RSTRING_PTR(here->nd_lit);len=RSTRING_LEN(here->nd_lit)-1;indent=(func=*eos++)&STR_FUNC_INDENT;if((c=nextc())==-1){error:compile_error(PARSER_ARG"can't find string \"%s\" anywhere before EOF", eos);restore:heredoc_restore(lex_strterm);return 0;}if(was_bol()&&whole_match_p(eos, len, indent)){dispatch_heredoc_end();heredoc_restore(lex_strterm);return tSTRING_END;}if(!(func &STR_FUNC_EXPAND)){do{p=RSTRING_PTR(lex_lastline);pend=lex_pend;if(pend > p){switch(pend[-1]){case '\n':if(--pend==p||pend[-1]!= '\r'){pend++;break;}case '\r':--pend;}}if(str) rb_str_cat(str, p, pend-p);else str=STR_NEW(p, pend-p);if(pend< lex_pend) rb_str_cat(str,"\n", 1);lex_goto_eol(parser);if(nextc()==-1){if(str) dispose_string(str);goto error;}}while(!whole_match_p(eos, len, indent));}else{newtok();if(c== '#'){int t=parser_peek_variable_name(parser);if(t) return t;tokadd('#');c=nextc();}do{pushback(c);if((c=tokadd_string(func, '\n', 0, NULL,&enc))==-1){if(parser->eofp) goto error;goto restore;}if(c!= '\n'){set_yylval_str(STR_NEW3(tok(), toklen(), enc, func));flush_string_content(enc);return tSTRING_CONTENT;}tokadd(nextc());if((c=nextc())==-1) goto error;}while(!whole_match_p(eos, len, indent));str=STR_NEW3(tok(), toklen(), enc, func);}dispatch_heredoc_end();heredoc_restore(lex_strterm);lex_strterm=NEW_STRTERM(-1, 0, 0);set_yylval_str(str);return tSTRING_CONTENT;}static voidarg_ambiguous_gen(struct parser_params *parser){rb_warning0("ambiguous first argument; put parentheses or even spaces");}#define arg_ambiguous() static IDformal_argument_gen(struct parser_params *parser, ID lhs){if(!is_local_id(lhs)) yyerror("formal argument must be local variable");shadowing_lvar(lhs);return lhs;}static intlvar_defined_gen(struct parser_params *parser, ID id){return(dyna_in_block()&&dvar_defined_get(id))||local_id(id);}static longparser_encode_length(struct parser_params *parser, const char *name, long len){long nlen;if(len > 5 &&name[nlen=len-5]== '-'){if(rb_memcicmp(name+nlen+1,"unix", 4)==0) return nlen;}if(len > 4 &&name[nlen=len-4]== '-'){if(rb_memcicmp(name+nlen+1,"dos", 3)==0) return nlen;if(rb_memcicmp(name+nlen+1,"mac", 3)==0 &&!(len==8 &&rb_memcicmp(name,"utf8-mac", len)==0)) return nlen;}return len;}static voidparser_set_encode(struct parser_params *parser, const char *name){int idx=rb_enc_find_index(name);rb_encoding *enc;VALUE excargs[3];if(idx< 0){excargs[1]=rb_sprintf("unknown encoding name: %s", name);error:excargs[0]=rb_eArgError;excargs[2]=rb_make_backtrace();rb_ary_unshift(excargs[2], rb_sprintf("%s:%d", ruby_sourcefile, ruby_sourceline));rb_exc_raise(rb_make_exception(3, excargs));}enc=rb_enc_from_index(idx);if(!rb_enc_asciicompat(enc)){excargs[1]=rb_sprintf("%s is not ASCII compatible", rb_enc_name(enc));goto error;}parser->enc=enc;if(ruby_debug_lines){VALUE lines=ruby_debug_lines;long i, n=RARRAY_LEN(lines);for(i=0;i< n;++i){rb_enc_associate_index(RARRAY_AREF(lines, i), idx);}}}static intcomment_at_top(struct parser_params *parser){const char *p=lex_pbeg,*pend=lex_p-1;if(parser->line_count!=(parser->has_shebang?2:1)) return 0;while(p< pend){if(!ISSPACE(*p)) return 0;p++;}return 1;}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);static voidmagic_comment_encoding(struct parser_params *parser, const char *name, const char *val){if(!comment_at_top(parser)){return;}parser_set_encode(parser, val);}static voidparser_set_token_info(struct parser_params *parser, const char *name, const char *val){int *p=&parser->parser_token_info_enabled;switch(*val){case 't':case 'T':if(strcasecmp(val,"true")==0){*p=TRUE;return;}break;case 'f':case 'F':if(strcasecmp(val,"false")==0){*p=FALSE;return;}break;}rb_compile_warning(ruby_sourcefile, ruby_sourceline,"invalid value for %s: %s", name, val);}struct magic_comment{const char *name;rb_magic_comment_setter_t func;rb_magic_comment_length_t length;};static const struct magic_comment magic_comments[]={{"coding", magic_comment_encoding, parser_encode_length},{"encoding", magic_comment_encoding, parser_encode_length},{"warn_indent", parser_set_token_info},};static const char *magic_comment_marker(const char *str, long len){long i=2;while(i< len){switch(str[i]){case '-':if(str[i-1]== '*'&&str[i-2]== '-'){return str+i+1;}i+=2;break;case '*':if(i+1 >=len) return 0;if(str[i+1]!= '-'){i+=4;}else if(str[i-1]!= '-'){i+=2;}else{return str+i+2;}break;default:i+=3;break;}}return 0;}static intparser_magic_comment(struct parser_params *parser, const char *str, long len){VALUE name=0, val=0;const char *beg,*end,*vbeg,*vend;#define str_copy(_s, _p, _n) if(len<=7) return FALSE;if(!(beg=magic_comment_marker(str, len))) return FALSE;if(!(end=magic_comment_marker(beg, str+len-beg))) return FALSE;str=beg;len=end-beg-3;while(len > 0){const struct magic_comment *p=magic_comments;char *s;int i;long n=0;for(;len > 0 &&*str;str++,--len){switch(*str){case '\'':case '"': case ':': case ';': continue; } if (!ISSPACE(*str)) break; } for (beg = str; len > 0; str++, --len) { switch (*str) { case '\'': case '"':case ':':case ';':break;default:if(ISSPACE(*str)) break;continue;}break;}for(end=str;len > 0 &&ISSPACE(*str);str++,--len);if(!len) break;if(*str!= ':') continue;do str++;while(--len > 0 &&ISSPACE(*str));if(!len) break;if(*str== '"') { for (vbeg = ++str; --len > 0 && *str != '"';str++){if(*str== '\\'){--len;++str;}}vend=str;if(len){--len;++str;}}else{for(vbeg=str;len > 0 &&*str!= '"' && *str != ';' && !ISSPACE(*str); --len, str++); vend = str; } while (len > 0 && (*str == ';' || ISSPACE(*str))) --len, str++; n = end - beg; str_copy(name, beg, n); s = RSTRING_PTR(name); for (i = 0; i < n; ++i) { if (s[i] == '-') s[i] = '_'; } do { if (STRNCASECMP(p->name, s, n) == 0) { n = vend - vbeg; if (p->length) { n = (*p->length)(parser, vbeg, n); } str_copy(val, vbeg, n); (*p->func)(parser, s, RSTRING_PTR(val)); break; } } while (++p < magic_comments + numberof(magic_comments)); } return TRUE;}static voidset_file_encoding(struct parser_params *parser, const char *str, const char *send){ int sep = 0; const char *beg = str; VALUE s; for (;;) { if (send - str <= 6) return; switch (str[6]) { case 'C': case 'c': str += 6; continue; case 'O': case 'o': str += 5; continue; case 'D': case 'd': str += 4; continue; case 'I': case 'i': str += 3; continue; case 'N': case 'n': str += 2; continue; case 'G': case 'g': str += 1; continue; case '=': case ':': sep = 1; str += 6; break; default: str += 6; if (ISSPACE(*str)) break; continue; } if (STRNCASECMP(str-6, "coding", 6) == 0) break; } for (;;) { do { if (++str >= send) return; } while (ISSPACE(*str)); if (sep) break; if (*str != '=' && *str != ':') return; sep = 1; str++; } beg = str; while ((*str == '-' || *str == '_' || ISALNUM(*str)) && ++str < send); s = rb_str_new(beg, parser_encode_length(parser, beg, str - beg)); parser_set_encode(parser, RSTRING_PTR(s)); rb_str_resize(s, 0);}static voidparser_prepare(struct parser_params *parser){ int c = nextc(); switch (c) { case '#': if (peek('!')) parser->has_shebang = 1; break; case 0xef: if (lex_pend - lex_p >= 2 && (unsigned char)lex_p[0] == 0xbb && (unsigned char)lex_p[1] == 0xbf) { parser->enc = rb_utf8_encoding(); lex_p += 2; lex_pbeg = lex_p; return; } break; case EOF: return; } pushback(c); parser->enc = rb_enc_get(lex_lastline);}#define IS_ARG() #define IS_END() #define IS_BEG() #define IS_SPCARG(c) #define IS_LABEL_POSSIBLE() #define IS_LABEL_SUFFIX(n) #define IS_AFTER_OPERATOR() #define ambiguous_operator(op, syn) #define warn_balanced(op, syn) static intparser_yylex(struct parser_params *parser){ register int c; int space_seen = 0; int cmd_state; enum lex_state_e last_state; rb_encoding *enc; int mb; if (lex_strterm) { int token; if (nd_type(lex_strterm) == NODE_HEREDOC) { token = here_document(lex_strterm); if (token == tSTRING_END) { lex_strterm = 0; lex_state = EXPR_END; } } else { token = parse_string(lex_strterm); if (token == tSTRING_END || token == tREGEXP_END) { rb_gc_force_recycle((VALUE)lex_strterm); lex_strterm = 0; lex_state = EXPR_END; } } return token; } cmd_state = command_start; command_start = FALSE; retry: last_state = lex_state; switch (c = nextc()) { case '\0': case '\004': case '\032': case -1: return 0; case ' ': case '\t': case '\f': case '\r': case '\13': space_seen = 1; goto retry; case '#': if (!parser_magic_comment(parser, lex_p, lex_pend - lex_p)) { if (comment_at_top(parser)) { set_file_encoding(parser, lex_p, lex_pend); } } lex_p = lex_pend; case '\n': if (IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT | EXPR_LABELARG)) { if (IS_lex_state(EXPR_LABELARG) && parser->parser_in_kwarg) { goto normal_newline; } goto retry; } while ((c = nextc())) { switch (c) { case ' ': case '\t': case '\f': case '\r': case '\13': space_seen = 1; break; case '.': { if ((c = nextc()) != '.') { pushback(c); pushback('.'); goto retry; } } default: --ruby_sourceline; lex_nextline = lex_lastline; case -1: lex_goto_eol(parser); goto normal_newline; } } normal_newline: command_start = TRUE; lex_state = EXPR_BEG; return '\n'; case '*': if ((c = nextc()) == '*') { if ((c = nextc()) == '=') { set_yylval_id(tPOW); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); if (IS_SPCARG(c)) { rb_warning0("`**'interpreted as argument prefix"); c = tDSTAR; } else if (IS_BEG()) { c = tDSTAR; } else { warn_balanced("**", "argument prefix"); c = tPOW; } } else { if (c == '=') { set_yylval_id('*'); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); if (IS_SPCARG(c)) { rb_warning0("`*'interpreted as argument prefix"); c = tSTAR; } else if (IS_BEG()) { c = tSTAR; } else { warn_balanced("*", "argument prefix"); c = '*'; } } lex_state = IS_AFTER_OPERATOR() ? EXPR_ARG : EXPR_BEG; return c; case '!': c = nextc(); if (IS_AFTER_OPERATOR()) { lex_state = EXPR_ARG; if (c == '@') { return '!'; } } else { lex_state = EXPR_BEG; } if (c == '=') { return tNEQ; } if (c == '~') { return tNMATCH; } pushback(c); return '!'; case '=': if (was_bol()) { if (strncmp(lex_p, "begin", 5) == 0 && ISSPACE(lex_p[5])) { for (;;) { lex_goto_eol(parser); c = nextc(); if (c == -1) { compile_error(PARSER_ARG "embedded document meets end of file"); return 0; } if (c != '=') continue; if (strncmp(lex_p, "end", 3) == 0 && (lex_p + 3 == lex_pend || ISSPACE(lex_p[3]))) { break; } } lex_goto_eol(parser); goto retry; } } lex_state = IS_AFTER_OPERATOR() ? EXPR_ARG : EXPR_BEG; if ((c = nextc()) == '=') { if ((c = nextc()) == '=') { return tEQQ; } pushback(c); return tEQ; } if (c == '~') { return tMATCH; } else if (c == '>') { return tASSOC; } pushback(c); return '='; case '<': last_state = lex_state; c = nextc(); if (c == '<' && !IS_lex_state(EXPR_DOT | EXPR_CLASS) && !IS_END() && (!IS_ARG() || space_seen)) { int token = heredoc_identifier(); if (token) return token; } if (IS_AFTER_OPERATOR()) { lex_state = EXPR_ARG; } else { if (IS_lex_state(EXPR_CLASS)) command_start = TRUE; lex_state = EXPR_BEG; } if (c == '=') { if ((c = nextc()) == '>') { return tCMP; } pushback(c); return tLEQ; } if (c == '<') { if ((c = nextc()) == '=') { set_yylval_id(tLSHFT); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); warn_balanced("<<", "here document"); return tLSHFT; } pushback(c); return '<'; case '>': lex_state = IS_AFTER_OPERATOR() ? EXPR_ARG : EXPR_BEG; if ((c = nextc()) == '=') { return tGEQ; } if (c == '>') { if ((c = nextc()) == '=') { set_yylval_id(tRSHFT); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); return tRSHFT; } pushback(c); return '>'; case '"':lex_strterm=NEW_STRTERM(str_dquote, '"', 0); return tSTRING_BEG; case '`': if (IS_lex_state(EXPR_FNAME)) { lex_state = EXPR_ENDFN; return c; } if (IS_lex_state(EXPR_DOT)) { if (cmd_state) lex_state = EXPR_CMDARG; else lex_state = EXPR_ARG; return c; } lex_strterm = NEW_STRTERM(str_xquote, '`', 0); return tXSTRING_BEG; case '\'': lex_strterm = NEW_STRTERM(str_squote, '\'', 0); return tSTRING_BEG; case '?': if (IS_END()) { lex_state = EXPR_VALUE; return '?'; } c = nextc(); if (c == -1) { compile_error(PARSER_ARG "incomplete character syntax"); return 0; } if (rb_enc_isspace(c, current_enc)) { if (!IS_ARG()) { int c2 = 0; switch (c) { case ' ': c2 = 's'; break; case '\n': c2 = 'n'; break; case '\t': c2 = 't'; break; case '\v': c2 = 'v'; break; case '\r': c2 = 'r'; break; case '\f': c2 = 'f'; break; } if (c2) { rb_warnI("invalid character syntax;use?\\%c", c2); } } ternary: pushback(c); lex_state = EXPR_VALUE; return '?'; } newtok(); enc = current_enc; if (!parser_isascii()) { if (tokadd_mbchar(c) == -1) return 0; } else if ((rb_enc_isalnum(c, current_enc) || c == '_') && lex_p < lex_pend && is_identchar(lex_p, lex_pend, current_enc)) { goto ternary; } else if (c == '\\') { if (peek('u')) { nextc(); c = parser_tokadd_utf8(parser, &enc, 0, 0, 0); if (0x80 <= c) { tokaddmbc(c, enc); } else { tokadd(c); } } else if (!lex_eol_p() && !(c = *lex_p, ISASCII(c))) { nextc(); if (tokadd_mbchar(c) == -1) return 0; } else { c = read_escape(0, &enc); tokadd(c); } } else { tokadd(c); } tokfix(); set_yylval_str(STR_NEW3(tok(), toklen(), enc, 0)); lex_state = EXPR_END; return tCHAR; case '&': if ((c = nextc()) == '&') { lex_state = EXPR_BEG; if ((c = nextc()) == '=') { set_yylval_id(tANDOP); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); return tANDOP; } else if (c == '=') { set_yylval_id('&'); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); if (IS_SPCARG(c)) { rb_warning0("`&'interpreted as argument prefix"); c = tAMPER; } else if (IS_BEG()) { c = tAMPER; } else { warn_balanced("&", "argument prefix"); c = '&'; } lex_state = IS_AFTER_OPERATOR() ? EXPR_ARG : EXPR_BEG; return c; case '|': if ((c = nextc()) == '|') { lex_state = EXPR_BEG; if ((c = nextc()) == '=') { set_yylval_id(tOROP); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); return tOROP; } if (c == '=') { set_yylval_id('|'); lex_state = EXPR_BEG; return tOP_ASGN; } lex_state = IS_AFTER_OPERATOR() ? EXPR_ARG : EXPR_BEG; pushback(c); return '|'; case '+': c = nextc(); if (IS_AFTER_OPERATOR()) { lex_state = EXPR_ARG; if (c == '@') { return tUPLUS; } pushback(c); return '+'; } if (c == '=') { set_yylval_id('+'); lex_state = EXPR_BEG; return tOP_ASGN; } if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous())) { lex_state = EXPR_BEG; pushback(c); if (c != -1 && ISDIGIT(c)) { c = '+'; goto start_num; } return tUPLUS; } lex_state = EXPR_BEG; pushback(c); warn_balanced("+", "unary operator"); return '+'; case '-': c = nextc(); if (IS_AFTER_OPERATOR()) { lex_state = EXPR_ARG; if (c == '@') { return tUMINUS; } pushback(c); return '-'; } if (c == '=') { set_yylval_id('-'); lex_state = EXPR_BEG; return tOP_ASGN; } if (c == '>') { lex_state = EXPR_ENDFN; return tLAMBDA; } if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous())) { lex_state = EXPR_BEG; pushback(c); if (c != -1 && ISDIGIT(c)) { return tUMINUS_NUM; } return tUMINUS; } lex_state = EXPR_BEG; pushback(c); warn_balanced("-", "unary operator"); return '-'; case '.': lex_state = EXPR_BEG; if ((c = nextc()) == '.') { if ((c = nextc()) == '.') { return tDOT3; } pushback(c); return tDOT2; } pushback(c); if (c != -1 && ISDIGIT(c)) { yyerror("no.< digit > floating literal anymore;put 0 before dot"); } lex_state = EXPR_DOT; return '.'; start_num: case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { int is_float, seen_point, seen_e, nondigit; int suffix; is_float = seen_point = seen_e = nondigit = 0; lex_state = EXPR_END; newtok(); if (c == '-' || c == '+') { tokadd(c); c = nextc(); } if (c == '0') {#define no_digits() int start = toklen(); c = nextc(); if (c == 'x' || c == 'X') { c = nextc(); if (c != -1 && ISXDIGIT(c)) { do { if (c == '_') { if (nondigit) break; nondigit = c; continue; } if (!ISXDIGIT(c)) break; nondigit = 0; tokadd(c); } while ((c = nextc()) != -1); } pushback(c); tokfix(); if (toklen() == start) { no_digits(); } else if (nondigit) goto trailing_uc; suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(rb_cstr_to_inum(tok(), 16, FALSE), suffix); } if (c == 'b' || c == 'B') { c = nextc(); if (c == '0' || c == '1') { do { if (c == '_') { if (nondigit) break; nondigit = c; continue; } if (c != '0' && c != '1') break; nondigit = 0; tokadd(c); } while ((c = nextc()) != -1); } pushback(c); tokfix(); if (toklen() == start) { no_digits(); } else if (nondigit) goto trailing_uc; suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(rb_cstr_to_inum(tok(), 2, FALSE), suffix); } if (c == 'd' || c == 'D') { c = nextc(); if (c != -1 && ISDIGIT(c)) { do { if (c == '_') { if (nondigit) break; nondigit = c; continue; } if (!ISDIGIT(c)) break; nondigit = 0; tokadd(c); } while ((c = nextc()) != -1); } pushback(c); tokfix(); if (toklen() == start) { no_digits(); } else if (nondigit) goto trailing_uc; suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(rb_cstr_to_inum(tok(), 10, FALSE), suffix); } if (c == '_') { goto octal_number; } if (c == 'o' || c == 'O') { c = nextc(); if (c == -1 || c == '_' || !ISDIGIT(c)) { no_digits(); } } if (c >= '0' && c <= '7') { octal_number: do { if (c == '_') { if (nondigit) break; nondigit = c; continue; } if (c < '0' || c > '9') break; if (c > '7') goto invalid_octal; nondigit = 0; tokadd(c); } while ((c = nextc()) != -1); if (toklen() > start) { pushback(c); tokfix(); if (nondigit) goto trailing_uc; suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(rb_cstr_to_inum(tok(), 8, FALSE), suffix); } if (nondigit) { pushback(c); goto trailing_uc; } } if (c > '7' && c <= '9') { invalid_octal: yyerror("Invalid octal digit"); } else if (c == '.' || c == 'e' || c == 'E') { tokadd('0'); } else { pushback(c); suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(INT2FIX(0), suffix); } } for (;;) { switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': nondigit = 0; tokadd(c); break; case '.': if (nondigit) goto trailing_uc; if (seen_point || seen_e) { goto decode_num; } else { int c0 = nextc(); if (c0 == -1 || !ISDIGIT(c0)) { pushback(c0); goto decode_num; } c = c0; } seen_point = toklen(); tokadd('.'); tokadd(c); is_float++; nondigit = 0; break; case 'e': case 'E': if (nondigit) { pushback(c); c = nondigit; goto decode_num; } if (seen_e) { goto decode_num; } nondigit = c; c = nextc(); if (c != '-' && c != '+' && !ISDIGIT(c)) { pushback(c); nondigit = 0; goto decode_num; } tokadd(nondigit); seen_e++; is_float++; tokadd(c); nondigit = (c == '-' || c == '+') ? c : 0; break; case '_': if (nondigit) goto decode_num; nondigit = c; break; default: goto decode_num; } c = nextc(); } decode_num: pushback(c); if (nondigit) { char tmp[30]; trailing_uc: snprintf(tmp, sizeof(tmp), "trailing`%c'in number", nondigit); yyerror(tmp); } tokfix(); if (is_float) { int type = tFLOAT; VALUE v; suffix = number_literal_suffix(seen_e ? NUM_SUFFIX_I : NUM_SUFFIX_ALL); if (suffix & NUM_SUFFIX_R) { char *point = &tok()[seen_point]; size_t fraclen = toklen()-seen_point-1; type = tRATIONAL; memmove(point, point+1, fraclen+1); v = rb_cstr_to_inum(tok(), 10, FALSE); v = rb_rational_new(v, rb_int_positive_pow(10, fraclen)); } else { double d = strtod(tok(), 0); if (errno == ERANGE) { rb_warningS("Float%s out of range", tok()); errno = 0; } v = DBL2NUM(d); } return set_number_literal(v, type, suffix); } suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(rb_cstr_to_inum(tok(), 10, FALSE), suffix); } case ')': case '] 
__pad18__
 
ONIG_EXTERN const UChar OnigEncISO_8859_1_ToLowerCaseTable []
 
ONIG_EXTERN const UChar OnigEncISO_8859_1_ToUpperCaseTable []
 
ONIG_EXTERN OnigEncoding OnigEncDefaultCharEncoding
 
ONIG_EXTERN const UChar OnigEncAsciiToLowerCaseTable []
 
ONIG_EXTERN const UChar OnigEncAsciiToUpperCaseTable []
 
ONIG_EXTERN const unsigned short OnigEncAsciiCtypeTable []
 
pure parser lex param
 
top_compstmt __pad0__
 
fixup_nodes & deferred_nodes
 
top_stmts __pad1__ = $1
 
 top_stmt
 
top_stmt __pad2__
 
top_stmt bodystmt = NEW_BEGIN(0)
 
compstmt __pad3__
 
stmts __pad4__ = $1
 
 stmt_or_begin
 
error stmt
 
stmt_or_begin __pad5__
 
 keyword_BEGIN
 
command_asgn __pad6__
 
 lhs
 
expr __pad7__
 
expr expr keyword_or expr
 
 command_call
 
 arg
 
expr_value __pad8__
 
command_call __pad9__
 
block_command __pad10__
 
block_command cmd_brace_block
 
< num > opt_block_param compstmt
 
fcall __pad11__
 
command __pad12__
 
 nd_args = $2
 
 nd_iter = $1
 
primary_value operation2
command_args prec 
tLOWEST
 
keyword_super command_args
 
keyword_return call_args
 
mlhs __pad13__
 
mlhs_inner __pad14__
 
mlhs_inner mlhs_basic
 
mlhs_inner mlhs_head mlhs_item
 
mlhs_head tSTAR mlhs_node
 
mlhs_head tSTAR mlhs_post
 
mlhs_head tSTAR
 
mlhs_item __pad15__
 
mlhs_head __pad16__
 
mlhs_node __pad17__
 
mlhs_node keyword_variable
 
case __pad19__
 
else lex_state = EXPR_ENDARG
 
return c
 
case __pad20__
 
return tSYMBEG
 
case __pad21__
 
case return tREGEXP_BEG
 
 return
 
case __pad22__
 
return tOP_ASGN
 
 case
 
 __pad23__
 
 command_start = TRUE
 
 __pad24__
 
case __pad25__
 
 else
 

Macro Definition Documentation

#define ADD2HEAP (   n,
  c,
  p 
)
Value:
((parser->heap = (n))->u1.node = (p), \
(n)->u3.cnt = (c), (p))
#define ambiguous_operator (   op,
  syn 
)
Value:
( \
rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \
rb_warning0("even though it seems like "syn""))
#define arg_ambiguous ( )    (arg_ambiguous_gen(parser), 1)
#define arg_append (   h,
  t 
)    arg_append_gen(parser,(h),(t))

Definition at line 397 of file parse.y.

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

Definition at line 399 of file parse.y.

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

Definition at line 508 of file parse.y.

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

Definition at line 434 of file parse.y.

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

Definition at line 431 of file parse.y.

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

Definition at line 436 of file parse.y.

#define BIT (   c,
  idx 
)    (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
#define BITSTACK_LEXPOP (   stack)    ((stack) = ((stack) >> 1) | ((stack) & 1))

Definition at line 110 of file parse.y.

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

Definition at line 109 of file parse.y.

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

Definition at line 108 of file parse.y.

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

Definition at line 111 of file parse.y.

#define block_append (   h,
  t 
)    block_append_gen(parser,(h),(t))

Definition at line 391 of file parse.y.

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

Definition at line 388 of file parse.y.

#define brace_nest   (parser->parser_brace_nest)

Definition at line 320 of file parse.y.

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

Definition at line 410 of file parse.y.

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

Definition at line 412 of file parse.y.

#define calloc   YYCALLOC

Definition at line 40 of file parse.y.

#define class_nest   (parser->parser_class_nest)

Definition at line 317 of file parse.y.

#define CMDARG_LEXPOP ( )    BITSTACK_LEXPOP(cmdarg_stack)

Definition at line 120 of file parse.y.

#define CMDARG_P ( )    BITSTACK_SET_P(cmdarg_stack)

Definition at line 121 of file parse.y.

#define CMDARG_POP ( )    BITSTACK_POP(cmdarg_stack)

Definition at line 119 of file parse.y.

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

Definition at line 118 of file parse.y.

#define cmdarg_stack   (parser->parser_cmdarg_stack)

Definition at line 316 of file parse.y.

#define command_start   (parser->parser_command_start)

Definition at line 337 of file parse.y.

#define compile_error   parser->nerr++,rb_compile_error_with_enc

Definition at line 671 of file parse.y.

#define compile_for_eval   (parser->parser_compile_for_eval)

Definition at line 323 of file parse.y.

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

Definition at line 369 of file parse.y.

#define COND_LEXPOP ( )    BITSTACK_LEXPOP(cond_stack)

Definition at line 115 of file parse.y.

#define COND_P ( )    BITSTACK_SET_P(cond_stack)

Definition at line 116 of file parse.y.

#define COND_POP ( )    BITSTACK_POP(cond_stack)

Definition at line 114 of file parse.y.

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

Definition at line 113 of file parse.y.

#define cond_stack   (parser->parser_cond_stack)

Definition at line 315 of file parse.y.

#define cur_mid   (parser->parser_cur_mid)

Definition at line 324 of file parse.y.

#define current_enc   (parser->enc)

Definition at line 346 of file parse.y.

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

Definition at line 82 of file parse.y.

#define deferred_nodes   (parser->parser_deferred_nodes)

Definition at line 338 of file parse.y.

#define dispatch_heredoc_end ( )    ((void)0)
#define dsym_node (   node)    dsym_node_gen(parser, (node))

Definition at line 426 of file parse.y.

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

Definition at line 525 of file parse.y.

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

Definition at line 522 of file parse.y.

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

Definition at line 523 of file parse.y.

#define DVARS_INHERIT   ((void*)1)

Definition at line 138 of file parse.y.

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

Definition at line 140 of file parse.y.

#define DVARS_TOPSCOPE   NULL

Definition at line 139 of file parse.y.

#define dyna_in_block ( )    dyna_in_block_gen(parser)

Definition at line 519 of file parse.y.

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

Definition at line 517 of file parse.y.

#define dyna_push ( )    dyna_push_gen(parser)

Definition at line 515 of file parse.y.

#define dyna_var (   id)    local_var(id)

Definition at line 520 of file parse.y.

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

Definition at line 307 of file parse.y.

#define ESCAPE_CONTROL   1
#define ESCAPE_META   2
#define evstr2dstr (   n)    evstr2dstr_gen(parser,(n))

Definition at line 406 of file parse.y.

#define flush_string_content (   enc)    ((void)(enc))
#define formal_argument (   id)    formal_argument_gen(parser, (id))

Definition at line 495 of file parse.y.

#define free   YYFREE

Definition at line 41 of file parse.y.

#define get_id (   id)    (id)

Definition at line 468 of file parse.y.

#define get_value (   val)    (val)

Definition at line 469 of file parse.y.

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

Definition at line 429 of file parse.y.

#define HEAPCNT (   n,
  size 
)    ((n) * (size) / sizeof(YYSTYPE))
#define here_document (   n)    parser_here_document(parser,(n))
#define heredoc_end   (parser->parser_heredoc_end)

Definition at line 336 of file parse.y.

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

Definition at line 58 of file parse.y.

#define IDSET_ATTRSET_FOR_INTERN   (~(~0U<<ID_SCOPE_MASK) & ~(1U<<ID_ATTRSET))
#define IDSET_ATTRSET_FOR_SYNTAX   ((1U<<ID_LOCAL)|(1U<<ID_CONST))
#define ifndef_ripper (   x)    (x)

Definition at line 637 of file parse.y.

#define in_def   (parser->parser_in_def)

Definition at line 322 of file parse.y.

#define in_defined   (parser->parser_in_defined)

Definition at line 325 of file parse.y.

#define in_single   (parser->parser_in_single)

Definition at line 321 of file parse.y.

#define internal_id ( )    internal_id_gen(parser)

Definition at line 512 of file parse.y.

#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)
Value:
((is_notop_id(id)) && \
(((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
((id)&ID_SCOPE_MASK) == ID_CLASS))

Definition at line 60 of file parse.y.

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

Definition at line 54 of file parse.y.

#define IS_BEG ( )    IS_lex_state(EXPR_BEG_ANY)
#define is_class_id (   id)    (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)

Definition at line 56 of file parse.y.

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

Definition at line 55 of file parse.y.

#define IS_END ( )    IS_lex_state(EXPR_END_ANY)
#define is_global_id (   id)    (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)

Definition at line 52 of file parse.y.

#define is_identchar (   p,
  e,
  enc 
)    (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
#define is_instance_id (   id)    (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)

Definition at line 53 of file parse.y.

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

Definition at line 57 of file parse.y.

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

Definition at line 100 of file parse.y.

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

Definition at line 99 of file parse.y.

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

Definition at line 51 of file parse.y.

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

Definition at line 50 of file parse.y.

#define IS_SPCARG (   c)    (IS_ARG() && space_seen && !ISSPACE(c))
#define lex_eol_p ( )    (lex_p >= lex_pend)
#define lex_gets   (parser->parser_lex_gets)

Definition at line 340 of file parse.y.

#define lex_gets_ptr   (parser->parser_lex_gets_ptr)

Definition at line 339 of file parse.y.

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

Definition at line 330 of file parse.y.

#define lex_lastline   (parser->parser_lex_lastline)

Definition at line 331 of file parse.y.

#define lex_nextline   (parser->parser_lex_nextline)

Definition at line 332 of file parse.y.

#define lex_p   (parser->parser_lex_p)

Definition at line 334 of file parse.y.

#define lex_pbeg   (parser->parser_lex_pbeg)

Definition at line 333 of file parse.y.

#define lex_pend   (parser->parser_lex_pend)

Definition at line 335 of file parse.y.

#define lex_state   (parser->parser_lex_state)

Definition at line 314 of file parse.y.

#define lex_strterm   (parser->parser_lex_strterm)

Definition at line 313 of file parse.y.

Referenced by if(), and switch().

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

Definition at line 393 of file parse.y.

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

Definition at line 395 of file parse.y.

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

Definition at line 401 of file parse.y.

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

Definition at line 510 of file parse.y.

#define local_pop ( )    local_pop_gen(parser)

Definition at line 504 of file parse.y.

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

Definition at line 502 of file parse.y.

#define local_tbl ( )    local_tbl_gen(parser)

Definition at line 455 of file parse.y.

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

Definition at line 506 of file parse.y.

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

Definition at line 371 of file parse.y.

#define lpar_beg   (parser->parser_lpar_beg)

Definition at line 319 of file parse.y.

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

Definition at line 528 of file parse.y.

#define LVAR_USED   ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
#define lvtbl   (parser->parser_lvtbl)

Definition at line 341 of file parse.y.

#define malloc   YYMALLOC

Definition at line 38 of file parse.y.

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

Definition at line 452 of file parse.y.

#define mixed_error (   enc1,
  enc2 
)
Value:
if (!errbuf) { \
size_t len = sizeof(mixed_msg) - 4; \
len += strlen(rb_enc_name(enc1)); \
len += strlen(rb_enc_name(enc2)); \
errbuf = ALLOCA_N(char, len); \
snprintf(errbuf, len, mixed_msg, \
rb_enc_name(enc1), \
rb_enc_name(enc2)); \
yyerror(errbuf); \
}
#define mixed_escape (   beg,
  enc1,
  enc2 
)
Value:
do { \
const char *pos = lex_p; \
lex_p = (beg); \
mixed_error((enc1), (enc2)); \
lex_p = pos; \
} while (0)
#define nd_func   u1.id

Definition at line 541 of file parse.y.

#define nd_nest   u3.cnt

Definition at line 548 of file parse.y.

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

Definition at line 547 of file parse.y.

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

Definition at line 545 of file parse.y.

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

Definition at line 415 of file parse.y.

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

Definition at line 417 of file parse.y.

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

Definition at line 445 of file parse.y.

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

Definition at line 499 of file parse.y.

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

Definition at line 447 of file parse.y.

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

Definition at line 449 of file parse.y.

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

Definition at line 404 of file parse.y.

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

Definition at line 492 of file parse.y.

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

Definition at line 424 of file parse.y.

#define NEWHEAP ( )    rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
#define newtok ( )    parser_newtok(parser)
#define nextc ( )    parser_nextc(parser)
#define no_digits ( )    do {yyerror("numeric literal without digits"); return 0;} while (0)
#define node_assign (   node1,
  node2 
)    node_assign_gen(parser, (node1), (node2))

Definition at line 441 of file parse.y.

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

Definition at line 539 of file parse.y.

#define NODE_STRTERM   NODE_ZARRAY /* nothing to gc */

Definition at line 538 of file parse.y.

#define NUM_SUFFIX_ALL   3
#define NUM_SUFFIX_I   (1<<1)
#define NUM_SUFFIX_R   (1<<0)
#define number_literal_suffix (   f)    parser_number_literal_suffix(parser, (f))
#define op_tbl_count   numberof(op_tbl)
#define paren_nest   (parser->parser_paren_nest)

Definition at line 318 of file parse.y.

#define parse_string (   n)    parser_parse_string(parser,(n))
#define PARSER_ARG   ruby_sourcefile, ruby_sourceline, current_enc,

Definition at line 672 of file parse.y.

#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 peek (   c)    peek_n((c), 0)
#define peek_n (   c,
  n 
)    (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
#define POINTER_P (   val)    ((VALUE)(val) & ~(VALUE)3)

Definition at line 141 of file parse.y.

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

Definition at line 636 of file parse.y.

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

Definition at line 439 of file parse.y.

#define rb_compile_error   rb_compile_error_with_enc

Definition at line 670 of file parse.y.

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

Definition at line 366 of file parse.y.

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

Definition at line 644 of file parse.y.

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

Definition at line 647 of file parse.y.

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

Definition at line 645 of file parse.y.

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

Definition at line 648 of file parse.y.

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

Definition at line 649 of file parse.y.

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

Definition at line 646 of file parse.y.

#define RE_OPTION_ARG_ENCODING_NONE   32

Definition at line 536 of file parse.y.

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

Definition at line 532 of file parse.y.

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

Definition at line 533 of file parse.y.

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

Definition at line 534 of file parse.y.

#define RE_OPTION_ENCODING_SHIFT   8

Definition at line 531 of file parse.y.

#define RE_OPTION_MASK   0xff

Definition at line 535 of file parse.y.

#define RE_OPTION_ONCE   (1<<16)

Definition at line 530 of file parse.y.

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

Definition at line 39 of file parse.y.

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

Definition at line 386 of file parse.y.

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

Definition at line 460 of file parse.y.

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

Definition at line 464 of file parse.y.

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

Definition at line 462 of file parse.y.

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

Definition at line 466 of file parse.y.

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

Definition at line 46 of file parse.y.

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

Definition at line 421 of file parse.y.

#define ripper_flush (   p)    (void)(p)
#define ruby__end__seen   (parser->parser_ruby__end__seen)

Definition at line 342 of file parse.y.

#define ruby_coverage   (parser->coverage)

Definition at line 353 of file parse.y.

#define ruby_debug_lines   (parser->debug_lines)

Definition at line 352 of file parse.y.

#define ruby_eval_tree   (parser->parser_eval_tree)

Definition at line 350 of file parse.y.

#define ruby_eval_tree_begin   (parser->parser_eval_tree_begin)

Definition at line 351 of file parse.y.

#define ruby_sourcefile   (parser->parser_ruby_sourcefile)

Definition at line 344 of file parse.y.

#define ruby_sourcefile_string   (parser->parser_ruby_sourcefile_string)

Definition at line 345 of file parse.y.

#define ruby_sourceline   (parser->parser_ruby_sourceline)

Definition at line 343 of file parse.y.

#define set_integer_literal (   v,
  f 
)    parser_set_integer_literal(parser, (v), (f))
#define set_number_literal (   v,
  t,
  f 
)    parser_set_number_literal(parser, (v), (t), (f))
#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))

Definition at line 497 of file parse.y.

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

Definition at line 540 of file parse.y.

#define SIGN_EXTEND_CHAR (   c)    ((((unsigned char)(c)) ^ 128) - 128)
#define SPECIAL_PUNCT (   idx)
Value:
( \
BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
BIT('0', idx))
#define 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
#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)

Definition at line 303 of file parse.y.

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

Definition at line 304 of file parse.y.

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

Definition at line 305 of file parse.y.

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

Definition at line 306 of file parse.y.

#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
#define tok_hex (   numlen)    parser_tok_hex(parser, (numlen))
#define TOK_INTERN (   mb)    rb_intern3(tok(), toklen(), current_enc)

Definition at line 308 of file parse.y.

#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 tokcopy (   n)    memcpy(tokspace(n), lex_p - (n), (n))
#define token_info_pop (   token)    (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)

Definition at line 688 of file parse.y.

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

Definition at line 687 of file parse.y.

#define tokenbuf   (parser->parser_tokenbuf)

Definition at line 326 of file parse.y.

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

Definition at line 327 of file parse.y.

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

Definition at line 329 of file parse.y.

#define toksiz   (parser->parser_toksiz)

Definition at line 328 of file parse.y.

#define tokspace (   n)    parser_tokspace(parser, (n))
#define value_expr (   node)    value_expr_gen(parser, (node) = remove_begin(node))

Definition at line 380 of file parse.y.

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

Definition at line 382 of file parse.y.

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

Definition at line 381 of file parse.y.

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

Definition at line 384 of file parse.y.

#define VTBL_DEBUG   0

Definition at line 154 of file parse.y.

#define warn_balanced (   op,
  syn 
)
Value:
((void) \
(!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \
space_seen && !ISSPACE(c) && \
(ambiguous_operator(op, syn), 0)))
#define was_bol ( )    (lex_p == lex_pbeg + 1)
#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))

Definition at line 36 of file parse.y.

#define YYDEBUG   1
#define yydebug   (parser->parser_yydebug)

Definition at line 347 of file parse.y.

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

Definition at line 311 of file parse.y.

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

Definition at line 37 of file parse.y.

#define yylval   (*((YYSTYPE*)(parser->parser_yylval)))
#define yylval_id ( )    (yylval.id)
#define YYMALLOC (   size)    rb_parser_malloc(parser, (size))

Definition at line 34 of file parse.y.

#define yyparse   ruby_yyparse

Definition at line 363 of file parse.y.

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

Definition at line 35 of file parse.y.

#define YYSTACK_USE_ALLOCA   0

Typedef Documentation

typedef VALUE stack_type

Definition at line 106 of file parse.y.

typedef struct token_info token_info

Enumeration Type Documentation

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

Definition at line 65 of file parse.y.

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

Definition at line 81 of file parse.y.

enum node_type
Enumerator:
NODE_SCOPE 
NODE_SCOPE 
NODE_BLOCK 
NODE_BLOCK 
NODE_IF 
NODE_IF 
NODE_CASE 
NODE_CASE 
NODE_WHEN 
NODE_WHEN 
NODE_OPT_N 
NODE_OPT_N 
NODE_WHILE 
NODE_WHILE 
NODE_UNTIL 
NODE_UNTIL 
NODE_ITER 
NODE_ITER 
NODE_FOR 
NODE_FOR 
NODE_BREAK 
NODE_BREAK 
NODE_NEXT 
NODE_NEXT 
NODE_REDO 
NODE_REDO 
NODE_RETRY 
NODE_RETRY 
NODE_BEGIN 
NODE_BEGIN 
NODE_RESCUE 
NODE_RESCUE 
NODE_RESBODY 
NODE_RESBODY 
NODE_ENSURE 
NODE_ENSURE 
NODE_AND 
NODE_AND 
NODE_OR 
NODE_OR 
NODE_MASGN 
NODE_MASGN 
NODE_LASGN 
NODE_LASGN 
NODE_DASGN 
NODE_DASGN 
NODE_DASGN_CURR 
NODE_DASGN_CURR 
NODE_GASGN 
NODE_GASGN 
NODE_IASGN 
NODE_IASGN 
NODE_IASGN2 
NODE_IASGN2 
NODE_CDECL 
NODE_CDECL 
NODE_CVASGN 
NODE_CVASGN 
NODE_CVDECL 
NODE_CVDECL 
NODE_OP_ASGN1 
NODE_OP_ASGN1 
NODE_OP_ASGN2 
NODE_OP_ASGN2 
NODE_OP_ASGN_AND 
NODE_OP_ASGN_AND 
NODE_OP_ASGN_OR 
NODE_OP_ASGN_OR 
NODE_OP_CDECL 
NODE_OP_CDECL 
NODE_CALL 
NODE_CALL 
NODE_FCALL 
NODE_FCALL 
NODE_VCALL 
NODE_VCALL 
NODE_SUPER 
NODE_SUPER 
NODE_ZSUPER 
NODE_ZSUPER 
NODE_ARRAY 
NODE_ARRAY 
NODE_ZARRAY 
NODE_ZARRAY 
NODE_VALUES 
NODE_VALUES 
NODE_HASH 
NODE_HASH 
NODE_RETURN 
NODE_RETURN 
NODE_YIELD 
NODE_YIELD 
NODE_LVAR 
NODE_LVAR 
NODE_DVAR 
NODE_DVAR 
NODE_GVAR 
NODE_GVAR 
NODE_IVAR 
NODE_IVAR 
NODE_CONST 
NODE_CONST 
NODE_CVAR 
NODE_CVAR 
NODE_NTH_REF 
NODE_NTH_REF 
NODE_BACK_REF 
NODE_BACK_REF 
NODE_MATCH 
NODE_MATCH 
NODE_MATCH2 
NODE_MATCH2 
NODE_MATCH3 
NODE_MATCH3 
NODE_LIT 
NODE_LIT 
NODE_STR 
NODE_STR 
NODE_DSTR 
NODE_DSTR 
NODE_XSTR 
NODE_XSTR 
NODE_DXSTR 
NODE_DXSTR 
NODE_EVSTR 
NODE_EVSTR 
NODE_DREGX 
NODE_DREGX 
NODE_DREGX_ONCE 
NODE_DREGX_ONCE 
NODE_ARGS 
NODE_ARGS 
NODE_ARGS_AUX 
NODE_ARGS_AUX 
NODE_OPT_ARG 
NODE_OPT_ARG 
NODE_KW_ARG 
NODE_KW_ARG 
NODE_POSTARG 
NODE_POSTARG 
NODE_ARGSCAT 
NODE_ARGSCAT 
NODE_ARGSPUSH 
NODE_ARGSPUSH 
NODE_SPLAT 
NODE_SPLAT 
NODE_TO_ARY 
NODE_TO_ARY 
NODE_BLOCK_ARG 
NODE_BLOCK_ARG 
NODE_BLOCK_PASS 
NODE_BLOCK_PASS 
NODE_DEFN 
NODE_DEFN 
NODE_DEFS 
NODE_DEFS 
NODE_ALIAS 
NODE_ALIAS 
NODE_VALIAS 
NODE_VALIAS 
NODE_UNDEF 
NODE_UNDEF 
NODE_CLASS 
NODE_CLASS 
NODE_MODULE 
NODE_MODULE 
NODE_SCLASS 
NODE_SCLASS 
NODE_COLON2 
NODE_COLON2 
NODE_COLON3 
NODE_COLON3 
NODE_CREF 
NODE_CREF 
NODE_DOT2 
NODE_DOT2 
NODE_DOT3 
NODE_DOT3 
NODE_FLIP2 
NODE_FLIP2 
NODE_FLIP3 
NODE_FLIP3 
NODE_SELF 
NODE_SELF 
NODE_NIL 
NODE_NIL 
NODE_TRUE 
NODE_TRUE 
NODE_FALSE 
NODE_FALSE 
NODE_ERRINFO 
NODE_ERRINFO 
NODE_DEFINED 
NODE_DEFINED 
NODE_POSTEXE 
NODE_POSTEXE 
NODE_ALLOCA 
NODE_ALLOCA 
NODE_BMETHOD 
NODE_BMETHOD 
NODE_MEMO 
NODE_MEMO 
NODE_IFUNC 
NODE_IFUNC 
NODE_DSYM 
NODE_DSYM 
NODE_ATTRASGN 
NODE_ATTRASGN 
NODE_PRELUDE 
NODE_PRELUDE 
NODE_LAMBDA 
NODE_LAMBDA 
NODE_SCOPE 
NODE_SCOPE 
NODE_BLOCK 
NODE_BLOCK 
NODE_IF 
NODE_IF 
NODE_CASE 
NODE_CASE 
NODE_WHEN 
NODE_WHEN 
NODE_OPT_N 
NODE_OPT_N 
NODE_WHILE 
NODE_WHILE 
NODE_UNTIL 
NODE_UNTIL 
NODE_ITER 
NODE_ITER 
NODE_FOR 
NODE_FOR 
NODE_BREAK 
NODE_BREAK 
NODE_NEXT 
NODE_NEXT 
NODE_REDO 
NODE_REDO 
NODE_RETRY 
NODE_RETRY 
NODE_BEGIN 
NODE_BEGIN 
NODE_RESCUE 
NODE_RESCUE 
NODE_RESBODY 
NODE_RESBODY 
NODE_ENSURE 
NODE_ENSURE 
NODE_AND 
NODE_AND 
NODE_OR 
NODE_OR 
NODE_MASGN 
NODE_MASGN 
NODE_LASGN 
NODE_LASGN 
NODE_DASGN 
NODE_DASGN 
NODE_DASGN_CURR 
NODE_DASGN_CURR 
NODE_GASGN 
NODE_GASGN 
NODE_IASGN 
NODE_IASGN 
NODE_IASGN2 
NODE_IASGN2 
NODE_CDECL 
NODE_CDECL 
NODE_CVASGN 
NODE_CVASGN 
NODE_CVDECL 
NODE_CVDECL 
NODE_OP_ASGN1 
NODE_OP_ASGN1 
NODE_OP_ASGN2 
NODE_OP_ASGN2 
NODE_OP_ASGN_AND 
NODE_OP_ASGN_AND 
NODE_OP_ASGN_OR 
NODE_OP_ASGN_OR 
NODE_OP_CDECL 
NODE_OP_CDECL 
NODE_CALL 
NODE_CALL 
NODE_FCALL 
NODE_FCALL 
NODE_VCALL 
NODE_VCALL 
NODE_SUPER 
NODE_SUPER 
NODE_ZSUPER 
NODE_ZSUPER 
NODE_ARRAY 
NODE_ARRAY 
NODE_ZARRAY 
NODE_ZARRAY 
NODE_VALUES 
NODE_VALUES 
NODE_HASH 
NODE_HASH 
NODE_RETURN 
NODE_RETURN 
NODE_YIELD 
NODE_YIELD 
NODE_LVAR 
NODE_LVAR 
NODE_DVAR 
NODE_DVAR 
NODE_GVAR 
NODE_GVAR 
NODE_IVAR 
NODE_IVAR 
NODE_CONST 
NODE_CONST 
NODE_CVAR 
NODE_CVAR 
NODE_NTH_REF 
NODE_NTH_REF 
NODE_BACK_REF 
NODE_BACK_REF 
NODE_MATCH 
NODE_MATCH 
NODE_MATCH2 
NODE_MATCH2 
NODE_MATCH3 
NODE_MATCH3 
NODE_LIT 
NODE_LIT 
NODE_STR 
NODE_STR 
NODE_DSTR 
NODE_DSTR 
NODE_XSTR 
NODE_XSTR 
NODE_DXSTR 
NODE_DXSTR 
NODE_EVSTR 
NODE_EVSTR 
NODE_DREGX 
NODE_DREGX 
NODE_DREGX_ONCE 
NODE_DREGX_ONCE 
NODE_ARGS 
NODE_ARGS 
NODE_ARGS_AUX 
NODE_ARGS_AUX 
NODE_OPT_ARG 
NODE_OPT_ARG 
NODE_KW_ARG 
NODE_KW_ARG 
NODE_POSTARG 
NODE_POSTARG 
NODE_ARGSCAT 
NODE_ARGSCAT 
NODE_ARGSPUSH 
NODE_ARGSPUSH 
NODE_SPLAT 
NODE_SPLAT 
NODE_TO_ARY 
NODE_TO_ARY 
NODE_BLOCK_ARG 
NODE_BLOCK_ARG 
NODE_BLOCK_PASS 
NODE_BLOCK_PASS 
NODE_DEFN 
NODE_DEFN 
NODE_DEFS 
NODE_DEFS 
NODE_ALIAS 
NODE_ALIAS 
NODE_VALIAS 
NODE_VALIAS 
NODE_UNDEF 
NODE_UNDEF 
NODE_CLASS 
NODE_CLASS 
NODE_MODULE 
NODE_MODULE 
NODE_SCLASS 
NODE_SCLASS 
NODE_COLON2 
NODE_COLON2 
NODE_COLON3 
NODE_COLON3 
NODE_CREF 
NODE_CREF 
NODE_DOT2 
NODE_DOT2 
NODE_DOT3 
NODE_DOT3 
NODE_FLIP2 
NODE_FLIP2 
NODE_FLIP3 
NODE_FLIP3 
NODE_SELF 
NODE_SELF 
NODE_NIL 
NODE_NIL 
NODE_TRUE 
NODE_TRUE 
NODE_FALSE 
NODE_FALSE 
NODE_ERRINFO 
NODE_ERRINFO 
NODE_DEFINED 
NODE_DEFINED 
NODE_POSTEXE 
NODE_POSTEXE 
NODE_ALLOCA 
NODE_ALLOCA 
NODE_BMETHOD 
NODE_BMETHOD 
NODE_MEMO 
NODE_MEMO 
NODE_IFUNC 
NODE_IFUNC 
NODE_DSYM 
NODE_DSYM 
NODE_ATTRASGN 
NODE_ATTRASGN 
NODE_PRELUDE 
NODE_PRELUDE 
NODE_LAMBDA 
NODE_LAMBDA 

Definition at line 23 of file parse.y.

Enumerator:
econv_invalid_byte_sequence 
econv_undefined_conversion 
econv_destination_buffer_full 
econv_source_buffer_empty 
econv_finished 
econv_after_output 
econv_incomplete_input 
econv_invalid_byte_sequence 
econv_undefined_conversion 
econv_destination_buffer_full 
econv_source_buffer_empty 
econv_finished 
econv_after_output 
econv_incomplete_input 

Definition at line 252 of file parse.y.

Enumerator:
RUBY_ID_LOCAL 
RUBY_ID_INSTANCE 
RUBY_ID_GLOBAL 
RUBY_ID_ATTRSET 
RUBY_ID_CONST 
RUBY_ID_CLASS 
RUBY_ID_JUNK 
RUBY_ID_INTERNAL 
RUBY_ID_SCOPE_SHIFT 
RUBY_ID_SCOPE_MASK 
RUBY_ID_LOCAL 
RUBY_ID_INSTANCE 
RUBY_ID_GLOBAL 
RUBY_ID_ATTRSET 
RUBY_ID_CONST 
RUBY_ID_CLASS 
RUBY_ID_JUNK 
RUBY_ID_INTERNAL 
RUBY_ID_SCOPE_SHIFT 
RUBY_ID_SCOPE_MASK 

Definition at line 17 of file parse.y.

Enumerator:
idDot2 
idDot3 
idUPlus 
idUMinus 
idPow 
idCmp 
idPLUS 
idMINUS 
idMULT 
idDIV 
idMOD 
idLT 
idLTLT 
idLE 
idGT 
idGE 
idEq 
idEqq 
idNeq 
idNot 
idBackquote 
idEqTilde 
idNeqTilde 
idAREF 
idASET 
tPRESERVED_ID_BEGIN 
idNULL 
idEmptyP 
idEqlP 
idRespond_to 
idRespond_to_missing 
idIFUNC 
idCFUNC 
id_core_set_method_alias 
id_core_set_variable_alias 
id_core_undef_method 
id_core_define_method 
id_core_define_singleton_method 
id_core_set_postexe 
id_core_hash_from_ary 
id_core_hash_merge_ary 
id_core_hash_merge_ptr 
id_core_hash_merge_kwd 
tPRESERVED_ID_END 
tFreeze 
tInspect 
tIntern 
tObject_id 
tConst_missing 
tMethodMissing 
tMethod_added 
tSingleton_method_added 
tMethod_removed 
tSingleton_method_removed 
tMethod_undefined 
tSingleton_method_undefined 
tLength 
tSize 
tGets 
tSucc 
tEach 
tProc 
tLambda 
tSend 
t__send__ 
t__attached__ 
tInitialize 
tInitialize_copy 
tInitialize_clone 
tInitialize_dup 
tUScore 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
tLAST_OP_ID 
idLAST_OP_ID 
idDot2 
idDot3 
idUPlus 
idUMinus 
idPow 
idCmp 
idPLUS 
idMINUS 
idMULT 
idDIV 
idMOD 
idLT 
idLTLT 
idLE 
idGT 
idGE 
idEq 
idEqq 
idNeq 
idNot 
idBackquote 
idEqTilde 
idNeqTilde 
idAREF 
idASET 
tPRESERVED_ID_BEGIN 
idNULL 
idEmptyP 
idEqlP 
idRespond_to 
idRespond_to_missing 
idIFUNC 
idCFUNC 
id_core_set_method_alias 
id_core_set_variable_alias 
id_core_undef_method 
id_core_define_method 
id_core_define_singleton_method 
id_core_set_postexe 
id_core_hash_from_ary 
id_core_hash_merge_ary 
id_core_hash_merge_ptr 
id_core_hash_merge_kwd 
tPRESERVED_ID_END 
tFreeze 
tInspect 
tIntern 
tObject_id 
tConst_missing 
tMethodMissing 
tMethod_added 
tSingleton_method_added 
tMethod_removed 
tSingleton_method_removed 
tMethod_undefined 
tSingleton_method_undefined 
tLength 
tSize 
tGets 
tSucc 
tEach 
tProc 
tLambda 
tSend 
t__send__ 
t__attached__ 
tInitialize 
tInitialize_copy 
tInitialize_clone 
tInitialize_dup 
tUScore 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
TOKEN2LOCALID 
tLAST_OP_ID 
idLAST_OP_ID 

Definition at line 68 of file parse.y.

Enumerator:
RUBY_Qfalse 
RUBY_Qtrue 
RUBY_Qnil 
RUBY_Qundef 
RUBY_IMMEDIATE_MASK 
RUBY_FIXNUM_FLAG 
RUBY_FLONUM_MASK 
RUBY_FLONUM_FLAG 
RUBY_SYMBOL_FLAG 
RUBY_SPECIAL_SHIFT 
RUBY_Qfalse 
RUBY_Qtrue 
RUBY_Qnil 
RUBY_Qundef 
RUBY_IMMEDIATE_MASK 
RUBY_FIXNUM_FLAG 
RUBY_FLONUM_MASK 
RUBY_FLONUM_FLAG 
RUBY_SYMBOL_FLAG 
RUBY_SPECIAL_SHIFT 

Definition at line 397 of file parse.y.

Enumerator:
RUBY_T_NONE 
RUBY_T_OBJECT 
RUBY_T_CLASS 
RUBY_T_MODULE 
RUBY_T_FLOAT 
RUBY_T_STRING 
RUBY_T_REGEXP 
RUBY_T_ARRAY 
RUBY_T_HASH 
RUBY_T_STRUCT 
RUBY_T_BIGNUM 
RUBY_T_FILE 
RUBY_T_DATA 
RUBY_T_MATCH 
RUBY_T_COMPLEX 
RUBY_T_RATIONAL 
RUBY_T_NIL 
RUBY_T_TRUE 
RUBY_T_FALSE 
RUBY_T_SYMBOL 
RUBY_T_FIXNUM 
RUBY_T_UNDEF 
RUBY_T_NODE 
RUBY_T_ICLASS 
RUBY_T_ZOMBIE 
RUBY_T_MASK 
RUBY_T_NONE 
RUBY_T_OBJECT 
RUBY_T_CLASS 
RUBY_T_MODULE 
RUBY_T_FLOAT 
RUBY_T_STRING 
RUBY_T_REGEXP 
RUBY_T_ARRAY 
RUBY_T_HASH 
RUBY_T_STRUCT 
RUBY_T_BIGNUM 
RUBY_T_FILE 
RUBY_T_DATA 
RUBY_T_MATCH 
RUBY_T_COMPLEX 
RUBY_T_RATIONAL 
RUBY_T_NIL 
RUBY_T_TRUE 
RUBY_T_FALSE 
RUBY_T_SYMBOL 
RUBY_T_FIXNUM 
RUBY_T_UNDEF 
RUBY_T_NODE 
RUBY_T_ICLASS 
RUBY_T_ZOMBIE 
RUBY_T_MASK 

Definition at line 442 of file parse.y.

enum st_retval
Enumerator:
ST_CONTINUE 
ST_CONTINUE 
ST_STOP 
ST_STOP 
ST_DELETE 
ST_DELETE 
ST_CHECK 
ST_CHECK 
ST_CONTINUE 
ST_CONTINUE 
ST_STOP 
ST_STOP 
ST_DELETE 
ST_DELETE 
ST_CHECK 
ST_CHECK 
ST_CONTINUE 
ST_STOP 
ST_DELETE 
ST_CHECK 

Definition at line 100 of file parse.y.

enum st_retval
Enumerator:
ST_CONTINUE 
ST_CONTINUE 
ST_STOP 
ST_STOP 
ST_DELETE 
ST_DELETE 
ST_CHECK 
ST_CHECK 
ST_CONTINUE 
ST_CONTINUE 
ST_STOP 
ST_STOP 
ST_DELETE 
ST_DELETE 
ST_CHECK 
ST_CHECK 
ST_CONTINUE 
ST_STOP 
ST_DELETE 
ST_CHECK 

Definition at line 100 of file parse.y.

Enumerator:
END_OF_INPUT 
keyword_class 
keyword_module 
keyword_def 
keyword_undef 
keyword_begin 
keyword_rescue 
keyword_ensure 
keyword_end 
keyword_if 
keyword_unless 
keyword_then 
keyword_elsif 
keyword_else 
keyword_case 
keyword_when 
keyword_while 
keyword_until 
keyword_for 
keyword_break 
keyword_next 
keyword_redo 
keyword_retry 
keyword_in 
keyword_do 
keyword_do_cond 
keyword_do_block 
keyword_do_LAMBDA 
keyword_return 
keyword_yield 
keyword_super 
keyword_self 
keyword_nil 
keyword_true 
keyword_false 
keyword_and 
keyword_or 
keyword_not 
modifier_if 
modifier_unless 
modifier_while 
modifier_until 
modifier_rescue 
keyword_alias 
keyword_defined 
keyword_BEGIN 
keyword_END 
keyword__LINE__ 
keyword__FILE__ 
keyword__ENCODING__ 
tIDENTIFIER 
tFID 
tGVAR 
tIVAR 
tCONSTANT 
tCVAR 
tLABEL 
tINTEGER 
tFLOAT 
tRATIONAL 
tIMAGINARY 
tSTRING_CONTENT 
tCHAR 
tNTH_REF 
tBACK_REF 
tREGEXP_END 
tUPLUS 
tUMINUS 
tPOW 
tCMP 
tEQ 
tEQQ 
tNEQ 
tGEQ 
tLEQ 
tANDOP 
tOROP 
tMATCH 
tNMATCH 
tDOT2 
tDOT3 
tAREF 
tASET 
tLSHFT 
tRSHFT 
tCOLON2 
tCOLON3 
tOP_ASGN 
tASSOC 
tLPAREN 
tLPAREN_ARG 
tRPAREN 
tLBRACK 
tLBRACE 
tLBRACE_ARG 
tSTAR 
tDSTAR 
tAMPER 
tLAMBDA 
tSYMBEG 
tSTRING_BEG 
tXSTRING_BEG 
tREGEXP_BEG 
tWORDS_BEG 
tQWORDS_BEG 
tSYMBOLS_BEG 
tQSYMBOLS_BEG 
tSTRING_DBEG 
tSTRING_DEND 
tSTRING_DVAR 
tSTRING_END 
tLAMBEG 
tLOWEST 
tUMINUS_NUM 
tLAST_TOKEN 
END_OF_INPUT 
keyword_class 
keyword_module 
keyword_def 
keyword_undef 
keyword_begin 
keyword_rescue 
keyword_ensure 
keyword_end 
keyword_if 
keyword_unless 
keyword_then 
keyword_elsif 
keyword_else 
keyword_case 
keyword_when 
keyword_while 
keyword_until 
keyword_for 
keyword_break 
keyword_next 
keyword_redo 
keyword_retry 
keyword_in 
keyword_do 
keyword_do_cond 
keyword_do_block 
keyword_do_LAMBDA 
keyword_return 
keyword_yield 
keyword_super 
keyword_self 
keyword_nil 
keyword_true 
keyword_false 
keyword_and 
keyword_or 
keyword_not 
modifier_if 
modifier_unless 
modifier_while 
modifier_until 
modifier_rescue 
keyword_alias 
keyword_defined 
keyword_BEGIN 
keyword_END 
keyword__LINE__ 
keyword__FILE__ 
keyword__ENCODING__ 
tIDENTIFIER 
tFID 
tGVAR 
tIVAR 
tCONSTANT 
tCVAR 
tLABEL 
tINTEGER 
tFLOAT 
tRATIONAL 
tIMAGINARY 
tSTRING_CONTENT 
tCHAR 
tNTH_REF 
tBACK_REF 
tREGEXP_END 
tUPLUS 
tUMINUS 
tPOW 
tCMP 
tEQ 
tEQQ 
tNEQ 
tGEQ 
tLEQ 
tANDOP 
tOROP 
tMATCH 
tNMATCH 
tDOT2 
tDOT3 
tAREF 
tASET 
tLSHFT 
tRSHFT 
tCOLON2 
tCOLON3 
tOP_ASGN 
tASSOC 
tLPAREN 
tLPAREN_ARG 
tRPAREN 
tLBRACK 
tLBRACE 
tLBRACE_ARG 
tSTAR 
tDSTAR 
tAMPER 
tLAMBDA 
tSYMBEG 
tSTRING_BEG 
tXSTRING_BEG 
tREGEXP_BEG 
tWORDS_BEG 
tQWORDS_BEG 
tSYMBOLS_BEG 
tQSYMBOLS_BEG 
tSTRING_DBEG 
tSTRING_DEND 
tSTRING_DVAR 
tSTRING_END 
tLAMBEG 
tLOWEST 
tUMINUS_NUM 
tLAST_TOKEN 
END_OF_INPUT 
keyword_class 
keyword_module 
keyword_def 
keyword_undef 
keyword_begin 
keyword_rescue 
keyword_ensure 
keyword_end 
keyword_if 
keyword_unless 
keyword_then 
keyword_elsif 
keyword_else 
keyword_case 
keyword_when 
keyword_while 
keyword_until 
keyword_for 
keyword_break 
keyword_next 
keyword_redo 
keyword_retry 
keyword_in 
keyword_do 
keyword_do_cond 
keyword_do_block 
keyword_do_LAMBDA 
keyword_return 
keyword_yield 
keyword_super 
keyword_self 
keyword_nil 
keyword_true 
keyword_false 
keyword_and 
keyword_or 
keyword_not 
modifier_if 
modifier_unless 
modifier_while 
modifier_until 
modifier_rescue 
keyword_alias 
keyword_defined 
keyword_BEGIN 
keyword_END 
keyword__LINE__ 
keyword__FILE__ 
keyword__ENCODING__ 
tIDENTIFIER 
tFID 
tGVAR 
tIVAR 
tCONSTANT 
tCVAR 
tLABEL 
tINTEGER 
tFLOAT 
tRATIONAL 
tIMAGINARY 
tSTRING_CONTENT 
tCHAR 
tNTH_REF 
tBACK_REF 
tREGEXP_END 
tUPLUS 
tUMINUS 
tPOW 
tCMP 
tEQ 
tEQQ 
tNEQ 
tGEQ 
tLEQ 
tANDOP 
tOROP 
tMATCH 
tNMATCH 
tDOT2 
tDOT3 
tAREF 
tASET 
tLSHFT 
tRSHFT 
tCOLON2 
tCOLON3 
tOP_ASGN 
tASSOC 
tLPAREN 
tLPAREN_ARG 
tRPAREN 
tLBRACK 
tLBRACE 
tLBRACE_ARG 
tSTAR 
tDSTAR 
tAMPER 
tLAMBDA 
tSYMBEG 
tSTRING_BEG 
tXSTRING_BEG 
tREGEXP_BEG 
tWORDS_BEG 
tQWORDS_BEG 
tSYMBOLS_BEG 
tQSYMBOLS_BEG 
tSTRING_DBEG 
tSTRING_DEND 
tSTRING_DVAR 
tSTRING_END 
tLAMBEG 
tLOWEST 
tUMINUS_NUM 
tLAST_TOKEN 

Definition at line 40 of file parse.y.

Function Documentation

RUBY_SYMBOL_EXPORT_BEGIN RUBY_EXTERN double acosh ( double  )

Definition at line 36 of file acosh.c.

RUBY_SYMBOL_EXPORT_BEGIN RUBY_EXTERN double acosh ( double  )

Definition at line 36 of file acosh.c.

References BIG_CRITERIA.

RUBY_SYMBOL_EXPORT_BEGIN void* alloca ( )
static NODE* arg_append_gen ( struct parser_params *  ,
NODE *  ,
NODE *   
)
static
static NODE* arg_blk_pass ( NODE *  ,
NODE *   
)
static
static NODE* arg_concat_gen ( struct parser_params *  ,
NODE *  ,
NODE *   
)
static
static int arg_var_gen ( struct parser_params *  ,
ID   
)
static
static NODE* aryset_gen ( struct parser_params *  ,
NODE *  ,
NODE *   
)
static
RUBY_EXTERN double asinh ( double  )

Definition at line 52 of file acosh.c.

RUBY_EXTERN double asinh ( double  )

Definition at line 52 of file acosh.c.

References BIG_CRITERIA, DBL_MANT_DIG, neg, and SMALL_CRITERIA.

static NODE* assignable_gen ( struct parser_params *  ,
ID  ,
NODE *   
)
static
RUBY_EXTERN double atanh ( double  )

Definition at line 75 of file acosh.c.

RUBY_EXTERN double atanh ( double  )

Definition at line 75 of file acosh.c.

References errno, isinf(), neg, and SMALL_CRITERIA.

static NODE* attrset_gen ( struct parser_params *  ,
NODE *  ,
ID   
)
static
static NODE* block_append_gen ( struct parser_params *  ,
NODE *  ,
NODE *   
)
static
static void block_dup_check_gen ( struct parser_params *  ,
NODE *  ,
NODE *   
)
static
static NODE* call_bin_op_gen ( struct parser_params *  ,
NODE *  ,
ID  ,
NODE *   
)
static
static NODE* call_uni_op_gen ( struct parser_params *  ,
NODE *  ,
ID   
)
static
RUBY_EXTERN double cbrt ( double  )

Definition at line 4 of file cbrt.c.

RUBY_EXTERN double cbrt ( double  )

Definition at line 4 of file cbrt.c.

static NODE* cond_gen ( struct parser_params *  ,
NODE *   
)
static
RUBY_EXTERN char* crypt ( const char *  ,
const char *   
)

Definition at line 500 of file crypt.c.

RUBY_EXTERN char* crypt ( const char *  ,
const char *   
)
DEPRECATED ( VALUE   rb_big2str0VALUE, int, int)
DEPRECATED ( VALUE   rb_big2ulong_packVALUE x)
DEPRECATED ( void   rb_quad_packchar *, VALUE)
DEPRECATED ( VALUE   rb_quad_unpackconst char *, int)
DEPRECATED ( void   rb_thread_pollingvoid)
DEPRECATED ( int   rb_thread_selectint, fd_set *, fd_set *, fd_set *, struct timeval *)
DEPRECATED ( void   rb_check_safe_strVALUE)
DEPRECATED ( int   rb_proc_exec_nint, VALUE *, const char *)
DEPRECATED ( VALUE   rb_exec_arg_initint argc, VALUE *argv, int accept_shell, struct rb_exec_arg *e)
DEPRECATED ( int   rb_exec_arg_addoptstruct rb_exec_arg *e, VALUE key, VALUE val)
DEPRECATED ( void   rb_exec_arg_fixupstruct rb_exec_arg *e)
DEPRECATED ( int   rb_run_exec_optionsconst struct rb_exec_arg *e, struct rb_exec_arg *s)
DEPRECATED ( int   rb_run_exec_options_errconst struct rb_exec_arg *e, struct rb_exec_arg *s, char *, size_t)
DEPRECATED ( int   rb_execconst struct rb_exec_arg *)
DEPRECATED ( int   rb_exec_errconst struct rb_exec_arg *, char *, size_t)
DEPRECATED ( rb_pid_t   rb_forkint *, int(*)(void *), void *, VALUE)
DEPRECATED ( rb_pid_t   rb_fork_errint *, int(*)(void *, char *, size_t), void *, VALUE, char *, size_t)
DEPRECATED ( VALUE   rb_struct_iv_getVALUE, const char *)
DEPRECATED ( VALUE   rb_thread_blocking_regionrb_blocking_function_t *func, void *data1, rb_unblock_function_t *ubf, void *data2)
static NODE* dsym_node_gen ( struct parser_params *  ,
NODE *   
)
static
RUBY_EXTERN int dup2 ( int  ,
int   
)

Definition at line 27 of file dup2.c.

RUBY_EXTERN int dup2 ( int  ,
int   
)

Definition at line 27 of file dup2.c.

References BADEXIT, errno, F_DUPFD, and fcntl().

static int dvar_curr_gen ( struct parser_params *  ,
ID   
)
static
static int dvar_defined_gen ( struct parser_params *  ,
ID  ,
int   
)
static
static int dyna_in_block_gen ( struct parser_params *  )
static
dyna_pop (   $< vars >)
static void dyna_pop_gen ( struct parser_params *  ,
const struct vtable *   
)
static
static struct vtable* dyna_push_gen ( struct parser_params *  )
staticread
RUBY_EXTERN int eaccess ( const char *  ,
int   
)

Definition at line 1146 of file file.c.

RUBY_EXTERN int eaccess ( const char *  ,
int   
)

Definition at line 1146 of file file.c.

References access, getegid(), geteuid(), getgid(), getuid(), rb_group_member(), S_IXUGO, STAT, stat, and X_OK.

RUBY_EXTERN double erf ( double  )

Definition at line 71 of file erf.c.

RUBY_EXTERN double erf ( double  )

Definition at line 71 of file erf.c.

References finite(), isnan, LOG_PI_OVER_2, and p_gamma().

RUBY_EXTERN double erfc ( double  )

Definition at line 81 of file erf.c.

RUBY_EXTERN double erfc ( double  )

Definition at line 81 of file erf.c.

References finite(), isnan, LOG_PI_OVER_2, p_gamma(), and q_gamma().

static NODE* evstr2dstr_gen ( struct parser_params *  ,
NODE *   
)
static
RUBY_EXTERN int ffs ( int  )

Definition at line 6 of file ffs.c.

RUBY_EXTERN int ffs ( int  )

Definition at line 6 of file ffs.c.

RUBY_EXTERN int finite ( double  )

Definition at line 6 of file finite.c.

RUBY_EXTERN int finite ( double  )

Definition at line 6 of file finite.c.

References isinf(), and isnan.

static void fixpos ( NODE *  ,
NODE *   
)
static
fixpos (   $$,
  $1 
) = $3
static void fixup_nodes ( NODE **  )
static
RUBY_EXTERN int flock ( int  ,
int   
)

Definition at line 125 of file flock.c.

RUBY_EXTERN int flock ( int  ,
int   
)

Definition at line 125 of file flock.c.

References flock_winnt(), NULL, rb_notimplement(), and rb_w32_asynchronize().

static ID formal_argument_gen ( struct parser_params *  ,
ID   
)
static
static NODE* gettable_gen ( struct parser_params *  ,
ID   
)
static
RUBY_EXTERN double hypot ( double  ,
double   
)

Definition at line 6 of file hypot.c.

RUBY_EXTERN double hypot ( double  ,
double   
)

Definition at line 6 of file hypot.c.

if (   $2)

Definition at line 965 of file parse.y.

References NEW_RESCUE.

if ( !  $$)
if ( c  = = ')')
if ( IS_END()||ISSPACE(c)  )

Definition at line 7732 of file parse.y.

References IS_END, lex_state, pushback, and warn_balanced.

if ( (c=nextc())  = = '=')

Definition at line 7757 of file parse.y.

References lex_state, nextc, set_yylval_id, and tOP_ASGN.

if ( IS_SPCARG(c)  )

Definition at line 7763 of file parse.y.

References arg_ambiguous, IS_SPCARG, lex_strterm, NEW_STRTERM, str_regexp, and tREGEXP_BEG.

void Init_BareVM ( void  )
void Init_eval_method ( void  )
void Init_ext ( void  )

Definition at line 2 of file dmyext.c.

Referenced by init_libraries_internal(), and process_options().

void Init_File ( void  )

Definition at line 5614 of file file.c.

References define_filetest_function(), INT2FIX, LOCK_EX, LOCK_NB, LOCK_SH, LOCK_UN, O_BINARY, O_NONBLOCK, PATH_SEP, Qnil, rb_cIO, rb_cObject, rb_define_alloc_func(), rb_define_class(), rb_define_class_under(), rb_define_const(), rb_define_global_function(), rb_define_method(), rb_define_module(), rb_define_module_under(), rb_define_singleton_method(), rb_f_test(), rb_file_atime(), rb_file_blockdev_p(), rb_file_chardev_p(), rb_file_chmod(), rb_file_chown(), rb_file_ctime(), rb_file_directory_p(), rb_file_executable_p(), rb_file_executable_real_p(), rb_file_exist_p(), rb_file_exists_p(), rb_file_file_p(), rb_file_flock(), rb_file_grpowned_p(), rb_file_identical_p(), rb_file_lstat(), rb_file_mtime(), rb_file_owned_p(), rb_file_path(), rb_file_pipe_p(), rb_file_readable_p(), rb_file_readable_real_p(), rb_file_s_absolute_path(), rb_file_s_atime(), rb_file_s_basename(), rb_file_s_chmod(), rb_file_s_chown(), rb_file_s_ctime(), rb_file_s_dirname(), rb_file_s_expand_path(), rb_file_s_extname(), rb_file_s_ftype(), rb_file_s_join(), rb_file_s_lchmod, rb_file_s_lchown, rb_file_s_link, rb_file_s_lstat(), rb_file_s_mtime(), rb_file_s_path(), rb_file_s_readlink, rb_file_s_realdirpath(), rb_file_s_realpath(), rb_file_s_rename(), rb_file_s_size(), rb_file_s_split(), rb_file_s_stat(), rb_file_s_symlink, rb_file_s_truncate, rb_file_s_umask(), rb_file_s_unlink(), rb_file_s_utime(), rb_file_sgid_p(), rb_file_size(), rb_file_size_p(), rb_file_socket_p(), rb_file_sticky_p(), rb_file_suid_p(), rb_file_symlink_p(), rb_file_truncate, rb_file_world_readable_p(), rb_file_world_writable_p(), rb_file_writable_p(), rb_file_writable_real_p(), rb_file_zero_p(), rb_include_module(), rb_io_stat(), rb_mComparable, rb_obj_freeze(), rb_stat_atime(), rb_stat_b(), rb_stat_blksize(), rb_stat_blocks(), rb_stat_c(), rb_stat_cmp(), rb_stat_ctime(), rb_stat_d(), rb_stat_dev(), rb_stat_dev_major(), rb_stat_dev_minor(), rb_stat_f(), rb_stat_ftype(), rb_stat_gid(), rb_stat_grpowned(), rb_stat_init(), rb_stat_init_copy(), rb_stat_ino(), rb_stat_inspect(), rb_stat_l(), rb_stat_mode(), rb_stat_mtime(), rb_stat_nlink(), rb_stat_owned(), rb_stat_p(), rb_stat_r(), rb_stat_R(), rb_stat_rdev(), rb_stat_rdev_major(), rb_stat_rdev_minor(), rb_stat_S(), rb_stat_s(), rb_stat_s_alloc(), rb_stat_sgid(), rb_stat_size(), rb_stat_sticky(), rb_stat_suid(), rb_stat_uid(), rb_stat_w(), rb_stat_W(), rb_stat_wr(), rb_stat_ww(), rb_stat_x(), rb_stat_X(), rb_stat_z(), rb_str_new2, and rb_usascii_str_new2.

void Init_heap ( void  )
static void Init_id ( void  )
static
void Init_native_thread ( void  )
void Init_newline ( void  )
void Init_prelude ( void  )
void Init_vm_backtrace ( void  )
void Init_vm_eval ( void  )
static ID internal_id_gen ( struct parser_params *  )
static
RUBY_EXTERN int isinf ( double  )

Definition at line 56 of file isinf.c.

RUBY_EXTERN int isinf ( double  )

Definition at line 56 of file isinf.c.

References inf(), and memcmp().

RUBY_EXTERN int isnan ( double  )

Definition at line 22 of file isnan.c.

RUBY_EXTERN int isnan ( double  )

Definition at line 22 of file isnan.c.

References double_ne().

RUBY_EXTERN double lgamma_r ( double  ,
int *   
)

Definition at line 63 of file lgamma_r.c.

RUBY_EXTERN double lgamma_r ( double  ,
int *   
)

Definition at line 63 of file lgamma_r.c.

References errno, f, LOG_PI, loggamma(), and PI.

static NODE* list_append_gen ( struct parser_params *  ,
NODE *  ,
NODE *   
)
static
static NODE* list_concat_gen ( struct parser_params *  ,
NODE *  ,
NODE *   
)
static
static int literal_concat0 ( struct parser_params *  ,
VALUE  ,
VALUE   
)
static
static NODE* literal_concat_gen ( struct parser_params *  ,
NODE *  ,
NODE *   
)
static
static int local_id_gen ( struct parser_params *  ,
ID   
)
static
static void local_pop_gen ( struct parser_params *  )
static
static void local_push_gen ( struct parser_params *  ,
int   
)
static
static ID* local_tbl_gen ( struct parser_params *  )
static
static int local_var_gen ( struct parser_params *  ,
ID   
)
static
static NODE* logop_gen ( struct parser_params *  ,
enum  node_type,
NODE *  ,
NODE *   
)
static
static int lvar_defined_gen ( struct parser_params *  ,
ID   
)
static
static NODE* match_op_gen ( struct parser_params *  ,
NODE *  ,
NODE *   
)
static
RUBY_EXTERN void* memmove ( void *  ,
const void *  ,
size_t   
)

Definition at line 7 of file memmove.c.

RUBY_EXTERN void* memmove ( void *  ,
const void *  ,
size_t   
)

Definition at line 7 of file memmove.c.

nd_set_line (   $$,
  $< num > 
)
fcall nd_set_line (   $$,
tokline   
)
static NODE* negate_lit ( NODE *  )
static
static NODE* new_args_gen ( struct parser_params *  ,
NODE *  ,
NODE *  ,
ID  ,
NODE *  ,
NODE *   
)
static
static NODE* new_args_tail_gen ( struct parser_params *  ,
NODE *  ,
ID  ,
ID   
)
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 *  ,
ID   
)
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 *  ,
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 *  ,
NODE *   
)
static
static NODE* newline_node ( NODE *  )
static
static int nlz_int ( unsigned int  x)
inlinestatic

Definition at line 116 of file internal.h.

References CHAR_BIT.

static int nlz_long ( unsigned long  x)
inlinestatic

Definition at line 146 of file internal.h.

References CHAR_BIT.

static NODE* node_assign_gen ( struct parser_params *  ,
NODE *  ,
NODE *   
)
static
static NODE* node_newnode ( struct parser_params *  ,
enum  node_type,
VALUE  ,
VALUE  ,
VALUE   
)
static
NORETURN ( void   rb_cmperrVALUE, VALUE)
NORETURN ( void   rb_invalid_strconst char *, const char *)
NORETURN ( void   rb_error_frozenconst char *)
NORETURN ( void   rb_error_arityint, int, int)
NORETURN ( void   rb_exc_raiseVALUE)
NORETURN ( void   rb_jump_tagint)
NORETURN ( PRINTF_ARGS(void rb_compile_bug(const char *, int, const char *,...), 3, 4)  )
NORETURN ( void   rb_async_bug_errnoconst char *, int)
NORETURN ( void   rb_memerrorvoid)
NORETURN ( void   rb_load_failVALUE, const char *)
NORETURN ( void   rb_insecure_operationvoid)
NORETURN ( void   rb_bug_errnoconst char *, int)
NORETURN ( void   rb_sys_failconst char *)
NORETURN ( void   rb_sys_fail_strVALUE)
NORETURN ( void   rb_mod_sys_failVALUE, const char *)
NORETURN ( void   rb_mod_sys_fail_strVALUE, VALUE)
NORETURN ( void   rb_readwrite_sys_failint, const char *)
NORETURN ( void   rb_exitint)
NORETURN ( void   rb_syserr_fail_strint, VALUE)
NORETURN ( void   rb_mod_syserr_failVALUE, int, const char *)
NORETURN ( void   rb_mod_syserr_fail_strVALUE, int, VALUE)
NORETURN ( void   rb_throwconst char *, VALUE)
ONIG_EXTERN int onigenc_apply_all_case_fold_with_map P_ ( (int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void *arg)  )
ONIG_EXTERN int onigenc_ascii_is_code_ctype P_ ( (OnigCodePoint code, unsigned int ctype, OnigEncoding enc)  )
ONIG_EXTERN int onigenc_unicode_property_name_to_ctype P_ ( (OnigEncoding enc, UChar *p, UChar *end)  )
ONIG_EXTERN int onigenc_mb2_is_code_ctype P_ ( (OnigEncoding enc, OnigCodePoint code, unsigned int ctype)  )
ONIG_EXTERN int onigenc_mb4_is_code_ctype P_ ( (OnigEncoding enc, OnigCodePoint code, unsigned int ctype)  )
ONIG_EXTERN int onigenc_unicode_is_code_ctype P_ ( (OnigCodePoint code, unsigned int ctype, OnigEncoding enc)  )
ONIG_EXTERN int onigenc_utf16_32_get_ctype_code_range P_ ( (OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint *ranges[], OnigEncoding enc)  )
ONIG_EXTERN int onigenc_unicode_ctype_code_range P_ ( (int ctype, const OnigCodePoint *ranges[])  )
ONIG_EXTERN int onigenc_unicode_get_case_fold_codes_by_str P_ ( (OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar *p, const OnigUChar *end, OnigCaseFoldCodeItem items[])  )
ONIG_EXTERN int onigenc_unicode_mbc_case_fold P_ ( (OnigEncoding enc, OnigCaseFoldType flag, const UChar **pp, const UChar *end, UChar *fold)  )
ONIG_EXTERN int onigenc_unicode_apply_all_case_fold P_ ( (OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void *arg, OnigEncoding enc)  )
ONIG_EXTERN int onigenc_with_ascii_strncmp P_ ( (OnigEncoding enc, const UChar *p, const UChar *end, const UChar *sascii, int n)  )
ONIG_EXTERN int onigenc_with_ascii_strnicmp P_ ( (OnigEncoding enc, const UChar *p, const UChar *end, const UChar *sascii, int n)  )
ONIG_EXTERN UChar* onigenc_step P_ ( (OnigEncoding enc, const UChar *p, const UChar *end, int n)  )
ONIG_EXTERN int onigenc_init P_ ( (void)  )
void onig_null_warn P_ ( (const char *s)  )
ONIG_EXTERN void onig_set_warn_func P_ ( (OnigWarnFunc f)  )
ONIG_EXTERN int onig_new P_ ( (OnigRegex *, const OnigUChar *pattern, const OnigUChar *pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType *syntax, OnigErrorInfo *einfo)  )
ONIG_EXTERN int onig_reg_init P_ ( (OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, const OnigSyntaxType *syntax)  )
ONIG_EXTERN int onig_new_deluxe P_ ( (OnigRegex *reg, const OnigUChar *pattern, const OnigUChar *pattern_end, OnigCompileInfo *ci, OnigErrorInfo *einfo)  )
ONIG_EXTERN void onig_free P_ ( (OnigRegex)  )
ONIG_EXTERN int onig_recompile_deluxe P_ ( (OnigRegex reg, const OnigUChar *pattern, const OnigUChar *pattern_end, OnigCompileInfo *ci, OnigErrorInfo *einfo)  )
ONIG_EXTERN void onig_region_init P_ ( (OnigRegion *region)  )
ONIG_EXTERN void onig_region_free P_ ( (OnigRegion *region, int free_self)  )
ONIG_EXTERN void onig_region_copy P_ ( (OnigRegion *to, OnigRegion *from)  )
ONIG_EXTERN int onig_region_resize P_ ( (OnigRegion *region, int n)  )
ONIG_EXTERN int onig_region_set P_ ( (OnigRegion *region, int at, int beg, int end)  )
ONIG_EXTERN int onig_name_to_group_numbers P_ ( (OnigRegex reg, const OnigUChar *name, const OnigUChar *name_end, int **nums)  )
ONIG_EXTERN int onig_foreach_name P_ ( (OnigRegex reg, int(*func)(const OnigUChar *, const OnigUChar *, int, int *, OnigRegex, void *), void *arg)  )
ONIG_EXTERN int onig_capture_tree_traverse P_ ( (OnigRegion *region, int at, int(*callback_func)(int, OnigPosition, OnigPosition, int, int, void *), void *arg)  )
ONIG_EXTERN unsigned int onig_get_syntax_op P_ ( (OnigSyntaxType *syntax)  )
ONIG_EXTERN void onig_set_syntax_op P_ ( (OnigSyntaxType *syntax, unsigned int op)  )
ONIG_EXTERN void onig_set_syntax_op2 P_ ( (OnigSyntaxType *syntax, unsigned int op2)  )
ONIG_EXTERN void onig_set_syntax_behavior P_ ( (OnigSyntaxType *syntax, unsigned int behavior)  )
ONIG_EXTERN int onig_set_meta_char P_ ( (OnigSyntaxType *syntax, unsigned int what, OnigCodePoint code)  )
ONIG_EXTERN int onig_set_match_stack_limit_size P_ ( (unsigned int size)  )
static int parser_yyerror ( struct parser_params *  ,
const char *   
)
static
PRINTF_ARGS ( VALUE   rb_enc_sprintfrb_encoding *, const char *,...,
2  ,
3   
)
PRINTF_ARGS ( NORETURN(void rb_enc_raise(rb_encoding *, VALUE, const char *,...))  ,
3  ,
4   
)
PRINTF_ARGS ( NORETURN(void rb_loaderror(const char *,...))  ,
1  ,
2   
)
PRINTF_ARGS ( NORETURN(void rb_loaderror_with_path(VALUE path, const char *,...))  ,
2  ,
3   
)
PRINTF_ARGS ( NORETURN(void rb_name_error(ID, const char *,...))  ,
2  ,
3   
)
PRINTF_ARGS ( NORETURN(void rb_name_error_str(VALUE, const char *,...))  ,
2  ,
3   
)
PRINTF_ARGS ( void   rb_compile_errorconst char *, int, const char *,...,
3  ,
4   
)
PRINTF_ARGS ( void   rb_compile_error_with_encconst char *, int, void *, const char *,...,
4  ,
5   
)
PRINTF_ARGS ( void   rb_compile_error_appendconst char *,...,
1  ,
2   
)
PRINTF_ARGS ( void   ruby_debug_printfconst char *,...,
1  ,
2   
)
PRINTF_ARGS ( VALUE   rb_sprintfconst char *,...,
1  ,
2   
)
PRINTF_ARGS ( VALUE   rb_str_catfVALUE, const char *,...,
2  ,
3   
)
PRINTF_ARGS ( NORETURN(void rb_raise(VALUE, const char *,...))  ,
2  ,
3   
)
PRINTF_ARGS ( NORETURN(void rb_fatal(const char *,...))  ,
1  ,
2   
)
PRINTF_ARGS ( NORETURN(void rb_bug(const char *,...))  ,
1  ,
2   
)
PRINTF_ARGS ( void   rb_warningconst char *,...,
1  ,
2   
)
PRINTF_ARGS ( void   rb_compile_warningconst char *, int, const char *,...,
3  ,
4   
)
PRINTF_ARGS ( int   ruby_snprintfchar *str, size_t n, char const *fmt,...,
3  ,
4   
)
ONIG_EXTERN int onig_error_code_to_str PV_ ( (OnigUChar *s, OnigPosition err_code,...)  )
size_t rb_absint_numwords ( VALUE  val,
size_t  word_numbits,
size_t *  nlz_bits_ret 
)
int rb_absint_singlebit_p ( VALUE  val)

Definition at line 3428 of file bignum.c.

References BDIGIT, bdigit_roomof, BDIGITS, BIGDN, BIGLO, dp, FIX2LONG, FIXNUM_P, numberof, POW2_P, rb_to_int(), and RBIGNUM_LEN.

Referenced by rb_big_bit_length(), and rb_str_format().

size_t rb_absint_size ( VALUE  val,
int *  nlz_bits_ret 
)
void rb_add_event_hook ( rb_event_hook_func_t  func,
rb_event_flag_t  events,
VALUE  data 
)
void rb_alias ( VALUE  ,
ID  ,
ID   
)
void rb_alias_variable ( ID  ,
ID   
)
void* rb_alloc_tmp_buffer ( volatile VALUE *  store,
long  len 
)

Definition at line 925 of file string.c.

References rb_str_tmp_new(), and RSTRING_PTR.

VALUE rb_any_to_s ( VALUE  )

Definition at line 453 of file object.c.

References CLASS_OF, OBJ_INFECT, PRIsVALUE, rb_class_name(), and rb_sprintf().

VALUE rb_apply ( VALUE  recv,
ID  mid,
VALUE  args 
)

Calls a method.

Parameters
recvreceiver of the method
midan ID that represents the name of the method
argsan Array object which contains method arguments
Precondition
args must refer an Array object.

Definition at line 746 of file vm_eval.c.

References ALLOCA_N, argc, argv, CALL_FCALL, MEMCPY, OBJ_FREEZE, RARRAY_CONST_PTR, RARRAY_LENINT, RARRAY_PTR, rb_ary_subseq(), rb_call(), RB_GC_GUARD, and RBASIC_CLEAR_CLASS.

VALUE rb_Array ( VALUE  )

Definition at line 3015 of file object.c.

References NIL_P, rb_ary_new3, rb_check_array_type(), rb_check_convert_type(), and T_ARRAY.

VALUE rb_ary_aref ( int  ,
VALUE *  ,
VALUE   
)
VALUE rb_ary_assoc ( VALUE  ,
VALUE   
)

Definition at line 3636 of file array.c.

References NIL_P, Qnil, RARRAY_AREF, RARRAY_LEN, rb_check_array_type(), and rb_equal().

Referenced by Init_Array().

VALUE rb_ary_cat ( VALUE  ,
const VALUE *  ,
long   
)
VALUE rb_ary_clear ( VALUE  )
VALUE rb_ary_cmp ( VALUE  ,
VALUE   
)

Definition at line 3876 of file array.c.

References INT2FIX, NIL_P, Qnil, Qundef, RARRAY_LEN, rb_check_array_type(), rb_exec_recursive_paired(), and recursive_cmp().

Referenced by Init_Array().

VALUE rb_ary_concat ( VALUE  ,
VALUE   
)
VALUE rb_ary_delete ( VALUE  ,
VALUE   
)
VALUE rb_ary_delete_at ( VALUE  ,
long   
)
void rb_ary_delete_same ( VALUE  ,
VALUE   
)

Definition at line 2927 of file array.c.

References ary_resize_smaller(), RARRAY_AREF, RARRAY_LEN, and rb_ary_store().

VALUE rb_ary_dup ( VALUE  )
VALUE rb_ary_each ( VALUE  )
VALUE rb_ary_entry ( VALUE  ,
long   
)

Definition at line 1171 of file array.c.

References RARRAY_LEN, and rb_ary_elt().

Referenced by addrinfo_initialize(), addrinfo_ip_address(), addrinfo_ip_unpack(), addrinfo_mload(), ary2ptr_dispparams(), ary_len_of_dim(), ary_new_dim(), check_exec_redirect(), check_type_val2variant(), collect_caller_bindings(), dimension(), divmodv(), enc_register_at(), EVENTSINK_Invoke(), evs_entry(), foletypelib_initialize(), folevariant_initialize(), folevariant_s_array(), frame_get(), generate_json_array(), generate_json_object(), get_loaded_features_index(), hash2named_arg(), initialize_params(), iseq_build_from_ary_body(), iseq_data_to_ary(), iseq_load(), JSON_parse_string(), lazy_zip_arrays_func(), lep_svar_get(), match_i(), ole_ary_m_entry(), ole_invoke(), ole_invoke2(), ole_search_event(), ole_search_event_at(), oletypelib_search_registry2(), ossl_asn1cons_to_der(), ossl_call_client_cert_cb(), ossl_call_session_get_cb(), ossl_call_session_new_cb(), ossl_call_session_remove_cb(), ossl_sslctx_set_ciphers(), ossl_x509name_init_i(), parse_main(), path_split(), pty_close_pty(), rb_ary_aref(), rb_ary_at(), rb_ary_bsearch(), rb_ary_product(), rb_ary_values_at(), rb_debug_inspector_frame_binding_get(), rb_debug_inspector_frame_class_get(), rb_debug_inspector_frame_iseq_get(), rb_debug_inspector_frame_self_get(), rb_econv_init_by_convpath(), rb_enc_aliases_enc_i(), rb_enc_from_encoding_index(), rb_execarg_addopt(), rb_iseq_build_from_ary(), rb_iseq_disasm(), rb_reg_s_union(), rb_reg_s_union_m(), rb_struct_each_pair(), rb_struct_to_h(), reduce0(), rescue_callback(), select_internal(), set_state_ivars(), start_document(), time_timespec(), and wdivmod().

void rb_ary_free ( VALUE  )
VALUE rb_ary_freeze ( VALUE  )

Definition at line 397 of file array.c.

References rb_obj_freeze().

Referenced by coverage_result_i(), curry(), make_curry_proc(), and rb_add_method().

VALUE rb_ary_includes ( VALUE  ,
VALUE   
)

Definition at line 3817 of file array.c.

References Qfalse, Qtrue, RARRAY_AREF, RARRAY_LEN, and rb_equal().

Referenced by env_replace_i(), and Init_Array().

VALUE rb_ary_join ( VALUE  ,
VALUE   
)
VALUE rb_ary_last ( int  ,
VALUE *  ,
VALUE   
)

Definition at line 1329 of file array.c.

References ary_take_first_or_last(), ARY_TAKE_LAST, Qnil, RARRAY_AREF, and RARRAY_LEN.

Referenced by Init_Array(), and range_last().

void rb_ary_modify ( VALUE  )
VALUE rb_ary_new ( void  )

Definition at line 495 of file array.c.

References RARRAY_EMBED_LEN_MAX, and rb_ary_new2.

Referenced by add_event_call_back(), add_modules(), addrinfo_list_new(), argf_readlines(), ary_new_dim(), backtrace_collect(), cbsubst_get_extra_args_tbl(), cbsubst_table_setup(), check_exec_redirect1(), class_instance_method_list(), collect_caller_bindings(), collect_values_of_values(), debug_lines(), dir_globs(), econv_convpath(), enum_collect(), enum_cycle(), enum_drop(), enum_drop_while(), enum_find_all(), enum_flat_map(), enum_grep(), enum_partition(), enum_reject(), enum_sort_by(), enum_take_while(), enum_to_a(), enum_zip(), env_each_pair(), env_keys(), env_to_a(), env_values(), env_values_at(), EVENTSINK_Invoke(), fdbm_keys(), fdbm_select(), fdbm_to_a(), fdbm_values(), fev_initialize(), fgdbm_keys(), fgdbm_select(), fgdbm_to_a(), fgdbm_values(), filename_completion_proc_call(), foletype_s_progids(), foletypelib_ole_types(), foletypelib_s_typelibs(), fsdbm_delete_if(), fsdbm_keys(), fsdbm_select(), fsdbm_to_a(), fsdbm_values(), gc_profile_record_get(), Init_GC(), Init_load(), Init_ossl_asn1(), Init_VM(), Init_win32ole(), int_ossl_asn1_decode0_cons(), iseq_data_to_ary(), JSON_parse_array(), lep_svar_set(), make_addrinfo(), make_hostent_internal(), nsdr(), ole_method_params(), ole_method_return_type_detail(), ole_methods(), ole_methods_from_typeinfo(), ole_param_ole_type_detail(), ole_type_impl_ole_types(), ole_variable_ole_type_detail(), ole_variables(), ole_variant2val(), ossl_asn1_decode0(), ossl_asn1_decode_all(), ossl_get_errors(), ossl_pkcs7_get_recipient(), ossl_pkcs7_get_signer(), ossl_sslctx_get_ciphers(), ossl_x509_get_extensions(), ossl_x509crl_get_extensions(), ossl_x509crl_get_revoked(), ossl_x509name_to_a(), ossl_x509req_get_attributes(), ossl_x509revoked_get_extensions(), ossl_x509stctx_get_chain(), pack_unpack(), parse(), prepare_iseq_build(), proc_curry(), proc_waitall(), rb_ary_and(), rb_ary_diff(), rb_ary_drop(), rb_ary_reject(), rb_call_end_proc(), rb_check_exec_env(), rb_enc_aliases(), rb_execarg_addopt(), rb_f_global_variables(), rb_f_local_variables(), rb_f_untrace_var(), rb_fiddle_ptr_free_get(), rb_gzreader_readlines(), rb_insn_operand_intern(), rb_insns_name_array(), rb_io_readlines(), rb_iseq_disasm(), rb_iseq_line_trace_all(), rb_mod_ancestors(), rb_mod_included_modules(), rb_mod_nesting(), rb_obj_instance_variables(), rb_obj_singleton_methods(), rb_push_glob(), rb_reg_names(), rb_scan_args(), rb_str_enumerate_bytes(), rb_str_enumerate_lines(), rb_str_scan(), rb_str_split_m(), rb_struct_select(), rb_thread_keys(), rb_thread_list(), rb_thread_variables(), reachable_objects_from(), reduce0(), save_env(), save_redirect_fd(), search_convpath_i(), select_internal(), sock_s_gethostbyaddr(), strio_readlines(), thgroup_list(), tk_hash_kv(), username_completion_proc_call(), vm_backtrace_to_ary(), vm_expandarray(), vm_yield_setup_block_args(), wmap_keys(), and wmap_values().

VALUE rb_ary_new_capa ( long  capa)
VALUE rb_ary_new_from_args ( long  n,
  ... 
)

Definition at line 501 of file array.c.

References ARY_SET_LEN, RARRAY_ASET, and rb_ary_new2.

Referenced by rb_ary_sample().

VALUE rb_ary_new_from_values ( long  n,
const VALUE *  elts 
)

Definition at line 520 of file array.c.

References ary_memcpy(), ARY_SET_LEN, and rb_ary_new2.

Referenced by lazy_zip_func(), and rb_ary_sample().

VALUE rb_ary_plus ( VALUE  ,
VALUE   
)
VALUE rb_ary_pop ( VALUE  )
VALUE rb_ary_push ( VALUE  ,
VALUE   
)

Definition at line 896 of file array.c.

References ary_ensure_room_for_push(), ARY_SET_LEN, RARRAY_ASET, and RARRAY_LEN.

Referenced by add_event_call_back(), add_modules(), addrinfo_list_new(), ary2list(), ary2list2(), ary_reject(), assoc2kv(), assoc2kv_enc(), backtrace_collect(), BigDecimal_split(), callback(), cbsubst_scan_args(), cdhash_each(), check_exec_env_i(), check_exec_redirect1(), chunk_ii(), collect_all(), collect_caller_bindings_cfunc(), collect_caller_bindings_iseq(), collect_i(), collect_local_variables_in_iseq(), collect_trace(), collect_values(), compile_array_(), cv_list_i(), cycle_i(), define_final0(), drop_i(), drop_while_i(), each_cons_i(), each_slice_i(), econv_convpath(), enc_names_i(), env_each_pair(), env_keys(), env_to_a(), env_values(), env_values_at(), EVENTSINK_Invoke(), evs_push(), fdbm_delete_if(), fdbm_keys(), fdbm_select(), fdbm_to_a(), fdbm_values(), fdbm_values_at(), features_index_add_single(), fgdbm_delete_if(), fgdbm_keys(), fgdbm_select(), fgdbm_to_a(), fgdbm_values(), fgdbm_values_at(), filename_completion_proc_call(), find_all_i(), first_i(), flat_map_i(), flatten(), foletype_s_progids(), foletypelib_s_typelibs(), fsdbm_delete_if(), fsdbm_keys(), fsdbm_select(), fsdbm_to_a(), fsdbm_values(), fsdbm_values_at(), gc_profile_record_get(), generator_each(), grep_i(), grep_iter_i(), group_by_i(), gvar_i(), Init_Array(), Init_Encoding(), Init_ossl_ssl(), Init_VM(), ins_methods_push(), int_ossl_asn1_decode0_cons(), ip_ruby_cmd(), iseq_add_mark_object_compile_time(), iseq_data_to_ary(), iseq_set_arguments(), ivar_i(), JSON_parse_array(), JSON_parse_string(), keys_i(), lazy_init_iterator(), lazy_zip(), lazy_zip_arrays_func(), lazy_zip_func(), lex_getline(), lib_eventloop_launcher(), lib_split_tklist_core(), list_i(), make_addrinfo(), make_hostent_internal(), match_array(), match_i(), mk_ary_of_str(), nsdr(), ole_method_params(), ole_methods_sub(), ole_type_impl_ole_types(), ole_typedesc2val(), ole_types_from_typelib(), ole_usertype2val(), ole_variables(), open_key_args(), ossl_asn1_decode0(), ossl_asn1_decode_all(), ossl_get_errors(), ossl_pkcs7_get_recipient(), ossl_pkcs7_get_signer(), ossl_ssl_cipher_to_ary(), ossl_ssl_get_peer_cert_chain(), ossl_sslctx_get_ciphers(), ossl_sslctx_session_get_cb(), ossl_sslctx_session_new_cb(), ossl_sslctx_session_remove_cb(), ossl_x509_get_extensions(), ossl_x509crl_get_extensions(), ossl_x509crl_get_revoked(), ossl_x509name_to_a(), ossl_x509req_get_attributes(), ossl_x509revoked_get_extensions(), ossl_x509stctx_get_chain(), parse(), partition_i(), proc_waitall(), push_include(), push_kv(), push_kv_enc(), push_pattern(), push_value(), queue_do_pop(), queue_do_push(), r_object0(), random_dump(), rb_ary_and(), rb_ary_collect(), rb_ary_diff(), rb_ary_product(), rb_ary_select(), rb_ary_zip(), rb_condvar_wait(), rb_construct_expanded_load_path(), rb_enc_name_list_i(), rb_execarg_addopt(), rb_f_global_variables(), rb_f_local_variables(), rb_f_untrace_var(), rb_fiddle_ptr_free_get(), rb_gc_register_mark_object(), rb_get_kwargs(), rb_get_values_at(), rb_gzreader_readlines(), rb_hash_values_at(), rb_insn_operand_intern(), rb_insns_name_array(), rb_io_readlines(), rb_iseq_add_mark_object(), rb_iseq_parameters(), rb_local_constants_i(), rb_mod_ancestors(), rb_mod_included_modules(), rb_mod_nesting(), rb_provide_feature(), rb_require_safe(), rb_str_enumerate_bytes(), rb_str_enumerate_chars(), rb_str_enumerate_codepoints(), rb_str_enumerate_lines(), rb_str_scan(), rb_str_split_m(), rb_struct_define(), rb_struct_define_under(), rb_struct_define_without_accessor(), rb_struct_define_without_accessor_under(), rb_struct_select(), rb_szqueue_push(), rb_thread_s_handle_interrupt(), rb_threadptr_pending_interrupt_enque(), rb_uninterruptible(), rb_zlib_crc_table(), reachable_object_from_i(), reg_names_iter(), reject_i(), ruby_init_loadpath_safe(), ruby_set_argv(), ruby_vm_at_exit(), save_env_i(), save_redirect_fd(), scan_once(), select_internal(), set_argv(), slicebefore_ii(), sock_s_gethostbyaddr(), strio_readlines(), symbols_i(), take_i(), take_while_i(), thgroup_list_i(), thread_keys_i(), thread_list_i(), tk_conv_args(), to_a_i(), unnamed_parameters(), username_completion_proc_call(), values_i(), waitall_each(), wmap_keys_i(), wmap_values_i(), yycompile0(), yyparse(), zip_ary(), and zip_i().

VALUE rb_ary_rassoc ( VALUE  ,
VALUE   
)

Definition at line 3669 of file array.c.

References Qnil, RARRAY_AREF, RARRAY_LEN, rb_equal(), RB_TYPE_P, and T_ARRAY.

Referenced by Init_Array().

VALUE rb_ary_replace ( VALUE  copy,
VALUE  orig 
)
VALUE rb_ary_resize ( VALUE  ary,
long  len 
)

expands or shrinks ary to len elements.

expanded region will be filled with Qnil.

Parameters
aryan array
lennew size
Returns
ary
Postcondition
the size of ary is len.

Definition at line 1614 of file array.c.

References ARY_CAPA, ARY_DEFAULT_SIZE, ary_discard(), ary_double_capa(), ARY_EMBED_P, ARY_EMBED_PTR, ARY_HEAP_PTR, ARY_MAX_SIZE, ary_mem_clear(), ARY_SET_CAPA, ARY_SET_EMBED_LEN, ARY_SET_HEAP_LEN, ARY_SET_LEN, MEMCPY, RARRAY, RARRAY_EMBED_LEN_MAX, RARRAY_LEN, rb_ary_modify(), rb_eIndexError, rb_raise(), and SIZED_REALLOC_N.

Referenced by enum_sort_by(), and rb_get_values_at().

VALUE rb_ary_resurrect ( VALUE  ary)

Definition at line 1897 of file array.c.

References RARRAY_CONST_PTR, RARRAY_LEN, and rb_ary_new4.

Referenced by obj_resurrect().

VALUE rb_ary_reverse ( VALUE  )

Definition at line 2175 of file array.c.

References ary_reverse(), RARRAY_LEN, RARRAY_PTR_USE, and rb_ary_modify().

Referenced by collect_caller_bindings(), and rb_ary_reverse_bang().

VALUE rb_ary_rotate ( VALUE  ,
long   
)

Definition at line 2239 of file array.c.

References ary_reverse(), Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_modify(), and rotate_count().

Referenced by rb_ary_rotate_bang().

void rb_ary_set_len ( VALUE  ,
long   
)
VALUE rb_ary_shared_with_p ( VALUE  ,
VALUE   
)

Definition at line 425 of file array.c.

References ARY_EMBED_P, ARY_SHARED_P, Qfalse, Qtrue, and RARRAY.

Referenced by get_loaded_features_index(), and rb_get_expanded_load_path().

VALUE rb_ary_shift ( VALUE  )
VALUE rb_ary_sort ( VALUE  )

Definition at line 2506 of file array.c.

References ary_sort_data::ary, rb_ary_dup(), and rb_ary_sort_bang().

Referenced by enum_sort(), and Init_Array().

VALUE rb_ary_sort_bang ( VALUE  )
void rb_ary_store ( VALUE  ,
long  ,
VALUE   
)
VALUE rb_ary_subseq ( VALUE  ,
long  ,
long   
)
VALUE rb_ary_tmp_new ( long  )
VALUE rb_ary_to_ary ( VALUE  )

Definition at line 1522 of file array.c.

References NIL_P, rb_ary_new3, and rb_check_array_type().

Referenced by rb_ary_splice(), and vm_expandarray().

VALUE rb_ary_to_s ( VALUE  )

Definition at line 2095 of file array.c.

References rb_ary_inspect().

VALUE rb_ary_unshift ( VALUE  ,
VALUE   
)

Definition at line 1153 of file array.c.

References rb_ary_unshift_m().

Referenced by check_funcall_exec(), ole_invoke(), parser_set_encode(), and vm_call0_body().

int rb_ascii8bit_encindex ( void  )

Definition at line 1236 of file encoding.c.

References rb_ascii8bit_encindex.

rb_encoding* rb_ascii8bit_encoding ( void  )
VALUE rb_assoc_new ( VALUE  ,
VALUE   
)
void rb_attr ( VALUE  ,
ID  ,
int  ,
int  ,
int   
)
VALUE rb_attr_get ( VALUE  ,
ID   
)

Definition at line 1127 of file variable.c.

References Qnil, and rb_ivar_lookup().

void rb_autoload ( VALUE  ,
ID  ,
const char *   
)
VALUE rb_autoload_load ( VALUE  ,
ID   
)
VALUE rb_autoload_p ( VALUE  ,
ID   
)
static void rb_backref_error_gen ( struct parser_params *  ,
NODE *   
)
static
VALUE rb_backref_get ( void  )

Definition at line 912 of file vm.c.

References vm_svar_get().

void rb_backref_set ( VALUE  )

Definition at line 918 of file vm.c.

References vm_svar_set().

void rb_backtrace ( void  )

Definition at line 782 of file vm_backtrace.c.

References vm_backtrace_print().

int rb_backtrace_p ( VALUE  obj)

Definition at line 417 of file vm_backtrace.c.

References rb_typeddata_is_kind_of().

void rb_backtrace_print_as_bugreport ( void  )
void rb_backtrace_print_to ( VALUE  output)
VALUE rb_backtrace_to_location_ary ( VALUE  obj)
VALUE rb_backtrace_to_str_ary ( VALUE  obj)
double rb_big2dbl ( VALUE  )
SIGNED_VALUE rb_big2long ( VALUE  )

Definition at line 5099 of file bignum.c.

References big2ulong(), LONG_MAX, LONG_MIN, rb_eRangeError, rb_raise(), and RBIGNUM_POSITIVE_P.

Referenced by rb_num2long().

VALUE rb_big2str ( VALUE  ,
int   
)

Definition at line 5012 of file bignum.c.

References rb_big2str1().

Referenced by GetVpValueWithPrec(), rb_big_to_s(), and rb_str_format().

VALUE rb_big2str_generic ( VALUE  x,
int  base 
)

Definition at line 4890 of file bignum.c.

References big2str_generic().

VALUE rb_big2str_poweroftwo ( VALUE  x,
int  base 
)

Definition at line 4807 of file bignum.c.

References big2str_base_poweroftwo().

VALUE rb_big2ulong ( VALUE  )

Definition at line 5082 of file bignum.c.

References big2ulong(), LONG_MAX, LONG_MIN, rb_eRangeError, rb_raise(), and RBIGNUM_POSITIVE_P.

Referenced by rb_num2ulong_internal(), and rb_num_to_uint().

void rb_big_2comp ( VALUE  )

Definition at line 3033 of file bignum.c.

References get2comp().

VALUE rb_big_and ( VALUE  ,
VALUE   
)
VALUE rb_big_clone ( VALUE  )

Definition at line 3004 of file bignum.c.

References BDIGIT, BDIGITS, bignew_1(), CLASS_OF, MEMCPY, RBIGNUM_LEN, and RBIGNUM_SIGN.

Referenced by rb_big_abs(), rb_big_neg(), and rb_big_uminus().

VALUE rb_big_cmp ( VALUE  ,
VALUE   
)
VALUE rb_big_div ( VALUE  ,
VALUE   
)

Definition at line 6159 of file bignum.c.

References rb_big_divide().

Referenced by fix_divide(), and Init_Bignum().

VALUE rb_big_divmod ( VALUE  ,
VALUE   
)
VALUE rb_big_divrem_normal ( VALUE  x,
VALUE  y 
)
VALUE rb_big_eq ( VALUE  ,
VALUE   
)
VALUE rb_big_eql ( VALUE  ,
VALUE   
)

Definition at line 5559 of file bignum.c.

References BDIGIT, BDIGITS, MEMCMP, Qfalse, Qtrue, RB_BIGNUM_TYPE_P, RBIGNUM_LEN, and RBIGNUM_SIGN.

Referenced by Init_Bignum().

VALUE rb_big_fdiv ( VALUE  x,
VALUE  y 
)
VALUE rb_big_idiv ( VALUE  ,
VALUE   
)

Definition at line 6172 of file bignum.c.

References rb_big_divide(), and rb_intern.

Referenced by Init_Bignum().

VALUE rb_big_lshift ( VALUE  ,
VALUE   
)
VALUE rb_big_minus ( VALUE  ,
VALUE   
)
VALUE rb_big_modulo ( VALUE  ,
VALUE   
)

Definition at line 6187 of file bignum.c.

References bigdivmod(), bignorm(), FIX2LONG, FIXNUM_P, RB_BIGNUM_TYPE_P, rb_int2big(), and rb_num_coerce_bin().

Referenced by fix_mod(), Init_Bignum(), and mod().

VALUE rb_big_mul ( VALUE  ,
VALUE   
)
VALUE rb_big_mul_balance ( VALUE  x,
VALUE  y 
)
VALUE rb_big_mul_karatsuba ( VALUE  x,
VALUE  y 
)
VALUE rb_big_mul_normal ( VALUE  x,
VALUE  y 
)

Definition at line 1540 of file bignum.c.

References bary_mul_normal(), BDIGITS, bignew, RB_GC_GUARD, RBIGNUM_LEN, and RBIGNUM_SIGN.

VALUE rb_big_mul_toom3 ( VALUE  x,
VALUE  y 
)
VALUE rb_big_new ( long  ,
int   
)

Definition at line 2998 of file bignum.c.

References bignew.

VALUE rb_big_norm ( VALUE  )

Definition at line 3136 of file bignum.c.

References bignorm().

Referenced by fix_aref(), and rand_range().

VALUE rb_big_or ( VALUE  ,
VALUE   
)
void rb_big_pack ( VALUE  val,
unsigned long *  buf,
long  num_longs 
)
VALUE rb_big_plus ( VALUE  ,
VALUE   
)
VALUE rb_big_pow ( VALUE  ,
VALUE   
)
void rb_big_resize ( VALUE  big,
long  len 
)

Definition at line 2973 of file bignum.c.

References rb_big_realloc(), and RBIGNUM_SET_LEN.

Referenced by big_extend_carry(), bigfixize(), and bigtrunc().

VALUE rb_big_rshift ( VALUE  ,
VALUE   
)
VALUE rb_big_sq_fast ( VALUE  x)

Definition at line 1609 of file bignum.c.

References bary_sq_fast(), BDIGITS, bignew, RB_GC_GUARD, and RBIGNUM_LEN.

VALUE rb_big_uminus ( VALUE  x)

Definition at line 5576 of file bignum.c.

References bignorm(), rb_big_clone(), RBIGNUM_SET_SIGN, and RBIGNUM_SIGN.

Referenced by Init_Bignum(), and rand_int().

VALUE rb_big_unpack ( unsigned long *  buf,
long  num_longs 
)
VALUE rb_big_xor ( VALUE  ,
VALUE   
)
int rb_bigzero_p ( VALUE  x)

Definition at line 2903 of file bignum.c.

References BIGZEROP.

Referenced by rand_int(), and rand_range().

VALUE rb_binding_new ( void  )

Definition at line 347 of file proc.c.

References rb_thread_struct::cfp, GET_THREAD(), and rb_binding_new_with_cfp().

int rb_block_arity ( void  )
VALUE rb_block_call ( VALUE  ,
ID  ,
int  ,
const VALUE *  ,
rb_block_call_func_t  ,
VALUE   
)
int rb_block_given_p ( void  )

Definition at line 712 of file eval.c.

References rb_thread_struct::cfp, FALSE, GET_THREAD(), rb_vm_control_frame_block_ptr(), and TRUE.

Referenced by argf_bytes(), argf_chars(), argf_codepoints(), argf_lines(), dh_generate(), dir_s_chdir(), dir_s_glob(), dir_s_open(), dsa_generate(), enum_chunk(), enum_count(), enum_find_index(), enum_grep(), enum_inject(), enum_max(), enum_min(), enum_minmax(), enum_slice_before(), enum_zip(), enumerator_each(), enumerator_initialize(), env_delete_m(), env_fetch(), env_update_i(), etc_group(), etc_passwd(), fdbm_delete(), fdbm_fetch(), fdbm_fetch_m(), fdbm_s_open(), fgdbm_fetch(), fgdbm_fetch_m(), fgdbm_s_open(), fsdbm_delete(), fsdbm_fetch(), fsdbm_fetch_m(), fsdbm_s_open(), generator_initialize(), gzfile_wrap(), lazy_drop_while(), lazy_flat_map(), lazy_grep(), lazy_initialize(), lazy_map(), lazy_reject(), lazy_select(), lazy_take_while(), lazy_to_enum(), lazy_zip(), mSyslog_open(), obj_to_enum(), ossl_pem_passwd_cb(), ossl_x509store_verify(), p_gid_switch(), p_uid_switch(), pack_unpack(), path_each_line(), path_open(), path_s_glob(), path_sub(), proc_call(), pty_getpty(), pty_open(), range_max(), range_min(), rb_ary_count(), rb_ary_delete(), rb_ary_fetch(), rb_ary_fill(), rb_ary_index(), rb_ary_initialize(), rb_ary_product(), rb_ary_rindex(), rb_ary_sort_bang(), rb_ary_uniq(), rb_ary_uniq_bang(), rb_ary_zip(), rb_dlhandle_initialize(), rb_f_at_exit(), rb_f_open(), rb_fiddle_handle_initialize(), rb_gzreader_bytes(), rb_gzreader_lines(), rb_hash_delete(), rb_hash_fetch_m(), rb_hash_initialize(), rb_hash_update(), rb_io_bytes(), rb_io_chars(), rb_io_codepoints(), rb_io_lines(), rb_io_s_new(), rb_io_s_open(), rb_io_s_pipe(), rb_io_s_popen(), rb_iterator_p(), rb_method_call(), rb_mod_initialize(), rb_mutex_synchronize_m(), rb_need_block(), rb_reg_match_m(), rb_scan_args(), rb_str_enumerate_bytes(), rb_str_enumerate_chars(), rb_str_enumerate_codepoints(), rb_str_enumerate_lines(), rb_str_match_m(), rb_str_scan(), rb_str_scrub(), rb_str_sub_bang(), rb_struct_s_def(), rb_thread_s_handle_interrupt(), rsa_generate(), specific_eval(), strio_bytes(), strio_chars(), strio_codepoints(), strio_lines(), strio_s_open(), thread_initialize(), tk_s_new(), tracepoint_disable_m(), tracepoint_enable_m(), tracepoint_new_s(), zstream_detach_buffer(), zstream_expand_buffer(), and zstream_run().

VALUE rb_block_lambda ( void  )

Definition at line 655 of file proc.c.

References proc_new(), rb_cProc, and TRUE.

VALUE rb_block_proc ( void  )

Definition at line 641 of file proc.c.

References FALSE, proc_new(), and rb_cProc.

int rb_bug_reporter_add ( void(*)(FILE *, void *)  func,
void *  data 
)
const char* rb_builtin_class_name ( VALUE  x)

Definition at line 451 of file error.c.

References FIXNUM_P, NIL_P, rb_obj_classname(), RB_TYPE_P, SYMBOL_P, T_FALSE, and T_TRUE.

Referenced by enum_to_h_i(), rb_ary_to_h(), and rb_hash_s_create().

const char* rb_builtin_type_name ( int  t)

Definition at line 440 of file error.c.

References name, and numberof.

Referenced by rb_check_type(), and w_object().

void rb_call_end_proc ( VALUE  data)

Definition at line 11 of file eval_jump.c.

References rb_ary_new(), and rb_proc_call().

Referenced by m_core_set_postexe(), and rb_f_at_exit().

void rb_call_inits ( void  )

Definition at line 18 of file inits.c.

References CALL, signal(), sym, and version().

VALUE rb_call_super ( int  ,
const VALUE *   
)

Definition at line 274 of file vm_eval.c.

References GET_THREAD(), PASS_PASSED_BLOCK, and vm_call_super().

VALUE rb_catch ( const char *  ,
VALUE(*)(ANYARGS)  ,
VALUE   
)
VALUE rb_catch_obj ( VALUE  ,
VALUE(*)(ANYARGS)  ,
VALUE   
)
VALUE rb_catch_protect ( VALUE  t,
rb_block_call_func *  func,
VALUE  data,
int *  stateptr 
)
int rb_char_to_option_kcode ( int  c,
int *  option,
int *  kcode 
)
static void rb_check_arity ( int  argc,
int  min,
int  max 
)
inlinestatic

Definition at line 298 of file intern.h.

References rb_check_arity, rb_error_arity(), and UNLIMITED_ARGUMENTS.

VALUE rb_check_array_type ( VALUE  )
VALUE rb_check_backtrace ( VALUE  )
VALUE rb_check_block_call ( VALUE  ,
ID  ,
int  ,
const VALUE *  ,
rb_block_call_func_t  ,
VALUE   
)
VALUE rb_check_convert_type ( VALUE  ,
int  ,
const char *  ,
const char *   
)

Definition at line 2632 of file object.c.

References convert_type(), FALSE, NIL_P, Qnil, rb_eTypeError, rb_obj_classname(), rb_raise(), T_DATA, and TYPE.

void rb_check_copyable ( VALUE  obj,
VALUE  orig 
)

Definition at line 2098 of file error.c.

References FL_ABLE, FL_TAINT, PRIsVALUE, rb_check_frozen_internal, rb_raise(), rb_safe_level, and RBASIC.

Referenced by random_init(), and random_load().

void rb_check_frozen ( VALUE  )

Definition at line 2081 of file error.c.

References rb_check_frozen, and rb_check_frozen_internal.

static void rb_check_frozen_inline ( VALUE  obj)
inlinestatic

Definition at line 273 of file intern.h.

References rb_check_frozen_internal.

VALUE rb_check_funcall ( VALUE  ,
ID  ,
int  ,
const VALUE *   
)
VALUE rb_check_funcall_with_hook ( VALUE  recv,
ID  mid,
int  argc,
const VALUE *  argv,
rb_check_funcall_hook *  hook,
VALUE  arg 
)
VALUE rb_check_hash_type ( VALUE  )

Definition at line 588 of file hash.c.

References rb_check_convert_type(), and T_HASH.

ID rb_check_id ( volatile VALUE *  namep)
ID rb_check_id_cstr ( const char *  ptr,
long  len,
rb_encoding *  enc 
)
void rb_check_safe_obj ( VALUE  )

Definition at line 122 of file safe.c.

References OBJ_TAINTED, rb_insecure_operation(), and rb_safe_level.

VALUE rb_check_string_type ( VALUE  )

Definition at line 1679 of file string.c.

References rb_check_convert_type(), and T_STRING.

VALUE rb_check_to_float ( VALUE  )

Definition at line 2955 of file object.c.

References Qnil, rb_check_convert_type(), rb_cNumeric, rb_obj_is_kind_of(), RB_TYPE_P, and T_FLOAT.

VALUE rb_check_to_int ( VALUE  )

Definition at line 2686 of file object.c.

References rb_check_to_integer().

VALUE rb_check_to_integer ( VALUE  ,
const char *   
)

Definition at line 2666 of file object.c.

References convert_type(), FALSE, FIXNUM_P, Qnil, rb_cInteger, rb_obj_is_kind_of(), RB_TYPE_P, and T_BIGNUM.

void rb_check_trusted ( VALUE  )

Definition at line 2093 of file error.c.

References rb_check_trusted.

static void rb_check_trusted_inline ( VALUE  obj)
inlinestatic

Definition at line 279 of file intern.h.

References rb_check_trusted_internal.

void rb_check_type ( VALUE  ,
int   
)
void* rb_check_typeddata ( VALUE  ,
const rb_data_type_t *   
)
const char* rb_class2name ( VALUE  )
VALUE rb_class_get_superclass ( VALUE  )

Definition at line 1904 of file object.c.

References RCLASS.

VALUE rb_class_inherited_p ( VALUE  ,
VALUE   
)
VALUE rb_class_name ( VALUE  )

Definition at line 391 of file variable.c.

References rb_class_path(), and rb_class_real().

VALUE rb_class_new_instance ( int  ,
VALUE *  ,
VALUE   
)

Definition at line 1856 of file object.c.

References rb_obj_alloc(), and rb_obj_call_init().

static VALUE rb_class_of ( VALUE  obj)
inlinestatic
VALUE rb_class_path ( VALUE  )

Definition at line 257 of file variable.c.

References NIL_P, fc_result::path, rb_ivar_set(), rb_str_dup(), and rb_tmp_class_path().

VALUE rb_class_path_cached ( VALUE  )

Definition at line 281 of file variable.c.

References classpath, Qnil, RCLASS_IV_TBL, st_data_t, st_lookup(), and tmp_classpath.

VALUE rb_class_real ( VALUE  )

Definition at line 204 of file object.c.

References BUILTIN_TYPE, FL_SINGLETON, RBASIC, RCLASS_SUPER, and T_ICLASS.

VALUE rb_class_search_ancestor ( VALUE  klass,
VALUE  super 
)

Definition at line 673 of file object.c.

References class_or_module_required(), class_search_ancestor(), and RCLASS_ORIGIN.

VALUE rb_class_superclass ( VALUE  )

Definition at line 1886 of file object.c.

References Qnil, rb_cBasicObject, rb_eTypeError, rb_raise(), RB_TYPE_P, RCLASS_SUPER, and T_ICLASS.

void rb_clear_cache ( void  )

Definition at line 52 of file vm_method.c.

References INC_GLOBAL_CONSTANT_STATE, INC_GLOBAL_METHOD_STATE, and rb_warning().

void rb_clear_constant_cache ( void  )

Definition at line 60 of file vm_method.c.

References INC_GLOBAL_CONSTANT_STATE.

void rb_clear_method_cache_by_class ( VALUE  )
void rb_clear_trace_func ( void  )

Definition at line 225 of file vm_trace.c.

References clear_trace_func_i(), GET_VM, rb_remove_event_hook(), st_data_t, and st_foreach().

int rb_cloexec_dup ( int  oldfd)

Definition at line 244 of file io.c.

References rb_cloexec_fcntl_dupfd().

int rb_cloexec_dup2 ( int  oldfd,
int  newfd 
)

Definition at line 251 of file io.c.

References dup2(), errno, O_CLOEXEC, and rb_maygvl_fd_fix_cloexec().

int rb_cloexec_fcntl_dupfd ( int  fd,
int  minfd 
)

Definition at line 323 of file io.c.

References errno, F_DUPFD, fcntl(), rb_cloexec_fcntl_dupfd(), and rb_maygvl_fd_fix_cloexec().

int rb_cloexec_open ( const char *  pathname,
int  flags,
mode_t  mode 
)

Definition at line 228 of file io.c.

References O_CLOEXEC, and rb_maygvl_fd_fix_cloexec().

int rb_cloexec_pipe ( int  fildes[2])

Definition at line 286 of file io.c.

References errno, O_CLOEXEC, and rb_maygvl_fd_fix_cloexec().

void rb_close_before_exec ( int  lowfd,
int  maxhint,
VALUE  noclose_fds 
)
int rb_cmpint ( VALUE  ,
VALUE  ,
VALUE   
)
NODE* rb_compile_cstr ( const char *  ,
const char *  ,
int  ,
int   
)

Definition at line 12087 of file ripper.c.

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

Referenced by rb_load_file().

NODE* rb_compile_file ( const char *  ,
VALUE  ,
int   
)

Definition at line 12107 of file ripper.c.

References rb_parser_compile_file(), and rb_parser_new().

NODE* rb_compile_string ( const char *  ,
VALUE  ,
int   
)
VALUE rb_Complex ( VALUE  ,
VALUE   
)

Definition at line 1337 of file complex.c.

References nucomp_s_convert(), and rb_cComplex.

Referenced by nurat_coerce().

VALUE rb_complex_new ( VALUE  ,
VALUE   
)

Definition at line 1323 of file complex.c.

References nucomp_s_canonicalize_internal(), and rb_cComplex.

Referenced by num_imaginary().

VALUE rb_complex_polar ( VALUE  ,
VALUE   
)

Definition at line 1329 of file complex.c.

References f_complex_polar(), and rb_cComplex.

Referenced by read_comp().

VALUE rb_complex_raw ( VALUE  ,
VALUE   
)

Definition at line 1317 of file complex.c.

References nucomp_s_new_internal(), and rb_cComplex.

Referenced by parser_set_number_literal().

int rb_const_defined ( VALUE  ,
ID   
)

Definition at line 2124 of file variable.c.

References FALSE, rb_const_defined_0(), and TRUE.

int rb_const_defined_at ( VALUE  ,
ID   
)

Definition at line 2130 of file variable.c.

References FALSE, rb_const_defined_0(), and TRUE.

int rb_const_defined_from ( VALUE  ,
ID   
)

Definition at line 2118 of file variable.c.

References FALSE, rb_const_defined_0(), and TRUE.

VALUE rb_const_get ( VALUE  ,
ID   
)

Definition at line 1880 of file variable.c.

References FALSE, rb_const_get_0(), and TRUE.

VALUE rb_const_get_at ( VALUE  ,
ID   
)

Definition at line 1886 of file variable.c.

References FALSE, rb_const_get_0(), and TRUE.

VALUE rb_const_get_from ( VALUE  ,
ID   
)

Definition at line 1874 of file variable.c.

References FALSE, rb_const_get_0(), and TRUE.

VALUE rb_const_list ( void *  )
VALUE rb_const_remove ( VALUE  ,
ID   
)
void rb_const_set ( VALUE  ,
ID  ,
VALUE   
)
VALUE rb_convert_type ( VALUE  ,
int  ,
const char *  ,
const char *   
)

Definition at line 2617 of file object.c.

References convert_type(), rb_eTypeError, rb_obj_classname(), rb_raise(), TRUE, and TYPE.

void rb_copy_generic_ivar ( VALUE  ,
VALUE   
)
VALUE rb_cstr2inum ( const char *  ,
int   
)

Definition at line 4371 of file bignum.c.

References rb_cstr_to_inum().

Referenced by JSON_parse_integer().

double rb_cstr_to_dbl ( const char *  ,
int   
)
VALUE rb_cstr_to_inum ( const char *  ,
int  ,
int   
)
VALUE rb_current_realfilepath ( void  )
VALUE rb_cv_get ( VALUE  ,
const char *   
)

Definition at line 2426 of file variable.c.

References rb_cvar_get(), rb_intern, rb_is_class_id(), and rb_name_error().

void rb_cv_set ( VALUE  ,
const char *  ,
VALUE   
)

Definition at line 2416 of file variable.c.

References rb_cvar_set(), rb_intern, rb_is_class_id(), and rb_name_error().

VALUE rb_cvar_defined ( VALUE  ,
ID   
)

Definition at line 2408 of file variable.c.

References CVAR_LOOKUP, Qfalse, and Qtrue.

VALUE rb_cvar_get ( VALUE  ,
ID   
)
void rb_cvar_set ( VALUE  ,
ID  ,
VALUE   
)
VALUE rb_data_object_alloc ( VALUE  ,
void *  ,
RUBY_DATA_FUNC  ,
RUBY_DATA_FUNC   
)

Definition at line 1369 of file gc.c.

References Check_Type, newobj_of(), T_CLASS, and T_DATA.

VALUE rb_data_typed_object_alloc ( VALUE  klass,
void *  datap,
const rb_data_type_t *   
)

Definition at line 1376 of file gc.c.

References Check_Type, rb_data_type_struct::flags, newobj_of(), T_CLASS, T_DATA, and T_MASK.

VALUE rb_dbl2big ( double  )
VALUE rb_dbl_cmp ( double  ,
double   
)

Definition at line 1124 of file numeric.c.

References INT2FIX, isnan, and Qnil.

rb_encoding* rb_default_external_encoding ( void  )
VALUE rb_default_home_dir ( VALUE  result)

Definition at line 3018 of file file.c.

References copy_home_path(), getenv, rb_eArgError, and rb_raise().

rb_encoding* rb_default_internal_encoding ( void  )
void rb_define_alloc_func ( VALUE  ,
rb_alloc_func_t   
)
void rb_define_class_variable ( VALUE  ,
const char *  ,
VALUE   
)

Definition at line 2436 of file variable.c.

References rb_cvar_set(), rb_intern, rb_is_class_id(), and rb_name_error().

void rb_define_const ( VALUE  ,
const char *  ,
VALUE   
)

Definition at line 2225 of file variable.c.

References rb_const_set(), rb_intern, rb_is_const_id(), and rb_warn().

int rb_define_dummy_encoding ( const char *  )
VALUE rb_define_finalizer ( VALUE  ,
VALUE   
)

Definition at line 1990 of file gc.c.

References define_final0(), should_be_callable(), and should_be_finalizable().

void rb_define_global_const ( const char *  ,
VALUE   
)

Definition at line 2236 of file variable.c.

References rb_cObject, and rb_define_const().

void rb_define_hooked_variable ( const char *  ,
VALUE *  ,
VALUE(*)(ANYARGS)  ,
void(*)(ANYARGS)   
)
void rb_define_readonly_variable ( const char *  ,
VALUE *   
)

Definition at line 610 of file variable.c.

References rb_define_hooked_variable(), and readonly_setter.

void rb_define_variable ( const char *  ,
VALUE *   
)

Definition at line 604 of file variable.c.

References rb_define_hooked_variable().

void rb_define_virtual_variable ( const char *  ,
VALUE(*)(ANYARGS)  ,
void(*)(ANYARGS)   
)
VALUE rb_detach_process ( rb_pid_t  pid)
VALUE rb_dir_getwd ( void  )
int rb_during_gc ( void  )

Definition at line 5198 of file gc.c.

References during_gc, and rb_objspace.

int rb_dvar_defined ( ID  )
VALUE rb_each ( VALUE  )

Definition at line 1175 of file vm_eval.c.

References CALL_FCALL, and rb_call().

VALUE rb_econv_append ( rb_econv_t *  ec,
const char *  bytesrc,
long  bytesize,
VALUE  dst,
int  flags 
)
const char* rb_econv_asciicompat_encoding ( const char *  encname)
void rb_econv_binmode ( rb_econv_t *  ec)
void rb_econv_check_error ( rb_econv_t *  ec)

Definition at line 4213 of file transcode.c.

References make_econv_exception(), NIL_P, and rb_exc_raise().

void rb_econv_close ( rb_econv_t *  ec)
rb_econv_result_t rb_econv_convert ( rb_econv_t *  ec,
const unsigned char **  source_buffer_ptr,
const unsigned char *  source_buffer_end,
unsigned char **  destination_buffer_ptr,
unsigned char *  destination_buffer_end,
int  flags 
)
int rb_econv_decorate_at_first ( rb_econv_t *  ec,
const char *  decorator_name 
)
int rb_econv_decorate_at_last ( rb_econv_t *  ec,
const char *  decorator_name 
)
const char* rb_econv_encoding_to_insert_output ( rb_econv_t *  ec)
int rb_econv_has_convpath_p ( const char *  from_encoding,
const char *  to_encoding 
)

Definition at line 3169 of file transcode.c.

References Qnil, RTEST, search_convpath_i(), and transcode_search_path().

int rb_econv_insert_output ( rb_econv_t *  ec,
const unsigned char *  str,
size_t  len,
const char *  str_encoding 
)
VALUE rb_econv_make_exception ( rb_econv_t *  ec)

Definition at line 4207 of file transcode.c.

References make_econv_exception().

rb_econv_t* rb_econv_open ( const char *  source_encoding,
const char *  destination_encoding,
int  ecflags 
)
VALUE rb_econv_open_exc ( const char *  senc,
const char *  denc,
int  ecflags 
)
rb_econv_t* rb_econv_open_opts ( const char *  source_encoding,
const char *  destination_encoding,
int  ecflags,
VALUE  ecopts 
)
int rb_econv_prepare_options ( VALUE  opthash,
VALUE *  ecopts,
int  ecflags 
)
int rb_econv_prepare_opts ( VALUE  opthash,
VALUE *  ecopts 
)

Definition at line 2572 of file transcode.c.

References rb_econv_prepare_options().

void rb_econv_putback ( rb_econv_t *  ec,
unsigned char *  p,
int  n 
)
int rb_econv_putbackable ( rb_econv_t *  ec)
int rb_econv_set_replacement ( rb_econv_t *  ec,
const unsigned char *  str,
size_t  len,
const char *  encname 
)
VALUE rb_econv_str_append ( rb_econv_t *  ec,
VALUE  src,
VALUE  dst,
int  flags 
)

Definition at line 1865 of file transcode.c.

References rb_econv_substr_append(), and RSTRING_LEN.

VALUE rb_econv_str_convert ( rb_econv_t *  ec,
VALUE  src,
int  flags 
)

Definition at line 1877 of file transcode.c.

References Qnil, rb_econv_substr_append(), and RSTRING_LEN.

VALUE rb_econv_substr_append ( rb_econv_t *  ec,
VALUE  src,
long  byteoff,
long  bytesize,
VALUE  dst,
int  flags 
)

Definition at line 1856 of file transcode.c.

References rb_econv_append(), RB_GC_GUARD, rb_str_new_frozen(), and RSTRING_PTR.

VALUE rb_econv_substr_convert ( rb_econv_t *  ec,
VALUE  src,
long  byteoff,
long  bytesize,
int  flags 
)

Definition at line 1871 of file transcode.c.

References Qnil, and rb_econv_substr_append().

int rb_enc_ascget ( const char *  p,
const char *  e,
int *  len,
rb_encoding *  enc 
)
VALUE rb_enc_associate ( VALUE  ,
rb_encoding *   
)
VALUE rb_enc_associate_index ( VALUE  ,
int   
)
int rb_enc_casefold ( char *  to,
const char *  p,
const char *  e,
rb_encoding *  enc 
)
rb_encoding* rb_enc_check ( VALUE  ,
VALUE   
)
int rb_enc_code_to_mbclen ( int  code,
rb_encoding *  enc 
)

Definition at line 1025 of file encoding.c.

References ONIGENC_CODE_TO_MBCLEN, and rb_enc_code_to_mbclen.

int rb_enc_codelen ( int  code,
rb_encoding *  enc 
)
unsigned int rb_enc_codepoint ( const char *  p,
const char *  e,
rb_encoding *  enc 
)

Definition at line 1008 of file encoding.c.

References rb_enc_codepoint, and rb_enc_codepoint_len().

unsigned int rb_enc_codepoint_len ( const char *  p,
const char *  e,
int *  len,
rb_encoding *  enc 
)
rb_encoding* rb_enc_compatible ( VALUE  ,
VALUE   
)
void rb_enc_copy ( VALUE  dst,
VALUE  src 
)
VALUE rb_enc_default_external ( void  )
VALUE rb_enc_default_internal ( void  )
static int rb_enc_dummy_p ( rb_encoding *  enc)
inlinestatic

Definition at line 245 of file encoding.h.

References ENC_DUMMY_P.

int rb_enc_fast_mbclen ( const char *  p,
const char *  e,
rb_encoding *  enc 
)
rb_encoding* rb_enc_find ( const char *  name)
int rb_enc_find_index ( const char *  name)
VALUE rb_enc_from_encoding ( rb_encoding *  enc)
rb_encoding* rb_enc_from_index ( int  idx)
rb_encoding* rb_enc_get ( VALUE  )

Definition at line 832 of file encoding.c.

References rb_enc_from_index(), and rb_enc_get_index().

Referenced by check_dirname(), check_path_encoding(), check_pipe_command(), do_writeconv(), econv_set_replacement(), file_s_fnmatch(), fnmatch_brace(), intern_str(), io_encoding_set(), literal_concat0(), must_be_ascii_compatible(), must_not_be_anonymous(), ole_vstr2wc(), parser_prepare(), parser_yyerror(), path_check_0(), path_sub_ext(), prepare_getline_args(), push_glob(), rb_econv_open_opts(), rb_econv_prepare_options(), rb_enc_check(), rb_file_dirname(), rb_file_expand_path_internal(), rb_file_join(), rb_file_s_basename(), rb_file_s_extname(), rb_gzreader_ungetc(), rb_gzwriter_write(), rb_inspect(), rb_mod_const_defined(), rb_mod_const_get(), rb_must_asciicompat(), rb_path_to_class(), rb_push_glob(), rb_realpath_internal(), rb_reg_check_preprocess(), rb_reg_desc(), rb_reg_error_desc(), rb_reg_init_copy(), rb_reg_initialize_m(), rb_reg_initialize_str(), rb_reg_prepare_enc(), rb_reg_preprocess_dregexp(), rb_reg_quote(), rb_reg_regsub(), rb_reg_s_union(), rb_reg_source(), rb_reg_to_s(), rb_str_chomp_bang(), rb_str_conv_enc_opts(), rb_str_dump(), rb_str_ellipsize(), rb_str_encode_ospath(), rb_str_enumerate_chars(), rb_str_enumerate_lines(), rb_str_fill_terminator(), rb_str_format(), rb_str_symname_type(), rb_string_value_cstr(), rb_to_encoding_index(), realpath_rec(), reg_enc_error(), reg_fragment_setenc_gen(), reg_named_capture_assign_gen(), ruby__sfvextra(), str_find_encindex(), strio_each_codepoint(), strio_external_encoding(), strio_getc(), strio_getline(), strio_substr(), strio_ungetc(), strio_write(), strscan_getch(), sym_check_asciionly(), syserr_initialize(), time_strftime(), transcode_loop(), and update_char_offset().

int rb_enc_get_index ( VALUE  obj)
int rb_enc_mbclen ( const char *  p,
const char *  e,
rb_encoding *  enc 
)
char* rb_enc_nth ( const char *  ,
const char *  ,
long  ,
rb_encoding *   
)

Definition at line 1753 of file string.c.

References str_nth_len().

char* rb_enc_path_end ( const char *  ,
const char *  ,
rb_encoding *   
)

Definition at line 2928 of file file.c.

References chompdirsep(), and isdirsep.

char* rb_enc_path_last_separator ( const char *  ,
const char *  ,
rb_encoding *   
)

Definition at line 2894 of file file.c.

References Inc, isdirsep, last, and NULL.

char* rb_enc_path_next ( const char *  ,
const char *  ,
rb_encoding *   
)

Definition at line 2846 of file file.c.

References Inc, and isdirsep.

char* rb_enc_path_skip_prefix ( const char *  ,
const char *  ,
rb_encoding *   
)

Definition at line 2860 of file file.c.

References isdirsep, and rb_enc_path_next().

int rb_enc_precise_mbclen ( const char *  p,
const char *  e,
rb_encoding *  enc 
)
VALUE rb_enc_reg_new ( const char *  ,
long  ,
rb_encoding *  ,
int   
)

Definition at line 2529 of file re.c.

References err, NULL, rb_enc_reg_raise(), rb_reg_alloc(), and rb_reg_initialize().

int rb_enc_replicate ( const char *  ,
rb_encoding *   
)
void rb_enc_set_default_external ( VALUE  encoding)

Definition at line 1403 of file encoding.c.

References enc_set_default_encoding(), NIL_P, rb_eArgError, and rb_raise().

Referenced by process_options(), and set_default_external().

void rb_enc_set_default_internal ( VALUE  encoding)

Definition at line 1488 of file encoding.c.

References enc_set_default_encoding().

Referenced by process_options(), and set_default_internal().

void rb_enc_set_index ( VALUE  obj,
int  encindex 
)

Definition at line 790 of file encoding.c.

References enc_set_index(), must_encindex(), and rb_check_frozen.

Referenced by str_enc_copy().

int rb_enc_str_asciionly_p ( VALUE  )
VALUE rb_enc_str_buf_cat ( VALUE  str,
const char *  ptr,
long  len,
rb_encoding *  enc 
)

Definition at line 2251 of file string.c.

References ENC_CODERANGE_UNKNOWN, NULL, rb_enc_cr_str_buf_cat(), and rb_enc_to_index.

int rb_enc_str_coderange ( VALUE  )
VALUE rb_enc_str_new ( const char *  ,
long  ,
rb_encoding *   
)

Definition at line 548 of file string.c.

References rb_cString, rb_enc_associate(), rb_enc_mbminlen, rb_str_new(), and str_new0().

VALUE rb_enc_str_new_cstr ( const char *  ,
rb_encoding *   
)

Definition at line 577 of file string.c.

References rb_eArgError, rb_enc_mbminlen, rb_enc_str_new(), rb_raise(), and strlen().

long rb_enc_strlen ( const char *  ,
const char *  ,
rb_encoding *   
)

Definition at line 1141 of file string.c.

References ENC_CODERANGE_UNKNOWN, and enc_strlen().

int rb_enc_symname2_p ( const char *  ,
long  ,
rb_encoding *   
)

Definition at line 16935 of file ripper.c.

References IDSET_ATTRSET_FOR_SYNTAX, and rb_enc_symname_type().

Referenced by rb_enc_symname_p(), and reg_named_capture_assign_iter().

int rb_enc_symname_p ( const char *  ,
rb_encoding *   
)

Definition at line 16830 of file ripper.c.

References rb_enc_symname2_p(), and strlen().

Referenced by rb_str_symname_p(), and rb_symname_p().

int rb_enc_tolower ( int  c,
rb_encoding *  enc 
)
int rb_enc_toupper ( int  c,
rb_encoding *  enc 
)
VALUE rb_enc_uint_chr ( unsigned int  code,
rb_encoding *  enc 
)
int rb_enc_unicode_p ( rb_encoding *  enc)

Definition at line 496 of file encoding.c.

References ONIGENC_IS_UNICODE.

Referenced by rb_reg_expr_str(), and rb_str_inspect().

VALUE rb_enc_vsprintf ( rb_encoding *  ,
const char *  ,
va_list   
)
VALUE rb_ensure ( VALUE(*)(ANYARGS)  ,
VALUE  ,
VALUE(*)(ANYARGS)  ,
VALUE   
)
VALUE rb_enum_values_pack ( int  ,
const VALUE *   
)
VALUE rb_enumeratorize ( VALUE  ,
VALUE  ,
int  ,
VALUE *   
)
VALUE rb_enumeratorize_with_size ( VALUE  ,
VALUE  ,
int  ,
VALUE *  ,
rb_enumerator_size_func *   
)
VALUE rb_env_clear ( void  )

Definition at line 3216 of file hash.c.

References env_delete(), env_keys(), envtbl, NIL_P, Qnil, RARRAY_AREF, RARRAY_LEN, rb_f_getenv(), and val.

int rb_env_path_tainted ( void  )

Definition at line 2676 of file hash.c.

References getenv, PATH_ENV, path_tainted, and path_tainted_p().

int rb_eql ( VALUE  ,
VALUE   
)

Definition at line 100 of file object.c.

References id_eql, rb_funcall(), and RTEST.

VALUE rb_equal ( VALUE  ,
VALUE   
)

Definition at line 89 of file object.c.

References id_eq, Qfalse, Qtrue, rb_funcall(), result, and RTEST.

VALUE rb_equal_opt ( VALUE  obj1,
VALUE  obj2 
)
VALUE rb_errinfo ( void  )

Definition at line 1497 of file eval.c.

References rb_thread_struct::errinfo, and GET_THREAD().

void rb_error_untrusted ( VALUE  )

Definition at line 2087 of file error.c.

VALUE rb_eval_cmd ( VALUE  ,
VALUE  ,
int   
)
VALUE rb_eval_string ( const char *  str)

Evaluates the given string in an isolated binding.

Here "isolated" means the binding does not inherit any other binding. This behaves same as the binding for required libraries.

FILE will be "(eval)", and LINE starts from 1 in the evaluation.

Parameters
strRuby code to evaluate.
Returns
The evaluated result.
Exceptions
ExceptionRaises an exception on error.

Definition at line 1403 of file vm_eval.c.

References ruby_eval_string_from_file().

VALUE rb_eval_string_protect ( const char *  str,
int *  state 
)

Evaluates the given string in an isolated binding.

FILE will be "(eval)", and LINE starts from 1 in the evaluation.

See Also
rb_eval_string
Parameters
strRuby code to evaluate.
stateBeing set to zero if succeeded. Nonzero if an error occurred.
Returns
The evaluated result if succeeded, an undefined value if otherwise.

Definition at line 1419 of file vm_eval.c.

References rb_eval_string(), and rb_protect().

VALUE rb_eval_string_wrap ( const char *  str,
int *  state 
)

Evaluates the given string under a module binding in an isolated binding.

This is same as the binding for required libraries on "require('foo', true)".

FILE will be "(eval)", and LINE starts from 1 in the evaluation.

See Also
rb_eval_string
Parameters
strRuby code to evaluate.
stateBeing set to zero if succeeded. Nonzero if an error occurred.
Returns
The evaluated result if succeeded, an undefined value if otherwise.

Definition at line 1436 of file vm_eval.c.

References GET_THREAD(), JUMP_TAG, rb_eval_string_protect(), rb_extend_object(), rb_module_new(), rb_obj_clone(), rb_vm_top_self(), rb_thread_struct::top_self, and rb_thread_struct::top_wrapper.

VALUE rb_exc_new ( VALUE  ,
const char *  ,
long   
)

Definition at line 573 of file error.c.

References rb_funcall(), rb_intern, and rb_str_new().

Referenced by rb_exc_new_cstr(), rb_threadptr_raise(), and setup_exception().

VALUE rb_exc_new_cstr ( VALUE  ,
const char *   
)

Definition at line 579 of file error.c.

References rb_exc_new(), and strlen().

Referenced by exc_setup_cause().

VALUE rb_exc_new_str ( VALUE  ,
VALUE   
)

Definition at line 585 of file error.c.

References rb_funcall(), rb_intern, and StringValue.

Referenced by create_ip_exc(), ole_raise(), raise_from_check(), and raise_zlib_error().

int rb_exec_async_signal_safe ( const struct rb_execarg *  e,
char *  errmsg,
size_t  errmsg_buflen 
)
void rb_exec_end_proc ( void  )
VALUE rb_exec_recursive ( VALUE(*)(VALUE, VALUE, int)  ,
VALUE  ,
VALUE   
)

Definition at line 4982 of file thread.c.

References exec_recursive(), and func.

VALUE rb_exec_recursive_outer ( VALUE(*)(VALUE, VALUE, int)  ,
VALUE  ,
VALUE   
)

Definition at line 5005 of file thread.c.

References exec_recursive(), and func.

VALUE rb_exec_recursive_paired ( VALUE(*)(VALUE, VALUE, int)  ,
VALUE  ,
VALUE  ,
VALUE   
)

Definition at line 4993 of file thread.c.

References exec_recursive(), func, and rb_obj_id().

VALUE rb_exec_recursive_paired_outer ( VALUE(*)(VALUE, VALUE, int)  ,
VALUE  ,
VALUE  ,
VALUE   
)

Definition at line 5017 of file thread.c.

References exec_recursive(), func, and rb_obj_id().

int rb_execarg_addopt ( VALUE  execarg_obj,
VALUE  key,
VALUE  val 
)
VALUE rb_execarg_extract_options ( VALUE  execarg_obj,
VALUE  opthash 
)
void rb_execarg_fixup ( VALUE  execarg_obj)
struct rb_execarg* rb_execarg_get ( VALUE  execarg_obj)
read

Definition at line 2272 of file process.c.

References exec_arg_data_type, and TypedData_Get_Struct.

VALUE rb_execarg_init ( int  argc,
VALUE *  argv,
int  accept_shell,
VALUE  execarg_obj 
)
VALUE rb_execarg_new ( int  argc,
VALUE *  argv,
int  accept_shell 
)
int rb_execarg_run_options ( const struct rb_execarg *  e,
struct rb_execarg *  s,
char *  errmsg,
size_t  errmsg_buflen 
)
void rb_execarg_setenv ( VALUE  execarg_obj,
VALUE  env 
)
void rb_extend_object ( VALUE  ,
VALUE   
)
VALUE rb_external_str_new ( const char *  ,
long   
)

Definition at line 707 of file string.c.

References rb_default_external_encoding(), and rb_external_str_new_with_enc().

VALUE rb_external_str_new_cstr ( const char *  )
VALUE rb_external_str_new_with_enc ( const char *  ptr,
long  len,
rb_encoding *   
)

Definition at line 686 of file string.c.

References rb_external_str_with_enc(), and rb_tainted_str_new().

VALUE rb_f_abort ( int  ,
VALUE *   
)
VALUE rb_f_exec ( int  ,
VALUE *   
)
VALUE rb_f_exit ( int  ,
VALUE *   
)

Definition at line 3703 of file process.c.

References exit_status_code(), EXIT_SUCCESS, rb_exit(), rb_scan_args(), and UNREACHABLE.

VALUE rb_f_global_variables ( void  )

Definition at line 853 of file variable.c.

References buf, gvar_i(), ID2SYM, rb_ary_new(), rb_ary_push(), rb_intern2(), and st_foreach_safe().

VALUE rb_f_kill ( int  ,
VALUE *   
)
VALUE rb_f_notimplement ( int  argc,
VALUE *  argv,
VALUE  obj 
)

Definition at line 85 of file vm_method.c.

References rb_notimplement(), and UNREACHABLE.

VALUE rb_f_require ( VALUE  ,
VALUE   
)

Definition at line 815 of file load.c.

References rb_require_safe(), and rb_safe_level.

VALUE rb_f_sprintf ( int  ,
const VALUE *   
)

Definition at line 415 of file sprintf.c.

References GETNTHARG, and rb_str_format().

VALUE rb_f_trace_var ( int  ,
VALUE *   
)
VALUE rb_f_untrace_var ( int  ,
VALUE *   
)
void rb_fd_fix_cloexec ( int  fd)

Definition at line 221 of file io.c.

References rb_maygvl_fd_fix_cloexec(), and rb_update_max_fd().

int rb_feature_provided ( const char *  ,
const char **   
)
VALUE rb_fiber_alive_p ( VALUE  )

Definition at line 1524 of file cont.c.

References GetFiberPtr, Qfalse, Qtrue, rb_fiber_struct::status, and TERMINATED.

Referenced by get_next_values(), and ruby_Init_Fiber_as_Coroutine().

VALUE rb_fiber_current ( void  )
VALUE rb_fiber_new ( VALUE(*)(ANYARGS)  ,
VALUE   
)

Definition at line 1223 of file cont.c.

References fiber_alloc(), fiber_init(), func, rb_cFiber, and rb_proc_new().

Referenced by next_init().

void rb_fiber_reset_root_local_storage ( VALUE  )
VALUE rb_fiber_resume ( VALUE  fib,
int  argc,
VALUE *  args 
)
VALUE rb_fiber_yield ( int  argc,
VALUE *  args 
)

Definition at line 1496 of file cont.c.

References rb_fiber_transfer(), and return_fiber().

Referenced by next_i(), next_ii(), and rb_fiber_s_yield().

VALUE rb_file_absolute_path ( VALUE  ,
VALUE   
)

Definition at line 3475 of file file.c.

References check_expand_path_args, expand_path, and EXPAND_PATH_BUFFER.

void rb_file_const ( const char *  ,
VALUE   
)

Definition at line 5275 of file file.c.

References rb_define_const().

VALUE rb_file_directory_p ( VALUE  ,
VALUE   
)

Definition at line 1215 of file file.c.

References Qfalse, Qtrue, rb_stat(), S_ISDIR, and stat.

VALUE rb_file_dirname ( VALUE  fname)
VALUE rb_file_expand_path ( VALUE  ,
VALUE   
)

Definition at line 3421 of file file.c.

References check_expand_path_args, expand_path, and EXPAND_PATH_BUFFER.

VALUE rb_file_expand_path_fast ( VALUE  ,
VALUE   
)

Definition at line 3428 of file file.c.

References expand_path, and EXPAND_PATH_BUFFER.

VALUE rb_file_expand_path_internal ( VALUE  ,
VALUE  ,
int  ,
int  ,
VALUE   
)
int rb_file_load_ok ( const char *  )
VALUE rb_file_open ( const char *  ,
const char *   
)

Definition at line 5561 of file io.c.

References io_alloc(), rb_cFile, rb_file_open_internal(), and rb_str_new_cstr().

VALUE rb_file_open_str ( VALUE  ,
const char *   
)

Definition at line 5554 of file io.c.

References FilePathValue, io_alloc(), rb_cFile, and rb_file_open_internal().

VALUE rb_file_s_absolute_path ( int  ,
VALUE *   
)

Definition at line 3495 of file file.c.

References Qnil, rb_file_absolute_path(), and rb_scan_args().

VALUE rb_file_s_expand_path ( int  ,
VALUE *   
)

Definition at line 3462 of file file.c.

References Qnil, rb_file_expand_path(), and rb_scan_args().

int rb_filesystem_encindex ( void  )

Definition at line 1300 of file encoding.c.

References rb_enc_registered().

Referenced by rb_filesystem_encoding().

rb_encoding* rb_filesystem_encoding ( void  )
VALUE rb_filesystem_str_new ( const char *  ,
long   
)

Definition at line 731 of file string.c.

References rb_external_str_new_with_enc(), and rb_filesystem_encoding().

VALUE rb_filesystem_str_new_cstr ( const char *  )

Definition at line 737 of file string.c.

References rb_external_str_new_with_enc(), rb_filesystem_encoding(), and strlen().

rb_encoding* rb_find_encoding ( VALUE  )

Definition at line 226 of file encoding.c.

References enc_check_encoding(), NULL, rb_enc_from_index(), RDATA, and str_find_encindex().

Referenced by find_encoding().

VALUE rb_find_file ( VALUE  )

Definition at line 5499 of file file.c.

References rb_find_file_safe(), and rb_safe_level.

int rb_find_file_ext ( VALUE *  ,
const char *const *   
)

Definition at line 5428 of file file.c.

References rb_find_file_ext_safe(), and rb_safe_level.

int rb_find_file_ext_safe ( VALUE *  ,
const char *const *  ,
int   
)
VALUE rb_find_file_safe ( VALUE  ,
int   
)
short rb_fix2short ( VALUE  )

Definition at line 2240 of file numeric.c.

References check_short(), FIX2LONG, FIXNUM_P, and rb_num2long().

VALUE rb_fix2str ( VALUE  ,
int   
)
unsigned short rb_fix2ushort ( VALUE  )

Definition at line 2259 of file numeric.c.

References check_ushort(), FIX2ULONG, FIXNUM_P, negative_int_p(), and rb_num2ushort().

VALUE rb_Float ( VALUE  )
VALUE rb_float_new ( double  )

Definition at line 4115 of file numeric.c.

References rb_float_new, and rb_float_new_inline().

VALUE rb_float_new_in_heap ( double  )

Definition at line 637 of file numeric.c.

References FL_WB_PROTECTED, NEWOBJ_OF, OBJ_FREEZE, rb_cFloat, RGENGC_WB_PROTECTED_FLOAT, and T_FLOAT.

static VALUE rb_float_new_inline ( double  d)
inlinestatic

Definition at line 565 of file internal.h.

References rb_float_new_in_heap(), and RUBY_BIT_ROTL.

double rb_float_value ( VALUE  )

Definition at line 4108 of file numeric.c.

References rb_float_value, and rb_float_value_inline().

static double rb_float_value_inline ( VALUE  v)
inlinestatic

Definition at line 539 of file internal.h.

References FLONUM_P, and RUBY_BIT_ROTR.

VALUE rb_flt_rationalize ( VALUE  )
VALUE rb_flt_rationalize_with_prec ( VALUE  ,
VALUE   
)
rb_pid_t rb_fork_async_signal_safe ( int *  status,
int(*)(void *, char *, size_t)  chfunc,
void *  charg,
VALUE  fds,
char *  errmsg,
size_t  errmsg_buflen 
)
rb_pid_t rb_fork_ruby ( int *  status)
ID rb_frame_callee ( void  )
int rb_frame_method_id_and_class ( ID *  idp,
VALUE *  klassp 
)

Definition at line 1667 of file vm.c.

References GET_THREAD(), and rb_thread_method_id_and_class().

ID rb_frame_this_func ( void  )
void rb_free_generic_ivar ( VALUE  )

Definition at line 1030 of file variable.c.

References key, st_data_t, st_delete(), and st_free_table().

void rb_free_tmp_buffer ( volatile VALUE *  store)

Definition at line 933 of file string.c.

References rb_str_clear().

void rb_frozen_class_p ( VALUE  )
VALUE rb_fstring ( VALUE  )
VALUE rb_funcall ( VALUE  recv,
ID  mid,
int  n,
  ... 
)

Calls a method.

Parameters
recvreceiver of the method
midan ID that represents the name of the method
nthe number of arguments
...arbitrary number of method arguments
Precondition
each of arguments after n must be a VALUE.

Definition at line 775 of file vm_eval.c.

References ALLOCA_N, argv, CALL_FCALL, rb_call(), and va_init_list.

VALUE rb_funcall_passing_block ( VALUE  ,
ID  ,
int  ,
const VALUE *   
)

Definition at line 827 of file vm_eval.c.

References CALL_PUBLIC, GET_THREAD(), PASS_PASSED_BLOCK_TH, and rb_call().

VALUE rb_funcall_with_block ( VALUE  ,
ID  ,
int  ,
const VALUE *  ,
VALUE   
)
VALUE rb_funcallv ( VALUE  recv,
ID  mid,
int  argc,
const VALUE *  argv 
)

Calls a method.

Parameters
recvreceiver of the method
midan ID that represents the name of the method
argcthe number of arguments
argvpointer to an array of method arguments

Definition at line 806 of file vm_eval.c.

References CALL_FCALL, and rb_call().

VALUE rb_funcallv_public ( VALUE  recv,
ID  mid,
int  argc,
const VALUE *  argv 
)

Calls a method.

Same as rb_funcall2 but this function can call only public methods.

Parameters
recvreceiver of the method
midan ID that represents the name of the method
argcthe number of arguments
argvpointer to an array of method arguments

Definition at line 821 of file vm_eval.c.

References CALL_PUBLIC, and rb_call().

void rb_gc ( void  )

Definition at line 5190 of file gc.c.

References finalize_deferred(), finalizing, garbage_collect(), GPR_FLAG_CAPI, rb_objspace, and TRUE.

void rb_gc_call_finalizer_at_exit ( void  )

Definition at line 2144 of file gc.c.

References rb_objspace_call_finalizer().

void rb_gc_copy_finalizer ( VALUE  ,
VALUE   
)

Definition at line 1998 of file gc.c.

References finalizer_table, FL_FINALIZE, FL_SET, FL_TEST, rb_objspace, st_data_t, st_insert(), and st_lookup().

size_t rb_gc_count ( void  )

Definition at line 5219 of file gc.c.

References rb_objspace::count, and rb_objspace::profile.

VALUE rb_gc_disable ( void  )

Definition at line 5638 of file gc.c.

References dont_gc, gc_rest_sweep(), Qfalse, Qtrue, rb_objspace, and TRUE.

VALUE rb_gc_enable ( void  )

Definition at line 5616 of file gc.c.

References dont_gc, FALSE, Qfalse, Qtrue, and rb_objspace.

void rb_gc_finalize_deferred ( void  )

Definition at line 2112 of file gc.c.

References gc_finalize_deferred().

void rb_gc_force_recycle ( VALUE  )
volatile VALUE* rb_gc_guarded_ptr ( volatile VALUE *  ptr)

Definition at line 93 of file gc.c.

VALUE rb_gc_latest_gc_info ( VALUE  )
void rb_gc_mark ( VALUE  )

Definition at line 3604 of file gc.c.

References gc_mark().

void rb_gc_mark_encodings ( void  )

Definition at line 236 of file encoding.c.

Referenced by gc_mark_roots().

void rb_gc_mark_global_tbl ( void  )

Definition at line 562 of file variable.c.

References mark_global_entry(), and st_foreach_safe().

void rb_gc_mark_locations ( VALUE *  ,
VALUE *   
)

Definition at line 3311 of file gc.c.

References gc_mark_locations().

void rb_gc_mark_maybe ( VALUE  )

Definition at line 3537 of file gc.c.

References gc_mark_maybe().

void rb_gc_mark_parser ( void  )

Definition at line 16604 of file ripper.c.

Referenced by gc_mark_roots().

void rb_gc_mark_symbols ( int  full_mark)
void rb_gc_register_address ( VALUE *  )

Definition at line 4927 of file gc.c.

References ALLOC, global_List, gc_list::next, rb_objspace, and gc_list::varptr.

void rb_gc_register_mark_object ( VALUE  )
void rb_gc_resurrect ( VALUE  ptr)

Definition at line 3612 of file gc.c.

References gc_mark_ptr(), gc_marked(), heap_eden, is_lazy_sweeping, is_swept_object(), and rb_objspace.

VALUE rb_gc_start ( void  )

Definition at line 5183 of file gc.c.

References Qnil, and rb_gc().

size_t rb_gc_stat ( VALUE  )

Definition at line 5555 of file gc.c.

References gc_stat_internal(), and SYMBOL_P.

void rb_gc_unregister_address ( VALUE *  )

Definition at line 4939 of file gc.c.

References global_List, gc_list::next, rb_objspace, gc_list::varptr, and xfree.

void rb_gc_writebarrier ( VALUE  a,
VALUE  b 
)
void rb_gc_writebarrier_remember_promoted ( VALUE  obj)

Definition at line 4782 of file gc.c.

References rb_objspace, and rgengc_remember().

void rb_gc_writebarrier_unprotect_promoted ( VALUE  obj)
VALUE rb_gcd_normal ( VALUE  self,
VALUE  other 
)

Definition at line 356 of file rational.c.

References f_gcd_normal().

struct st_table* rb_generic_ivar_table ( VALUE  )
read

Definition at line 907 of file variable.c.

References FL_EXIVAR, FL_TEST, st_data_t, and st_lookup().

unsigned int rb_genrand_int32 ( void  )

Definition at line 251 of file random.c.

References default_mt(), and genrand_int32().

double rb_genrand_real ( void  )

Definition at line 258 of file random.c.

References default_mt(), and genrand_real().

unsigned long rb_genrand_ulong_limited ( unsigned long  i)

Definition at line 789 of file random.c.

References default_mt(), and limited_rand().

rb_alloc_func_t rb_get_alloc_func ( VALUE  )

Definition at line 524 of file vm_method.c.

References Check_Type, RCLASS_EXT, RCLASS_SUPER, T_CLASS, and UNDEF_ALLOC_FUNC.

VALUE rb_get_argv ( void  )

Definition at line 11640 of file io.c.

References ARGF.

VALUE rb_get_backtrace ( VALUE  info)

Definition at line 55 of file eval_error.c.

References get_backtrace().

Referenced by eval_string_with_cref().

VALUE rb_get_coverages ( void  )

Definition at line 5287 of file thread.c.

VALUE rb_get_expanded_load_path ( void  )
VALUE rb_get_load_path ( void  )

Definition at line 32 of file load.c.

References GET_VM.

int rb_get_next_signal ( void  )

Definition at line 675 of file signal.c.

References ATOMIC_DEC, RUBY_NSIG, and signal_buff.

VALUE rb_get_path ( VALUE  )

Definition at line 225 of file file.c.

References rb_get_path_check(), and rb_safe_level.

VALUE rb_get_path_check_convert ( VALUE  ,
VALUE  ,
int   
)
VALUE rb_get_path_check_to_string ( VALUE  ,
int   
)
VALUE rb_get_path_no_checksafe ( VALUE  )

Definition at line 219 of file file.c.

References rb_get_path_check().

VALUE rb_get_values_at ( VALUE  ,
long  ,
int  ,
VALUE *  ,
VALUE(*)(VALUE, long)   
)
VALUE rb_gets ( void  )
void rb_glob ( const char *  ,
void(*)(const char *, VALUE, void *)  ,
VALUE   
)

Definition at line 1615 of file dir.c.

References func, GLOB_JUMP_TAG, rb_ascii8bit_encoding(), and rb_glob2().

struct rb_global_entry* rb_global_entry ( ID  )
read
void rb_global_variable ( VALUE *  )

Definition at line 4962 of file gc.c.

References rb_gc_register_address().

VALUE rb_gv_get ( const char *  )

Definition at line 819 of file variable.c.

References global_entry, global_id(), rb_global_entry(), and rb_gvar_get().

VALUE rb_gv_set ( const char *  ,
VALUE   
)

Definition at line 810 of file variable.c.

References global_entry, global_id(), rb_global_entry(), and rb_gvar_set().

VALUE rb_gvar_defined ( struct rb_global_entry *  )
VALUE rb_gvar_get ( struct rb_global_entry *  )
void rb_gvar_readonly_setter ( VALUE  val,
ID  id,
void *  data,
struct rb_global_variable *  gvar 
)
VALUE rb_gvar_set ( struct rb_global_entry *  ,
VALUE   
)
VALUE rb_gvar_undef_getter ( ID  id,
void *  data,
struct rb_global_variable *  gvar 
)
void rb_gvar_undef_marker ( VALUE *  var)
void rb_gvar_undef_setter ( VALUE  val,
ID  id,
void *  data,
struct rb_global_variable *  gvar 
)
VALUE rb_gvar_val_getter ( ID  id,
void *  data,
struct rb_global_variable *  gvar 
)
void rb_gvar_val_marker ( VALUE *  var)
void rb_gvar_val_setter ( VALUE  val,
ID  id,
void *  data,
struct rb_global_variable *  gvar 
)
VALUE rb_gvar_var_getter ( ID  id,
void *  data,
struct rb_global_variable *  gvar 
)
void rb_gvar_var_marker ( VALUE *  var)
void rb_gvar_var_setter ( VALUE  val,
ID  id,
void *  data,
struct rb_global_variable *  gvar 
)
VALUE rb_hash ( VALUE  )
VALUE rb_Hash ( VALUE  )
VALUE rb_hash_aref ( VALUE  ,
VALUE   
)

Definition at line 697 of file hash.c.

References hash_default_value(), RHASH, st_data_t, st_lookup(), and val.

VALUE rb_hash_aset ( VALUE  ,
VALUE  ,
VALUE   
)
VALUE rb_hash_clear ( VALUE  )
VALUE rb_hash_delete ( VALUE  ,
VALUE   
)
VALUE rb_hash_delete_if ( VALUE  )
VALUE rb_hash_dup ( VALUE  )

Definition at line 320 of file hash.c.

References rb_hash_dup_empty(), RHASH, RHASH_EMPTY_P, and st_copy().

st_index_t rb_hash_end ( st_index_t  )
VALUE rb_hash_fetch ( VALUE  ,
VALUE   
)

Definition at line 782 of file hash.c.

References rb_hash_fetch_m().

void rb_hash_foreach ( VALUE  ,
int(*)(ANYARGS)  ,
VALUE   
)
VALUE rb_hash_freeze ( VALUE  )

Definition at line 62 of file hash.c.

References rb_obj_freeze().

VALUE rb_hash_keys ( VALUE  hash)
VALUE rb_hash_lookup ( VALUE  ,
VALUE   
)

Definition at line 719 of file hash.c.

References Qnil, and rb_hash_lookup2().

VALUE rb_hash_lookup2 ( VALUE  ,
VALUE  ,
VALUE   
)

Definition at line 708 of file hash.c.

References RHASH, st_data_t, st_lookup(), and val.

VALUE rb_hash_new ( void  )

Definition at line 298 of file hash.c.

References hash_alloc(), and rb_cHash.

st_index_t rb_hash_proc ( st_index_t  hash,
VALUE  proc 
)
VALUE rb_hash_set_ifnone ( VALUE  hash,
VALUE  ifnone 
)

Definition at line 73 of file hash.c.

References hash(), RB_OBJ_WRITE, and RHASH.

st_index_t rb_hash_start ( st_index_t  )

Definition at line 1296 of file random.c.

References hashseed, and st_hash_start.

struct st_table* rb_hash_tbl ( VALUE  )
read

Definition at line 344 of file hash.c.

References hash_tbl(), and OBJ_WB_UNPROTECT.

struct st_table* rb_hash_tbl_raw ( VALUE  hash)
read

Definition at line 351 of file hash.c.

References hash_tbl().

st_index_t rb_hash_uint ( st_index_t  ,
st_index_t   
)
st_index_t rb_hash_uint32 ( st_index_t  ,
uint32_t   
)
VALUE rb_hash_update_by ( VALUE  hash1,
VALUE  hash2,
rb_hash_update_func *  func 
)
VALUE rb_hash_values ( VALUE  hash)
VALUE rb_home_dir_of ( VALUE  user,
VALUE  result 
)

Definition at line 3001 of file file.c.

References copy_home_path(), PRIsVALUE, rb_eArgError, rb_raise(), result, and RSTRING_PTR.

const char* rb_id2name ( ID  )
VALUE rb_id2str ( ID  )
ID rb_id_attrset ( ID  )
ID rb_id_encoding ( void  )

Definition at line 732 of file encoding.c.

References CONST_ID, and id_encoding.

Referenced by enc_set_index(), id2encidx(), rb_enc_get_index(), w_encoding(), and w_obj_each().

VALUE rb_id_quote_unprintable ( ID  )

Definition at line 8421 of file string.c.

References rb_id2str(), and rb_str_quote_unprintable().

const char* rb_insns_name ( int  i)

Definition at line 5540 of file compile.c.

VALUE rb_insns_name_array ( void  )

Definition at line 5546 of file compile.c.

References numberof, rb_ary_new(), rb_ary_push(), rb_fstring(), rb_obj_freeze(), and rb_str_new2.

Referenced by Init_VM().

VALUE rb_inspect ( VALUE  )
VALUE rb_int2big ( SIGNED_VALUE  )
VALUE rb_int2inum ( SIGNED_VALUE  )

Definition at line 3192 of file bignum.c.

References FIXABLE, LONG2FIX, and rb_int2big().

Referenced by gzfile_reader_rewind().

static VALUE rb_int2num_inline ( int  v)
inlinestatic

Definition at line 1281 of file ruby.h.

References FIXABLE, INT2FIX, and rb_int2big().

VALUE rb_int_positive_pow ( long  x,
unsigned long  y 
)

Definition at line 3047 of file numeric.c.

References int_pow().

VALUE rb_int_pred ( VALUE  num)

Definition at line 2499 of file numeric.c.

References FIX2LONG, FIXNUM_P, INT2FIX, LONG2NUM, rb_big_minus(), rb_funcall(), RB_TYPE_P, and T_BIGNUM.

VALUE rb_int_succ ( VALUE  num)

Definition at line 2474 of file numeric.c.

References FIX2LONG, FIXNUM_P, INT2FIX, LONG2NUM, rb_big_plus(), rb_funcall(), RB_TYPE_P, and T_BIGNUM.

VALUE rb_Integer ( VALUE  )

Definition at line 2737 of file object.c.

References rb_convert_to_integer().

VALUE rb_integer_float_cmp ( VALUE  x,
VALUE  y 
)
VALUE rb_integer_float_eq ( VALUE  x,
VALUE  y 
)

Definition at line 5347 of file bignum.c.

References FIX2LONG, FIXNUM_P, isinf(), isnan, LONG_MAX, LONG_MIN, Qfalse, Qtrue, rb_big_eq(), rb_dbl2big(), and RFLOAT_VALUE.

Referenced by fix_equal(), flo_eq(), and rb_big_eq().

int rb_integer_pack ( VALUE  val,
void *  words,
size_t  numwords,
size_t  wordsize,
size_t  nails,
int  flags 
)
VALUE rb_integer_unpack ( const void *  words,
size_t  numwords,
size_t  wordsize,
size_t  nails,
int  flags 
)
ID rb_intern ( const char *  )

Definition at line 17141 of file ripper.c.

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

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

Definition at line 17147 of file ripper.c.

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

ID rb_interned_id_p ( const char *  ,
long  ,
rb_encoding *   
)
void rb_interrupt ( void  )

Definition at line 585 of file eval.c.

References rb_eInterrupt, and rb_raise().

Referenced by rb_signal_exec().

VALUE rb_invcmp ( VALUE  ,
VALUE   
)

Definition at line 42 of file compar.c.

References INT2FIX, invcmp_recursive(), NIL_P, Qnil, Qundef, rb_cmpint(), rb_exec_recursive(), and result.

Referenced by rb_str_cmp_m(), and time_cmp().

VALUE rb_io_addstr ( VALUE  ,
VALUE   
)

Definition at line 1449 of file io.c.

References rb_io_write().

VALUE rb_io_ascii8bit_binmode ( VALUE  )

Definition at line 4725 of file io.c.

References GetOpenFile, and io_ascii8bit_binmode().

VALUE rb_io_binmode ( VALUE  )
ssize_t rb_io_bufread ( VALUE  io,
void *  buf,
size_t  size 
)

Definition at line 2094 of file io.c.

References bufread_arg::fptr, GetOpenFile, io_bufread(), and rb_io_check_readable().

VALUE rb_io_close ( VALUE  )
VALUE rb_io_eof ( VALUE  )
VALUE rb_io_fdopen ( int  ,
int  ,
const char *   
)

Definition at line 7219 of file io.c.

References prep_io(), rb_cFile, rb_cIO, and rb_io_oflags_fmode().

VALUE rb_io_flush ( VALUE  )

Definition at line 1510 of file io.c.

References rb_io_flush_raw().

VALUE rb_io_flush_raw ( VALUE  ,
int   
)
VALUE rb_io_get_io ( VALUE  )

Definition at line 627 of file io.c.

VALUE rb_io_getbyte ( VALUE  )
VALUE rb_io_gets ( VALUE  )

Definition at line 3187 of file io.c.

References rb_default_rs, and rb_io_getline_1().

VALUE rb_io_print ( int  ,
VALUE *  ,
VALUE   
)

Definition at line 6818 of file io.c.

References argc, NIL_P, Qnil, rb_io_write(), rb_lastline_get(), rb_output_fs, and rb_output_rs.

VALUE rb_io_printf ( int  ,
VALUE *  ,
VALUE   
)

Definition at line 6759 of file io.c.

References Qnil, rb_f_sprintf(), and rb_io_write().

VALUE rb_io_puts ( int  ,
VALUE *  ,
VALUE   
)
VALUE rb_io_ungetbyte ( VALUE  ,
VALUE   
)
VALUE rb_io_ungetc ( VALUE  ,
VALUE   
)
VALUE rb_io_write ( VALUE  ,
VALUE   
)

Definition at line 1427 of file io.c.

References id_write, and rb_funcallv().

int rb_is_absolute_path ( const char *  )

Definition at line 5281 of file file.c.

References isdirsep.

int rb_is_attrset_id ( ID  )

Definition at line 17292 of file ripper.c.

References is_attrset_id.

int rb_is_attrset_name ( VALUE  name)

Definition at line 17410 of file ripper.c.

References ID_ATTRSET, IDSET_ATTRSET_FOR_INTERN, and rb_str_symname_type().

Referenced by rb_check_id(), and rb_check_id_cstr().

int rb_is_class_id ( ID  )
int rb_is_class_name ( VALUE  name)

Definition at line 17392 of file ripper.c.

References ID_CLASS, and rb_str_symname_type().

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

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

Definition at line 17280 of file ripper.c.

References is_global_id.

int rb_is_global_name ( VALUE  name)

Definition at line 17398 of file ripper.c.

References ID_GLOBAL, and rb_str_symname_type().

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

Definition at line 17304 of file ripper.c.

References is_junk_id.

int rb_is_junk_name ( VALUE  name)

Definition at line 17432 of file ripper.c.

References IDSET_ATTRSET_FOR_SYNTAX, and rb_str_symname_type().

int rb_is_local_id ( ID  )

Definition at line 17298 of file ripper.c.

References is_local_id.

Referenced by check_local_id(), collect_local_variables_in_iseq(), inspect_struct(), and rb_is_attr_id().

int rb_is_local_name ( VALUE  name)

Definition at line 17416 of file ripper.c.

References ID_LOCAL, and rb_str_symname_type().

Referenced by check_local_id(), and rb_is_attr_name().

int rb_is_method_name ( VALUE  name)

Definition at line 17422 of file ripper.c.

References FALSE, ID_ATTRSET, ID_JUNK, ID_LOCAL, rb_str_symname_type(), and TRUE.

int rb_isalnum ( int  c)

Definition at line 1921 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_ALNUM.

int rb_isalpha ( int  c)

Definition at line 1922 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_ALPHA.

int rb_isblank ( int  c)

Definition at line 1923 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_BLANK.

int rb_iscntrl ( int  c)

Definition at line 1924 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_CNTRL.

int rb_isdigit ( int  c)

Definition at line 1925 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_DIGIT.

Referenced by f_format().

VALUE rb_iseq_absolute_path ( VALUE  iseqval)
VALUE rb_iseq_base_label ( VALUE  iseqval)

Definition at line 940 of file iseq.c.

References rb_iseq_location_struct::base_label, GetISeqPtr, and rb_iseq_struct::location.

VALUE rb_iseq_clone ( VALUE  iseqval,
VALUE  newcbase 
)
VALUE rb_iseq_first_lineno ( VALUE  iseqval)
VALUE rb_iseq_klass ( VALUE  iseqval)

Definition at line 966 of file iseq.c.

References GetISeqPtr, rb_iseq_struct::klass, and rb_iseq_struct::local_iseq.

VALUE rb_iseq_label ( VALUE  iseqval)

Definition at line 912 of file iseq.c.

References GetISeqPtr, rb_iseq_location_struct::label, and rb_iseq_struct::location.

VALUE rb_iseq_method_name ( VALUE  self)
VALUE rb_iseq_path ( VALUE  iseqval)

Definition at line 857 of file iseq.c.

References GetISeqPtr, rb_iseq_struct::location, and rb_iseq_location_struct::path.

int rb_isgraph ( int  c)

Definition at line 1926 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_GRAPH.

int rb_islower ( int  c)

Definition at line 1927 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_LOWER.

int rb_isprint ( int  c)

Definition at line 1928 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_PRINT.

int rb_ispunct ( int  c)

Definition at line 1929 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_PUNCT.

Referenced by rb_id2str().

int rb_isspace ( int  c)

Definition at line 1930 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_SPACE.

Referenced by rb_str_lstrip_bang(), rb_str_rstrip_bang(), and rb_str_split_m().

int rb_isupper ( int  c)

Definition at line 1931 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_UPPER.

int rb_isxdigit ( int  c)

Definition at line 1932 of file encoding.c.

References ctype_test, and ONIGENC_CTYPE_XDIGIT.

VALUE rb_iterate ( VALUE(*)(VALUE)  ,
VALUE  ,
VALUE(*)(ANYARGS)  ,
VALUE   
)
VALUE rb_iv_get ( VALUE  ,
const char *   
)

Definition at line 2601 of file variable.c.

References rb_intern, and rb_ivar_get().

VALUE rb_iv_set ( VALUE  ,
const char *  ,
VALUE   
)

Definition at line 2609 of file variable.c.

References rb_intern, and rb_ivar_set().

st_index_t rb_ivar_count ( VALUE  )
VALUE rb_ivar_defined ( VALUE  ,
ID   
)
void rb_ivar_foreach ( VALUE  ,
int(*)(ANYARGS)  ,
st_data_t   
)
VALUE rb_ivar_get ( VALUE  ,
ID   
)

Definition at line 1115 of file variable.c.

References PRIsVALUE, Qnil, Qundef, QUOTE_ID, rb_ivar_lookup(), and rb_warning().

VALUE rb_ivar_set ( VALUE  ,
ID  ,
VALUE   
)
void rb_last_status_clear ( void  )

Definition at line 336 of file process.c.

References GET_THREAD(), rb_thread_struct::last_status, and Qnil.

VALUE rb_last_status_get ( void  )

Definition at line 321 of file process.c.

References GET_THREAD(), and rb_thread_struct::last_status.

void rb_last_status_set ( int  status,
rb_pid_t  pid 
)
VALUE rb_lastline_get ( void  )

Definition at line 924 of file vm.c.

References vm_svar_get().

void rb_lastline_set ( VALUE  )

Definition at line 930 of file vm.c.

References vm_svar_set().

VALUE rb_lcm ( VALUE  x,
VALUE  y 
)

Definition at line 1730 of file rational.c.

References f_lcm(), and nurat_int_value().

void rb_load ( VALUE  ,
int   
)

Definition at line 648 of file load.c.

References FilePathValue, load_failed(), rb_find_file(), and rb_load_internal().

void* rb_load_file ( const char *  )
void* rb_load_file_str ( VALUE  )

Definition at line 1776 of file ruby.c.

References cmdline_options_init(), load_file(), and rb_parser_new().

void rb_load_protect ( VALUE  ,
int  ,
int *   
)

Definition at line 656 of file load.c.

References EXEC_TAG, POP_TAG, PUSH_TAG, and rb_load().

int rb_local_defined ( ID  )
VALUE rb_locale_charmap ( VALUE  klass)

Definition at line 23 of file localeinit.c.

References nl_langinfo_codeset(), Qnil, rb_usascii_str_new2, and snprintf.

int rb_locale_encindex ( void  )
rb_encoding* rb_locale_encoding ( void  )
VALUE rb_locale_str_new ( const char *  ,
long   
)

Definition at line 719 of file string.c.

References rb_external_str_new_with_enc(), and rb_locale_encoding().

VALUE rb_locale_str_new_cstr ( const char *  )

Definition at line 725 of file string.c.

References rb_external_str_new_with_enc(), rb_locale_encoding(), and strlen().

static VALUE rb_long2num_inline ( long  v)
inlinestatic

Definition at line 1302 of file ruby.h.

References FIXABLE, LONG2FIX, and rb_int2big().

VALUE rb_make_backtrace ( void  )

Definition at line 817 of file vm_backtrace.c.

References GET_THREAD(), and rb_vm_backtrace_str_ary().

VALUE rb_make_backtrace ( void  )

Definition at line 817 of file vm_backtrace.c.

VALUE rb_make_exception ( int  ,
VALUE *   
)

Definition at line 682 of file eval.c.

References make_exception(), and TRUE.

Referenced by parser_set_encode(), rb_f_raise(), and rb_threadptr_raise().

void rb_mark_end_proc ( void  )
void rb_mark_generic_ivar ( VALUE  )

Definition at line 992 of file variable.c.

References rb_mark_tbl(), st_data_t, and st_lookup().

void rb_mark_generic_ivar_tbl ( void  )

Definition at line 1022 of file variable.c.

References givar_i(), and st_foreach_safe().

void rb_mark_hash ( struct st_table *  )

Definition at line 3381 of file gc.c.

References mark_hash().

void rb_mark_set ( struct st_table *  )

Definition at line 3357 of file gc.c.

References mark_set().

void rb_mark_tbl ( struct st_table *  )

Definition at line 3519 of file gc.c.

References mark_tbl().

void rb_marshal_define_compat ( VALUE  newclass,
VALUE  oldclass,
VALUE(*)(VALUE)  dumper,
VALUE(*)(VALUE, VALUE)  loader 
)
VALUE rb_marshal_dump ( VALUE  ,
VALUE   
)

Definition at line 2138 of file marshal.c.

References argc, argv, marshal_dump(), and NIL_P.

VALUE rb_marshal_load ( VALUE  )

Definition at line 2150 of file marshal.c.

References marshal_load().

void rb_match_busy ( VALUE  )

Definition at line 1214 of file re.c.

VALUE rb_math_atan2 ( VALUE  ,
VALUE   
)
VALUE rb_math_cos ( VALUE  )
VALUE rb_math_cosh ( VALUE  )
VALUE rb_math_exp ( VALUE  )
VALUE rb_math_hypot ( VALUE  ,
VALUE   
)
VALUE rb_math_log ( int  argc,
VALUE *  argv 
)
VALUE rb_math_sin ( VALUE  )
VALUE rb_math_sinh ( VALUE  )
VALUE rb_math_sqrt ( VALUE  )
void rb_maygvl_fd_fix_cloexec ( int  fd)

Definition at line 198 of file io.c.

References errno, fcntl(), rb_bug(), and strerror().

void rb_mem_clear ( register VALUE *  ,
register  long 
)

Definition at line 35 of file array.c.

References Qnil.

Referenced by ary_mem_clear(), rb_struct_initialize_m(), and struct_alloc().

int rb_memcicmp ( const void *  ,
const void *  ,
long   
)

Definition at line 80 of file re.c.

st_index_t rb_memhash ( const void *  ptr,
long  len 
)

Definition at line 1302 of file random.c.

References sip_hash24, sipseed, and sip_uint64_t::u32.

long rb_memsearch ( const void *  ,
long  ,
const void *  ,
long  ,
rb_encoding *   
)
int rb_method_basic_definition_p ( VALUE  ,
ID   
)

Definition at line 1572 of file vm_method.c.

References rb_method_entry_struct::flag, NOEX_BASIC, and rb_method_entry().

int rb_method_boundp ( VALUE  ,
ID  ,
int   
)
VALUE rb_method_call ( int  ,
VALUE *  ,
VALUE   
)

Definition at line 1800 of file proc.c.

References Qnil, rb_block_given_p(), rb_block_proc(), and rb_method_call_with_block().

VALUE rb_method_call_with_block ( int  ,
VALUE *  ,
VALUE  ,
VALUE   
)
int rb_method_defined_by ( VALUE  obj,
ID  mid,
VALUE(*)(ANYARGS)  cfunc 
)
VALUE rb_mod_class_variables ( int  ,
VALUE *  ,
VALUE   
)

Definition at line 2528 of file variable.c.

References cvar_list(), mod_cvar_at(), mod_cvar_of(), Qtrue, rb_scan_args(), and RTEST.

void* rb_mod_const_at ( VALUE  ,
void *   
)

Definition at line 2004 of file variable.c.

References RCLASS_CONST_TBL, st_data_t, st_foreach_safe(), st_init_numtable(), and sv_i().

VALUE rb_mod_const_missing ( VALUE  ,
VALUE   
)
void* rb_mod_const_of ( VALUE  ,
void *   
)

Definition at line 2017 of file variable.c.

References mod, rb_cObject, rb_mod_const_at(), and RCLASS_SUPER.

VALUE rb_mod_constants ( int  ,
VALUE *  ,
VALUE   
)
int rb_mod_method_arity ( VALUE  ,
ID   
)

Definition at line 2120 of file proc.c.

References METHOD::me, original_method_entry(), and rb_method_entry_arity().

VALUE rb_mod_module_eval ( int  ,
VALUE *  ,
VALUE   
)

Definition at line 1676 of file vm_eval.c.

References specific_eval().

VALUE rb_mod_module_exec ( int  ,
VALUE *  ,
VALUE   
)

Definition at line 1704 of file vm_eval.c.

References rb_ary_new4, and yield_under().

VALUE rb_mod_name ( VALUE  )

Definition at line 206 of file variable.c.

References classname(), NIL_P, fc_result::path, and rb_str_dup().

VALUE rb_mod_remove_const ( VALUE  ,
VALUE   
)
VALUE rb_mod_remove_cvar ( VALUE  ,
VALUE   
)
void rb_must_asciicompat ( VALUE  )

Definition at line 1580 of file string.c.

References rb_eEncCompatError, rb_enc_asciicompat, rb_enc_get(), rb_enc_name, and rb_raise().

void rb_mutex_allow_trap ( VALUE  self,
int  val 
)

Definition at line 4642 of file thread.c.

References rb_mutex_struct::allow_trap, and GetMutexPtr.

VALUE rb_mutex_lock ( VALUE  mutex)
VALUE rb_mutex_locked_p ( VALUE  mutex)

Definition at line 4263 of file thread.c.

References GetMutexPtr, Qfalse, Qtrue, and rb_mutex_struct::th.

VALUE rb_mutex_new ( void  )

Definition at line 4251 of file thread.c.

References mutex_alloc(), and rb_cMutex.

VALUE rb_mutex_owned_p ( VALUE  self)

Definition at line 4449 of file thread.c.

References GET_THREAD(), GetMutexPtr, Qfalse, Qtrue, and rb_mutex_struct::th.

VALUE rb_mutex_sleep ( VALUE  self,
VALUE  timeout 
)
VALUE rb_mutex_synchronize ( VALUE  mutex,
VALUE(*)(VALUE arg)  func,
VALUE  arg 
)

Definition at line 4619 of file thread.c.

References func, rb_ensure(), rb_mutex_lock(), and rb_mutex_unlock().

VALUE rb_mutex_trylock ( VALUE  mutex)
VALUE rb_mutex_unlock ( VALUE  mutex)

Definition at line 4504 of file thread.c.

References err, GET_THREAD(), GetMutexPtr, rb_eThreadError, rb_mutex_unlock_th(), and rb_raise().

void rb_name_class ( VALUE  ,
ID   
)

Definition at line 385 of file variable.c.

References classid, ID2SYM, and rb_ivar_set().

void rb_need_block ( void  )

Definition at line 733 of file eval.c.

References Qnil, rb_block_given_p(), and rb_vm_localjump_error().

Referenced by generator_initialize(), and yielder_initialize().

VALUE rb_newobj ( void  )

Definition at line 1348 of file gc.c.

References newobj_of(), and T_NONE.

VALUE rb_newobj_of ( VALUE  ,
VALUE   
)

Definition at line 1354 of file gc.c.

References newobj_of().

rb_serial_t rb_next_class_serial ( void  )

Definition at line 92 of file vm.c.

References NEXT_CLASS_SERIAL.

NODE* rb_node_newnode ( enum  node_type,
VALUE  ,
VALUE  ,
VALUE   
)
NODE* rb_node_newnode_longlife ( enum  node_type,
VALUE  ,
VALUE  ,
VALUE   
)
static char rb_num2char_inline ( VALUE  x)
inlinestatic

Definition at line 1322 of file ruby.h.

References NUM2INT, RSTRING_LEN, RSTRING_PTR, T_STRING, and TYPE.

double rb_num2dbl ( VALUE  )

Definition at line 2965 of file object.c.

References rb_eTypeError, rb_Float(), rb_raise(), RFLOAT_VALUE, T_FLOAT, T_NIL, T_STRING, and TYPE.

VALUE rb_num2fix ( VALUE  )

Definition at line 2273 of file numeric.c.

References FIXABLE, FIXNUM_P, LONG2FIX, rb_eRangeError, rb_num2long(), and rb_raise().

SIGNED_VALUE rb_num2long ( VALUE  )
static long rb_num2long_inline ( VALUE  x)
inlinestatic

Definition at line 593 of file ruby.h.

References FIX2LONG, FIXNUM_P, and rb_num2long().

short rb_num2short ( VALUE  )

Definition at line 2231 of file numeric.c.

References check_short(), and rb_num2long().

static short rb_num2short_inline ( VALUE  x)
inlinestatic

Definition at line 642 of file ruby.h.

References FIX2SHORT, FIXNUM_P, and rb_num2short().

VALUE rb_num2ulong ( VALUE  )

Definition at line 2109 of file numeric.c.

References NULL, and rb_num2ulong_internal().

static unsigned long rb_num2ulong_inline ( VALUE  x)
inlinestatic

Definition at line 602 of file ruby.h.

References FIX2LONG, FIXNUM_P, and rb_num2ulong().

unsigned short rb_num2ushort ( VALUE  )

Definition at line 2249 of file numeric.c.

References check_ushort(), and rb_num2ulong_internal().

VALUE rb_num_coerce_bin ( VALUE  ,
VALUE  ,
ID   
)

Definition at line 280 of file numeric.c.

References do_coerce(), rb_funcall(), and TRUE.

VALUE rb_num_coerce_bit ( VALUE  ,
VALUE  ,
ID   
)

Definition at line 3309 of file numeric.c.

References bit_coerce(), rb_funcall(), and TRUE.

VALUE rb_num_coerce_cmp ( VALUE  ,
VALUE  ,
ID   
)

Definition at line 287 of file numeric.c.

References do_coerce(), FALSE, Qnil, and rb_funcall().

VALUE rb_num_coerce_relop ( VALUE  ,
VALUE  ,
ID   
)

Definition at line 295 of file numeric.c.

References c, do_coerce(), FALSE, NIL_P, Qnil, rb_cmperr(), and rb_funcall().

int rb_num_negative_p ( VALUE  )

Definition at line 197 of file numeric.c.

References negative_int_p().

int rb_num_to_uint ( VALUE  val,
unsigned int *  ret 
)
VALUE rb_obj_alloc ( VALUE  )
VALUE rb_obj_as_string ( VALUE  )

Definition at line 1011 of file string.c.

References id_to_s, OBJ_TAINT, OBJ_TAINTED, rb_any_to_s(), rb_funcall(), RB_TYPE_P, and T_STRING.

void rb_obj_call_init ( VALUE  ,
int  ,
VALUE *   
)
VALUE rb_obj_class ( VALUE  )

Definition at line 227 of file object.c.

References CLASS_OF, and rb_class_real().

const char* rb_obj_classname ( VALUE  )

Definition at line 406 of file variable.c.

References CLASS_OF, and rb_class2name().

VALUE rb_obj_clone ( VALUE  )
void rb_obj_copy_ivar ( VALUE  dest,
VALUE  obj 
)

Definition at line 256 of file object.c.

References ALLOC_N, MEMCPY, RBASIC, ROBJECT, ROBJECT_EMBED, ROBJECT_EMBED_LEN_MAX, ROBJECT_IVPTR, and xfree.

VALUE rb_obj_dup ( VALUE  )
VALUE rb_obj_encoding ( VALUE  )
VALUE rb_obj_equal ( VALUE  obj1,
VALUE  obj2 
)

Definition at line 142 of file object.c.

References Qfalse, and Qtrue.

VALUE rb_obj_freeze ( VALUE  )

Definition at line 1077 of file object.c.

References OBJ_FREEZE, OBJ_FROZEN, Qtrue, SPECIAL_CONST_P, st_data_t, st_init_numtable(), and st_insert().

VALUE rb_obj_frozen_p ( VALUE  )

Definition at line 1103 of file object.c.

References OBJ_FROZEN, Qfalse, Qtrue, SPECIAL_CONST_P, and st_lookup().

size_t rb_obj_gc_flags ( VALUE  ,
ID  [],
size_t   
)
VALUE rb_obj_hide ( VALUE  obj)

Definition at line 53 of file object.c.

References RBASIC_CLEAR_CLASS, and SPECIAL_CONST_P.

VALUE rb_obj_id ( VALUE  )

Definition at line 2373 of file gc.c.

References FIXNUM_FLAG, FLONUM_P, LONG2NUM, nonspecial_obj_id, SIGNED_VALUE, SPECIAL_CONST_P, SYM2ID, and SYMBOL_P.

void rb_obj_infect ( VALUE  ,
VALUE   
)

Definition at line 1048 of file object.c.

References OBJ_INFECT.

VALUE rb_obj_init_copy ( VALUE  ,
VALUE   
)

Definition at line 423 of file object.c.

References rb_check_frozen, rb_check_trusted, rb_eTypeError, rb_obj_class(), rb_raise(), and TYPE.

VALUE rb_obj_instance_eval ( int  ,
VALUE *  ,
VALUE   
)
VALUE rb_obj_instance_exec ( int  ,
VALUE *  ,
VALUE   
)
VALUE rb_obj_instance_variables ( VALUE  )

Definition at line 1371 of file variable.c.

References ivar_i(), rb_ary_new(), and rb_ivar_foreach().

VALUE rb_obj_is_fiber ( VALUE  )

Definition at line 370 of file cont.c.

References Qfalse, Qtrue, and rb_typeddata_is_kind_of().

Referenced by rb_objspace_call_finalizer().

VALUE rb_obj_is_instance_of ( VALUE  ,
VALUE   
)

Definition at line 616 of file object.c.

References class_or_module_required(), Qfalse, Qtrue, and rb_obj_class().

VALUE rb_obj_is_kind_of ( VALUE  ,
VALUE   
)
VALUE rb_obj_is_method ( VALUE  )

Definition at line 1116 of file proc.c.

References method_data_type, Qfalse, Qtrue, and rb_typeddata_is_kind_of().

VALUE rb_obj_is_mutex ( VALUE  obj)

Definition at line 4216 of file thread.c.

References Qfalse, Qtrue, and rb_typeddata_is_kind_of().

VALUE rb_obj_is_proc ( VALUE  )

Definition at line 94 of file proc.c.

References Qfalse, Qtrue, and rb_typeddata_is_kind_of().

VALUE rb_obj_is_thread ( VALUE  obj)

Definition at line 2120 of file vm.c.

References Qfalse, Qtrue, rb_typeddata_is_kind_of(), and thread_data_type.

size_t rb_obj_memsize_of ( VALUE  )

Definition at line 2548 of file gc.c.

References obj_memsize_of(), and TRUE.

VALUE rb_obj_method ( VALUE  ,
VALUE   
)

Definition at line 1460 of file proc.c.

References CLASS_OF, FALSE, mnew(), rb_check_id(), rb_cMethod, and rb_method_name_error().

int rb_obj_method_arity ( VALUE  ,
ID   
)

Definition at line 2128 of file proc.c.

References CLASS_OF, and rb_mod_method_arity().

VALUE rb_obj_remove_instance_variable ( VALUE  ,
VALUE   
)
int rb_obj_respond_to ( VALUE  ,
ID  ,
int   
)
VALUE rb_obj_reveal ( VALUE  obj,
VALUE  klass 
)

Definition at line 62 of file object.c.

References RBASIC_SET_CLASS, and SPECIAL_CONST_P.

VALUE rb_obj_setup ( VALUE  obj,
VALUE  klass,
VALUE  type 
)

Definition at line 71 of file object.c.

References FL_SET, FL_TAINT, rb_safe_level, RBASIC, RBASIC_SET_CLASS, and type.

VALUE rb_obj_taint ( VALUE  )

Definition at line 974 of file object.c.

References OBJ_TAINT, OBJ_TAINTED, and rb_check_frozen.

VALUE rb_obj_tainted ( VALUE  )

Definition at line 946 of file object.c.

References OBJ_TAINTED, Qfalse, and Qtrue.

VALUE rb_obj_trust ( VALUE  )

Definition at line 1041 of file object.c.

References rb_obj_untaint(), and rb_warning().

VALUE rb_obj_untaint ( VALUE  )

Definition at line 994 of file object.c.

References FL_TAINT, FL_UNSET, OBJ_TAINTED, rb_check_frozen, and rb_secure().

VALUE rb_obj_untrust ( VALUE  )

Definition at line 1026 of file object.c.

References rb_obj_taint(), and rb_warning().

VALUE rb_obj_untrusted ( VALUE  )

Definition at line 1012 of file object.c.

References rb_obj_tainted(), and rb_warning().

static VALUE rb_obj_wb_unprotect ( VALUE  x,
RB_UNUSED_VAR(const char *filename)  ,
RB_UNUSED_VAR(int line)   
)
inlinestatic
static VALUE rb_obj_write ( VALUE  a,
VALUE *  slot,
VALUE  b,
RB_UNUSED_VAR(const char *filename)  ,
RB_UNUSED_VAR(int line)   
)
inlinestatic

Definition at line 1262 of file ruby.h.

References Qundef, and rb_obj_written().

static VALUE rb_obj_written ( VALUE  a,
RB_UNUSED_VAR(VALUE oldv)  ,
VALUE  b,
RB_UNUSED_VAR(const char *filename)  ,
RB_UNUSED_VAR(int line)   
)
inlinestatic

Definition at line 1245 of file ruby.h.

References FL_PROMOTED, FL_TEST_RAW, rb_gc_writebarrier(), and SPECIAL_CONST_P.

Referenced by rb_obj_write().

RUBY_SYMBOL_EXPORT_BEGIN const char* rb_objspace_data_type_name ( VALUE  obj)

Definition at line 1394 of file gc.c.

References RTYPEDDATA_P, and RTYPEDDATA_TYPE.

void rb_objspace_set_event_hook ( const rb_event_flag_t  event)

Definition at line 1265 of file gc.c.

References rb_objspace::hook_events, rb_objspace, and RUBY_INTERNAL_EVENT_OBJSPACE_MASK.

void rb_p ( VALUE  )
int rb_parse_in_eval ( void  )

Definition at line 5942 of file compile.c.

References GET_THREAD(), and rb_thread_struct::parse_in_eval.

Referenced by parser_compile_string(), and rb_parser_compile_file_path().

int rb_parse_in_main ( void  )

Definition at line 5948 of file compile.c.

References GET_THREAD(), and rb_thread_struct::parse_in_eval.

Referenced by yyparse().

NODE* rb_parser_append_print ( VALUE  ,
NODE *   
)

Definition at line 16609 of file ripper.c.

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

Referenced by process_options().

void* rb_parser_calloc ( struct parser_params *  ,
size_t  ,
size_t   
)

Definition at line 17672 of file ripper.c.

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

NODE* rb_parser_compile_cstr ( volatile VALUE  ,
const char *  ,
const char *  ,
int  ,
int   
)

Definition at line 12094 of file ripper.c.

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

NODE* rb_parser_compile_file ( volatile VALUE  ,
const char *  ,
VALUE  ,
int   
)

Definition at line 12115 of file ripper.c.

References rb_filesystem_str_new_cstr(), and rb_parser_compile_file_path().

Referenced by iseq_s_compile_file(), and rb_compile_file().

NODE* rb_parser_compile_file_path ( volatile VALUE  vparser,
VALUE  fname,
VALUE  input,
int  line 
)
NODE* rb_parser_compile_string ( volatile VALUE  ,
const char *  ,
VALUE  ,
int   
)

Definition at line 12074 of file ripper.c.

References rb_filesystem_str_new_cstr(), and rb_parser_compile_string_path().

Referenced by process_options().

NODE* rb_parser_compile_string_path ( volatile VALUE  vparser,
VALUE  fname,
VALUE  src,
int  line 
)
VALUE rb_parser_dump_tree ( NODE *  node,
int  comment 
)

Definition at line 894 of file node.c.

References buf, dump_node(), and rb_str_new_cstr().

VALUE rb_parser_encoding ( VALUE  )

Definition at line 17616 of file ripper.c.

References current_enc, rb_enc_from_encoding(), and TypedData_Get_Struct.

Referenced by load_file_internal().

VALUE rb_parser_end_seen_p ( VALUE  )

Definition at line 17601 of file ripper.c.

References Qfalse, Qtrue, ruby__end__seen, and TypedData_Get_Struct.

Referenced by load_file_internal().

void rb_parser_free ( struct parser_params *  ,
void *   
)

Definition at line 17702 of file ripper.c.

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

VALUE rb_parser_get_yydebug ( VALUE  )

Definition at line 17631 of file ripper.c.

References Qfalse, Qtrue, and TypedData_Get_Struct.

VALUE rb_parser_get_yydebug ( VALUE  )

Definition at line 17631 of file ripper.c.

void* rb_parser_malloc ( struct parser_params *  ,
size_t   
)

Definition at line 17662 of file ripper.c.

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

RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_parser_new ( void  )
void* rb_parser_realloc ( struct parser_params *  ,
void *  ,
size_t   
)
VALUE rb_parser_set_yydebug ( VALUE  ,
VALUE   
)

Definition at line 17646 of file ripper.c.

References RTEST, and TypedData_Get_Struct.

Referenced by process_options().

VALUE rb_parser_set_yydebug ( VALUE  ,
VALUE   
)

Definition at line 17646 of file ripper.c.

NODE* rb_parser_while_loop ( VALUE  ,
NODE *  ,
int  ,
int   
)
VALUE rb_path2class ( const char *  )

Definition at line 379 of file variable.c.

References rb_path_to_class(), and rb_str_new_cstr().

int rb_path_check ( const char *  )

Definition at line 5360 of file file.c.

References path_check_0(), PATH_SEP_CHAR, rb_str_new(), strchr(), strlen(), and TRUE.

VALUE rb_path_to_class ( VALUE  )
int rb_pipe ( int *  pipes)

Definition at line 5651 of file io.c.

References errno, rb_cloexec_pipe(), rb_gc(), and rb_update_max_fd().

void rb_print_backtrace ( void  )

Definition at line 685 of file vm_dump.c.

References free().

int rb_proc_arity ( VALUE  )
VALUE rb_proc_call ( VALUE  ,
VALUE   
)
VALUE rb_proc_call_with_block ( VALUE  ,
int  argc,
const VALUE *  argv,
VALUE   
)

Definition at line 766 of file proc.c.

References rb_proc_t::block, GET_THREAD(), GetProcPtr, NIL_P, RB_GC_GUARD, and rb_vm_invoke_proc().

int rb_proc_exec ( const char *  )

Definition at line 1359 of file process.c.

References after_exec(), before_exec(), preserving_errno, proc_exec_sh(), and Qfalse.

VALUE rb_proc_lambda_p ( VALUE  )

Definition at line 234 of file proc.c.

References GetProcPtr, rb_proc_t::is_lambda, Qfalse, and Qtrue.

VALUE rb_proc_location ( VALUE  self)

Definition at line 949 of file proc.c.

References get_proc_iseq, and iseq_location().

VALUE rb_proc_new ( VALUE(*)(ANYARGS)  ,
VALUE   
)

Definition at line 2321 of file proc.c.

References func, mproc(), and rb_iterate().

VALUE rb_proc_times ( VALUE  )
VALUE rb_protect ( VALUE(*)(VALUE)  ,
VALUE  ,
int *   
)
void rb_provide ( const char *  )

Definition at line 572 of file load.c.

References rb_provide_feature(), and rb_usascii_str_new2.

int rb_provided ( const char *  )

Definition at line 523 of file load.c.

References rb_feature_provided().

VALUE rb_random_bytes ( VALUE  rnd,
long  n 
)
VALUE rb_random_int ( VALUE  rnd,
VALUE  max 
)
unsigned int rb_random_int32 ( VALUE  rnd)
double rb_random_real ( VALUE  rnd)
unsigned long rb_random_ulong_limited ( VALUE  rnd,
unsigned long  limit 
)
VALUE rb_range_beg_len ( VALUE  ,
long *  ,
long *  ,
long  ,
int   
)

Definition at line 1005 of file range.c.

References NUM2LONG, Qfalse, Qnil, Qtrue, rb_eRangeError, rb_raise(), and rb_range_values().

VALUE rb_range_new ( VALUE  ,
VALUE  ,
int   
)

Definition at line 70 of file range.c.

References range, range_init(), rb_cRange, rb_obj_alloc(), and RBOOL.

int rb_range_values ( VALUE  range,
VALUE *  begp,
VALUE *  endp,
int *  exclp 
)
VALUE rb_Rational ( VALUE  ,
VALUE   
)

Definition at line 1768 of file rational.c.

References nurat_s_convert(), and rb_cRational.

VALUE rb_rational_new ( VALUE  ,
VALUE   
)

Definition at line 1760 of file rational.c.

References nurat_s_canonicalize_internal(), and rb_cRational.

VALUE rb_rational_raw ( VALUE  ,
VALUE   
)

Definition at line 1754 of file rational.c.

References nurat_s_new_internal(), and rb_cRational.

VALUE rb_rational_reciprocal ( VALUE  x)

Definition at line 1694 of file rational.c.

References CLASS_OF, f_rational_new_no_reduce2(), and get_dat1.

VALUE rb_realpath_internal ( VALUE  basedir,
VALUE  path,
int  strict 
)
VALUE rb_refinement_module_get_refined_class ( VALUE  module)

Definition at line 1177 of file eval.c.

References CONST_ID, and rb_attr_get().

Referenced by include_modules_at(), rb_method_entry_make(), and rb_mod_to_s().

VALUE rb_reg_alloc ( void  )

Definition at line 2499 of file re.c.

References rb_reg_s_alloc().

int rb_reg_backref_number ( VALUE  match,
VALUE  backref 
)

Definition at line 1100 of file re.c.

References match_backref_number().

VALUE rb_reg_check_preprocess ( VALUE  )
VALUE rb_reg_compile ( VALUE  str,
int  options,
const char *  sourcefile,
int  sourceline 
)
VALUE rb_reg_init_str ( VALUE  re,
VALUE  s,
int  options 
)

Definition at line 2511 of file re.c.

References err, NULL, rb_reg_initialize_str(), and rb_reg_raise_str().

VALUE rb_reg_last_match ( VALUE  )

Definition at line 1509 of file re.c.

References rb_reg_nth_match().

VALUE rb_reg_match ( VALUE  ,
VALUE   
)

Definition at line 2765 of file re.c.

References LONG2FIX, Qnil, rb_str_sublen(), and reg_match_pos().

VALUE rb_reg_match2 ( VALUE  )
VALUE rb_reg_match_last ( VALUE  )

Definition at line 1572 of file re.c.

References BEG, match_check(), NIL_P, re_registers::num_regs, Qnil, rb_reg_nth_match(), and RMATCH_REGS.

VALUE rb_reg_match_post ( VALUE  )

Definition at line 1554 of file re.c.

References BEG, END, match_check(), NIL_P, OBJ_TAINT, OBJ_TAINTED, Qnil, rb_str_subseq(), RMATCH, RMATCH_REGS, and RSTRING_LEN.

VALUE rb_reg_match_pre ( VALUE  )

Definition at line 1527 of file re.c.

References BEG, match_check(), NIL_P, OBJ_TAINT, OBJ_TAINTED, Qnil, rb_str_subseq(), RMATCH, and RMATCH_REGS.

VALUE rb_reg_new ( const char *  ,
long  ,
int   
)

Definition at line 2542 of file re.c.

References rb_ascii8bit_encoding(), and rb_enc_reg_new().

VALUE rb_reg_new_str ( VALUE  ,
int   
)

Definition at line 2505 of file re.c.

References rb_reg_alloc(), and rb_reg_init_str().

VALUE rb_reg_nth_defined ( int  ,
VALUE   
)

Definition at line 1465 of file re.c.

References BEG, match_check(), NIL_P, re_registers::num_regs, Qfalse, Qnil, Qtrue, and RMATCH_REGS.

VALUE rb_reg_nth_match ( int  ,
VALUE   
)
int rb_reg_options ( VALUE  )
int rb_remove_event_hook ( rb_event_hook_func_t  func)

Definition at line 204 of file vm_trace.c.

References GET_VM, Qundef, and remove_event_hook().

void rb_remove_method ( VALUE  ,
const char *   
)

Definition at line 755 of file vm_method.c.

References rb_intern, and remove_method().

void rb_remove_method_id ( VALUE  ,
ID   
)

Definition at line 749 of file vm_method.c.

References remove_method().

VALUE rb_require ( const char *  )

Definition at line 1034 of file load.c.

References OBJ_FREEZE, rb_require_safe(), rb_safe_level, and rb_str_new2.

VALUE rb_require_safe ( VALUE  ,
int   
)
VALUE rb_rescue ( VALUE(*)(ANYARGS)  ,
VALUE  ,
VALUE(*)(ANYARGS)  ,
VALUE   
)

Definition at line 799 of file eval.c.

References rb_eStandardError, and rb_rescue2().

Referenced by cmp_equal(), do_coerce(), range_init(), and time_mload().

VALUE rb_rescue2 ( VALUE(*)(ANYARGS)  ,
VALUE  ,
VALUE(*)(ANYARGS)  ,
VALUE  ,
  ... 
)
int rb_reserved_fd_p ( int  fd)
struct kwtable* rb_reserved_word ( const char *  ,
unsigned  int 
)
read

Definition at line 17570 of file ripper.c.

References reserved_word().

void rb_reset_random_seed ( void  )

Definition at line 1323 of file random.c.

References default_rand, INT2FIX, rb_random_t::mt, rb_random_t::seed, and uninit_genrand.

int rb_respond_to ( VALUE  ,
ID   
)

Definition at line 1638 of file vm_method.c.

References FALSE, and rb_obj_respond_to().

VALUE* rb_ruby_debug_ptr ( void  )

Definition at line 2828 of file vm.c.

References GET_VM, and ruby_vm_debug_ptr().

VALUE* rb_ruby_verbose_ptr ( void  )

Definition at line 2822 of file vm.c.

References GET_VM, and ruby_vm_verbose_ptr().

int rb_safe_level ( void  )

Definition at line 37 of file safe.c.

References GET_THREAD(), and rb_thread_struct::safe_level.

void rb_secure ( int  )

Definition at line 88 of file safe.c.

References rb_eSecurityError, rb_frame_callee(), rb_id2name(), rb_raise(), and rb_safe_level.

void rb_secure_update ( VALUE  )

Definition at line 104 of file safe.c.

void rb_set_class_path ( VALUE  ,
VALUE  ,
const char *   
)
void rb_set_class_path_string ( VALUE  ,
VALUE  ,
VALUE   
)
void rb_set_end_proc ( void(*)(VALUE)  ,
VALUE   
)
void rb_set_errinfo ( VALUE  )
void rb_set_safe_level ( int  )

Definition at line 49 of file safe.c.

References GET_THREAD(), rb_eArgError, rb_raise(), rb_thread_struct::safe_level, and SAFE_LEVEL_MAX.

void rb_set_safe_level_force ( int  )

Definition at line 43 of file safe.c.

References GET_THREAD(), and rb_thread_struct::safe_level.

int rb_sigaltstack_size ( void  )
const char* rb_sourcefile ( void  )
VALUE rb_sourcefilename ( void  )
int rb_sourceline ( void  )
rb_pid_t rb_spawn ( int  ,
VALUE *   
)

Definition at line 3833 of file process.c.

References NULL, and rb_spawn_internal().

rb_pid_t rb_spawn_err ( int  ,
VALUE *  ,
char *  ,
size_t   
)

Definition at line 3827 of file process.c.

References rb_spawn_internal().

static int rb_special_const_p ( VALUE  obj)
inlinestatic

Definition at line 1687 of file ruby.h.

References Qfalse, Qtrue, and SPECIAL_CONST_P.

st_table* rb_st_copy ( VALUE  obj,
struct st_table *  orig_tbl 
)

Definition at line 2633 of file variable.c.

References st_copy(), st_data_t, st_foreach(), and tbl_copy_i().

int rb_st_insert_id_and_value ( VALUE  obj,
st_table *  tbl,
ID  key,
VALUE  value 
)

Definition at line 2618 of file variable.c.

References Qundef, RB_OBJ_WRITTEN, result, st_data_t, and st_insert().

void rb_stdio_set_default_encoding ( void  )

Definition at line 10558 of file io.c.

References Qnil, rb_io_set_encoding(), rb_stderr, rb_stdin, rb_stdout, and val.

VALUE rb_str2big_karatsuba ( VALUE  arg,
int  base,
int  badcheck 
)
VALUE rb_str2big_normal ( VALUE  arg,
int  base,
int  badcheck 
)
VALUE rb_str2big_poweroftwo ( VALUE  arg,
int  base,
int  badcheck 
)
VALUE rb_str2inum ( VALUE  ,
int   
)

Definition at line 4377 of file bignum.c.

References rb_str_to_inum().

VALUE rb_str_append ( VALUE  ,
VALUE   
)
void rb_str_associate ( VALUE  ,
VALUE   
)
VALUE rb_str_associated ( VALUE  )

Definition at line 1570 of file string.c.

References Qfalse, RSTRING, STR_ASSOC_P, and STR_SHARED_P.

VALUE rb_str_buf_append ( VALUE  ,
VALUE   
)
VALUE rb_str_buf_cat ( VALUE  ,
const char *  ,
long   
)

Definition at line 2124 of file string.c.

References rb_eArgError, rb_raise(), and str_buf_cat().

VALUE rb_str_buf_cat2 ( VALUE  ,
const char *   
)

Definition at line 2134 of file string.c.

References rb_str_buf_cat(), and strlen().

VALUE rb_str_buf_cat_ascii ( VALUE  ,
const char *   
)
int rb_str_buf_cat_escaped_char ( VALUE  result,
unsigned int  c,
int  unicode_p 
)

Definition at line 4747 of file string.c.

References buf, CHAR_ESC_LEN, ISPRINT, rb_str_buf_cat(), snprintf, and strlen().

VALUE rb_str_buf_new ( long  )

Definition at line 891 of file string.c.

References ALLOC_N, FL_SET, rb_cString, RSTRING, str_alloc(), STR_BUF_MIN_SIZE, and STR_NOEMBED.

VALUE rb_str_buf_new2 ( const char *  )
VALUE rb_str_buf_new_cstr ( const char *  )

Definition at line 907 of file string.c.

References rb_str_buf_cat(), rb_str_buf_new(), and strlen().

size_t rb_str_capacity ( VALUE  )

Definition at line 468 of file string.c.

References RSTRING, RSTRING_EMBED_LEN_MAX, STR_EMBED_P, and STR_NOCAPA_P.

VALUE rb_str_cat ( VALUE  ,
const char *  ,
long   
)
VALUE rb_str_cat2 ( VALUE  ,
const char *   
)

Definition at line 2159 of file string.c.

References rb_str_cat(), and strlen().

int rb_str_cmp ( VALUE  ,
VALUE   
)

Definition at line 2486 of file string.c.

References ENCODING_GET, lesser, memcmp(), rb_str_comparable(), and RSTRING_GETMEM.

long rb_str_coderange_scan_restartable ( const char *  ,
const char *  ,
rb_encoding *  ,
int *   
)
int rb_str_comparable ( VALUE  ,
VALUE   
)
VALUE rb_str_concat ( VALUE  ,
VALUE   
)
VALUE rb_str_conv_enc ( VALUE  str,
rb_encoding *  from,
rb_encoding *  to 
)

Definition at line 680 of file string.c.

References Qnil, and rb_str_conv_enc_opts().

VALUE rb_str_conv_enc_opts ( VALUE  str,
rb_encoding *  from,
rb_encoding *  to,
int  ecflags,
VALUE  ecopts 
)
VALUE rb_str_drop_bytes ( VALUE  ,
long   
)
VALUE rb_str_dump ( VALUE  )
VALUE rb_str_dup ( VALUE  )

Definition at line 1062 of file string.c.

References rb_obj_class(), and str_duplicate().

VALUE rb_str_dup_frozen ( VALUE  )
VALUE rb_str_ellipsize ( VALUE  str,
long  len 
)

Shortens str and adds three dots, an ellipsis, if it is longer than len characters.

Parameters
strthe string to ellipsize.
lenthe maximum string length.
Returns
the ellipsized string.
Precondition
len must not be negative.
Postcondition
the length of the returned string in characters is less than or equal to len.
If the length of str is less than or equal len, returns str itself.
the encoding of returned string is equal to the encoding of str.
the class of returned string is equal to the class of str.
Note
the length is counted in characters.

Definition at line 7969 of file string.c.

References Qnil, rb_eIndexError, rb_enc_asciicompat, rb_enc_associate(), rb_enc_from_encoding(), rb_enc_get(), rb_enc_mbminlen, rb_enc_nth(), rb_enc_step_back, rb_raise(), rb_str_append(), rb_str_cat(), rb_str_encode(), rb_str_new_with_class(), rb_str_subseq(), rb_usascii_str_new(), RSTRING_LEN, and RSTRING_PTR.

VALUE rb_str_encode ( VALUE  str,
VALUE  to,
int  ecflags,
VALUE  ecopts 
)

Definition at line 2885 of file transcode.c.

References argc, argv, encoded_dup(), and str_transcode0().

VALUE rb_str_encode_ospath ( VALUE  )
VALUE rb_str_equal ( VALUE  str1,
VALUE  str2 
)

Definition at line 2543 of file string.c.

References Qfalse, Qtrue, rb_equal(), rb_intern, rb_respond_to(), RB_TYPE_P, str_eql(), and T_STRING.

VALUE rb_str_export ( VALUE  )

Definition at line 743 of file string.c.

References rb_default_external_encoding(), rb_str_conv_enc(), and STR_ENC_GET.

VALUE rb_str_export_locale ( VALUE  )

Definition at line 749 of file string.c.

References rb_locale_encoding(), rb_str_conv_enc(), and STR_ENC_GET.

VALUE rb_str_export_to_enc ( VALUE  ,
rb_encoding *   
)

Definition at line 755 of file string.c.

References rb_str_conv_enc(), and STR_ENC_GET.

void rb_str_fill_terminator ( VALUE  str,
const int  termlen 
)

Definition at line 1670 of file string.c.

References rb_enc_get(), rb_enc_mbminlen, RSTRING_LEN, RSTRING_PTR, and str_fill_term().

VALUE rb_str_format ( int  ,
const VALUE *  ,
VALUE   
)
void rb_str_free ( VALUE  )
VALUE rb_str_freeze ( VALUE  )

Definition at line 1968 of file string.c.

References OBJ_FREEZE, rb_obj_freeze(), RSTRING, and STR_ASSOC_P.

st_index_t rb_str_hash ( VALUE  )
int rb_str_hash_cmp ( VALUE  ,
VALUE   
)

Definition at line 2432 of file string.c.

References memcmp(), rb_str_comparable(), RSTRING_LEN, and RSTRING_PTR.

VALUE rb_str_inspect ( VALUE  )
VALUE rb_str_intern ( VALUE  )

Definition at line 7467 of file string.c.

References id, ID2SYM, RB_GC_GUARD, and rb_intern_str.

VALUE rb_str_length ( VALUE  )

Definition at line 1298 of file string.c.

References LONG2NUM, STR_ENC_GET, and str_strlen().

VALUE rb_str_locktmp ( VALUE  )
VALUE rb_str_locktmp_ensure ( VALUE  str,
VALUE(*)(VALUE)  func,
VALUE  arg 
)

Definition at line 2001 of file string.c.

References func, rb_ensure(), rb_str_locktmp(), and rb_str_unlocktmp().

void rb_str_modify ( VALUE  )

Definition at line 1484 of file string.c.

References ENC_CODERANGE_CLEAR, str_independent(), and str_make_independent.

void rb_str_modify_expand ( VALUE  ,
long   
)
VALUE rb_str_new ( const char *  ,
long   
)

Definition at line 534 of file string.c.

References rb_cString, and str_new().

VALUE rb_str_new_cstr ( const char *  )

Definition at line 560 of file string.c.

References rb_eArgError, rb_raise(), rb_str_new(), and strlen().

VALUE rb_str_new_frozen ( VALUE  )
VALUE rb_str_new_shared ( VALUE  )

Definition at line 799 of file string.c.

References OBJ_INFECT, rb_obj_class(), and str_new3().

VALUE rb_str_new_with_class ( VALUE  ,
const char *  ,
long   
)

Definition at line 874 of file string.c.

References rb_obj_class(), and str_new().

long rb_str_offset ( VALUE  ,
long   
)

Definition at line 1781 of file string.c.

References RSTRING_END, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, and str_offset().

VALUE rb_str_plus ( VALUE  ,
VALUE   
)
VALUE rb_str_quote_unprintable ( VALUE  )
VALUE rb_str_replace ( VALUE  ,
VALUE   
)

Definition at line 4314 of file string.c.

References str_discard(), str_modifiable(), str_replace(), and StringValue.

VALUE rb_str_resize ( VALUE  ,
long   
)
VALUE rb_str_resurrect ( VALUE  str)
VALUE rb_str_scrub ( VALUE  str,
VALUE  repl 
)
void rb_str_set_len ( VALUE  ,
long   
)
void rb_str_setter ( VALUE  ,
ID  ,
VALUE *   
)

Definition at line 7875 of file string.c.

References NIL_P, rb_eTypeError, rb_id2name(), rb_raise(), RB_TYPE_P, and T_STRING.

void rb_str_shared_replace ( VALUE  ,
VALUE   
)
VALUE rb_str_split ( VALUE  ,
const char *   
)

Definition at line 6411 of file string.c.

References rb_str_new2, rb_str_split_m(), and StringValue.

long rb_str_strlen ( VALUE  )

Definition at line 1284 of file string.c.

References STR_ENC_GET, and str_strlen().

long rb_str_sublen ( VALUE  ,
long   
)

Definition at line 1828 of file string.c.

References ENC_CODERANGE, enc_strlen(), RSTRING_PTR, single_byte_optimizable(), and STR_ENC_GET.

char* rb_str_subpos ( VALUE  ,
long  ,
long *   
)
VALUE rb_str_subseq ( VALUE  ,
long  ,
long   
)
VALUE rb_str_substr ( VALUE  ,
long  ,
long   
)
VALUE rb_str_succ ( VALUE  )
int rb_str_symname_p ( VALUE  )
VALUE rb_str_times ( VALUE  ,
VALUE   
)
VALUE rb_str_tmp_new ( long  )

Definition at line 919 of file string.c.

References str_new().

double rb_str_to_dbl ( VALUE  ,
int   
)
VALUE rb_str_to_inum ( VALUE  ,
int  ,
int   
)
VALUE rb_str_to_str ( VALUE  )

Definition at line 964 of file string.c.

References rb_convert_type(), and T_STRING.

VALUE rb_str_unlocktmp ( VALUE  )

Definition at line 1991 of file string.c.

References FL_TEST, FL_UNSET, rb_eRuntimeError, rb_raise(), and STR_TMPLOCK.

void rb_str_update ( VALUE  ,
long  ,
long  ,
VALUE   
)

Definition at line 3739 of file string.c.

References rb_str_splice().

VALUE rb_str_vcatf ( VALUE  ,
const char *  ,
va_list   
)
VALUE rb_String ( VALUE  )

Definition at line 2987 of file object.c.

References NIL_P, rb_check_string_type(), rb_convert_type(), and T_STRING.

VALUE rb_string_value ( volatile VALUE *  )

Definition at line 1589 of file string.c.

References rb_str_to_str(), RB_TYPE_P, and T_STRING.

char* rb_string_value_cstr ( volatile VALUE *  )
char* rb_string_value_ptr ( volatile VALUE *  )

Definition at line 1600 of file string.c.

References rb_string_value(), and RSTRING_PTR.

VALUE rb_struct_alloc ( VALUE  ,
VALUE   
)

Definition at line 494 of file struct.c.

References RARRAY_LENINT, RARRAY_PTR, and rb_class_new_instance().

VALUE rb_struct_alloc_noinit ( VALUE  )

Definition at line 235 of file struct.c.

References struct_alloc().

VALUE rb_struct_aref ( VALUE  ,
VALUE   
)
VALUE rb_struct_aset ( VALUE  ,
VALUE  ,
VALUE   
)
VALUE rb_struct_define ( const char *  ,
  ... 
)
VALUE rb_struct_define_under ( VALUE  ,
const char *  ,
  ... 
)
VALUE rb_struct_define_without_accessor ( const char *  ,
VALUE  ,
rb_alloc_func_t  ,
  ... 
)
VALUE rb_struct_define_without_accessor_under ( VALUE  outer,
const char *  class_name,
VALUE  super,
rb_alloc_func_t  alloc,
  ... 
)
VALUE rb_struct_getmember ( VALUE  ,
ID   
)
VALUE rb_struct_init_copy ( VALUE  copy,
VALUE  s 
)

Definition at line 707 of file struct.c.

References OBJ_INIT_COPY, rb_eTypeError, rb_raise(), RSTRUCT_GET, RSTRUCT_LEN, and RSTRUCT_SET.

VALUE rb_struct_initialize ( VALUE  ,
VALUE   
)

Definition at line 466 of file struct.c.

References RARRAY_CONST_PTR, RARRAY_LENINT, and rb_struct_initialize_m().

VALUE rb_struct_members ( VALUE  )
VALUE rb_struct_new ( VALUE  ,
  ... 
)
VALUE rb_struct_s_members ( VALUE  )

Definition at line 39 of file struct.c.

References id_members, NIL_P, rb_eTypeError, rb_raise(), RB_TYPE_P, struct_ivar_get(), and T_ARRAY.

VALUE rb_suppress_tracing ( VALUE(*)(VALUE)  func,
VALUE  arg 
)
VALUE rb_sym_all_symbols ( void  )
int rb_sym_interned_p ( VALUE  )
VALUE rb_sym_to_s ( VALUE  )

Definition at line 8478 of file string.c.

References rb_cString, rb_id2str(), str_new3(), and SYM2ID.

int rb_symname_p ( const char *  )

Definition at line 16824 of file ripper.c.

References rb_ascii8bit_encoding(), and rb_enc_symname_p().

VALUE rb_syserr_new ( int  ,
const char *   
)

Definition at line 1947 of file error.c.

References arg, Qnil, rb_str_new2, and rb_syserr_new_str().

Referenced by make_errno_exc(), rb_mod_syserr_fail(), and rb_syserr_fail().

VALUE rb_syserr_new_str ( int  n,
VALUE  arg 
)
void rb_syswait ( rb_pid_t  pid)

Definition at line 3754 of file process.c.

References rb_waitpid().

VALUE rb_tainted_str_new ( const char *  ,
long   
)

Definition at line 589 of file string.c.

References OBJ_TAINT, and rb_str_new().

VALUE rb_tainted_str_new_cstr ( const char *  )

Definition at line 598 of file string.c.

References OBJ_TAINT, and rb_str_new2.

int rb_thread_alone ( void  )

Definition at line 2990 of file thread.c.

References GET_THREAD(), thread_debug, and vm_living_thread_num().

void rb_thread_atfork ( void  )
void rb_thread_atfork_before_exec ( void  )

Definition at line 3954 of file thread.c.

References rb_thread_atfork_internal(), and terminate_atfork_before_exec_i().

void rb_thread_check_ints ( void  )

Definition at line 1139 of file thread.c.

References GET_THREAD(), and RUBY_VM_CHECK_INTS_BLOCKING.

VALUE rb_thread_create ( VALUE(*)(ANYARGS)  ,
void *   
)

Definition at line 745 of file thread.c.

References rb_cThread, rb_thread_alloc(), and thread_create_core().

VALUE rb_thread_current ( void  )

Definition at line 2401 of file thread.c.

References GET_THREAD(), and rb_thread_struct::self.

void rb_thread_execute_interrupts ( VALUE  th)

Definition at line 2026 of file thread.c.

References GetThreadPtr, and rb_threadptr_execute_interrupts().

void rb_thread_fd_close ( int  )

Definition at line 2131 of file thread.c.

References GET_THREAD(), st_foreach(), and thread_fd_close_i().

int rb_thread_fd_select ( int  ,
rb_fdset_t *  ,
rb_fdset_t *  ,
rb_fdset_t *  ,
struct timeval *   
)

Definition at line 3576 of file thread.c.

References do_select(), rb_fd_resize, rb_thread_sleep_forever(), and rb_thread_wait_for().

int rb_thread_fd_writable ( int  )

Definition at line 3525 of file thread.c.

References rb_thread_wait_fd_rw(), and TRUE.

int rb_thread_interrupted ( VALUE  thval)

Definition at line 1156 of file thread.c.

References GetThreadPtr, and RUBY_VM_INTERRUPTED.

VALUE rb_thread_io_blocking_region ( rb_blocking_function_t *  func,
void *  data1,
int  fd 
)
VALUE rb_thread_kill ( VALUE  )
VALUE rb_thread_local_aref ( VALUE  ,
ID   
)

Definition at line 2761 of file thread.c.

References GetThreadPtr, and threadptr_local_aref().

VALUE rb_thread_local_aset ( VALUE  ,
ID  ,
VALUE   
)

Definition at line 2854 of file thread.c.

References GetThreadPtr, OBJ_FROZEN, rb_error_frozen(), and threadptr_local_aset().

VALUE rb_thread_main ( void  )
void rb_thread_mark ( void *  th)
void rb_thread_recycle_stack_release ( VALUE *  )

Definition at line 1957 of file vm.c.

References RECYCLE_MAX, and ruby_xfree().

VALUE rb_thread_run ( VALUE  )

Definition at line 2318 of file thread.c.

References rb_thread_schedule(), and rb_thread_wakeup().

void rb_thread_schedule ( void  )
VALUE rb_thread_shield_destroy ( VALUE  self)
VALUE rb_thread_shield_new ( void  )

Definition at line 4698 of file thread.c.

References DATA_PTR, rb_cThreadShield, rb_mutex_lock(), and thread_shield_alloc().

VALUE rb_thread_shield_release ( VALUE  self)

Definition at line 4734 of file thread.c.

References GetThreadShieldPtr, Qfalse, Qtrue, rb_mutex_unlock(), and rb_thread_shield_waiting.

VALUE rb_thread_shield_wait ( VALUE  self)
void rb_thread_sleep ( int  )

Definition at line 1164 of file thread.c.

References INT2FIX, rb_thread_wait_for(), and rb_time_timeval().

void rb_thread_sleep_deadly ( void  )

Definition at line 1076 of file thread.c.

References GET_THREAD(), sleep_forever(), and thread_debug.

void rb_thread_sleep_forever ( void  )

Definition at line 1069 of file thread.c.

References GET_THREAD(), sleep_forever(), and thread_debug.

VALUE rb_thread_stop ( void  )

Definition at line 2342 of file thread.c.

References Qnil, rb_eThreadError, rb_raise(), rb_thread_alone(), and rb_thread_sleep_deadly().

void rb_thread_wait_fd ( int  )

Definition at line 3519 of file thread.c.

References rb_thread_wait_fd_rw().

void rb_thread_wait_for ( struct timeval  )

Definition at line 1115 of file thread.c.

References GET_THREAD(), and sleep_timeval().

VALUE rb_thread_wakeup ( VALUE  )

Definition at line 2272 of file thread.c.

References rb_eThreadError, rb_raise(), rb_thread_wakeup_alive(), and RTEST.

VALUE rb_thread_wakeup_alive ( VALUE  )
struct timeval rb_time_interval ( VALUE  num)
read

Definition at line 2411 of file time.c.

References time_timeval(), and TRUE.

VALUE rb_time_nano_new ( time_t  ,
long   
)

Definition at line 2305 of file time.c.

References nsec2timew(), and time_new_timew().

VALUE rb_time_new ( time_t  ,
long   
)

Definition at line 2279 of file time.c.

References NDIV, nsec2timew(), rb_eRangeError, rb_raise(), time_new_timew(), and time_object::timew.

VALUE rb_time_num_new ( VALUE  ,
VALUE   
)
VALUE rb_time_succ ( VALUE  )
struct timespec rb_time_timespec ( VALUE  time)
read

Definition at line 2434 of file time.c.

References FALSE, GetTimeval, IsTimeval, time_timespec(), and timew2timespec().

struct timeval rb_time_timeval ( VALUE  )
read
struct timeval rb_time_timeval ( VALUE  time)
read

Definition at line 2417 of file time.c.

rb_encoding* rb_to_encoding ( VALUE  )
int rb_to_encoding_index ( VALUE  )
VALUE rb_to_float ( VALUE  )
ID rb_to_id ( VALUE  )
VALUE rb_to_int ( VALUE  )

Definition at line 2680 of file object.c.

References rb_to_integer().

int rb_tolower ( int  c)

Definition at line 1935 of file encoding.c.

References c, ONIGENC_ASCII_CODE_TO_LOWER_CASE, and rb_isascii.

Referenced by readline_attempted_completion_function().

int rb_toupper ( int  c)

Definition at line 1941 of file encoding.c.

References c, ONIGENC_ASCII_CODE_TO_UPPER_CASE, and rb_isascii.

void rb_trap_exec ( void  )
void rb_trap_exit ( void  )
static int rb_type ( VALUE  obj)
inlinestatic
int rb_typeddata_inherited_p ( const rb_data_type_t *  child,
const rb_data_type_t *  parent 
)

Definition at line 500 of file error.c.

References rb_data_type_struct::parent.

Referenced by rb_check_typeddata(), and rb_typeddata_is_kind_of().

int rb_typeddata_is_kind_of ( VALUE  ,
const rb_data_type_t *   
)
VALUE rb_uint2big ( VALUE  )
VALUE rb_uint2inum ( VALUE  )
static VALUE rb_uint2num_inline ( unsigned int  v)
inlinestatic

Definition at line 1291 of file ruby.h.

References LONG2FIX, POSFIXABLE, and rb_uint2big().

static VALUE rb_ulong2num_inline ( unsigned long  v)
inlinestatic

Definition at line 1312 of file ruby.h.

References LONG2FIX, POSFIXABLE, and rb_uint2big().

void rb_undef ( VALUE  ,
ID   
)
void rb_undef_alloc_func ( VALUE  )

Definition at line 518 of file vm_method.c.

References rb_define_alloc_func(), and UNDEF_ALLOC_FUNC.

VALUE rb_undefine_finalizer ( VALUE  )

Definition at line 1911 of file gc.c.

References finalizer_table, FL_FINALIZE, FL_UNSET, rb_check_frozen, rb_objspace, st_data_t, and st_delete().

VALUE rb_uninterruptible ( VALUE(*)(ANYARGS)  b_proc,
VALUE  data 
)
void rb_update_max_fd ( int  fd)

Definition at line 183 of file io.c.

References ATOMIC_CAS, errno, fstat, max_file_descriptor, rb_bug(), and stat.

int rb_usascii_encindex ( void  )

Definition at line 1266 of file encoding.c.

References rb_usascii_encindex.

rb_encoding* rb_usascii_encoding ( void  )
VALUE rb_usascii_str_new ( const char *  ,
long   
)
VALUE rb_usascii_str_new_cstr ( const char *  )

Definition at line 569 of file string.c.

References ENC_CODERANGE_7BIT, ENCODING_CODERANGE_SET, rb_str_new2, and rb_usascii_encindex.

int rb_utf8_encindex ( void  )

Definition at line 1251 of file encoding.c.

References rb_utf8_encindex.

rb_encoding* rb_utf8_encoding ( void  )
int rb_uv_to_utf8 ( char  [6],
unsigned  long 
)

Definition at line 1900 of file pack.c.

References castchar, rb_eRangeError, rb_raise(), and UNREACHABLE.

VALUE rb_vm_backtrace_object ( void  )

Definition at line 536 of file vm_backtrace.c.

References backtrace_object(), and GET_THREAD().

void rb_vm_bugreport ( void  )

Definition at line 713 of file vm_dump.c.

void rb_vm_change_state ( void  )
const void** rb_vm_get_insns_address_table ( void  )

Definition at line 118 of file vm_exec.c.

References vm_exec_core().

void rb_vm_inc_const_missing_count ( void  )

Definition at line 111 of file vm.c.

void rb_vm_mark ( void *  ptr)
void rb_vm_pop_cfunc_frame ( void  )
VALUE rb_vm_thread_backtrace ( int  argc,
VALUE *  argv,
VALUE  thval 
)

Definition at line 906 of file vm_backtrace.c.

References thread_backtrace_to_ary().

VALUE rb_vm_thread_backtrace_locations ( int  argc,
VALUE *  argv,
VALUE  thval 
)

Definition at line 912 of file vm_backtrace.c.

References thread_backtrace_to_ary().

VALUE rb_vm_top_self ( void  )

Definition at line 2791 of file vm.c.

References GET_VM.

VALUE rb_vsprintf ( const char *  ,
va_list   
)

Definition at line 1244 of file sprintf.c.

References NULL, and rb_enc_vsprintf().

rb_pid_t rb_waitpid ( rb_pid_t  pid,
int *  status,
int  flags 
)
void rb_write_error ( const char *  )

Definition at line 7157 of file io.c.

References rb_write_error2(), and strlen().

void rb_write_error2 ( const char *  ,
long   
)

Definition at line 7143 of file io.c.

References rb_io_t::fd, orig_stderr, rb_io_write(), rb_stderr, rb_str_new(), and RFILE.

void rb_write_error_str ( VALUE  mesg)

Definition at line 7163 of file io.c.

References rb_io_t::fd, orig_stderr, RB_GC_GUARD, rb_io_write(), rb_stderr, RFILE, RSTRING_LEN, and RSTRING_PTR.

VALUE rb_yield ( VALUE  )

Definition at line 942 of file vm_eval.c.

References Qundef, and rb_yield_0().

VALUE rb_yield_block ( VALUE  ,
VALUE  ,
int  ,
const VALUE *  ,
VALUE   
)

Definition at line 993 of file vm_eval.c.

References rb_proc_t::block, GET_THREAD(), GetProcPtr, NIL_P, and vm_yield_with_block().

VALUE rb_yield_splat ( VALUE  )
VALUE rb_yield_values ( int  n,
  ... 
)

Definition at line 953 of file vm_eval.c.

References ALLOCA_N, argv, rb_yield_0(), and va_init_list.

VALUE rb_yield_values2 ( int  n,
const VALUE *  argv 
)

Definition at line 975 of file vm_eval.c.

References rb_yield_0().

static void RCLASS_M_TBL_INIT ( VALUE  c)
inlinestatic
static VALUE RCLASS_SET_SUPER ( VALUE  klass,
VALUE  super 
)
inlinestatic
static VALUE RCLASS_SUPER ( VALUE  klass)
inlinestatic

Definition at line 313 of file internal.h.

References RCLASS.

static void reduce_nodes_gen ( struct parser_params *  ,
NODE **   
)
static
static VALUE reg_compile_gen ( struct parser_params *  ,
VALUE  ,
int   
)
static
static int reg_fragment_check_gen ( struct parser_params *  ,
VALUE  ,
int   
)
static
static void reg_fragment_setenc_gen ( struct parser_params *  ,
VALUE  ,
int   
)
static
static NODE* reg_named_capture_assign_gen ( struct parser_params *  parser,
VALUE  regexp,
NODE *  match 
)
static
static ID register_symid ( ID  ,
const char *  ,
long  ,
rb_encoding *   
)
static
static ID register_symid_str ( ID  ,
VALUE   
)
static
static NODE* remove_begin ( NODE *  )
static
static NODE* remove_begin_all ( NODE *  )
static
static NODE* ret_args_gen ( struct parser_params *  ,
NODE *   
)
static
RUBY_EXTERN double round ( double  )

Definition at line 92 of file numeric.c.

RUBY_EXTERN double round ( double  )

Definition at line 92 of file numeric.c.

References f.

int ruby_brace_glob ( const char *  ,
int  ,
ruby_glob_func *  ,
VALUE   
)

Definition at line 1713 of file dir.c.

References GLOB_VERBOSE, rb_ascii8bit_encoding(), and ruby_brace_glob0().

Referenced by cmdglob().

void ruby_default_signal ( int  )

Definition at line 340 of file signal.c.

References signal().

const char* ruby_enc_find_basename ( const char *  name,
long *  baselen,
long *  alllen,
rb_encoding *  enc 
)

Definition at line 3772 of file file.c.

References chompdirsep(), Inc, isdirsep, name, skipprefix, strlen(), and strrdirsep.

const char* ruby_enc_find_extname ( const char *  name,
long *  len,
rb_encoding *  enc 
)

Definition at line 3965 of file file.c.

References Inc, isdirsep, istrailinggarbage, last, name, strlen(), and strrdirsep.

void ruby_error_print ( void  )

Definition at line 206 of file eval_error.c.

References error_print().

Referenced by rb_f_abort().

double ruby_float_mod ( double  x,
double  y 
)

Definition at line 907 of file numeric.c.

References flodivmod(), and mod.

int ruby_float_step ( VALUE  from,
VALUE  to,
VALUE  step,
int  excl 
)

Definition at line 1782 of file numeric.c.

References DBL2NUM, FALSE, isinf(), NUM2DBL, RB_TYPE_P, rb_yield(), ruby_float_step_size(), T_FLOAT, TRUE, and val.

void ruby_gc_set_params ( int  safe_level)
const char* ruby_get_inplace_mode ( void  )

Definition at line 11600 of file io.c.

References ARGF.

int ruby_glob ( const char *  ,
int  ,
ruby_glob_func *  ,
VALUE   
)

Definition at line 1578 of file dir.c.

References GLOB_VERBOSE, rb_ascii8bit_encoding(), and ruby_glob0().

void ruby_kill ( rb_pid_t  pid,
int  sig 
)
void ruby_mimfree ( void *  ptr)

Definition at line 6267 of file gc.c.

References free().

void* ruby_mimmalloc ( size_t  size)

Definition at line 6251 of file gc.c.

References malloc.

int ruby_native_thread_p ( void  )

Definition at line 5190 of file thread.c.

VALUE ruby_num_interval_step_size ( VALUE  from,
VALUE  to,
VALUE  step,
int  excl 
)
void ruby_register_rollback_func_for_ensure ( VALUE(*)(ANYARGS)  ensure_func,
VALUE(*)(ANYARGS)  rollback_func 
)

Definition at line 947 of file cont.c.

References GET_VM, NULL, st_data_t, st_init_numtable(), st_insert(), and UNLIKELY.

Referenced by Init_Hash().

void ruby_set_inplace_mode ( const char *  )

Definition at line 11606 of file io.c.

References ARGF, free, and strdup.

const char* ruby_signal_name ( int  )

Definition at line 254 of file signal.c.

References signo2signm().

void void ruby_sized_xfree ( void *  x,
size_t  size 
)

Definition at line 6234 of file gc.c.

References objspace_xfree().

void* ruby_sized_xrealloc ( void *  ptr,
size_t  new_size,
size_t  old_size 
)

Definition at line 6200 of file gc.c.

References objspace_xrealloc().

void* ruby_sized_xrealloc2 ( void *  ptr,
size_t  new_count,
size_t  element_size,
size_t  old_count 
)
unsigned long ruby_strtoul ( const char *  str,
char **  endptr,
int  base 
)

Definition at line 107 of file util.c.

References c, errno, ISSPACE, and scan_digits().

int ruby_vsnprintf ( char *  str,
size_t  n,
char const *  fmt,
va_list  ap 
)
RUBY_EXTERN void setproctitle ( const char *  fmt,
  ... 
)

Definition at line 135 of file setproctitle.c.

RUBY_EXTERN void setproctitle ( const char *  fmt,
  ... 
)

Definition at line 135 of file setproctitle.c.

References NULL, SPT_PADCHAR, strlcpy(), strlen(), and vsnprintf.

static ID shadowing_lvar_gen ( struct parser_params *  ,
ID   
)
static
RUBY_EXTERN int signbit ( double  x)

Definition at line 5 of file signbit.c.

RUBY_EXTERN int signbit ( double  x)

Definition at line 5 of file signbit.c.

References CHAR_BIT.

static NODE* splat_array ( NODE *  )
static
void st_add_direct ( st_table *  ,
st_data_t  ,
st_data_t   
)
void st_cleanup_safe ( st_table *  ,
st_data_t   
)
void st_clear ( st_table *  )
st_table* st_copy ( st_table *  )
int st_delete ( st_table *  ,
st_data_t *  ,
st_data_t *   
)
int st_delete_safe ( st_table *  ,
st_data_t *  ,
st_data_t *  ,
st_data_t   
)
int st_foreach ( st_table *  ,
int(*)(ANYARGS)  ,
st_data_t   
)
int st_foreach_check ( st_table *  ,
int(*)(ANYARGS)  ,
st_data_t  ,
st_data_t   
)
void st_foreach_safe ( struct st_table *  ,
int(*)(ANYARGS)  ,
st_data_t   
)
void st_free_table ( st_table *  )

Definition at line 334 of file st.c.

References st_table::bins, st_table::num_bins, st_clear(), st_dealloc_table, and st_free_bins.

int st_get_key ( st_table *  ,
st_data_t  ,
st_data_t *   
)
st_index_t st_hash ( const void *  ptr,
size_t  len,
st_index_t  h 
)
st_index_t st_hash_end ( st_index_t  h)

Definition at line 1593 of file st.c.

References murmur_step.

st_index_t st_hash_start ( st_index_t  h)

Definition at line 1602 of file st.c.

References st_hash_start.

st_index_t st_hash_uint ( st_index_t  h,
st_index_t  i 
)

Definition at line 1562 of file st.c.

References murmur1.

st_index_t st_hash_uint32 ( st_index_t  h,
uint32_t  i 
)

Definition at line 1556 of file st.c.

References murmur_step.

st_table* st_init_numtable ( void  )

Definition at line 272 of file st.c.

References st_init_table(), and type_numhash.

st_table* st_init_numtable_with_size ( st_index_t  )

Definition at line 278 of file st.c.

References st_init_table_with_size(), and type_numhash.

st_table* st_init_strcasetable ( void  )

Definition at line 296 of file st.c.

References st_init_table().

st_table* st_init_strcasetable_with_size ( st_index_t  )

Definition at line 302 of file st.c.

References st_init_table_with_size().

st_table* st_init_strtable ( void  )

Definition at line 284 of file st.c.

References st_init_table().

st_table* st_init_strtable_with_size ( st_index_t  )

Definition at line 290 of file st.c.

References st_init_table_with_size().

st_table* st_init_table ( const struct st_hash_type *  )

Definition at line 266 of file st.c.

References st_init_table_with_size().

st_table* st_init_table_with_size ( const struct st_hash_type *  ,
st_index_t   
)
int st_insert ( st_table *  ,
st_data_t  ,
st_data_t   
)
int st_insert2 ( st_table *  ,
st_data_t  ,
st_data_t  ,
st_data_t(*)(st_data_t)   
)
st_index_t st_keys ( st_table *  table,
st_data_t *  keys,
st_index_t  size 
)

Definition at line 1130 of file st.c.

References get_keys().

st_index_t st_keys_check ( st_table *  table,
st_data_t *  keys,
st_index_t  size,
st_data_t  never 
)

Definition at line 1136 of file st.c.

References get_keys().

int st_locale_insensitive_strcasecmp ( const char *  s1,
const char *  s2 
)

Definition at line 1616 of file st.c.

int st_locale_insensitive_strcasecmp ( const char *  s1,
const char *  s2 
)

Definition at line 1616 of file st.c.

int st_locale_insensitive_strncasecmp ( const char *  s1,
const char *  s2,
size_t  n 
)

Definition at line 1640 of file st.c.

int st_locale_insensitive_strncasecmp ( const char *  s1,
const char *  s2,
size_t  n 
)

Definition at line 1640 of file st.c.

int st_lookup ( st_table *  ,
st_data_t  ,
st_data_t *   
)
size_t st_memsize ( const st_table *  )

Definition at line 342 of file st.c.

References st_table::entries_packed, st_table::num_bins, and st_table::num_entries.

int st_numcmp ( st_data_t  ,
st_data_t   
)

Definition at line 1685 of file st.c.

st_index_t st_numhash ( st_data_t  )

Definition at line 1691 of file st.c.

int st_reverse_foreach ( st_table *  ,
int(*)(ANYARGS)  ,
st_data_t   
)
int st_shift ( st_table *  ,
st_data_t *  ,
st_data_t *   
)
int st_update ( st_table *  table,
st_data_t  key,
st_update_callback_func *  func,
st_data_t  arg 
)
st_index_t st_values ( st_table *  table,
st_data_t *  values,
st_index_t  size 
)

Definition at line 1171 of file st.c.

References get_values().

st_index_t st_values_check ( st_table *  table,
st_data_t *  values,
st_index_t  size,
st_data_t  never 
)

Definition at line 1177 of file st.c.

References get_values().

RUBY_EXTERN char* strchr ( const char *  ,
int   
)

Definition at line 8 of file strchr.c.

RUBY_EXTERN char* strchr ( const char *  ,
int   
)

Definition at line 8 of file strchr.c.

References strlen().

RUBY_EXTERN char* strerror ( int  )

Definition at line 11 of file strerror.c.

RUBY_EXTERN char* strerror ( int  )

Definition at line 11 of file strerror.c.

References msg, and sys_errlist.

RUBY_EXTERN size_t strlcat ( char *  ,
const char *  ,
size_t   
)

Definition at line 46 of file strlcat.c.

RUBY_EXTERN size_t strlcat ( char *  ,
const char *  ,
size_t   
)

Definition at line 46 of file strlcat.c.

References strlen().

RUBY_EXTERN size_t strlcpy ( char *  ,
const char *  ,
size_t   
)

Definition at line 44 of file strlcpy.c.

RUBY_EXTERN size_t strlcpy ( char *  ,
const char *  ,
size_t   
)

Definition at line 44 of file strlcpy.c.

RUBY_EXTERN char* strrchr ( const char *  ,
int   
)

Definition at line 20 of file strchr.c.

RUBY_EXTERN char* strrchr ( const char *  ,
int   
)

Definition at line 20 of file strchr.c.

References strlen().

RUBY_EXTERN char* strstr ( const char *  ,
const char *   
)

Definition at line 8 of file strstr.c.

RUBY_EXTERN char* strstr ( const char *  ,
const char *   
)

Definition at line 8 of file strstr.c.

References strlen().

switch ( c  )

Definition at line 7738 of file parse.y.

References lex_strterm, NEW_STRTERM, pushback, str_dsym, and str_ssym.

RUBY_EXTERN double tgamma ( double  )

Definition at line 72 of file tgamma.c.

RUBY_EXTERN double tgamma ( double  )

Definition at line 72 of file tgamma.c.

References errno, f, loggamma(), PI, and zero().

static void token_info_pop ( struct parser_params *  ,
const char *  token 
)
static
static void token_info_push ( struct parser_params *  ,
const char *  token 
)
static
static int value_expr_gen ( struct parser_params *  ,
NODE *   
)
static
static void void_expr_gen ( struct parser_params *  ,
NODE *   
)
static
static void void_stmts_gen ( struct parser_params *  ,
NODE *   
)
static
static void vtable_add ( struct vtable *  tbl,
ID  id 
)
static

Definition at line 181 of file parse.y.

static struct vtable* vtable_alloc ( struct vtable *  prev)
staticread

Definition at line 157 of file parse.y.

static void vtable_free ( struct vtable *  tbl)
static

Definition at line 169 of file parse.y.

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

Definition at line 196 of file parse.y.

static int vtable_size ( const struct vtable *  tbl)
static

Definition at line 144 of file parse.y.

warn_balanced ( "/"  ,
"regexp literal"   
)
void void* xcalloc ( size_t  ,
size_t   
)
void void xfree ( void *  )
void* xmalloc ( size_t  )
void* xmalloc2 ( size_t  ,
size_t   
)
void void void* xrealloc ( void *  ,
size_t   
)
void* xrealloc2 ( void *  ,
size_t  ,
size_t   
)
static int yylex ( void *  )
static

Variable Documentation

top_compstmt __pad0__

Definition at line 897 of file parse.y.

block_command __pad10__

Definition at line 1338 of file parse.y.

fcall __pad11__

Definition at line 1366 of file parse.y.

command __pad12__

Definition at line 1376 of file parse.y.

mlhs __pad13__

Definition at line 1484 of file parse.y.

mlhs_inner __pad14__

Definition at line 1495 of file parse.y.

mlhs_item __pad15__

Definition at line 1592 of file parse.y.

mlhs_head __pad16__

Definition at line 1603 of file parse.y.

mlhs_node __pad17__

Definition at line 1639 of file parse.y.

primary_value [' opt_call_args rbracket { $$ = aryset($1, $3); } | primary_value '.' tIDENTIFIER { $$ = attrset($1, $3); } | primary_value tCOLON2 tIDENTIFIER { $$ = attrset($1, $3); } | primary_value '.' tCONSTANT { $$ = attrset($1, $3); } | primary_value tCOLON2 tCONSTANT { if (in_def || in_single) yyerror("dynamic constant assignment"); $$ = NEW_CDECL(0, 0, NEW_COLON2($1, $3)); } | tCOLON3 tCONSTANT { if (in_def || in_single) yyerror("dynamic constant assignment"); $$ = NEW_CDECL(0, 0, NEW_COLON3($2)); } | backref { rb_backref_error($1); $$ = NEW_BEGIN(0); } ;lhs : user_variable { $$ = assignable($1, 0); if (!$$) $$ = NEW_BEGIN(0); } | keyword_variable { $$ = assignable($1, 0); if (!$$) $$ = NEW_BEGIN(0); } | primary_value '[' opt_call_args rbracket { $$ = aryset($1, $3); } | primary_value '.' tIDENTIFIER { $$ = attrset($1, $3); } | primary_value tCOLON2 tIDENTIFIER { $$ = attrset($1, $3); } | primary_value '.' tCONSTANT { $$ = attrset($1, $3); } | primary_value tCOLON2 tCONSTANT { if (in_def || in_single) yyerror("dynamic constant assignment"); $$ = NEW_CDECL(0, 0, NEW_COLON2($1, $3)); } | tCOLON3 tCONSTANT { if (in_def || in_single) yyerror("dynamic constant assignment"); $$ = NEW_CDECL(0, 0, NEW_COLON3($2)); } | backref { rb_backref_error($1); $$ = NEW_BEGIN(0); } ;cname : tIDENTIFIER { yyerror("class/module name must be CONSTANT"); } | tCONSTANT ;cpath : tCOLON3 cname { $$ = NEW_COLON3($2); } | cname { $$ = NEW_COLON2(0, $$); } | primary_value tCOLON2 cname { $$ = NEW_COLON2($1, $3); } ;fname : tIDENTIFIER | tCONSTANT | tFID | op { lex_state = EXPR_ENDFN; $$ = $1; } | reswords { lex_state = EXPR_ENDFN; $$ = $<id>1; } ;fsym : fname | symbol ;fitem : fsym { $$ = NEW_LIT(ID2SYM($1)); } | dsym ;undef_list : fitem { $$ = NEW_UNDEF($1); } | undef_list ',' {lex_state = EXPR_FNAME;} fitem { $$ = block_append($1, NEW_UNDEF($4)); } ;op : '|' { ifndef_ripper($$ = '|'); } | '^' { ifndef_ripper($$ = '^'); } | '&' { ifndef_ripper($$ = '&'); } | tCMP { ifndef_ripper($$ = tCMP); } | tEQ { ifndef_ripper($$ = tEQ); } | tEQQ { ifndef_ripper($$ = tEQQ); } | tMATCH { ifndef_ripper($$ = tMATCH); } | tNMATCH { ifndef_ripper($$ = tNMATCH); } | '>' { ifndef_ripper($$ = '>'); } | tGEQ { ifndef_ripper($$ = tGEQ); } | '<' { ifndef_ripper($$ = '<'); } | tLEQ { ifndef_ripper($$ = tLEQ); } | tNEQ { ifndef_ripper($$ = tNEQ); } | tLSHFT { ifndef_ripper($$ = tLSHFT); } | tRSHFT { ifndef_ripper($$ = tRSHFT); } | '+' { ifndef_ripper($$ = '+'); } | '-' { ifndef_ripper($$ = '-'); } | '*' { ifndef_ripper($$ = '*'); } | tSTAR { ifndef_ripper($$ = '*'); } | '/' { ifndef_ripper($$ = '/'); } | '%' { ifndef_ripper($$ = '%'); } | tPOW { ifndef_ripper($$ = tPOW); } | tDSTAR { ifndef_ripper($$ = tDSTAR); } | '!' { ifndef_ripper($$ = '!'); } | '~' { ifndef_ripper($$ = '~'); } | tUPLUS { ifndef_ripper($$ = tUPLUS); } | tUMINUS { ifndef_ripper($$ = tUMINUS); } | tAREF { ifndef_ripper($$ = tAREF); } | tASET { ifndef_ripper($$ = tASET); } | '`' { ifndef_ripper($$ = '`'); } ;reswords : keyword__LINE__ | keyword__FILE__ | keyword__ENCODING__ | keyword_BEGIN | keyword_END | keyword_alias | keyword_and | keyword_begin | keyword_break | keyword_case | keyword_class | keyword_def | keyword_defined | keyword_do | keyword_else | keyword_elsif | keyword_end | keyword_ensure | keyword_false | keyword_for | keyword_in | keyword_module | keyword_next | keyword_nil | keyword_not | keyword_or | keyword_redo | keyword_rescue | keyword_retry | keyword_return | keyword_self | keyword_super | keyword_then | keyword_true | keyword_undef | keyword_when | keyword_yield | keyword_if | keyword_unless | keyword_while | keyword_until ;arg : lhs '=' arg { value_expr($3); $$ = node_assign($1, $3); } | lhs '=' arg modifier_rescue arg { value_expr($3); $3 = NEW_RESCUE($3, NEW_RESBODY(0,$5,0), 0); $$ = node_assign($1, $3); } | var_lhs tOP_ASGN arg { value_expr($3); $$ = new_op_assign($1, $2, $3); } | var_lhs tOP_ASGN arg modifier_rescue arg { value_expr($3); $3 = NEW_RESCUE($3, NEW_RESBODY(0,$5,0), 0); $$ = new_op_assign($1, $2, $3); } | primary_value '[' opt_call_args rbracket tOP_ASGN arg { NODE *args; value_expr($6); if (!$3) $3 = NEW_ZARRAY(); if (nd_type($3) == NODE_BLOCK_PASS) { args = NEW_ARGSCAT($3, $6); } else { args = arg_concat($3, $6); } if ($5 == tOROP) { $5 = 0; } else if ($5 == tANDOP) { $5 = 1; } $$ = NEW_OP_ASGN1($1, $5, args); fixpos($$, $1); } | primary_value '.' tIDENTIFIER tOP_ASGN arg { value_expr($5); $$ = new_attr_op_assign($1, ripper_id2sym('.'), $3, $4, $5); } | primary_value '.' tCONSTANT tOP_ASGN arg { value_expr($5); $$ = new_attr_op_assign($1, ripper_id2sym('.'), $3, $4, $5); } | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg { value_expr($5); $$ = new_attr_op_assign($1, ripper_intern("::"), $3, $4, $5); } | primary_value tCOLON2 tCONSTANT tOP_ASGN arg { $$ = NEW_COLON2($1, $3); $$ = new_const_op_assign($$, $4, $5); } | tCOLON3 tCONSTANT tOP_ASGN arg { $$ = NEW_COLON3($2); $$ = new_const_op_assign($$, $3, $4); } | backref tOP_ASGN arg { rb_backref_error($1); $$ = NEW_BEGIN(0); } | arg tDOT2 arg { value_expr($1); value_expr($3); $$ = NEW_DOT2($1, $3); if (nd_type($1) == NODE_LIT && FIXNUM_P($1->nd_lit) && nd_type($3) == NODE_LIT && FIXNUM_P($3->nd_lit)) { deferred_nodes = list_append(deferred_nodes, $$); } } | arg tDOT3 arg { value_expr($1); value_expr($3); $$ = NEW_DOT3($1, $3); if (nd_type($1) == NODE_LIT && FIXNUM_P($1->nd_lit) && nd_type($3) == NODE_LIT && FIXNUM_P($3->nd_lit)) { deferred_nodes = list_append(deferred_nodes, $$); } } | arg '+' arg { $$ = call_bin_op($1, '+', $3); } | arg '-' arg { $$ = call_bin_op($1, '-', $3); } | arg '*' arg { $$ = call_bin_op($1, '*', $3); } | arg '/' arg { $$ = call_bin_op($1, '/', $3); } | arg '%' arg { $$ = call_bin_op($1, '%', $3); } | arg tPOW arg { $$ = call_bin_op($1, tPOW, $3); } | tUMINUS_NUM simple_numeric tPOW arg { $$ = NEW_CALL(call_bin_op($2, tPOW, $4), tUMINUS, 0); } | tUPLUS arg { $$ = call_uni_op($2, tUPLUS); } | tUMINUS arg { $$ = call_uni_op($2, tUMINUS); } | arg '|' arg { $$ = call_bin_op($1, '|', $3); } | arg '^' arg { $$ = call_bin_op($1, '^', $3); } | arg '&' arg { $$ = call_bin_op($1, '&', $3); } | arg tCMP arg { $$ = call_bin_op($1, tCMP, $3); } | arg '>' arg { $$ = call_bin_op($1, '>', $3); } | arg tGEQ arg { $$ = call_bin_op($1, tGEQ, $3); } | arg '<' arg { $$ = call_bin_op($1, '<', $3); } | arg tLEQ arg { $$ = call_bin_op($1, tLEQ, $3); } | arg tEQ arg { $$ = call_bin_op($1, tEQ, $3); } | arg tEQQ arg { $$ = call_bin_op($1, tEQQ, $3); } | arg tNEQ arg { $$ = call_bin_op($1, tNEQ, $3); } | arg tMATCH arg { $$ = match_op($1, $3); if (nd_type($1) == NODE_LIT && RB_TYPE_P($1->nd_lit, T_REGEXP)) { $$ = reg_named_capture_assign($1->nd_lit, $$); } } | arg tNMATCH arg { $$ = call_bin_op($1, tNMATCH, $3); } | '!' arg { $$ = call_uni_op(cond($2), '!'); } | '~' arg { $$ = call_uni_op($2, '~'); } | arg tLSHFT arg { $$ = call_bin_op($1, tLSHFT, $3); } | arg tRSHFT arg { $$ = call_bin_op($1, tRSHFT, $3); } | arg tANDOP arg { $$ = logop(NODE_AND, $1, $3); } | arg tOROP arg { $$ = logop(NODE_OR, $1, $3); } | keyword_defined opt_nl {in_defined = 1;} arg { in_defined = 0; $$ = new_defined($4); } | arg '?' arg opt_nl ':' arg { value_expr($1); $$ = NEW_IF(cond($1), $3, $6); fixpos($$, $1); } | primary { $$ = $1; } ;arg_value : arg { value_expr($1); $$ = $1; if (!$$) $$ = NEW_NIL(); } ;aref_args : none | args trailer { $$ = $1; } | args ',' assocs trailer { $$ = arg_append($1, NEW_HASH($3)); } | assocs trailer { $$ = NEW_LIST(NEW_HASH($1)); } ;paren_args : '(' opt_call_args rparen { $$ = $2; } ;opt_paren_args : none | paren_args ;opt_call_args : none | call_args | args ',' { $$ = $1; } | args ',' assocs ',' { $$ = arg_append($1, NEW_HASH($3)); } | assocs ',' { $$ = NEW_LIST(NEW_HASH($1)); } ;call_args : command { value_expr($1); $$ = NEW_LIST($1); } | args opt_block_arg { $$ = arg_blk_pass($1, $2); } | assocs opt_block_arg { $$ = NEW_LIST(NEW_HASH($1)); $$ = arg_blk_pass($$, $2); } | args ',' assocs opt_block_arg { $$ = arg_append($1, NEW_HASH($3)); $$ = arg_blk_pass($$, $4); } | block_arg ;command_args : { $<val>$ = cmdarg_stack; CMDARG_PUSH(1); } call_args { cmdarg_stack = $<val>1; $$ = $2; } ;block_arg : tAMPER arg_value { $$ = NEW_BLOCK_PASS($2); } ;opt_block_arg : ',' block_arg { $$ = $2; } | none { $$ = 0; } ;args : arg_value { $$ = NEW_LIST($1); } | tSTAR arg_value { $$ = NEW_SPLAT($2); } | args ',' arg_value { NODE *n1; if ((n1 = splat_array($1)) != 0) { $$ = list_append(n1, $3); } else { $$ = arg_append($1, $3); } } | args ',' tSTAR arg_value { NODE *n1; if ((nd_type($4) == NODE_ARRAY) && (n1 = splat_array($1)) != 0) { $$ = list_concat(n1, $4); } else { $$ = arg_concat($1, $4); } } ;mrhs_arg : mrhs | arg_value ;mrhs : args ',' arg_value { NODE *n1; if ((n1 = splat_array($1)) != 0) { $$ = list_append(n1, $3); } else { $$ = arg_append($1, $3); } } | args ',' tSTAR arg_value { NODE *n1; if (nd_type($4) == NODE_ARRAY && (n1 = splat_array($1)) != 0) { $$ = list_concat(n1, $4); } else { $$ = arg_concat($1, $4); } } | tSTAR arg_value { $$ = NEW_SPLAT($2); } ;primary : literal | strings | xstring | regexp | words | qwords | symbols | qsymbols | var_ref | backref | tFID { $$ = NEW_FCALL($1, 0); } | k_begin { $<val>1 = cmdarg_stack; cmdarg_stack = 0; $<num>$ = ruby_sourceline; } bodystmt k_end { cmdarg_stack = $<val>1; if ($3 == NULL) { $$ = NEW_NIL(); } else { if (nd_type($3) == NODE_RESCUE || nd_type($3) == NODE_ENSURE) nd_set_line($3, $<num>2); $$ = NEW_BEGIN($3); } nd_set_line($$, $<num>2); } | tLPAREN_ARG {lex_state = EXPR_ENDARG;} rparen { $$ = 0; } | tLPAREN_ARG { $<val>1 = cmdarg_stack; cmdarg_stack = 0; } expr {lex_state = EXPR_ENDARG;} rparen { cmdarg_stack = $<val>1; $$ = $3; } | tLPAREN compstmt ')' { $$ = $2; } | primary_value tCOLON2 tCONSTANT { $$ = NEW_COLON2($1, $3); } | tCOLON3 tCONSTANT { $$ = NEW_COLON3($2); } | tLBRACK aref_args ']' { if ($2 == 0) { $$ = NEW_ZARRAY(); } else { $$ = $2; } } | tLBRACE assoc_list '}' { $$ = NEW_HASH($2); } | keyword_return { $$ = NEW_RETURN(0); } | keyword_yield '(' call_args rparen { $$ = new_yield($3); } | keyword_yield '(' rparen { $$ = NEW_YIELD(0); } | keyword_yield { $$ = NEW_YIELD(0); } | keyword_defined opt_nl '(' {in_defined = 1;} expr rparen { in_defined = 0; $$ = new_defined($5); } | keyword_not '(' expr rparen { $$ = call_uni_op(cond($3), '!'); } | keyword_not '(' rparen { $$ = call_uni_op(cond(NEW_NIL()), '!'); } | fcall brace_block { $2->nd_iter = $1; $$ = $2; } | method_call | method_call brace_block { block_dup_check($1->nd_args, $2); $2->nd_iter = $1; $$ = $2; } | tLAMBDA lambda { $$ = $2; } | k_if expr_value then compstmt if_tail k_end { $$ = NEW_IF(cond($2), $4, $5); fixpos($$, $2); } | k_unless expr_value then compstmt opt_else k_end { $$ = NEW_UNLESS(cond($2), $4, $5); fixpos($$, $2); } | k_while {COND_PUSH(1);} expr_value do {COND_POP();} compstmt k_end { $$ = NEW_WHILE(cond($3), $6, 1); fixpos($$, $3); } | k_until {COND_PUSH(1);} expr_value do {COND_POP();} compstmt k_end { $$ = NEW_UNTIL(cond($3), $6, 1); fixpos($$, $3); } | k_case expr_value opt_terms case_body k_end { $$ = NEW_CASE($2, $4); fixpos($$, $2); } | k_case opt_terms case_body k_end { $$ = NEW_CASE(0, $3); } | k_for for_var keyword_in {COND_PUSH(1);} expr_value do {COND_POP();} compstmt k_end { ID id = internal_id(); ID *tbl = ALLOC_N(ID, 2); NODE *m = NEW_ARGS_AUX(0, 0); NODE *args, *scope; if (nd_type($2) == NODE_MASGN) { NODE *one = NEW_LIST(NEW_LIT(INT2FIX(1))); NODE *zero = NEW_LIST(NEW_LIT(INT2FIX(0))); m->nd_next = block_append( NEW_IF( NEW_NODE(NODE_AND, NEW_CALL(NEW_CALL(NEW_DVAR(id), idLength, 0), idEq, one), NEW_CALL(NEW_CALL(NEW_DVAR(id), idAREF, zero), rb_intern("kind_of?"), NEW_LIST(NEW_LIT(rb_cArray))), 0), NEW_DASGN_CURR(id, NEW_CALL(NEW_DVAR(id), idAREF, zero)), 0), node_assign($2, NEW_DVAR(id))); args = new_args(m, 0, id, 0, new_args_tail(0, 0, 0)); } else { if (nd_type($2) == NODE_LASGN || nd_type($2) == NODE_DASGN || nd_type($2) == NODE_DASGN_CURR) { $2->nd_value = NEW_DVAR(id); m->nd_plen = 1; m->nd_next = $2; args = new_args(m, 0, 0, 0, new_args_tail(0, 0, 0)); } else { m->nd_next = node_assign(NEW_MASGN(NEW_LIST($2), 0), NEW_DVAR(id)); args = new_args(m, 0, id, 0, new_args_tail(0, 0, 0)); } } scope = NEW_NODE(NODE_SCOPE, tbl, $8, args); tbl[0] = 1; tbl[1] = id; $$ = NEW_FOR(0, $5, scope); fixpos($$, $2); } | k_class cpath superclass { if (in_def || in_single) yyerror("class definition in method body"); local_push(0); $<num>$ = ruby_sourceline; } bodystmt k_end { $$ = NEW_CLASS($2, $5, $3); nd_set_line($$, $<num>4); local_pop(); } | k_class tLSHFT expr { $<num>$ = in_def; in_def = 0; } term { $<num>$ = in_single; in_single = 0; local_push(0); } bodystmt k_end { $$ = NEW_SCLASS($3, $7); fixpos($$, $3); local_pop(); in_def = $<num>4; in_single = $<num>6; } | k_module cpath { if (in_def || in_single) yyerror("module definition in method body"); local_push(0); $<num>$ = ruby_sourceline; } bodystmt k_end { $$ = NEW_MODULE($2, $4); nd_set_line($$, $<num>3); local_pop(); } | k_def fname { $<id>$ = cur_mid; cur_mid = $2; in_def++; local_push(0); } f_arglist bodystmt k_end { NODE *body = remove_begin($5); reduce_nodes(&body); $$ = NEW_DEFN($2, $4, body, NOEX_PRIVATE); nd_set_line($$, $<num>1); local_pop(); in_def--; cur_mid = $<id>3; } | k_def singleton dot_or_colon {lex_state = EXPR_FNAME;} fname { in_single++; lex_state = EXPR_ENDFN; local_push(0); } f_arglist bodystmt k_end { NODE *body = remove_begin($8); reduce_nodes(&body); $$ = NEW_DEFS($2, $5, $7, body); nd_set_line($$, $<num>1); local_pop(); in_single--; } | keyword_break { $$ = NEW_BREAK(0); } | keyword_next { $$ = NEW_NEXT(0); } | keyword_redo { $$ = NEW_REDO(); } | keyword_retry { $$ = NEW_RETRY(); } ;primary_value : primary { value_expr($1); $$ = $1; if (!$$) $$ = NEW_NIL(); } ;k_begin : keyword_begin { token_info_push("begin"); } ;k_if : keyword_if { token_info_push("if"); } ;k_unless : keyword_unless { token_info_push("unless"); } ;k_while : keyword_while { token_info_push("while"); } ;k_until : keyword_until { token_info_push("until"); } ;k_case : keyword_case { token_info_push("case"); } ;k_for : keyword_for { token_info_push("for"); } ;k_class : keyword_class { token_info_push("class"); } ;k_module : keyword_module { token_info_push("module"); } ;k_def : keyword_def { token_info_push("def"); $<num>$ = ruby_sourceline; } ;k_end : keyword_end { token_info_pop("end"); } ;then : term | keyword_then | term keyword_then ;do : term | keyword_do_cond ;if_tail : opt_else | keyword_elsif expr_value then compstmt if_tail { $$ = NEW_IF(cond($2), $4, $5); fixpos($$, $2); } ;opt_else : none | keyword_else compstmt { $$ = $2; } ;for_var : lhs | mlhs ;f_marg : f_norm_arg { $$ = assignable($1, 0); } | tLPAREN f_margs rparen { $$ = $2; } ;f_marg_list : f_marg { $$ = NEW_LIST($1); } | f_marg_list ',' f_marg { $$ = list_append($1, $3); } ;f_margs : f_marg_list { $$ = NEW_MASGN($1, 0); } | f_marg_list ',' tSTAR f_norm_arg { $$ = assignable($4, 0); $$ = NEW_MASGN($1, $$); } | f_marg_list ',' tSTAR f_norm_arg ',' f_marg_list { $$ = assignable($4, 0); $$ = NEW_MASGN($1, NEW_POSTARG($$, $6)); } | f_marg_list ',' tSTAR { $$ = NEW_MASGN($1, -1); } | f_marg_list ',' tSTAR ',' f_marg_list { $$ = NEW_MASGN($1, NEW_POSTARG(-1, $5)); } | tSTAR f_norm_arg { $$ = assignable($2, 0); $$ = NEW_MASGN(0, $$); } | tSTAR f_norm_arg ',' f_marg_list { $$ = assignable($2, 0); $$ = NEW_MASGN(0, NEW_POSTARG($$, $4)); } | tSTAR { $$ = NEW_MASGN(0, -1); } | tSTAR ',' f_marg_list { $$ = NEW_MASGN(0, NEW_POSTARG(-1, $3)); } ;block_args_tail : f_block_kwarg ',' f_kwrest opt_f_block_arg { $$ = new_args_tail($1, $3, $4); } | f_block_kwarg opt_f_block_arg { $$ = new_args_tail($1, Qnone, $2); } | f_kwrest opt_f_block_arg { $$ = new_args_tail(Qnone, $1, $2); } | f_block_arg { $$ = new_args_tail(Qnone, Qnone, $1); } ;opt_block_args_tail : ',' block_args_tail { $$ = $2; } | { $$ = new_args_tail(Qnone, Qnone, Qnone); } ;block_param : f_arg ',' f_block_optarg ',' f_rest_arg opt_block_args_tail { $$ = new_args($1, $3, $5, Qnone, $6); } | f_arg ',' f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail { $$ = new_args($1, $3, $5, $7, $8); } | f_arg ',' f_block_optarg opt_block_args_tail { $$ = new_args($1, $3, Qnone, Qnone, $4); } | f_arg ',' f_block_optarg ',' f_arg opt_block_args_tail { $$ = new_args($1, $3, Qnone, $5, $6); } | f_arg ',' f_rest_arg opt_block_args_tail { $$ = new_args($1, Qnone, $3, Qnone, $4); } | f_arg ',' { $$ = new_args($1, Qnone, 1, Qnone, new_args_tail(Qnone, Qnone, Qnone)); } | f_arg ',' f_rest_arg ',' f_arg opt_block_args_tail { $$ = new_args($1, Qnone, $3, $5, $6); } | f_arg opt_block_args_tail { $$ = new_args($1, Qnone, Qnone, Qnone, $2); } | f_block_optarg ',' f_rest_arg opt_block_args_tail { $$ = new_args(Qnone, $1, $3, Qnone, $4); } | f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail { $$ = new_args(Qnone, $1, $3, $5, $6); } | f_block_optarg opt_block_args_tail { $$ = new_args(Qnone, $1, Qnone, Qnone, $2); } | f_block_optarg ',' f_arg opt_block_args_tail { $$ = new_args(Qnone, $1, Qnone, $3, $4); } | f_rest_arg opt_block_args_tail { $$ = new_args(Qnone, Qnone, $1, Qnone, $2); } | f_rest_arg ',' f_arg opt_block_args_tail { $$ = new_args(Qnone, Qnone, $1, $3, $4); } | block_args_tail { $$ = new_args(Qnone, Qnone, Qnone, Qnone, $1); } ;opt_block_param : none | block_param_def { command_start = TRUE; } ;block_param_def : '|' opt_bv_decl '|' { $$ = 0; } | tOROP { $$ = 0; } | '|' block_param opt_bv_decl '|' { $$ = $2; } ;opt_bv_decl : opt_nl { $$ = 0; } | opt_nl ';' bv_decls opt_nl { $$ = 0; } ;bv_decls : bvar | bv_decls ',' bvar ;bvar : tIDENTIFIER { new_bv(get_id($1)); } | f_bad_arg { $$ = 0; } ;lambda : { $<vars>$ = dyna_push(); } { $<num>$ = lpar_beg; lpar_beg = ++paren_nest; } f_larglist { $<num>$ = ruby_sourceline; } lambda_body { lpar_beg = $<num>2; $$ = NEW_LAMBDA($3, $5); nd_set_line($$, $<num>4); dyna_pop($<vars>1); } ;f_larglist : '(' f_args opt_bv_decl ')' { $$ = $2; } | f_args { $$ = $1; } ;lambda_body : tLAMBEG compstmt '}' { $$ = $2; } | keyword_do_LAMBDA compstmt keyword_end { $$ = $2; } ;do_block : keyword_do_block { $<vars>1 = dyna_push(); $<num>$ = ruby_sourceline; } opt_block_param compstmt keyword_end { $$ = NEW_ITER($3,$4); nd_set_line($$, $<num>2); dyna_pop($<vars>1); } ;block_call : command do_block { if (nd_type($1) == NODE_YIELD) { compile_error(PARSER_ARG "block given to yield"); } else { block_dup_check($1->nd_args, $2); } $2->nd_iter = $1; $$ = $2; fixpos($$, $1); } | block_call dot_or_colon operation2 opt_paren_args { $$ = NEW_CALL($1, $3, $4); } | block_call dot_or_colon operation2 opt_paren_args brace_block { block_dup_check($4, $5); $5->nd_iter = NEW_CALL($1, $3, $4); $$ = $5; fixpos($$, $1); } | block_call dot_or_colon operation2 command_args do_block { block_dup_check($4, $5); $5->nd_iter = NEW_CALL($1, $3, $4); $$ = $5; fixpos($$, $1); } ;method_call : fcall paren_args { $$ = $1; $$->nd_args = $2; } | primary_value '.' operation2 { $<num>$ = ruby_sourceline; } opt_paren_args { $$ = NEW_CALL($1, $3, $5); nd_set_line($$, $<num>4); } | primary_value tCOLON2 operation2 { $<num>$ = ruby_sourceline; } paren_args { $$ = NEW_CALL($1, $3, $5); nd_set_line($$, $<num>4); } | primary_value tCOLON2 operation3 { $$ = NEW_CALL($1, $3, 0); } | primary_value '.' { $<num>$ = ruby_sourceline; } paren_args { $$ = NEW_CALL($1, rb_intern("call"), $4); nd_set_line($$, $<num>3); } | primary_value tCOLON2 { $<num>$ = ruby_sourceline; } paren_args { $$ = NEW_CALL($1, rb_intern("call"), $4); nd_set_line($$, $<num>3); } | keyword_super paren_args { $$ = NEW_SUPER($2); } | keyword_super { $$ = NEW_ZSUPER(); } | primary_value '[' opt_call_args rbracket { if ($1 && nd_type($1) == NODE_SELF) $$ = NEW_FCALL(tAREF, $3); else $$ = NEW_CALL($1, tAREF, $3); fixpos($$, $1); } ;brace_block : '{' { $<vars>1 = dyna_push(); $<num>$ = ruby_sourceline; } opt_block_param compstmt '}' { $$ = NEW_ITER($3,$4); nd_set_line($$, $<num>2); dyna_pop($<vars>1); } | keyword_do { $<vars>1 = dyna_push(); $<num>$ = ruby_sourceline; } opt_block_param compstmt keyword_end { $$ = NEW_ITER($3,$4); nd_set_line($$, $<num>2); dyna_pop($<vars>1); } ;case_body : keyword_when args then compstmt cases { $$ = NEW_WHEN($2, $4, $5); } ;cases : opt_else | case_body ;opt_rescue : keyword_rescue exc_list exc_var then compstmt opt_rescue { if ($3) { $3 = node_assign($3, NEW_ERRINFO()); $5 = block_append($3, $5); } $$ = NEW_RESBODY($2, $5, $6); fixpos($$, $2?$2:$5); } | none ;exc_list : arg_value { $$ = NEW_LIST($1); } | mrhs { if (!($$ = splat_array($1))) $$ = $1; } | none ;exc_var : tASSOC lhs { $$ = $2; } | none ;opt_ensure : keyword_ensure compstmt { $$ = $2; } | none ;literal : numeric | symbol { $$ = NEW_LIT(ID2SYM($1)); } | dsym ;strings : string { NODE *node = $1; if (!node) { node = NEW_STR(STR_NEW0()); } else { node = evstr2dstr(node); } $$ = node; } ;string : tCHAR | string1 | string string1 { $$ = literal_concat($1, $2); } ;string1 : tSTRING_BEG string_contents tSTRING_END { $$ = $2; } ;xstring : tXSTRING_BEG xstring_contents tSTRING_END { NODE *node = $2; if (!node) { node = NEW_XSTR(STR_NEW0()); } else { switch (nd_type(node)) { case NODE_STR: nd_set_type(node, NODE_XSTR); break; case NODE_DSTR: nd_set_type(node, NODE_DXSTR); break; default: node = NEW_NODE(NODE_DXSTR, Qnil, 1, NEW_LIST(node)); break; } } $$ = node; } ;regexp : tREGEXP_BEG regexp_contents tREGEXP_END { int options = $3; NODE *node = $2; NODE *list, *prev; if (!node) { node = NEW_LIT(reg_compile(STR_NEW0(), options)); } else switch (nd_type(node)) { case NODE_STR: { VALUE src = node->nd_lit; nd_set_type(node, NODE_LIT); node->nd_lit = reg_compile(src, options); } break; default: node = NEW_NODE(NODE_DSTR, STR_NEW0(), 1, NEW_LIST(node)); case NODE_DSTR: if (options & RE_OPTION_ONCE) { nd_set_type(node, NODE_DREGX_ONCE); } else { nd_set_type(node, NODE_DREGX); } node->nd_cflag = options & RE_OPTION_MASK; if (!NIL_P(node->nd_lit)) reg_fragment_check(node->nd_lit, options); for (list = (prev = node)->nd_next; list; list = list->nd_next) { if (nd_type(list->nd_head) == NODE_STR) { VALUE tail = list->nd_head->nd_lit; if (reg_fragment_check(tail, options) && prev && !NIL_P(prev->nd_lit)) { VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit; if (!literal_concat0(parser, lit, tail)) { node = 0; break; } rb_str_resize(tail, 0); prev->nd_next = list->nd_next; rb_gc_force_recycle((VALUE)list->nd_head); rb_gc_force_recycle((VALUE)list); list = prev; } else { prev = list; } } else { prev = 0; } } if (!node->nd_next) { VALUE src = node->nd_lit; nd_set_type(node, NODE_LIT); node->nd_lit = reg_compile(src, options); } break; } $$ = node; } ;words : tWORDS_BEG ' ' tSTRING_END { $$ = NEW_ZARRAY(); } | tWORDS_BEG word_list tSTRING_END { $$ = $2; } ;word_list : { $$ = 0; } | word_list word ' ' { $$ = list_append($1, evstr2dstr($2)); } ;word : string_content | word string_content { $$ = literal_concat($1, $2); } ;symbols : tSYMBOLS_BEG ' ' tSTRING_END { $$ = NEW_ZARRAY(); } | tSYMBOLS_BEG symbol_list tSTRING_END { $$ = $2; } ;symbol_list : { $$ = 0; } | symbol_list word ' ' { $2 = evstr2dstr($2); nd_set_type($2, NODE_DSYM); $$ = list_append($1, $2); } ;qwords : tQWORDS_BEG ' ' tSTRING_END { $$ = NEW_ZARRAY(); } | tQWORDS_BEG qword_list tSTRING_END { $$ = $2; } ;qsymbols : tQSYMBOLS_BEG ' ' tSTRING_END { $$ = NEW_ZARRAY(); } | tQSYMBOLS_BEG qsym_list tSTRING_END { $$ = $2; } ;qword_list : { $$ = 0; } | qword_list tSTRING_CONTENT ' ' { $$ = list_append($1, $2); } ;qsym_list : { $$ = 0; } | qsym_list tSTRING_CONTENT ' ' { VALUE lit; lit = $2->nd_lit; $2->nd_lit = ID2SYM(rb_intern_str(lit)); nd_set_type($2, NODE_LIT); $$ = list_append($1, $2); } ;string_contents : { $$ = 0; } | string_contents string_content { $$ = literal_concat($1, $2); } ;xstring_contents: { $$ = 0; } | xstring_contents string_content { $$ = literal_concat($1, $2); } ;regexp_contents: { $$ = 0; } | regexp_contents string_content { NODE *head = $1, *tail = $2; if (!head) { $$ = tail; } else if (!tail) { $$ = head; } else { switch (nd_type(head)) { case NODE_STR: nd_set_type(head, NODE_DSTR); break; case NODE_DSTR: break; default: head = list_append(NEW_DSTR(Qnil), head); break; } $$ = list_append(head, tail); } } ;string_content : tSTRING_CONTENT | tSTRING_DVAR { $<node>$ = lex_strterm; lex_strterm = 0; lex_state = EXPR_BEG; } string_dvar { lex_strterm = $<node>2; $$ = NEW_EVSTR($3); } | tSTRING_DBEG { $<val>1 = cond_stack; $<val>$ = cmdarg_stack; cond_stack = 0; cmdarg_stack = 0; } { $<node>$ = lex_strterm; lex_strterm = 0; lex_state = EXPR_BEG; } { $<num>$ = brace_nest; brace_nest = 0; } compstmt tSTRING_DEND { cond_stack = $<val>1; cmdarg_stack = $<val>2; lex_strterm = $<node>3; brace_nest = $<num>4; if ($5) $5->flags &= ~NODE_FL_NEWLINE; $$ = new_evstr($5); } ;string_dvar : tGVAR { $$ = NEW_GVAR($1); } | tIVAR { $$ = NEW_IVAR($1); } | tCVAR { $$ = NEW_CVAR($1); } | backref ;symbol : tSYMBEG sym { lex_state = EXPR_END; $$ = $2; } ;sym : fname | tIVAR | tGVAR | tCVAR ;dsym : tSYMBEG xstring_contents tSTRING_END { lex_state = EXPR_END; $$ = dsym_node($2); } ;numeric : simple_numeric | tUMINUS_NUM simple_numeric %prec tLOWEST { $$ = negate_lit($2); } ;simple_numeric : tINTEGER | tFLOAT | tRATIONAL | tIMAGINARY ;user_variable : tIDENTIFIER | tIVAR | tGVAR | tCONSTANT | tCVAR ;keyword_variable: keyword_nil {ifndef_ripper($$ = keyword_nil);} | keyword_self {ifndef_ripper($$ = keyword_self);} | keyword_true {ifndef_ripper($$ = keyword_true);} | keyword_false {ifndef_ripper($$ = keyword_false);} | keyword__FILE__ {ifndef_ripper($$ = keyword__FILE__);} | keyword__LINE__ {ifndef_ripper($$ = keyword__LINE__);} | keyword__ENCODING__ {ifndef_ripper($$ = keyword__ENCODING__);} ;var_ref : user_variable { if (!($$ = gettable($1))) $$ = NEW_BEGIN(0); } | keyword_variable { if (!($$ = gettable($1))) $$ = NEW_BEGIN(0); } ;var_lhs : user_variable { $$ = assignable($1, 0); } | keyword_variable { $$ = assignable($1, 0); } ;backref : tNTH_REF | tBACK_REF ;superclass : term { $$ = 0; } | '<' { lex_state = EXPR_BEG; command_start = TRUE; } expr_value term { $$ = $3; } | error term { yyerrok; $$ = 0; } ;f_arglist : '(' f_args rparen { $$ = $2; lex_state = EXPR_BEG; command_start = TRUE; } | { $<num>$ = parser->parser_in_kwarg; parser->parser_in_kwarg = 1; } f_args term { parser->parser_in_kwarg = $<num>1; $$ = $2; lex_state = EXPR_BEG; command_start = TRUE; } ;args_tail : f_kwarg ',' f_kwrest opt_f_block_arg { $$ = new_args_tail($1, $3, $4); } | f_kwarg opt_f_block_arg { $$ = new_args_tail($1, Qnone, $2); } | f_kwrest opt_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_arg opt_args_tail { $$ = new_args($1, $3, $5, Qnone, $6); } | f_arg ',' f_optarg ',' f_rest_arg ',' f_arg opt_args_tail { $$ = new_args($1, $3, $5, $7, $8); } | f_arg ',' f_optarg opt_args_tail { $$ = new_args($1, $3, Qnone, Qnone, $4); } | f_arg ',' f_optarg ',' f_arg opt_args_tail { $$ = new_args($1, $3, Qnone, $5, $6); } | f_arg ',' f_rest_arg opt_args_tail { $$ = new_args($1, Qnone, $3, Qnone, $4); } | f_arg ',' f_rest_arg ',' f_arg opt_args_tail { $$ = new_args($1, Qnone, $3, $5, $6); } | f_arg opt_args_tail { $$ = new_args($1, Qnone, Qnone, Qnone, $2); } | f_optarg ',' f_rest_arg opt_args_tail { $$ = new_args(Qnone, $1, $3, Qnone, $4); } | f_optarg ',' f_rest_arg ',' f_arg opt_args_tail { $$ = new_args(Qnone, $1, $3, $5, $6); } | f_optarg opt_args_tail { $$ = new_args(Qnone, $1, Qnone, Qnone, $2); } | f_optarg ',' f_arg opt_args_tail { $$ = new_args(Qnone, $1, Qnone, $3, $4); } | f_rest_arg opt_args_tail { $$ = new_args(Qnone, Qnone, $1, Qnone, $2); } | f_rest_arg ',' f_arg opt_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("formal argument cannot be a constant"); $$ = 0; } | tIVAR { yyerror("formal argument cannot be an instance variable"); $$ = 0; } | tGVAR { yyerror("formal argument cannot be a global variable"); $$ = 0; } | tCVAR { yyerror("formal argument cannot be a class variable"); $$ = 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); } | tLPAREN f_margs rparen { ID tid = internal_id(); arg_var(tid); if (dyna_in_block()) { $2->nd_value = NEW_DVAR(tid); } else { $2->nd_value = NEW_LVAR(tid); } $$ = NEW_ARGS_AUX(tid, 1); $$->nd_next = $2; } ;f_arg : f_arg_item | f_arg ',' f_arg_item { $$ = $1; $$->nd_plen++; $$->nd_next = block_append($$->nd_next, $3->nd_next); rb_gc_force_recycle((VALUE)$3); } ;f_label : tLABEL { arg_var(formal_argument(get_id($1))); $$ = $1; } ;f_kw : f_label arg_value { $$ = assignable($1, $2); $$ = NEW_KW_ARG(0, $$); } | f_label { $$ = assignable($1, (NODE *)-1); $$ = NEW_KW_ARG(0, $$); } ;f_block_kw : f_label primary_value { $$ = assignable($1, $2); $$ = NEW_KW_ARG(0, $$); } | f_label { $$ = assignable($1, (NODE *)-1); $$ = NEW_KW_ARG(0, $$); } ;f_block_kwarg : f_block_kw { $$ = $1; } | f_block_kwarg ',' f_block_kw { NODE *kws = $1; while (kws->nd_next) { kws = kws->nd_next; } kws->nd_next = $3; $$ = $1; } ;f_kwarg : f_kw { $$ = $1; } | f_kwarg ',' f_kw { NODE *kws = $1; while (kws->nd_next) { kws = kws->nd_next; } kws->nd_next = $3; $$ = $1; } ;kwrest_mark : tPOW | tDSTAR ;f_kwrest : kwrest_mark tIDENTIFIER { shadowing_lvar(get_id($2)); $$ = $2; } | kwrest_mark { $$ = internal_id(); } ;f_opt : f_norm_arg '=' arg_value { arg_var(get_id($1)); $$ = assignable($1, $3); $$ = NEW_OPT_ARG(0, $$); } ;f_block_opt : f_norm_arg '=' primary_value { arg_var(get_id($1)); $$ = assignable($1, $3); $$ = NEW_OPT_ARG(0, $$); } ;f_block_optarg : f_block_opt { $$ = $1; } | f_block_optarg ',' f_block_opt { NODE *opts = $1; while (opts->nd_next) { opts = opts->nd_next; } opts->nd_next = $3; $$ = $1; } ;f_optarg : f_opt { $$ = $1; } | f_optarg ',' f_opt { NODE *opts = $1; while (opts->nd_next) { opts = opts->nd_next; } opts->nd_next = $3; $$ = $1; } ;restarg_mark : '*' | tSTAR ;f_rest_arg : restarg_mark tIDENTIFIER { if (!is_local_id($2)) yyerror("rest argument must be local variable"); arg_var(shadowing_lvar(get_id($2))); $$ = $2; } | restarg_mark { $$ = internal_id(); arg_var($$); } ;blkarg_mark : '&' | tAMPER ;f_block_arg : blkarg_mark tIDENTIFIER { if (!is_local_id($2)) yyerror("block argument must be local variable"); else if (!dyna_in_block() && local_id($2)) yyerror("duplicated block argument name"); arg_var(shadowing_lvar(get_id($2))); $$ = $2; } ;opt_f_block_arg : ',' f_block_arg { $$ = $2; } | none { $$ = 0; } ;singleton : var_ref { value_expr($1); $$ = $1; if (!$$) $$ = NEW_NIL(); } | '(' {lex_state = EXPR_BEG;} expr rparen { if ($3 == 0) { yyerror("can't define singleton method for ()."); } else { switch (nd_type($3)) { case NODE_STR: case NODE_DSTR: case NODE_XSTR: case NODE_DXSTR: case NODE_DREGX: case NODE_LIT: case NODE_ARRAY: case NODE_ZARRAY: yyerror("can't define singleton method for literals"); default: value_expr($3); break; } } $$ = $3; } ;assoc_list : none | assocs trailer { $$ = $1; } ;assocs : assoc | assocs ',' assoc { $$ = list_concat($1, $3); } ;assoc : arg_value tASSOC arg_value { if (nd_type($1) == NODE_STR) { nd_set_type($1, NODE_LIT); $1->nd_lit = rb_fstring($1->nd_lit); } $$ = list_append(NEW_LIST($1), $3); } | tLABEL arg_value { $$ = list_append(NEW_LIST(NEW_LIT(ID2SYM($1))), $2); } | tDSTAR arg_value { $$ = list_append(NEW_LIST(0), $2); } ; ;operation : tIDENTIFIER | tCONSTANT | tFID ;operation2 : tIDENTIFIER | tCONSTANT | tFID | op ;operation3 : tIDENTIFIER | tFID | op ;dot_or_colon : '.' | tCOLON2 ;opt_terms : | terms ;opt_nl : | '\n' ;rparen : opt_nl ')' ;rbracket : opt_nl ']' ;trailer : | '\n' | ',' ;term : ';' {yyerrok;} | '\n' ;terms : term | terms ';' {yyerrok;} ;none : { $$ = 0; } ;%%#define yylvalstatic 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*);#define nextc() #define pushback(c) #define newtok() #define tokspace(n) #define tokadd(c) #define tok_hex(numlen) #define read_escape(flags,e) #define tokadd_escape(e) #define regx_options() #define tokadd_string(f,t,p,n,e) #define parse_string(n) #define tokaddmbc(c, enc) #define here_document(n) #define heredoc_identifier() #define heredoc_restore(n) #define whole_match_p(e,l,i) #define number_literal_suffix(f) #define set_number_literal(v, t, f) #define set_integer_literal(v, f) #define set_yylval_str(x) #define set_yylval_num(x) #define set_yylval_id(x) #define set_yylval_name(x) #define set_yylval_literal(x) #define set_yylval_node(x) #define yylval_id() #define ripper_flush(p) #define SIGN_EXTEND_CHAR(c) #define parser_encoding_name() #define parser_mbclen() #define parser_precise_mbclen() #define is_identchar(p,e,enc) #define parser_is_identchar() #define parser_isascii() static inttoken_info_get_column(struct parser_params *parser, const char *token){ int column = 1; const char *p, *pend = lex_p - strlen(token); for (p = lex_pbeg; p < pend; p++) { if (*p == '\t') { column = (((column - 1) / 8) + 1) * 8; } column++; } return column;}static inttoken_info_has_nonspaces(struct parser_params *parser, const char *token){ const char *p, *pend = lex_p - strlen(token); for (p = lex_pbeg; p < pend; p++) { if (*p != ' ' && *p != '\t') { return 1; } } return 0;}static voidtoken_info_push(struct parser_params *parser, const char *token){ token_info *ptinfo; if (!parser->parser_token_info_enabled) return; ptinfo = ALLOC(token_info); ptinfo->token = token; ptinfo->linenum = ruby_sourceline; ptinfo->column = token_info_get_column(parser, token); ptinfo->nonspc = token_info_has_nonspaces(parser, token); ptinfo->next = parser->parser_token_info; parser->parser_token_info = ptinfo;}static voidtoken_info_pop(struct parser_params *parser, const char *token){ int linenum; token_info *ptinfo = parser->parser_token_info; if (!ptinfo) return; parser->parser_token_info = ptinfo->next; if (token_info_get_column(parser, token) == ptinfo->column) { goto finish; } linenum = ruby_sourceline; if (linenum == ptinfo->linenum) { goto finish; } if (token_info_has_nonspaces(parser, token) || ptinfo->nonspc) { goto finish; } if (parser->parser_token_info_enabled) { rb_compile_warn(ruby_sourcefile, linenum, "mismatched indentations at '%s' with '%s' at %d", token, ptinfo->token, ptinfo->linenum); } finish: xfree(ptinfo);}static intparser_yyerror(struct parser_params *parser, const char *msg){ const int max_line_margin = 30; const char *p, *pe; char *buf; long len; int i; compile_error(PARSER_ARG "%s", msg); p = lex_p; while (lex_pbeg <= p) { if (*p == '\n') break; p--; } p++; pe = lex_p; while (pe < lex_pend) { if (*pe == '\n') break; pe++; } len = pe - p; if (len > 4) { char *p2; const char *pre = "", *post = ""; if (len > max_line_margin * 2 + 10) { if (lex_p - p > max_line_margin) { p = rb_enc_prev_char(p, lex_p - max_line_margin, pe, rb_enc_get(lex_lastline)); pre = "..."; } if (pe - lex_p > max_line_margin) { pe = rb_enc_prev_char(lex_p, lex_p + max_line_margin, pe, rb_enc_get(lex_lastline)); post = "..."; } len = pe - p; } buf = ALLOCA_N(char, len+2); MEMCPY(buf, p, char, len); buf[len] = '\0'; rb_compile_error_with_enc(NULL, 0, (void *)current_enc, "%s%s%s", pre, buf, post); i = (int)(lex_p - p); p2 = buf; pe = buf + len; while (p2 < pe) { if (*p2 != '\t') *p2 = ' '; p2++; } buf[i] = '^'; buf[i+1] = '\0'; rb_compile_error_append("%s%s", pre, buf); } return 0;}static void parser_prepare(struct parser_params *parser);static VALUEdebug_lines(VALUE fname){ ID script_lines; CONST_ID(script_lines, "SCRIPT_LINES__"); if (rb_const_defined_at(rb_cObject, script_lines)) { VALUE hash = rb_const_get_at(rb_cObject, script_lines); if (RB_TYPE_P(hash, T_HASH)) { VALUE lines = rb_ary_new(); rb_hash_aset(hash, fname, lines); return lines; } } return 0;}static VALUEcoverage(VALUE fname, int n){ VALUE coverages = rb_get_coverages(); if (RTEST(coverages) && RBASIC(coverages)->klass == 0) { VALUE lines = rb_ary_new2(n); int i; RBASIC_CLEAR_CLASS(lines); for (i = 0; i < n; i++) RARRAY_ASET(lines, i, Qnil); RARRAY(lines)->as.heap.len = n; rb_hash_aset(coverages, fname, lines); return lines; } return 0;}static inte_option_supplied(struct parser_params *parser){ return strcmp(ruby_sourcefile, "-e") == 0;}static VALUEyycompile0(VALUE arg){ int n; NODE *tree; struct parser_params *parser = (struct parser_params *)arg; if (!compile_for_eval && rb_safe_level() == 0) { ruby_debug_lines = debug_lines(ruby_sourcefile_string); if (ruby_debug_lines && ruby_sourceline > 0) { VALUE str = STR_NEW0(); n = ruby_sourceline; do { rb_ary_push(ruby_debug_lines, str); } while (--n); } if (!e_option_supplied(parser)) { ruby_coverage = coverage(ruby_sourcefile_string, ruby_sourceline); } } parser->last_cr_line = ruby_sourceline - 1; parser_prepare(parser); deferred_nodes = 0; parser->parser_token_info_enabled = !compile_for_eval && RTEST(ruby_verbose); if (RUBY_DTRACE_PARSE_BEGIN_ENABLED()) { RUBY_DTRACE_PARSE_BEGIN(parser->parser_ruby_sourcefile, parser->parser_ruby_sourceline); } n = yyparse((void*)parser); if (RUBY_DTRACE_PARSE_END_ENABLED()) { RUBY_DTRACE_PARSE_END(parser->parser_ruby_sourcefile, parser->parser_ruby_sourceline); } ruby_debug_lines = 0; ruby_coverage = 0; compile_for_eval = 0; lex_strterm = 0; lex_p = lex_pbeg = lex_pend = 0; lex_lastline = lex_nextline = 0; if (parser->nerr) { return 0; } tree = ruby_eval_tree; if (!tree) { tree = NEW_NIL(); } else if (ruby_eval_tree_begin) { tree->nd_body = NEW_PRELUDE(ruby_eval_tree_begin, tree->nd_body); } return (VALUE)tree;}static NODE*yycompile(struct parser_params *parser, VALUE fname, int line){ ruby_sourcefile_string = rb_str_new_frozen(fname); ruby_sourcefile = RSTRING_PTR(fname); ruby_sourceline = line - 1; return (NODE *)rb_suppress_tracing(yycompile0, (VALUE)parser);}static rb_encoding *must_be_ascii_compatible(VALUE s){ rb_encoding *enc = rb_enc_get(s); if (!rb_enc_asciicompat(enc)) { rb_raise(rb_eArgError, "invalid source encoding"); } return enc;}static VALUElex_get_str(struct parser_params *parser, VALUE s){ char *beg, *end, *pend; rb_encoding *enc = must_be_ascii_compatible(s); beg = RSTRING_PTR(s); if (lex_gets_ptr) { if (RSTRING_LEN(s) == lex_gets_ptr) return Qnil; beg += lex_gets_ptr; } pend = RSTRING_PTR(s) + RSTRING_LEN(s); end = beg; while (end < pend) { if (*end++ == '\n') break; } lex_gets_ptr = end - RSTRING_PTR(s); return rb_enc_str_new(beg, end - beg, enc);}static VALUElex_getline(struct parser_params *parser){ VALUE line = (*parser->parser_lex_gets)(parser, parser->parser_lex_input); if (NIL_P(line)) return line; must_be_ascii_compatible(line); if (ruby_debug_lines) { rb_enc_associate(line, current_enc); rb_ary_push(ruby_debug_lines, line); } if (ruby_coverage) { rb_ary_push(ruby_coverage, Qnil); } return line;}static const rb_data_type_t parser_data_type;static NODE*parser_compile_string(volatile VALUE vparser, VALUE fname, VALUE s, int line){ struct parser_params *parser; NODE *node; TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser); lex_gets = lex_get_str; lex_gets_ptr = 0; lex_input = s; lex_pbeg = lex_p = lex_pend = 0; compile_for_eval = rb_parse_in_eval(); node = yycompile(parser, fname, line); RB_GC_GUARD(vparser); return node;}NODE*rb_compile_string(const char *f, VALUE s, int line){ must_be_ascii_compatible(s); return parser_compile_string(rb_parser_new(), rb_filesystem_str_new_cstr(f), s, line);}NODE*rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line){ return rb_parser_compile_string_path(vparser, rb_filesystem_str_new_cstr(f), s, line);}NODE*rb_parser_compile_string_path(volatile VALUE vparser, VALUE f, VALUE s, int line){ must_be_ascii_compatible(s); return parser_compile_string(vparser, f, s, line);}NODE*rb_compile_cstr(const char *f, const char *s, int len, int line){ VALUE str = rb_str_new(s, len); return parser_compile_string(rb_parser_new(), rb_filesystem_str_new_cstr(f), str, line);}NODE*rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line){ VALUE str = rb_str_new(s, len); return parser_compile_string(vparser, rb_filesystem_str_new_cstr(f), str, line);}static VALUElex_io_gets(struct parser_params *parser, VALUE io){ return rb_io_gets(io);}NODE*rb_compile_file(const char *f, VALUE file, int start){ VALUE volatile vparser = rb_parser_new(); return rb_parser_compile_file(vparser, f, file, start);}NODE*rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start){ return rb_parser_compile_file_path(vparser, rb_filesystem_str_new_cstr(f), file, start);}NODE*rb_parser_compile_file_path(volatile VALUE vparser, VALUE fname, VALUE file, int start){ struct parser_params *parser; NODE *node; TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser); lex_gets = lex_io_gets; lex_input = file; lex_pbeg = lex_p = lex_pend = 0; compile_for_eval = rb_parse_in_eval(); node = yycompile(parser, fname, start); RB_GC_GUARD(vparser); return node;}#define STR_FUNC_ESCAPE#define STR_FUNC_EXPAND#define STR_FUNC_REGEXP#define STR_FUNC_QWORDS#define STR_FUNC_SYMBOL#define STR_FUNC_INDENTenum 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)};static VALUEparser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0){ VALUE str; str = rb_enc_str_new(p, n, enc); if (!(func & STR_FUNC_REGEXP) && rb_enc_asciicompat(enc)) { if (rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT) { } else if (enc0 == rb_usascii_encoding() && enc != rb_utf8_encoding()) { rb_enc_associate(str, rb_ascii8bit_encoding()); } } return str;}#define lex_goto_eol(parser) #define lex_eol_p() #define peek(c) #define peek_n(c,n) static inline intparser_nextc(struct parser_params *parser){ int c; if (lex_p == lex_pend) { VALUE v = lex_nextline; lex_nextline = 0; if (!v) { if (parser->eofp) return -1; if (!lex_input || NIL_P(v = lex_getline(parser))) { parser->eofp = Qtrue; lex_goto_eol(parser); return -1; } } { if (heredoc_end > 0) { ruby_sourceline = heredoc_end; heredoc_end = 0; } ruby_sourceline++; parser->line_count++; lex_pbeg = lex_p = RSTRING_PTR(v); lex_pend = lex_p + RSTRING_LEN(v); ripper_flush(parser); lex_lastline = v; } } c = (unsigned char)*lex_p++; if (c == '\r') { if (peek('\n')) { lex_p++; c = '\n'; } else if (ruby_sourceline > parser->last_cr_line) { parser->last_cr_line = ruby_sourceline; rb_compile_warn(ruby_sourcefile, ruby_sourceline, "encountered \\r in middle of line, treated as a mere space"); } } return c;}static voidparser_pushback(struct parser_params *parser, int c){ if (c == -1) return; lex_p--; if (lex_p > lex_pbeg && lex_p[0] == '\n' && lex_p[-1] == '\r') { lex_p--; }}#define was_bol() #define tokfix() #define tok() #define toklen() #define toklast() static char*parser_newtok(struct parser_params *parser){ tokidx = 0; tokline = ruby_sourceline; if (!tokenbuf) { toksiz = 60; tokenbuf = ALLOC_N(char, 60); } if (toksiz > 4096) { toksiz = 60; REALLOC_N(tokenbuf, char, 60); } return tokenbuf;}static char *parser_tokspace(struct parser_params *parser, int n){ tokidx += n; if (tokidx >= toksiz) { do {toksiz *= 2;} while (toksiz < tokidx); REALLOC_N(tokenbuf, char, toksiz); } return &tokenbuf[tokidx-n];}static voidparser_tokadd(struct parser_params *parser, int c){ tokenbuf[tokidx++] = (char)c; if (tokidx >= toksiz) { toksiz *= 2; REALLOC_N(tokenbuf, char, toksiz); }}static intparser_tok_hex(struct parser_params *parser, size_t *numlen){ int c; c = scan_hex(lex_p, 2, numlen); if (!*numlen) { yyerror("invalid hex escape"); return 0; } lex_p += *numlen; return c;}#define tokcopy(n) static intparser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal){ int codepoint; size_t numlen; if (regexp_literal) { tokadd('\\'); tokadd('u'); } if (peek('{')) { do { if (regexp_literal) { tokadd(*lex_p); } nextc(); codepoint = scan_hex(lex_p, 6, &numlen); if (numlen == 0) { yyerror("invalid Unicode escape"); return 0; } if (codepoint > 0x10ffff) { yyerror("invalid Unicode codepoint (too large)"); return 0; } lex_p += numlen; if (regexp_literal) { tokcopy((int)numlen); } else if (codepoint >= 0x80) { *encp = rb_utf8_encoding(); if (string_literal) tokaddmbc(codepoint, *encp); } else if (string_literal) { tokadd(codepoint); } } while (string_literal && (peek(' ') || peek('\t'))); if (!peek('}')) { yyerror("unterminated Unicode escape"); return 0; } if (regexp_literal) { tokadd('}'); } nextc(); } else { codepoint = scan_hex(lex_p, 4, &numlen); if (numlen < 4) { yyerror("invalid Unicode escape"); return 0; } lex_p += 4; if (regexp_literal) { tokcopy(4); } else if (codepoint >= 0x80) { *encp = rb_utf8_encoding(); if (string_literal) tokaddmbc(codepoint, *encp); } else if (string_literal) { tokadd(codepoint); } } return codepoint;}#define ESCAPE_CONTROL#define ESCAPE_METAstatic intparser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp){ int c; size_t numlen; switch (c = nextc()) { case '\\': return c; case 'n': return '\n'; case 't': return '\t'; case 'r': return '\r'; case 'f': return '\f'; case 'v': return '\13'; case 'a': return '\007'; case 'e': return 033; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': pushback(c); c = scan_oct(lex_p, 3, &numlen); lex_p += numlen; return c; case 'x': c = tok_hex(&numlen); if (numlen == 0) return 0; return c; case 'b': return '\010'; case 's': return ' '; case 'M': if (flags & ESCAPE_META) goto eof; if ((c = nextc()) != '-') { pushback(c); goto eof; } if ((c = nextc()) == '\\') { if (peek('u')) goto eof; return read_escape(flags|ESCAPE_META, encp) | 0x80; } else if (c == -1 || !ISASCII(c)) goto eof; else { return ((c & 0xff) | 0x80); } case 'C': if ((c = nextc()) != '-') { pushback(c); goto eof; } case 'c': if (flags & ESCAPE_CONTROL) goto eof; if ((c = nextc())== '\\') { if (peek('u')) goto eof; c = read_escape(flags|ESCAPE_CONTROL, encp); } else if (c == '?') return 0177; else if (c == -1 || !ISASCII(c)) goto eof; return c & 0x9f; eof: case -1: yyerror("Invalid escape character syntax"); return '\0'; default: return c; }}static voidparser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc){ int len = rb_enc_codelen(c, enc); rb_enc_mbcput(c, tokspace(len), enc);}static intparser_tokadd_escape(struct parser_params *parser, rb_encoding **encp){ int c; int flags = 0; size_t numlen; first: switch (c = nextc()) { case '\n': return 0; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': { ruby_scan_oct(--lex_p, 3, &numlen); if (numlen == 0) goto eof; lex_p += numlen; tokcopy((int)numlen + 1); } return 0; case 'x': { tok_hex(&numlen); if (numlen == 0) return -1; tokcopy((int)numlen + 2); } return 0; case 'M': if (flags & ESCAPE_META) goto eof; if ((c = nextc()) != '-') { pushback(c); goto eof; } tokcopy(3); flags |= ESCAPE_META; goto escaped; case 'C': if (flags & ESCAPE_CONTROL) goto eof; if ((c = nextc()) != '-') { pushback(c); goto eof; } tokcopy(3); goto escaped; case 'c': if (flags & ESCAPE_CONTROL) goto eof; tokcopy(2); flags |= ESCAPE_CONTROL; escaped: if ((c = nextc()) == '\\') { goto first; } else if (c == -1) goto eof; tokadd(c); return 0; eof: case -1: yyerror("Invalid escape character syntax"); return -1; default: tokadd('\\'); tokadd(c); } return 0;}static intparser_regx_options(struct parser_params *parser){ int kcode = 0; int kopt = 0; int options = 0; int c, opt, kc; newtok(); while (c = nextc(), ISALPHA(c)) { if (c == 'o') { options |= RE_OPTION_ONCE; } else if (rb_char_to_option_kcode(c, &opt, &kc)) { if (kc >= 0) { if (kc != rb_ascii8bit_encindex()) kcode = c; kopt = opt; } else { options |= opt; } } else { tokadd(c); } } options |= kopt; pushback(c); if (toklen()) { tokfix(); compile_error(PARSER_ARG "unknown regexp option%s - %s", toklen() > 1 ? "s" : "", tok()); } return options | RE_OPTION_ENCODING(kcode);}static voiddispose_string(VALUE str){ rb_str_free(str); rb_gc_force_recycle(str);}static intparser_tokadd_mbchar(struct parser_params *parser, int c){ int len = parser_precise_mbclen(); if (!MBCLEN_CHARFOUND_P(len)) { compile_error(PARSER_ARG "invalid multibyte char (%s)", parser_encoding_name()); return -1; } tokadd(c); lex_p += --len; if (len > 0) tokcopy(len); return c;}#define tokadd_mbchar(c) static inline intsimple_re_meta(int c){ switch (c) { case '$': case '*': case '+': case '.': case '?': case '^': case '|': case ')': case ']': case '}': case '>': return TRUE; default: return FALSE; }}static intparser_tokadd_string(struct parser_params *parser, int func, int term, int paren, long *nest, rb_encoding **encp){ int c; int has_nonascii = 0; rb_encoding *enc = *encp; char *errbuf = 0; static const char mixed_msg[] = "%s mixed within %s source";#define mixed_error(enc1, enc2) #define mixed_escape(beg, enc1, enc2) while ((c = nextc()) != -1) { if (paren && c == paren) { ++*nest; } else if (c == term) { if (!nest || !*nest) { pushback(c); break; } --*nest; } else if ((func & STR_FUNC_EXPAND) && c == '#' && lex_p < lex_pend) { int c2 = *lex_p; if (c2 == '$' || c2 == '@' || c2 == '{') { pushback(c); break; } } else if (c == '\\') { const char *beg = lex_p - 1; c = nextc(); switch (c) { case '\n': if (func & STR_FUNC_QWORDS) break; if (func & STR_FUNC_EXPAND) continue; tokadd('\\'); break; case '\\': if (func & STR_FUNC_ESCAPE) tokadd(c); break; case 'u': if ((func & STR_FUNC_EXPAND) == 0) { tokadd('\\'); break; } parser_tokadd_utf8(parser, &enc, 1, func & STR_FUNC_SYMBOL, func & STR_FUNC_REGEXP); if (has_nonascii && enc != *encp) { mixed_escape(beg, enc, *encp); } continue; default: if (c == -1) return -1; if (!ISASCII(c)) { if ((func & STR_FUNC_EXPAND) == 0) tokadd('\\'); goto non_ascii; } if (func & STR_FUNC_REGEXP) { if (c == term && !simple_re_meta(c)) { tokadd(c); continue; } pushback(c); if ((c = tokadd_escape(&enc)) < 0) return -1; if (has_nonascii && enc != *encp) { mixed_escape(beg, enc, *encp); } continue; } else if (func & STR_FUNC_EXPAND) { pushback(c); if (func & STR_FUNC_ESCAPE) tokadd('\\'); c = read_escape(0, &enc); } else if ((func & STR_FUNC_QWORDS) && ISSPACE(c)) { } else if (c != term && !(paren && c == paren)) { tokadd('\\'); pushback(c); continue; } } } else if (!parser_isascii()) { non_ascii: has_nonascii = 1; if (enc != *encp) { mixed_error(enc, *encp); continue; } if (tokadd_mbchar(c) == -1) return -1; continue; } else if ((func & STR_FUNC_QWORDS) && ISSPACE(c)) { pushback(c); break; } if (c & 0x80) { has_nonascii = 1; if (enc != *encp) { mixed_error(enc, *encp); continue; } } tokadd(c); } *encp = enc; return c;}#define NEW_STRTERM(func, term, paren) #define flush_string_content(enc) RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e - 0x20 + 31) / 32];#define BIT(c, idx) #define SPECIAL_PUNCT(idx) const unsigned int ruby_global_name_punct_bits[] = { SPECIAL_PUNCT(0), SPECIAL_PUNCT(1), SPECIAL_PUNCT(2),};static inline intis_global_name_punct(const int c){ if (c <= 0x20 || 0x7e < c) return 0; return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;}static intparser_peek_variable_name(struct parser_params *parser){ int c; const char *p = lex_p; if (p + 1 >= lex_pend) return 0; c = *p++; switch (c) { case '$': if ((c = *p) == '-') { if (++p >= lex_pend) return 0; c = *p; } else if (is_global_name_punct(c) || ISDIGIT(c)) { return tSTRING_DVAR; } break; case '@': if ((c = *p) == '@') { if (++p >= lex_pend) return 0; c = *p; } break; case '{': lex_p = p; command_start = TRUE; return tSTRING_DBEG; default: return 0; } if (!ISASCII(c) || c == '_' || ISALPHA(c)) return tSTRING_DVAR; return 0;}static intparser_parse_string(struct parser_params *parser, NODE *quote){ int func = (int)quote->nd_func; int term = nd_term(quote); int paren = nd_paren(quote); int c, space = 0; rb_encoding *enc = current_enc; if (func == -1) return tSTRING_END; c = nextc(); if ((func & STR_FUNC_QWORDS) && ISSPACE(c)) { do {c = nextc();} while (ISSPACE(c)); space = 1; } if (c == term && !quote->nd_nest) { if (func & STR_FUNC_QWORDS) { quote->nd_func = -1; return ' '; } if (!(func & STR_FUNC_REGEXP)) return tSTRING_END; set_yylval_num(regx_options()); return tREGEXP_END; } if (space) { pushback(c); return ' '; } newtok(); if ((func & STR_FUNC_EXPAND) && c == '#') { int t = parser_peek_variable_name(parser); if (t) return t; tokadd('#'); c = nextc(); } pushback(c); if (tokadd_string(func, term, paren, &quote->nd_nest, &enc) == -1) { ruby_sourceline = nd_line(quote); if (func & STR_FUNC_REGEXP) { if (parser->eofp) compile_error(PARSER_ARG "unterminated regexp meets end of file"); return tREGEXP_END; } else { if (parser->eofp) compile_error(PARSER_ARG "unterminated string meets end of file"); return tSTRING_END; } } tokfix(); set_yylval_str(STR_NEW3(tok(), toklen(), enc, func)); flush_string_content(enc); return tSTRING_CONTENT;}static intparser_heredoc_identifier(struct parser_params *parser){ int c = nextc(), term, func = 0; long len; if (c == '-') { c = nextc(); func = STR_FUNC_INDENT; } switch (c) { case '\'': func |= str_squote; goto quoted; case '"': func |= str_dquote; goto quoted; case '`': func |= str_xquote; quoted: newtok(); tokadd(func); term = c; while ((c = nextc()) != -1 && c != term) { if (tokadd_mbchar(c) == -1) return 0; } if (c == -1) { compile_error(PARSER_ARG "unterminated here document identifier"); return 0; } break; default: if (!parser_is_identchar()) { pushback(c); if (func & STR_FUNC_INDENT) { pushback('-'); } return 0; } newtok(); term = '"'; tokadd(func |= str_dquote); do { if (tokadd_mbchar(c) == -1) return 0; } while ((c = nextc()) != -1 && parser_is_identchar()); pushback(c); break; } tokfix(); len = lex_p - lex_pbeg; lex_goto_eol(parser); lex_strterm = rb_node_newnode(NODE_HEREDOC, STR_NEW(tok(), toklen()), len, lex_lastline); nd_set_line(lex_strterm, ruby_sourceline); ripper_flush(parser); return term == '`' ? tXSTRING_BEG : tSTRING_BEG;}static voidparser_heredoc_restore(struct parser_params *parser, NODE *here){ VALUE line; lex_strterm = 0; line = here->nd_orig; lex_lastline = line; lex_pbeg = RSTRING_PTR(line); lex_pend = lex_pbeg + RSTRING_LEN(line); lex_p = lex_pbeg + here->nd_nth; heredoc_end = ruby_sourceline; ruby_sourceline = nd_line(here); dispose_string(here->nd_lit); rb_gc_force_recycle((VALUE)here); ripper_flush(parser);}static intparser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent){ const char *p = lex_pbeg; long n; if (indent) { while (*p && ISSPACE(*p)) p++; } n = lex_pend - (p + len); if (n < 0) return FALSE; if (n > 0 && p[len] != '\n') { if (p[len] != '\r') return FALSE; if (n <= 1 || p[len+1] != '\n') return FALSE; } return strncmp(eos, p, len) == 0;}#define NUM_SUFFIX_R#define NUM_SUFFIX_I#define NUM_SUFFIX_ALLstatic intparser_number_literal_suffix(struct parser_params *parser, int mask){ int c, result = 0; const char *lastp = lex_p; while ((c = nextc()) != -1) { if ((mask & NUM_SUFFIX_I) && c == 'i') { result |= (mask & NUM_SUFFIX_I); mask &= ~NUM_SUFFIX_I; mask &= ~NUM_SUFFIX_R; continue; } if ((mask & NUM_SUFFIX_R) && c == 'r') { result |= (mask & NUM_SUFFIX_R); mask &= ~NUM_SUFFIX_R; continue; } if (!ISASCII(c) || ISALPHA(c) || c == '_') { lex_p = lastp; return 0; } pushback(c); break; } return result;}static intparser_set_number_literal(struct parser_params *parser, VALUE v, int type, int suffix){ if (suffix & NUM_SUFFIX_I) { v = rb_complex_raw(INT2FIX(0), v); type = tIMAGINARY; } set_yylval_literal(v); return type;}static intparser_set_integer_literal(struct parser_params *parser, VALUE v, int suffix){ int type = tINTEGER; if (suffix & NUM_SUFFIX_R) { v = rb_rational_raw1(v); type = tRATIONAL; } return set_number_literal(v, type, suffix);}#define dispatch_heredoc_end() static intparser_here_document(struct parser_params *parser, NODE *here){ int c, func, indent = 0; const char *eos, *p, *pend; long len; VALUE str = 0; rb_encoding *enc = current_enc; eos = RSTRING_PTR(here->nd_lit); len = RSTRING_LEN(here->nd_lit) - 1; indent = (func = *eos++) & STR_FUNC_INDENT; if ((c = nextc()) == -1) { error: compile_error(PARSER_ARG "can't find string \"%s\" anywhere before EOF", eos); restore: heredoc_restore(lex_strterm); return 0; } if (was_bol() && whole_match_p(eos, len, indent)) { dispatch_heredoc_end(); heredoc_restore(lex_strterm); return tSTRING_END; } if (!(func & STR_FUNC_EXPAND)) { do { p = RSTRING_PTR(lex_lastline); pend = lex_pend; if (pend > p) { switch (pend[-1]) { case '\n': if (--pend == p || pend[-1] != '\r') { pend++; break; } case '\r': --pend; } } if (str) rb_str_cat(str, p, pend - p); else str = STR_NEW(p, pend - p); if (pend < lex_pend) rb_str_cat(str, "\n", 1); lex_goto_eol(parser); if (nextc() == -1) { if (str) dispose_string(str); goto error; } } while (!whole_match_p(eos, len, indent)); } else { newtok(); if (c == '#') { int t = parser_peek_variable_name(parser); if (t) return t; tokadd('#'); c = nextc(); } do { pushback(c); if ((c = tokadd_string(func, '\n', 0, NULL, &enc)) == -1) { if (parser->eofp) goto error; goto restore; } if (c != '\n') { set_yylval_str(STR_NEW3(tok(), toklen(), enc, func)); flush_string_content(enc); return tSTRING_CONTENT; } tokadd(nextc()); if ((c = nextc()) == -1) goto error; } while (!whole_match_p(eos, len, indent)); str = STR_NEW3(tok(), toklen(), enc, func); } dispatch_heredoc_end(); heredoc_restore(lex_strterm); lex_strterm = NEW_STRTERM(-1, 0, 0); set_yylval_str(str); return tSTRING_CONTENT;}static voidarg_ambiguous_gen(struct parser_params *parser){ rb_warning0("ambiguous first argument; put parentheses or even spaces");}#define arg_ambiguous() static IDformal_argument_gen(struct parser_params *parser, ID lhs){ if (!is_local_id(lhs)) yyerror("formal argument must be local variable"); shadowing_lvar(lhs); return lhs;}static intlvar_defined_gen(struct parser_params *parser, ID id){ return (dyna_in_block() && dvar_defined_get(id)) || local_id(id);}static longparser_encode_length(struct parser_params *parser, const char *name, long len){ long nlen; if (len > 5 && name[nlen = len - 5] == '-') { if (rb_memcicmp(name + nlen + 1, "unix", 4) == 0) return nlen; } if (len > 4 && name[nlen = len - 4] == '-') { if (rb_memcicmp(name + nlen + 1, "dos", 3) == 0) return nlen; if (rb_memcicmp(name + nlen + 1, "mac", 3) == 0 && !(len == 8 && rb_memcicmp(name, "utf8-mac", len) == 0)) return nlen; } return len;}static voidparser_set_encode(struct parser_params *parser, const char *name){ int idx = rb_enc_find_index(name); rb_encoding *enc; VALUE excargs[3]; if (idx < 0) { excargs[1] = rb_sprintf("unknown encoding name: %s", name); error: excargs[0] = rb_eArgError; excargs[2] = rb_make_backtrace(); rb_ary_unshift(excargs[2], rb_sprintf("%s:%d", ruby_sourcefile, ruby_sourceline)); rb_exc_raise(rb_make_exception(3, excargs)); } enc = rb_enc_from_index(idx); if (!rb_enc_asciicompat(enc)) { excargs[1] = rb_sprintf("%s is not ASCII compatible", rb_enc_name(enc)); goto error; } parser->enc = enc; if (ruby_debug_lines) { VALUE lines = ruby_debug_lines; long i, n = RARRAY_LEN(lines); for (i = 0; i < n; ++i) { rb_enc_associate_index(RARRAY_AREF(lines, i), idx); } }}static intcomment_at_top(struct parser_params *parser){ const char *p = lex_pbeg, *pend = lex_p - 1; if (parser->line_count != (parser->has_shebang ? 2 : 1)) return 0; while (p < pend) { if (!ISSPACE(*p)) return 0; p++; } return 1;}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);static voidmagic_comment_encoding(struct parser_params *parser, const char *name, const char *val){ if (!comment_at_top(parser)) { return; } parser_set_encode(parser, val);}static voidparser_set_token_info(struct parser_params *parser, const char *name, const char *val){ int *p = &parser->parser_token_info_enabled; switch (*val) { case 't': case 'T': if (strcasecmp(val, "true") == 0) { *p = TRUE; return; } break; case 'f': case 'F': if (strcasecmp(val, "false") == 0) { *p = FALSE; return; } break; } rb_compile_warning(ruby_sourcefile, ruby_sourceline, "invalid value for %s: %s", name, val);}struct magic_comment { const char *name; rb_magic_comment_setter_t func; rb_magic_comment_length_t length;};static const struct magic_comment magic_comments[] = { {"coding", magic_comment_encoding, parser_encode_length}, {"encoding", magic_comment_encoding, parser_encode_length}, {"warn_indent", parser_set_token_info},};static const char *magic_comment_marker(const char *str, long len){ long i = 2; while (i < len) { switch (str[i]) { case '-': if (str[i-1] == '*' && str[i-2] == '-') { return str + i + 1; } i += 2; break; case '*': if (i + 1 >= len) return 0; if (str[i+1] != '-') { i += 4; } else if (str[i-1] != '-') { i += 2; } else { return str + i + 2; } break; default: i += 3; break; } } return 0;}static intparser_magic_comment(struct parser_params *parser, const char *str, long len){ VALUE name = 0, val = 0; const char *beg, *end, *vbeg, *vend;#define str_copy(_s, _p, _n) if (len <= 7) return FALSE; if (!(beg = magic_comment_marker(str, len))) return FALSE; if (!(end = magic_comment_marker(beg, str + len - beg))) return FALSE; str = beg; len = end - beg - 3; while (len > 0) { const struct magic_comment *p = magic_comments; char *s; int i; long n = 0; for (; len > 0 && *str; str++, --len) { switch (*str) { case '\'': case '"': case ':': case ';': continue; } if (!ISSPACE(*str)) break; } for (beg = str; len > 0; str++, --len) { switch (*str) { case '\'': case '"': case ':': case ';': break; default: if (ISSPACE(*str)) break; continue; } break; } for (end = str; len > 0 && ISSPACE(*str); str++, --len); if (!len) break; if (*str != ':') continue; do str++; while (--len > 0 && ISSPACE(*str)); if (!len) break; if (*str == '"') { for (vbeg = ++str; --len > 0 && *str != '"'; str++) { if (*str == '\\') { --len; ++str; } } vend = str; if (len) { --len; ++str; } } else { for (vbeg = str; len > 0 && *str != '"' && *str != ';' && !ISSPACE(*str); --len, str++); vend = str; } while (len > 0 && (*str == ';' || ISSPACE(*str))) --len, str++; n = end - beg; str_copy(name, beg, n); s = RSTRING_PTR(name); for (i = 0; i < n; ++i) { if (s[i] == '-') s[i] = '_'; } do { if (STRNCASECMP(p->name, s, n) == 0) { n = vend - vbeg; if (p->length) { n = (*p->length)(parser, vbeg, n); } str_copy(val, vbeg, n); (*p->func)(parser, s, RSTRING_PTR(val)); break; } } while (++p < magic_comments + numberof(magic_comments)); } return TRUE;}static voidset_file_encoding(struct parser_params *parser, const char *str, const char *send){ int sep = 0; const char *beg = str; VALUE s; for (;;) { if (send - str <= 6) return; switch (str[6]) { case 'C': case 'c': str += 6; continue; case 'O': case 'o': str += 5; continue; case 'D': case 'd': str += 4; continue; case 'I': case 'i': str += 3; continue; case 'N': case 'n': str += 2; continue; case 'G': case 'g': str += 1; continue; case '=': case ':': sep = 1; str += 6; break; default: str += 6; if (ISSPACE(*str)) break; continue; } if (STRNCASECMP(str-6, "coding", 6) == 0) break; } for (;;) { do { if (++str >= send) return; } while (ISSPACE(*str)); if (sep) break; if (*str != '=' && *str != ':') return; sep = 1; str++; } beg = str; while ((*str == '-' || *str == '_' || ISALNUM(*str)) && ++str < send); s = rb_str_new(beg, parser_encode_length(parser, beg, str - beg)); parser_set_encode(parser, RSTRING_PTR(s)); rb_str_resize(s, 0);}static voidparser_prepare(struct parser_params *parser){ int c = nextc(); switch (c) { case '#': if (peek('!')) parser->has_shebang = 1; break; case 0xef: if (lex_pend - lex_p >= 2 && (unsigned char)lex_p[0] == 0xbb && (unsigned char)lex_p[1] == 0xbf) { parser->enc = rb_utf8_encoding(); lex_p += 2; lex_pbeg = lex_p; return; } break; case EOF: return; } pushback(c); parser->enc = rb_enc_get(lex_lastline);}#define IS_ARG() #define IS_END() #define IS_BEG() #define IS_SPCARG(c) #define IS_LABEL_POSSIBLE() #define IS_LABEL_SUFFIX(n) #define IS_AFTER_OPERATOR() #define ambiguous_operator(op, syn) #define warn_balanced(op, syn) static intparser_yylex(struct parser_params *parser){ register int c; int space_seen = 0; int cmd_state; enum lex_state_e last_state; rb_encoding *enc; int mb; if (lex_strterm) { int token; if (nd_type(lex_strterm) == NODE_HEREDOC) { token = here_document(lex_strterm); if (token == tSTRING_END) { lex_strterm = 0; lex_state = EXPR_END; } } else { token = parse_string(lex_strterm); if (token == tSTRING_END || token == tREGEXP_END) { rb_gc_force_recycle((VALUE)lex_strterm); lex_strterm = 0; lex_state = EXPR_END; } } return token; } cmd_state = command_start; command_start = FALSE; retry: last_state = lex_state; switch (c = nextc()) { case '\0': case '\004': case '\032': case -1: return 0; case ' ': case '\t': case '\f': case '\r': case '\13': space_seen = 1; goto retry; case '#': if (!parser_magic_comment(parser, lex_p, lex_pend - lex_p)) { if (comment_at_top(parser)) { set_file_encoding(parser, lex_p, lex_pend); } } lex_p = lex_pend; case '\n': if (IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT | EXPR_LABELARG)) { if (IS_lex_state(EXPR_LABELARG) && parser->parser_in_kwarg) { goto normal_newline; } goto retry; } while ((c = nextc())) { switch (c) { case ' ': case '\t': case '\f': case '\r': case '\13': space_seen = 1; break; case '.': { if ((c = nextc()) != '.') { pushback(c); pushback('.'); goto retry; } } default: --ruby_sourceline; lex_nextline = lex_lastline; case -1: lex_goto_eol(parser); goto normal_newline; } } normal_newline: command_start = TRUE; lex_state = EXPR_BEG; return '\n'; case '*': if ((c = nextc()) == '*') { if ((c = nextc()) == '=') { set_yylval_id(tPOW); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); if (IS_SPCARG(c)) { rb_warning0("`**' interpreted as argument prefix"); c = tDSTAR; } else if (IS_BEG()) { c = tDSTAR; } else { warn_balanced("**", "argument prefix"); c = tPOW; } } else { if (c == '=') { set_yylval_id('*'); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); if (IS_SPCARG(c)) { rb_warning0("`*' interpreted as argument prefix"); c = tSTAR; } else if (IS_BEG()) { c = tSTAR; } else { warn_balanced("*", "argument prefix"); c = '*'; } } lex_state = IS_AFTER_OPERATOR() ? EXPR_ARG : EXPR_BEG; return c; case '!': c = nextc(); if (IS_AFTER_OPERATOR()) { lex_state = EXPR_ARG; if (c == '@') { return '!'; } } else { lex_state = EXPR_BEG; } if (c == '=') { return tNEQ; } if (c == '~') { return tNMATCH; } pushback(c); return '!'; case '=': if (was_bol()) { if (strncmp(lex_p, "begin", 5) == 0 && ISSPACE(lex_p[5])) { for (;;) { lex_goto_eol(parser); c = nextc(); if (c == -1) { compile_error(PARSER_ARG "embedded document meets end of file"); return 0; } if (c != '=') continue; if (strncmp(lex_p, "end", 3) == 0 && (lex_p + 3 == lex_pend || ISSPACE(lex_p[3]))) { break; } } lex_goto_eol(parser); goto retry; } } lex_state = IS_AFTER_OPERATOR() ? EXPR_ARG : EXPR_BEG; if ((c = nextc()) == '=') { if ((c = nextc()) == '=') { return tEQQ; } pushback(c); return tEQ; } if (c == '~') { return tMATCH; } else if (c == '>') { return tASSOC; } pushback(c); return '='; case '<': last_state = lex_state; c = nextc(); if (c == '<' && !IS_lex_state(EXPR_DOT | EXPR_CLASS) && !IS_END() && (!IS_ARG() || space_seen)) { int token = heredoc_identifier(); if (token) return token; } if (IS_AFTER_OPERATOR()) { lex_state = EXPR_ARG; } else { if (IS_lex_state(EXPR_CLASS)) command_start = TRUE; lex_state = EXPR_BEG; } if (c == '=') { if ((c = nextc()) == '>') { return tCMP; } pushback(c); return tLEQ; } if (c == '<') { if ((c = nextc()) == '=') { set_yylval_id(tLSHFT); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); warn_balanced("<<", "here document"); return tLSHFT; } pushback(c); return '<'; case '>': lex_state = IS_AFTER_OPERATOR() ? EXPR_ARG : EXPR_BEG; if ((c = nextc()) == '=') { return tGEQ; } if (c == '>') { if ((c = nextc()) == '=') { set_yylval_id(tRSHFT); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); return tRSHFT; } pushback(c); return '>'; case '"': lex_strterm = NEW_STRTERM(str_dquote, '"', 0); return tSTRING_BEG; case '`': if (IS_lex_state(EXPR_FNAME)) { lex_state = EXPR_ENDFN; return c; } if (IS_lex_state(EXPR_DOT)) { if (cmd_state) lex_state = EXPR_CMDARG; else lex_state = EXPR_ARG; return c; } lex_strterm = NEW_STRTERM(str_xquote, '`', 0); return tXSTRING_BEG; case '\'': lex_strterm = NEW_STRTERM(str_squote, '\'', 0); return tSTRING_BEG; case '?': if (IS_END()) { lex_state = EXPR_VALUE; return '?'; } c = nextc(); if (c == -1) { compile_error(PARSER_ARG "incomplete character syntax"); return 0; } if (rb_enc_isspace(c, current_enc)) { if (!IS_ARG()) { int c2 = 0; switch (c) { case ' ': c2 = 's'; break; case '\n': c2 = 'n'; break; case '\t': c2 = 't'; break; case '\v': c2 = 'v'; break; case '\r': c2 = 'r'; break; case '\f': c2 = 'f'; break; } if (c2) { rb_warnI("invalid character syntax; use ?\\%c", c2); } } ternary: pushback(c); lex_state = EXPR_VALUE; return '?'; } newtok(); enc = current_enc; if (!parser_isascii()) { if (tokadd_mbchar(c) == -1) return 0; } else if ((rb_enc_isalnum(c, current_enc) || c == '_') && lex_p < lex_pend && is_identchar(lex_p, lex_pend, current_enc)) { goto ternary; } else if (c == '\\') { if (peek('u')) { nextc(); c = parser_tokadd_utf8(parser, &enc, 0, 0, 0); if (0x80 <= c) { tokaddmbc(c, enc); } else { tokadd(c); } } else if (!lex_eol_p() && !(c = *lex_p, ISASCII(c))) { nextc(); if (tokadd_mbchar(c) == -1) return 0; } else { c = read_escape(0, &enc); tokadd(c); } } else { tokadd(c); } tokfix(); set_yylval_str(STR_NEW3(tok(), toklen(), enc, 0)); lex_state = EXPR_END; return tCHAR; case '&': if ((c = nextc()) == '&') { lex_state = EXPR_BEG; if ((c = nextc()) == '=') { set_yylval_id(tANDOP); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); return tANDOP; } else if (c == '=') { set_yylval_id('&'); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); if (IS_SPCARG(c)) { rb_warning0("`&' interpreted as argument prefix"); c = tAMPER; } else if (IS_BEG()) { c = tAMPER; } else { warn_balanced("&", "argument prefix"); c = '&'; } lex_state = IS_AFTER_OPERATOR() ? EXPR_ARG : EXPR_BEG; return c; case '|': if ((c = nextc()) == '|') { lex_state = EXPR_BEG; if ((c = nextc()) == '=') { set_yylval_id(tOROP); lex_state = EXPR_BEG; return tOP_ASGN; } pushback(c); return tOROP; } if (c == '=') { set_yylval_id('|'); lex_state = EXPR_BEG; return tOP_ASGN; } lex_state = IS_AFTER_OPERATOR() ? EXPR_ARG : EXPR_BEG; pushback(c); return '|'; case '+': c = nextc(); if (IS_AFTER_OPERATOR()) { lex_state = EXPR_ARG; if (c == '@') { return tUPLUS; } pushback(c); return '+'; } if (c == '=') { set_yylval_id('+'); lex_state = EXPR_BEG; return tOP_ASGN; } if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous())) { lex_state = EXPR_BEG; pushback(c); if (c != -1 && ISDIGIT(c)) { c = '+'; goto start_num; } return tUPLUS; } lex_state = EXPR_BEG; pushback(c); warn_balanced("+", "unary operator"); return '+'; case '-': c = nextc(); if (IS_AFTER_OPERATOR()) { lex_state = EXPR_ARG; if (c == '@') { return tUMINUS; } pushback(c); return '-'; } if (c == '=') { set_yylval_id('-'); lex_state = EXPR_BEG; return tOP_ASGN; } if (c == '>') { lex_state = EXPR_ENDFN; return tLAMBDA; } if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous())) { lex_state = EXPR_BEG; pushback(c); if (c != -1 && ISDIGIT(c)) { return tUMINUS_NUM; } return tUMINUS; } lex_state = EXPR_BEG; pushback(c); warn_balanced("-", "unary operator"); return '-'; case '.': lex_state = EXPR_BEG; if ((c = nextc()) == '.') { if ((c = nextc()) == '.') { return tDOT3; } pushback(c); return tDOT2; } pushback(c); if (c != -1 && ISDIGIT(c)) { yyerror("no .<digit> floating literal anymore; put 0 before dot"); } lex_state = EXPR_DOT; return '.'; start_num: case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { int is_float, seen_point, seen_e, nondigit; int suffix; is_float = seen_point = seen_e = nondigit = 0; lex_state = EXPR_END; newtok(); if (c == '-' || c == '+') { tokadd(c); c = nextc(); } if (c == '0') {#define no_digits() int start = toklen(); c = nextc(); if (c == 'x' || c == 'X') { c = nextc(); if (c != -1 && ISXDIGIT(c)) { do { if (c == '_') { if (nondigit) break; nondigit = c; continue; } if (!ISXDIGIT(c)) break; nondigit = 0; tokadd(c); } while ((c = nextc()) != -1); } pushback(c); tokfix(); if (toklen() == start) { no_digits(); } else if (nondigit) goto trailing_uc; suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(rb_cstr_to_inum(tok(), 16, FALSE), suffix); } if (c == 'b' || c == 'B') { c = nextc(); if (c == '0' || c == '1') { do { if (c == '_') { if (nondigit) break; nondigit = c; continue; } if (c != '0' && c != '1') break; nondigit = 0; tokadd(c); } while ((c = nextc()) != -1); } pushback(c); tokfix(); if (toklen() == start) { no_digits(); } else if (nondigit) goto trailing_uc; suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(rb_cstr_to_inum(tok(), 2, FALSE), suffix); } if (c == 'd' || c == 'D') { c = nextc(); if (c != -1 && ISDIGIT(c)) { do { if (c == '_') { if (nondigit) break; nondigit = c; continue; } if (!ISDIGIT(c)) break; nondigit = 0; tokadd(c); } while ((c = nextc()) != -1); } pushback(c); tokfix(); if (toklen() == start) { no_digits(); } else if (nondigit) goto trailing_uc; suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(rb_cstr_to_inum(tok(), 10, FALSE), suffix); } if (c == '_') { goto octal_number; } if (c == 'o' || c == 'O') { c = nextc(); if (c == -1 || c == '_' || !ISDIGIT(c)) { no_digits(); } } if (c >= '0' && c <= '7') { octal_number: do { if (c == '_') { if (nondigit) break; nondigit = c; continue; } if (c < '0' || c > '9') break; if (c > '7') goto invalid_octal; nondigit = 0; tokadd(c); } while ((c = nextc()) != -1); if (toklen() > start) { pushback(c); tokfix(); if (nondigit) goto trailing_uc; suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(rb_cstr_to_inum(tok(), 8, FALSE), suffix); } if (nondigit) { pushback(c); goto trailing_uc; } } if (c > '7' && c <= '9') { invalid_octal: yyerror("Invalid octal digit"); } else if (c == '.' || c == 'e' || c == 'E') { tokadd('0'); } else { pushback(c); suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(INT2FIX(0), suffix); } } for (;;) { switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': nondigit = 0; tokadd(c); break; case '.': if (nondigit) goto trailing_uc; if (seen_point || seen_e) { goto decode_num; } else { int c0 = nextc(); if (c0 == -1 || !ISDIGIT(c0)) { pushback(c0); goto decode_num; } c = c0; } seen_point = toklen(); tokadd('.'); tokadd(c); is_float++; nondigit = 0; break; case 'e': case 'E': if (nondigit) { pushback(c); c = nondigit; goto decode_num; } if (seen_e) { goto decode_num; } nondigit = c; c = nextc(); if (c != '-' && c != '+' && !ISDIGIT(c)) { pushback(c); nondigit = 0; goto decode_num; } tokadd(nondigit); seen_e++; is_float++; tokadd(c); nondigit = (c == '-' || c == '+') ? c : 0; break; case '_': if (nondigit) goto decode_num; nondigit = c; break; default: goto decode_num; } c = nextc(); } decode_num: pushback(c); if (nondigit) { char tmp[30]; trailing_uc: snprintf(tmp, sizeof(tmp), "trailing `%c' in number", nondigit); yyerror(tmp); } tokfix(); if (is_float) { int type = tFLOAT; VALUE v; suffix = number_literal_suffix(seen_e ? NUM_SUFFIX_I : NUM_SUFFIX_ALL); if (suffix & NUM_SUFFIX_R) { char *point = &tok()[seen_point]; size_t fraclen = toklen()-seen_point-1; type = tRATIONAL; memmove(point, point+1, fraclen+1); v = rb_cstr_to_inum(tok(), 10, FALSE); v = rb_rational_new(v, rb_int_positive_pow(10, fraclen)); } else { double d = strtod(tok(), 0); if (errno == ERANGE) { rb_warningS("Float %s out of range", tok()); errno = 0; } v = DBL2NUM(d); } return set_number_literal(v, type, suffix); } suffix = number_literal_suffix(NUM_SUFFIX_ALL); return set_integer_literal(rb_cstr_to_inum(tok(), 10, FALSE), suffix); } case ')': case '] __pad18__

Definition at line 7709 of file parse.y.

case __pad19__

Definition at line 7711 of file parse.y.

top_stmts __pad1__ = $1

Definition at line 901 of file parse.y.

case __pad20__

Definition at line 7723 of file parse.y.

case __pad21__

Definition at line 7754 of file parse.y.

case __pad22__

Definition at line 7774 of file parse.y.

__pad23__

Definition at line 7783 of file parse.y.

__pad24__

Definition at line 7785 of file parse.y.

case __pad25__

Definition at line 7789 of file parse.y.

top_stmt __pad2__

Definition at line 934 of file parse.y.

compstmt __pad3__

Definition at line 989 of file parse.y.

stmts __pad4__ = $1

Definition at line 998 of file parse.y.

stmt_or_begin __pad5__

Definition at line 1031 of file parse.y.

command_asgn __pad6__

Definition at line 1045 of file parse.y.

expr __pad7__

Definition at line 1286 of file parse.y.

expr_value __pad8__

Definition at line 1321 of file parse.y.

command_call __pad9__

Definition at line 1328 of file parse.y.

arg

Definition at line 1316 of file parse.y.

top_stmt bodystmt = NEW_BEGIN(0)

Definition at line 951 of file parse.y.

return c

Definition at line 7720 of file parse.y.

keyword_next call_args
Initial value:
{
$$ = NEW_RETURN(ret_args($2))

Definition at line 1461 of file parse.y.

case

Definition at line 7782 of file parse.y.

primary_value tCOLON2 operation2 command_args cmd_brace_block
Initial value:
{

Definition at line 1338 of file parse.y.

keyword_yield command_args
Initial value:
{
$$ = NEW_SUPER($2)

Definition at line 1443 of file parse.y.

command_call
Initial value:
{
$$ = call_uni_op(cond($2), '!')

Definition at line 1308 of file parse.y.

command_start = TRUE

Definition at line 7784 of file parse.y.

<num> opt_block_param compstmt
Initial value:
{
$$ = NEW_ITER($3,$4)

Definition at line 1357 of file parse.y.

fixup_nodes& deferred_nodes

Definition at line 898 of file parse.y.

else
Initial value:
{
lex_state = EXPR_BEG

Definition at line 7798 of file parse.y.

keyword_not opt_nl expr
Initial value:
{
$$ = logop(NODE_OR, $1, $3)

Definition at line 1292 of file parse.y.

keyword_BEGIN
Initial value:
{
yyerror("BEGIN is permitted only at toplevel")

Definition at line 1038 of file parse.y.

mlhs_node keyword_variable
Initial value:
{
$$ = assignable($1, 0)

Definition at line 1646 of file parse.y.

lex_state = EXPR_ENDARG

Definition at line 7716 of file parse.y.

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

Definition at line 1270 of file parse.y.

mlhs_inner mlhs_basic

Definition at line 1495 of file parse.y.

mlhs_item
Initial value:
{
$$ = NEW_MASGN(list_append($1,$2), 0)

Definition at line 1517 of file parse.y.

tSTAR mlhs_node
Initial value:
{
$$ = NEW_MASGN($1, $3)

Definition at line 1525 of file parse.y.

mlhs_post
Initial value:
{
$$ = NEW_MASGN($1, NEW_POSTARG($3,$5))

Definition at line 1533 of file parse.y.

nd_args = $2

Definition at line 1382 of file parse.y.

Referenced by dump_node(), and yyparse().

nd_iter = $1

Definition at line 1392 of file parse.y.

Referenced by dump_node(), and yyparse().

ONIG_EXTERN const unsigned short OnigEncAsciiCtypeTable[]

Definition at line 183 of file parse.y.

ONIG_EXTERN const UChar OnigEncAsciiToLowerCaseTable[]

Definition at line 181 of file parse.y.

ONIG_EXTERN const UChar OnigEncAsciiToUpperCaseTable[]

Definition at line 182 of file parse.y.

ONIG_EXTERN OnigEncoding OnigEncDefaultCharEncoding

Definition at line 180 of file parse.y.

ONIG_EXTERN const UChar OnigEncISO_8859_1_ToLowerCaseTable[]

Definition at line 167 of file parse.y.

ONIG_EXTERN const UChar OnigEncISO_8859_1_ToUpperCaseTable[]

Definition at line 168 of file parse.y.

pure parser lex param

Definition at line 696 of file parse.y.

return

Definition at line 7770 of file parse.y.

error stmt
Initial value:
{
$$ = remove_begin($2)

Definition at line 1028 of file parse.y.

stmts terms stmt_or_begin
Initial value:
{
$$ = newline_node($1)

Definition at line 1012 of file parse.y.

primary_value tCOLON2 operation2 command_args prec tLOWEST
Initial value:
{
$$ = NEW_CALL($1, $3, $4)

Definition at line 1401 of file parse.y.

return tOP_ASGN

Definition at line 7776 of file parse.y.

error top_stmt
Initial value:
{
$$ = newline_node($1)

Definition at line 915 of file parse.y.

case return tREGEXP_BEG

Definition at line 7754 of file parse.y.

tSTAR
Initial value:
{
$$ = NEW_MASGN($1, -1)

Definition at line 1542 of file parse.y.

return tSYMBEG

Definition at line 7750 of file parse.y.