summaryrefslogtreecommitdiff
path: root/ext/ripper/lib
AgeCommit message (Collapse)Author
2019-11-13Update comment of Ripper.lexYuichiro Kaneko
This is follow up of 1f7cb4bee9.
2019-09-07[DOC] Update output of Ripper.sexp [ci skip]Kazuhiro NISHIYAMA
2019-08-07ext/ripper/lib/ripper/lexer.rb: Consistently use `Array#push`Yusuke Endoh
instead of <<. All the other callsites use `push`.
2019-08-07ext/ripper/lib/ripper/lexer.rb: fix a wrong delegationYusuke Endoh
The target method name is a typo.
2019-06-27Show the parser states in pretty_print tooNobuyoshi Nakada
2019-06-12Ripper::Lexer: fallback parse error token to the previous oneNobuyoshi Nakada
2019-05-30Include stack elements left after errorsNobuyoshi Nakada
2019-05-29ripper: Ripper::Lexer#scanNobuyoshi Nakada
* ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer#scan): parses the code and returns the result elements including errors. [EXPERIMENTAL]
2019-05-28Fix typos in Ripper::Lexer#inspect and Ripper::Lexer#pretty_printNobuyoshi Nakada
2019-05-27Added #inspect and #pretty_inspect to Ripper::Lexer::ElemNobuyoshi Nakada
2019-05-22Ripper: no documents of fallback methodsNobuyoshi Nakada
2019-03-09Add ignored_sp eventnobu
* ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer): add ignored_sp event which will be fired from Ripper::Lexer#on_heredoc_dedent method. [ruby-core:91727] [Bug #15648] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-04Use delete_prefix instead of `sub(/\Afixed-pattern/, '')`kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-13Fix FrozenError on `Ripper.slice`k0kubun
Currently `Ripper.slice` raises a FrozenError ```ruby require 'ripper' p Ripper.slice('foo', 'ident') ``` ``` /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:193:in `concat': can't modify frozen String (FrozenError) from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:193:in `block in compile' from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:190:in `scan' from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:190:in `compile' from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:169:in `initialize' from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:151:in `new' from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:151:in `token_match' from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:144:in `slice' from /tmp/tmp.kb4cnhvum2/test.rb:2:in `<main>' ``` This patch will fix the problem. [Fix GH-1837] From: Masataka Pocke Kuwabara <kuwabara@pocke.me> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-13Ripper::Lexer bit predicatesnobu
* ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer): added allbits?, anybits? and nobits? methods, as well as Integer. a patch by aycabta. [Feature #14170] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-05lexer.rb: Ripper::Lexer::Statenobu
* ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer::State): wrapper of lex_state values. * parse.y (rb_parser_lex_state_name): return shared strings. lex state combinations are very restricted. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-19lexer.rb: no dedent strings in middlenobu
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): dedent only strings at the beginning, not strings in middle. [ruby-core:83343] [Bug #14027] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-30ripper/lexer.rb: remove double quotesnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-20fix up r59949nobu
* ext/ripper/lib/ripper/lexer.rb (List#inspect): splat self data to local variables same as members of Elem. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-18parse.y: ripper_lex_state_namenobu
* parse.y (ripper_lex_state_name): represent lex_state as OR-ed form. * ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer::Elem#to_a): lex_state for inspection. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-14ripper: add states of scannernobu
* parse.y (ripper_state): add states of scanner to tokens from Ripper.lex and Ripper::Filter#on_*. based on the patch by aycabta (Code Ahss) at [ruby-core:81789]. [Feature #13686] * ext/ripper/tools/preproc.rb (prelude, usercode): generate EXPR_* constants from enums. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-08-15ripper.rb: fix License format [ci skip]nobu
* ext/ripper/lib/ripper.rb: [DOC] fix format of the License description and the author. patched by aycabta (Code Ahss) at [ruby-core:82376]. [Bug #13813] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-07-06lexer.rb: ignore dedented spacenobu
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): replace an empty string content because of dedentation with :on_ignored_sp. an empty token makes the sorted order unstable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-07-01parse.y: f_margs parser eventsnobu
* parse.y (f_margs): implemented parser events for massign formal arguments. [ruby-core:81848] [Bug #13701] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-06ripper/lexer.rb: nested indented heredocnobu
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): insert stripped leading spaces as `on_ignored_sp` elements, so that the original source can be reconsructed. [ruby-core:80977] [Bug #13536] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-02ripper/lexer.rb: nested indented heredocnobu
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): fix for nested indedented here documents, where `Elem`s are nested too. [ruby-core:80977] [Bug #13536] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-05{ext,test}/ripper: Specify frozen_string_literal: true.kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-02Fix Ripper.lex error in dedenting squiggly heredocnobu
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): Fix Ripper.lex error in dedenting squiggly heredoc. heredoc tree is also an array of Elem in the outer tree. [Fix GH-1234] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16handle ext/ as r53141naruse
g -L frozen_string_literal ext/**/*.rb|xargs ruby -Ka -e'ARGV.each{|fn|puts fn;open(fn,"r+"){|f|s=f.read.sub(/\A(#!.*\n)?(#.*coding.*\n)?/,"\\&# frozen_string_literal: false\n");f.rewind;f.write s}}' git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-07parse.y: indented hereocnobu
* parse.y: add heredoc <<~ syntax. [Feature #9098] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-28ripper/lexer.rb: dispatch aliasnobu
* ext/ripper/lib/ripper/lexer.rb: alias same methods instead of eval for each events. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52776 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-28ripper/core.rb: share handlersnobu
* ext/ripper/lib/ripper/sexp.rb (SexpBuilderPP): share scanner event handlers and most of parser event handlers with SexpBuilder. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-28ripper/core.rb: dispatch aliasnobu
* ext/ripper/lib/ripper/core.rb: alias same methods instead of eval for each events. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-26parse.y: Ripper.sexp returns errornobu
* ext/ripper/lib/ripper/sexp.rb (Ripper.sexp, Ripper.sexp_raw): return nil on error. [ruby-dev:48678] [Bug #10405] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-07* ext/ripper/lib/ripper/lexer.rb: [DOC] use lower case version of corezzak
classes when referring to return value, since we aren't directly talking about the class. Patch by Jonathan Jackson [Bug #9483] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-08Improve rdoc for Ripper, based on a patch by Oscar Del Ben [github:219]marcandre
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-21* ext/ripper/lib/ripper.rb:zzak
Match sample output to Ripper.sexp from current trunk version. [Bug #6929] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-19* ext/ripper/lib/ripper.rb: Documentation for Ripper.zzak
+:void_stmt+ is meaningless [Bug #6929] [ruby-core:47507] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-12* ext/ripper/lib/ripper.rb: Documentation for Ripper.zzak
* ext/ripper/lib/ripper/lexer.rb: ditto. * ext/ripper/lib/ripper/sexp.rb: ditto. * ext/ripper/lib/ripper/filter.rb: ditto. * ext/ripper/lib/ripper/core.rb: ditto. [Bug #6929] [ruby-core:47309] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-10* ext/ripper/lib/ripper/sexp.rb: fix spelling.ayumin
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-25* ext/ripper/lib/ripper/sexp.rb: fix rdoc arround sexp.naruse
patched by Sho Hashimoto. fixes #4599 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-06* {ext,lib,test}/**/*.rb: removed trailing spaces.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19* parse.y (parser_yylex): should clear parser->tokp as well.matz
[ruby-dev:32250] * parse.y: remove NEED_ASSOC that break test_parser_events. * parse.y (parser_yylex): should not decrement line numbers at the end of file. * file.c (rb_find_file_ext): search .rb files first through in the loadpath. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-17* parse.y (ripper): rename event: arglist_* -> args_*.aamine
* parse.y (ripper): rename event: restparam -> rest_param. * parse.y (ripper): rename event: constpath_* -> const_path_*. * parse.y (ripper): rename event: topconst_* -> top_const_*. * parse.y (ripper): rename event: iter_block -> method_add_block. * parse.y (ripper): support block local parameter declaration. * parse.y (ripper): introduce new macro params_new. * ext/ripper/lib/ripper/sexp.rb: should not dispose event arguments whose name ends with "_new" but arity != 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-23* ext/ripper: no longer generates .rb files.aamine
* parse.y (Init_ripper): ripper_init_eventids*() takes 1 argument, self (class Ripper). * ext/ripper/depend: target removed: `lib/ripper/core.rb'. * ext/ripper/depend: new target `eventids2table.c'. * ext/ripper/depend: new target `check'. * ext/ripper/eventids2.c: include eventids2table.c. * ext/ripper/eventids2.c: initialize SCANNER_EVENT_TABLE. * ext/ripper/extconf.rb: update $cleanfiles list. * ext/ripper/tools/generate.rb: no longer generate ripper/core.rb. * ext/ripper/tools/generate.rb: new mode `check'. * ext/ripper/tools/generate.rb: new mode `eventids2table'. * ext/ripper/lib/ripper/core.rb.in: removed. * ext/ripper/lib/ripper/core.rb: added. * ext/ripper/lib/ripper/filter.rb: update copyright year. * ext/ripper/lib/ripper/lexer.rb: ditto. * ext/ripper/lib/ripper/sexp.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-22* ext/ripper: refactoring code generation tools. [ruby-dev:27247] ↵aamine
[ruby-dev:27273] * ext/ripper/depend: use generate.rb. * ext/ripper/lib/ripper/core.rb: removed. * ext/ripper/tools/generate-eventids1.rb: removed (code moved to generate.rb). * ext/ripper/tools/generate-ripper_rb.rb: removed (code moved to generate.rb). * ext/ripper/tools/list-parse-event-ids.rb: removed (code moved to generate.rb). * ext/ripper/tools/list-scan-event-ids.rb: removed (code moved to generate.rb). * ext/ripper/lib/ripper/core.rb: removed. * ext/ripper: refactoring tests. [ruby-dev:27273] * ext/ripper/test/check-event-arity.rb: removed (code moved to tools/generate.rb). * ext/ripper/test/check-event-coverage.rb: removed (code moved to test/ripper/test_parser_events.rb). * ext/ripper/test/check-scanner-event-coverage.rb: removed (code moved to test/ripper/test_scanner_events.rb). * ext/ripper/test/list-called-events.rb: removed. * ext/ripper/test/src_rb: removed. * ext/ripper/test/validate.rb: removed. * test/ripper/test_scanner_events.rb: check event coverage. * ext/ripper/lib/ripper/core.rb.in: update copyright year. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-19* ext/ripper/eventids2.c: add prefix `t' to lambda related lexer events.aamine
* ext/ripper/lib/ripper/core.rb: updated. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-19* parse.y (do_block): do_block event dispatches 2 args. [ruby-dev:26964]aamine
* ext/ripper/lib/ripper/core.rb: updated. * ext/ripper/tools/list-parser-event-ids.rb: check arity mismatch. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-05* parse.y (stmt, mlhs_node, lhs, arg, method_call): aref_args might benobu
nothing. fixed: [ruby-dev:26952] * ext/ripper/eventids2.c: added new tokens. fixed: [ruby-dev:26952] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-27* parse.y (lambda): Perl6 style -> lambda expression. [NEW]matz
[VERY EXPERIMENTAL] * gc.c (id2ref): must not assign pointers to long int. use LONG_LONG instead if SIZEOF_LONG < SIZEOF_VOIDP. [ruby-talk:149645] * ruby.h: use LONG_LONG to simplify the change. [ruby-talk:149645] * dir.c (dir_each): rewinddir(3) before iteration. [ruby-talk:149628] * eval.c (rb_f_throw): replace all '0x%lx' by '%p'. [ruby-talk:149553] * missing/vsnprintf.c (BSD_vfprintf): '%p' need to handle 64bit size pointer. [ruby-talk:149553] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e