summaryrefslogtreecommitdiff
path: root/test/ripper
Commit message (Collapse)AuthorAgeFilesLines
* Added assertions for Unicode escaped CHAR scanner eventsNobuyoshi Nakada2019-07-061-0/+11
|
* Do not dispatch a nil token in ripperNobuyoshi Nakada2019-07-041-0/+6
| | | | | | | As a comment token includes the newline, so delayed newline token just follows it should not be dispatched. [Bug #11485] Co-Authored-By: Jeremy Evans <code@jeremyevans.net>
* Add parentheses to suppress a warningNobuyoshi Nakada2019-06-281-4/+4
|
* Test string contentNobuyoshi Nakada2019-06-281-0/+1
|
* Removed unused variablesNobuyoshi Nakada2019-06-281-1/+0
|
* Fixed a variable nameNobuyoshi Nakada2019-06-281-1/+1
|
* Fix ripper fatalNobuyoshi Nakada2019-06-271-0/+3
| | | | | * parse.y (parser_yylex): return END_OF_INPUT at unterminated here document instead of an error. [Bug #15962]
* Test for unterminated here-docsNobuyoshi Nakada2019-06-271-0/+6
|
* Add pipeline operator [Feature #15799]Nobuyoshi Nakada2019-06-131-0/+2
|
* Fix the error token on "invalid hex escape"Nobuyoshi Nakada2019-06-031-0/+10
| | | | | * parse.y (tok_hex): flush token after dispatching the "invalid hex escape" parse error.
* parse.y: adjust here-doc error tokenNobuyoshi Nakada2019-05-301-3/+7
| | | | | | * parse.y (here_document): adjust token to the here-doc identifier in compile_error when a here-document misses the closing identifier.
* Include stack elements left after errorsNobuyoshi Nakada2019-05-301-0/+22
|
* parse.y: fix state after ivar/cvarNobuyoshi Nakada2019-05-291-0/+18
| | | | | * parse.y (parse_atmark): return EXPR_END or EXPR_ENDFN, depending on the previous state, even incomplete names consistently.
* parse.y: flush invalid charNobuyoshi Nakada2019-05-291-1/+10
|
* Do not make an incomplete escape a valid charNobuyoshi Nakada2019-05-271-1/+1
|
* Ripper#tokenNobuyoshi Nakada2019-05-271-4/+5
| | | | | * parse.y (ripper_token): added Ripper#token which returns the current token string. [EXPERIMENTAL]
* Fix scanner event at invalid syntaxNobuyoshi Nakada2019-05-261-2/+14
| | | | | | * parse.y (parser_yyerror, parser_compile_error): revert r67224 (e5d10cda07b23682e5e4e64d1324e4d3247d4785) "Flush erred token".
* require 'stringio'NARUSE, Yui2019-05-091-0/+1
|
* Introduce pattern matching [EXPERIMENTAL]ktsj2019-04-172-0/+320
| | | | | | [ruby-core:87945] [Feature #14912] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: removed redundant number_arg parser eventnobu2019-03-191-7/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: fix var_ref of numbered param in rippernobu2019-03-191-0/+1
| | | | | | | | * parse.y (string_dvar, user_variable): register numbered parameter in ripper for var_ref. [ruby-core:91867] [Bug #15673] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: fix segv with Ripper#yydebugnobu2019-03-191-0/+9
| | | | | | | | * parse.y (parser_token_value_print): in ripper, ID values are wrapped in NODE_RIPPER at set_yylval_name(), so print the Symbol wrapped together. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Numbered parameters [Feature #4475]nobu2019-03-172-1/+20
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dsym should be treated as string [ruby-core:91852] [Bug #15670]ktsj2019-03-161-0/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: no punctuation instance/class variablesnobu2019-03-141-2/+2
| | | | | | | | * parse.y (parse_atmark): exclude punctuation follows @ marks, whereas it is inclusive after $ mark as some punctuation global variables exist. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add ignored_sp eventnobu2019-03-091-0/+7
| | | | | | | | * 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
* Use assert_respond_tonobu2019-03-091-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Method reference operatornobu2018-12-312-0/+9
| | | | | | | | Introduce the new operator for method reference, `.:`. [Feature #12125] [Feature #13581] [EXPERIMENTAL] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: remove "shadowing outer local variable" warningmame2018-10-261-7/+0
| | | | | | | | | | | You can now write the following without warning. user = User.all.find {|user| cond(user) } Fixes [Feature #12490]. A patch from Soutaro Matsumoto <matsumoto@soutaro.com>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert "parse.y: remove "shadowing outer local variable" warning"mame2018-10-261-0/+7
| | | | | | I forgot to add the copyright of the patch... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: remove "shadowing outer local variable" warningmame2018-10-261-7/+0
| | | | | | | | | | You can now write the following without warning. user = User.all.find {|user| cond(user) } Fixes [Feature #12490]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ripper/test_parser_events.rb (test_block_variables): bump RLIMIT_AS againnormal2018-08-151-1/+1
| | | | | | I still seem to need more memory for parallel tests with MJIT... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ripper/test_parser_events.rb (test_block_variables): increase RLIMIT_ASnormal2018-08-061-2/+5
| | | | | | | Unfortunately, MJIT goes over the 100M RLIMIT_AS for this test on x86-64 (Debian 9) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ripper/test_lexer.rb: add test for r62743k0kubun2018-03-131-0/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ripper: fix escaped spacenobu2018-03-121-0/+5
| | | | | | | | | * parse.y: use tSP same as ripper instead of tSPACE. [ruby-core:86080] [Bug #14597] * ext/ripper/eventids2.c: tSP is defined in ripper.c now. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix CMDARG manipulationnobu2018-02-221-10/+10
| | | | | | | | | * parse.y: Fix CMDARG manipulation. Use CMDARG_P to identify keyword_do/keyword_do_block. [Feature #14506] [Fix GH-1823] From: Ilya Bylich <ibylich@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: refactor list literalsnobu2017-11-241-0/+16
| | | | | | | | | | | * parse.y (words, symbols, qwords, qsymbols): unify empty list and non-empty list. * parse.y (parser_parse_string): always dispatch a word separator at the beginning of list literals. [ruby-core:83871] [Bug #14126] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_parser_events.rb: results of list literalsnobu2017-11-242-4/+34
| | | | | | | | * test/ripper/test_parser_events.rb (test_qwords_add), (test_qsymbols_add, test_symbols_add, test_words_add): more assertions for results of list literals. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ripper.y: fix word list eventsnobu2017-11-231-9/+18
| | | | | | | | | | | * parse.y (parser_skip_words_sep): QWORDS_BEG should not include the first separators in ripper. * parse.y (parser_parse_string): WORDS_SEP should not include the closing parentheses of a word list in ripper, should include spaces at beginning of lines. [ruby-core:83864] [Bug #14126] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: indent at '#'nobu2017-10-191-0/+20
| | | | | | | * parse.y (parser_here_document): update indent at '#', which is not a space. [ruby-core:83368] [Bug #14032] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lexer.rb: no dedent strings in middlenobu2017-10-191-0/+19
| | | | | | | | * 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
* parse.y: fix a typonobu2017-10-081-0/+14
| | | | | | | * parse.y (f_kw): fix typo. needs the argument value, not the label twice. [ruby-core:83174] [Bug #13987] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: fix KWD2EIDnobu2017-10-051-0/+9
| | | | | | | * parse.y (KWD2EID): should respect the previous callback result for keywords. [ruby-core:83106] [Bug #13971] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: fix var_fieldnobu2017-10-041-18/+39
| | | | | | | | | | | | | | | | * parse.y (mlhs_node): dispatch var_field as well as lhs. * parse.y (lhs, var_hs): dispatch var_field before assignable check so it is inside assign_error at a wrong assignment, as well as backref_assign_error. * parse.y (var_field_gen): wrap var_field value with the variable ID. * parse.y (assignable_gen, const_decl_gen): return the callback result on a syntax error. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60116 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_sexp.rb: test for fnamenobu2017-10-041-0/+12
| | | | | | | * test/ripper/test_sexp.rb (test_def_fname): test for fname in def statement. [ruby-core:83089] [Bug #13967] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_parser_events.rb: backref_assign_errornobu2017-10-031-2/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ripper: add states of scannernobu2017-09-143-49/+64
| | | | | | | | | | | * 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
* ripper: add kwrest_param parser eventrhe2017-07-212-1/+14
| | | | | | | | | | | | | | | * parse.y (f_kwrest): Dispatch kwrest_param event. This is especially useful for unnamed kwrest parameter for which we expose the internal ID currently. [ruby-core:75528] [Feature #12387] * test/ripper/dummyparser.rb (on_kwrest_param): Add handler for kwrest_param parser event. * test/ripper/test_parser_events.rb (test_params): Adapt to the change in DummyParser. (test_kwrest_param): Test that kwrest_param event handler is called. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_lexer.rb: require ripper directlyyui-knk2017-07-151-1/+1
| | | | | | | | * test/ripper/test_lexer.rb: This file does not use DummyParser, so requiring ripper directly instead of requiring dummyparser. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lexer.rb: ignore dedented spacenobu2017-07-061-0/+19
| | | | | | | | * 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