aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
Commit message (Collapse)AuthorAgeFilesLines
* * parse.y: fixes for ripper.nobu2007-04-261-12/+12
| | | | | | | | | | | | | | | | * parse.y (primary): reduced duplcated code. * parse.y (f_arg_item): should not override by meaningless value. * parse.y (f_arg, assocs): should not use $$ before assigned. * parse.y (assoc_list): dispatch assoclist_from_args for assocs as well as args. * parse.y (assoc): return assoc if dispatched result is $1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (symbol): symbols should be followed by EXPR_ENDARG.matz2007-04-201-13/+16
| | | | | | | | | | | | | * parse.y (dsym): ditto. * parse.y (parser_yylex): strings should be followed by EXPR_ENDARG. * parse.y (parser_yylex): ditto for numbers. * parse.y (parser_yylex): EXPR_ENDARG after ']' and '}'. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (parser_yylex): should set command_start after blockmatz2007-04-161-0/+2
| | | | | | starting "do"s and braces. [ruby-core:10916] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c, parse.y, eval.c, intern.h, iseq.c, lex.c, node.h,ko12007-03-211-368/+312
| | | | | | | | | | | | | proc.c, vm.c, vm_macro.def, vm_macro.def, yarvcore.c, yarvcore.h, debug.c, debug.h: merge half-baked-1.9 changes. The biggest change is to change node structure around NODE_SCOPE, NODE_ARGS. Every scope (method/class/block) has own NODE_SCOPE node and NODE_ARGS represents more details of arguments information. I'll write a document about detail of node structure. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (parser_yylex), win32/win32.c (rb_w32_utime): fixednobu2007-03-041-2/+2
| | | | | | | indentation broken at YARV merger. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (stmt, arg): should not omit lhs of OP_ASGN1 even ifnobu2007-03-011-0/+2
| | | | | | | empty. [ruby-dev:30452] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (f_arg, opt_f_block_arg): ripper should export VALUE.aamine2007-02-241-1/+13
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (struct local_vars): remove unused nofree member frommatz2007-02-241-4/+1
| | | | | | | | struct. * parse.y (parser_free): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (program): remove useless assignment to reduce warning.aamine2007-02-241-1/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (lambda): remove unused clause from the rule to stopmatz2007-02-241-8/+2
| | | | | | warning. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y, node.h, compile.c: change node tree structure. a purposeko12007-02-241-92/+49
| | | | | | | | | | | | | | | | | | | | | of this change is to unify argument structure of method and block. this change prohibits duplicate block parameter name. new argument infromation: NODE_ARGS [m: int, o: NODE_OPT_ARG, ->] NODE_ARGS_AUX [r: ID, b: ID, ->] NODE_ARGS_AUX [Pst: id, Plen: int, init: NODE*] optarg information: NODE_OPT_ARGS [idx, expr, ->] * vm_macro.def: ditto. * gc.c: ditto. * iseq.c: ditto. * compile.h: fix debug function name. * test/ripper/test_scanner_events.rb: |_,_,foo| -> |_1,_2,foo| * test/ruby/test_lambda.rb: disalbe test temporarily. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (lambda): add ripper event. This fixes bus error on "make test-all".aamine2007-02-231-10/+11
| | | | | | | * ext/ripper/extconf.rb: do not stop build. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y: remove dyna_check_gen() prototype.matz2007-02-231-2/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y, compile.c, gc.c, insns.def, intern.h, iseq.c, node.h,matz2007-02-231-50/+0
| | | | | | | | | | | object.c, string.c, variable.c, vm_macro.def: revert private instance variable feature, which is postponed until next major release. * marshal.c: TYPE_SYMBOL2 removed; MARSHAL_MINOR reverted back to 8th version. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (mrhs): need to append by arg_append().matz2007-02-161-1/+1
| | | | | | [ruby-talk:239385] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (struct local_vars): no need to warn out-of-scopematz2007-02-131-25/+0
| | | | | | variables; remove dnames member from struct. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y: RVarmap no longer used as yytype; removed.matz2007-02-131-20/+20
| | | | | | | | | | * parse.y (dyna_push_gen): no longer need return value. * parse.y (dyna_pop_gen): no longer need argument. * parse.y (local_push_gen): initialize nofree. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * this commit is a result of refactoring. only renaming functions,ko12007-02-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | moving definitions place, add/remove prototypes, deleting unused variables and removing yarv.h. This commit doesn't change any behavior of ruby/vm. * yarv.h, common.mk: remove yarv.h (contents are moved to yarvcore.h). * error.c, eval_intern.h: include yarvcore.h instead yarv.h * rename some functions: * debug.[ch]: debug_*() -> ruby_debug_*() * iseq.c: iseq_*() -> rb_iseq_*(), ruby_iseq_disasm() * iseq.c: node_name() -> ruby_node_name() * vm.c: yarv_check_redefinition_opt_method() -> rb_vm_check_redefinition_opt_method() * some refactoring with checking -Wall. * array.c: remove rb_ary_ptr() (unused) and remove unused local variables. * object.c: add a prototype of rb_mod_module_exec(). * eval_intern.h (ruby_cref): set it inline. * eval_load.c (rb_load), yarvcore.c: yarv_load() -> rb_load_internal(). * parse.y: add a prototype of rb_parse_in_eval() (in eval.c). * process.c: add a prototype of rb_thread_stop_timer_thread() (in thread.c). * thread.c: remove raw_gets() function (unused) and fix some format mismatch (format mismatchs have remained yet. this is todo). * thread.c (rb_thread_wait_fd_rw): fix typo on label name. * thread_pthread.ci: comment out codes with USE_THREAD_CACHE. * vm.c (rb_svar, rb_backref_get, rb_backref_get, rb_lastline_get, rb_lastline_set) : moved from yarvcore.c. * vm.c (yarv_init_redefined_flag): add a prototype and rename yarv_opt_method_table to vm_opt_method_table. * vm.c (rb_thread_eval): moved from yarvcore.c. * yarvcore.c: remove unused global variables and fix to use nsdr(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c, insns.def: remove (get|set)instancevariable2 and add ako12007-02-061-1/+0
| | | | | | | | | | | operand is_local to (get|set)instancevariable. * yarvtest/test_class.rb: add a test for class local instance variable. * parse.y (rb_decompose_ivar2): remove unused variable oid. * tool/insns2vm.rb: remove needless require. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (rb_compose_ivar2): function to create a new ivar2matz2007-02-041-8/+89
| | | | | | | | | | | | | | | | | | | | symbol from a symbol and a class. back-ported from matzruby. * parse.y (rb_decompose_ivar2): reverse function of rb_compose_ivar2(). * marshal.c (w_symbol): support class local instance variables. * marshal.c (r_object0): ditto. * compile.c (defined_expr): ditto. * compile.c (iseq_compile_each): ditto. * insns.def: add two new instructions: getinstancevariable2 and setinstancevariable2. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * call_cfunc.ci, compile.c, compile.h, debug.h, eval.c,nobu2007-02-021-3/+3
| | | | | | | | | | | eval_error.h, eval_jump.h, eval_load.c, eval_thread.c, gc.c, insnhelper.h, insns.def, iseq.c, main.c, numeric.c, parse.y, range.c, regenc.h, ruby.h, signal.c, thread.c, thread_win32.ci, vm.c, vm.h, vm_dump.c, vm_evalbody.ci, yarvcore.c, yarvcore.h: fixed indents and non-C90 comments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.h (SYMBOL_P): make Symbol immediate again for performance. matz2007-02-021-54/+34
| | | | | | | | | * string.c: redesign symbol methods. * parse.y (rb_id2str): store Strings for operator symbols. [ruby-dev:30235] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (assignable_gen): no need to generate NODE_CVDECL.matz2007-02-021-3/+1
| | | | | | * compile.c (iseq_compile_each): no NODE_CVDECL. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * Merge YARVko12006-12-311-582/+592
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (svalue_to_avalue): need to splat but no error.matz2006-11-061-1/+1
| | | | | | | | | | | | | | | | * eval.c: new macros - YIELD_CALL, YIELD_VALUES. * eval.c (rb_yield_values): specify YIELD_VALUES. * eval.c (rb_yield_0): use new macros. * eval.c (proc_invoke): slightly modified to separate YIELD_CALL and YIELD_VALUES from YIELD_ARY_ARGS. * object.c (Init_Object): add nil.to_splat => []. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (arg_dup_check): vid may be nameless internal id.matz2006-11-061-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (parser_yylex): use particular enums. [ruby-core:09221]nobu2006-10-171-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (singleton): no need to re-create NODE_SELF() again.matz2006-10-141-7/+2
| | | | | | | [ruby-core:09177] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (parser_warning, parser_warn): some error message maymatz2006-10-141-3/+3
| | | | | | | | | | | | | | | | contain format specifiers. a patch from Akinori MUSHA <knu at iDaemons.org>. [ruby-dev:29657] * regparse.c (onig_rb_warning, onig_rb_warn): ditto. * ext/bigdecimal/bigdecimal.c (VpException): ditto. * ext/dl/handle.c (rb_dlhandle_initialize): ditto. * ext/gdbm/gdbm.c (rb_gdbm_fatal): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_yield_0): small refactoring.matz2006-10-051-50/+35
| | | | | | | * parse.y (bparam_item): fixed bugs in handling parenthesized LHS. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (block_param): should interpret single parenthesizedmatz2006-10-041-1/+1
| | | | | | | left hand side expression. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (block_param): restrict block parameters to be localmatz2006-10-031-10/+41
| | | | | | | | | | variables only. * test/ruby/test_iterator.rb (TestIterator::test_nested_iterator): update test suite to conform the last change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (mlhs): simplifies the rule a bit.matz2006-10-031-14/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (dyna_in_block): inline using macro.matz2006-10-031-7/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (recursive_hash): remove unused local variable.matz2006-09-251-2/+1
| | | | | | | | | | | * parse.y (parser_yylex): ditto. * parse.y (rb_gc_mark_symbols): fix unmatched prototype . * file.c (rb_get_path): check NUL byte in the path string. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_intern): raise SecurityError only when $SAFEmatz2006-09-141-0/+11
| | | | | | | | | | | | level is greater than zero. [ruby-core:08862] * parse.y (rb_interned_p): new function to check if a string is already interned. * string.c (str_to_id): use rb_str_intern(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (symbols_i): need to initialize early-created symbols.matz2006-09-061-0/+3
| | | | | | | [ruby-dev:29496] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (rb_id2sym): intern if id is attrset_id.matz2006-09-041-6/+10
| | | | | | | [ruby-dev:29420] [ruby-dev:29447] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (Init_Object): move symbol related code to string.cmatz2006-09-021-16/+59
| | | | | | | | | | | | * string.c (Init_String): Symbol as subclass of String. * parse.y (rb_intern2): handle symbol as strings. * string.c (str_new): substring of symbols are mere strings, not symbols. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_eval): should handle when in else clause. a patchmatz2006-09-021-1/+1
| | | | | | | | | from Eric Hodel <drbrain at segment7.net>. [ruby-core:08662] * parse.y (primary): wrap with NODE_CASE. [ruby-core:08663] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.h (struct RString): embed small strings.matz2006-08-311-21/+22
| | | | | | | | | | (RSTRING_LEN): defined for accessing string members. (RSTRING_PTR): ditto. * string.c: use RSTRING_LEN and RSTRING_PTR. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert.drbrain2006-08-281-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Include attributiondrbrain2006-08-271-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (arg): allow newlines before ternary colon. [ruby-dev:29189]nobu2006-08-081-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (top_local_setup): local_vars[-1] should pointmatz2006-08-071-2/+1
| | | | | | | | ruby_scope itself to protect local_tbl from garbage collection. [ruby-dev:29049] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (f_args): allow post mandatory arguments after optionalmatz2006-07-121-3/+28
| | | | | | | | | | | | | arguments. [ruby-dev:29014] * parse.y (new_args_gen): allow post_args without rest_args. * eval.c (formal_assign): ditto. * parse.y (new_args_gen): check post argument duplication. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (proc_invoke): should not overwrite block information inmatz2006-07-101-2/+29
| | | | | | | | | | | | | | | | current frame. [ruby-dev:28957] * eval.c (rb_yield_0): retrieve proper block object from the frame record. * eval.c (proc_alloc): return preserved block object if it's available. * st.h (st_data_t): use pointer sized integer for st_data_t. [ruby-dev:28988] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y: use ARGSPUSH instead of ARGSCAT to prevent too muchmatz2006-06-291-1/+1
| | | | | | | | | | | | | | | splat expansion. * eval.c (when_check): need to handle ARGSPUSH as well. * eval.c (block_orphan): lambda and proc from method are always orphan. * gc.c (gc_mark_children): proper marking for NODE_BLOCK_PASS and NODE_LAMBDA. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (primary): remove meaningless else-only case statementmatz2006-06-281-16/+0
| | | | | | | syntax. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_accept): revert to avoid ambiguity ofmatz2006-06-261-204/+208
| | | | | | | | | | | | | | | argument evaluation order. [ruby-dev:28861] * ext/socket/socket.c (sock_accept_nonblock): ditto. * io.c (pipe_open): avoid closing uninitialized file descriptors. a patch from <tommy at tmtm.org> [ruby-dev:28600] * parse.y: replace terminal token names with more descriptive name, i.e. kEND to keyword_end. [ruby-list:42477] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e