aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
Commit message (Collapse)AuthorAgeFilesLines
* Ripper#validate_object: check if the object is hiddenNobuyoshi Nakada2019-07-191-5/+10
|
* Moved RIPPER_DEBUG methods to Ripper from KernelNobuyoshi Nakada2019-07-191-3/+3
|
* Fixed build error with RIPPER_DEBUGNobuyoshi Nakada2019-07-191-7/+3
|
* Use Qnull instead of 0 and QundefNobuyoshi Nakada2019-07-191-4/+1
|
* Adjust indent [ci skip]Nobuyoshi Nakada2019-07-171-6/+10
|
* parse.y (here_document): remove dead codeYusuke Endoh2019-07-151-4/+1
| | | | | str is always zero when evaluating the branch. Found by Coverity Scan.
* Add a /* fall through */ commentYusuke Endoh2019-07-151-0/+1
|
* Add a /* fall through */ commentYusuke Endoh2019-07-141-0/+1
|
* Revert "parse.y: Deprecate flip-flops"Nobuyoshi Nakada2019-07-111-4/+2
| | | | | | This reverts commit bae638ad5b782c44c80efe33834cb9039279af46. [Feature #5400]
* Removed duplicate assignmentNobuyoshi Nakada2019-07-101-1/+0
| | | | | This `last_state` is set to `lex.state` just before the `switch` statement, and `token_flush` nor `nextc` never change the state.
* Check indent of `end` against `else` if presentNobuyoshi Nakada2019-07-081-7/+16
|
* Message to pipe should end with a newlineNobuyoshi Nakada2019-07-071-1/+1
|
* Enable indentation warning against `if` just after `else`Nobuyoshi Nakada2019-07-071-0/+9
| | | | | | | | | | | | | ```ruby if false puts 'false' else if true puts 'true' end # -:5: warning: mismatched indentations at 'end' with 'if' at 3 end ``` [Feature #15990]
* Renamed column in token_info to indentNobuyoshi Nakada2019-07-071-9/+9
|
* Multiple codepoints are not allowed at single character literalNobuyoshi Nakada2019-07-051-5/+20
| | | | It has unintentionally passed since 2.5.
* Fix a typoKazuhiro NISHIYAMA2019-07-051-1/+1
|
* Do not dispatch a nil token in ripperNobuyoshi Nakada2019-07-041-0/+1
| | | | | | | 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>
* Hoisted out f_rest_margNobuyoshi Nakada2019-06-301-33/+21
| | | | | | * parse.y (f_rest_marg): extract named and unnamed rest parameter in parenthesized method arguments, and should not be warned as unused.
* Should not warn massign parameters as unusedNobuyoshi Nakada2019-06-291-0/+2
|
* Omit `EXPR_` prefix to show lex_stateNobuyoshi Nakada2019-06-271-5/+6
|
* Fix ripper fatalNobuyoshi Nakada2019-06-271-1/+1
| | | | | * parse.y (parser_yylex): return END_OF_INPUT at unterminated here document instead of an error. [Bug #15962]
* Fix wrong "void value expression" errorNobuyoshi Nakada2019-06-171-4/+2
| | | | | | * parse.y (value_expr_check): `then` or `else` only `if` is not a void value expression, as the counterpart is evaluated as `nil`. [Bug #15932]
* Fix wrong "void value expression" errorNobuyoshi Nakada2019-06-171-12/+22
| | | | | | * parse.y (value_expr_check): if either of `then` or `else` statements is not a void value expression, the whole `if` is not also a void value expression. [Bug #15932]
* Support Bison 3Nobuyoshi Nakada2019-06-171-1/+1
|
* Fix memory leakNobuyoshi Nakada2019-06-161-1/+1
| | | | | | | | | | | | | | * string.c (str_replace_shared_without_enc): free previous buffer before replaced. * parse.y (gettable): make sure in advance that the `__FILE__` object shares a fstring, to get rid of replacement with the fstring later. TODO: this hack may be needed in other places. [Bug #15916] Co-Authored-By: luke-gru (Luke Gruber) <luke.gru@gmail.com>
* Revert github/pull/2230, commit missNobuyoshi Nakada2019-06-151-8/+1
|
* Prefer `enum yytokentype` to intNobuyoshi Nakada2019-06-151-3/+3
|
* Multiline method chain with leading dot works for blank linesJosh Cheek2019-06-151-0/+1
|
* Remove blank line I accidentally addedJosh Cheek2019-06-151-1/+0
|
* Rename LINEND to EMPTYLNJosh Cheek2019-06-151-4/+4
|
* Omg, it works!Josh Cheek2019-06-151-1/+8
| | | | | | I'll rename it and squash this commit later, just wanted to make sure I couldn't lose it (took a long time to come up with).
* An operator is not allowed just after `|>`Nobuyoshi Nakada2019-06-141-4/+4
| | | | https://twitter.com/yukihiro_matz/status/1139454774640726019
* Continue to the next line beginning with a pipelineNobuyoshi Nakada2019-06-131-1/+2
|
* parse.y: moved pipeline to exprNobuyoshi Nakada2019-06-131-17/+31
| | | | To allow arguments without parentheses.
* Add pipeline operator [Feature #15799]Nobuyoshi Nakada2019-06-131-1/+24
|
* Refined syntax error messagesNobuyoshi Nakada2019-06-111-2/+2
|
* &. is not allowed inside LHS of massignNobuyoshi Nakada2019-06-111-0/+6
| | | | https://hackerone.com/reports/605262
* Fix grammar of macro name: ECCESSED -> ECCESSIVEMartin Dürst2019-06-051-2/+2
| | | | | Fix the name of the macro variable introduced in 0872ea5330 from NODE_SPECIAL_EXCESSED_COMMA to NODE_SPECIAL_EXCESSIVE_COMMA.
* node.h: Avoid a magic number to represent excessed commaYusuke Endoh2019-06-041-6/+2
| | | | | | `(ID)1` was assigned to NODE_ARGS#rest_arg for `{|x,| }`. This change removes the magic number by introducing an explicit macro variable for it: NODE_SPECIAL_EXCESSED_COMMA.
* EOF by 2 ^D on a TTYNobuyoshi Nakada2019-06-041-0/+4
| | | | | | | Terminate the input from a TTY by 2 ^D at the middle of line, like as many programs, `cat`, `perl` and so on, do. By the first ^D, the line will be sent without a newline, and then EOF will be send by the next ^D.
* Fix the error token on "invalid hex escape"Nobuyoshi Nakada2019-06-031-1/+1
| | | | | * parse.y (tok_hex): flush token after dispatching the "invalid hex escape" parse error.
* parse.y: adjust here-doc error tokenNobuyoshi Nakada2019-05-301-4/+7
| | | | | | * parse.y (here_document): adjust token to the here-doc identifier in compile_error when a here-document misses the closing identifier.
* parse.y: continue after heredoc errorNobuyoshi Nakada2019-05-301-2/+10
| | | | | * parse.y: continue parsing the rest of the here-document starting line, after the terminator was not found.
* parse.y: fix state after ivar/cvarNobuyoshi Nakada2019-05-291-2/+3
| | | | | * 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-0/+1
|
* parse.y: warn escaped whitespaceNobuyoshi Nakada2019-05-291-22/+64
| | | | | * parse.y (warn_space_char_code): warn whitespace characters escaped with meta/control prefix.
* Skip following all digits after `@@`Nobuyoshi Nakada2019-05-281-8/+6
|
* parse.y: numbered parameter symbolNobuyoshi Nakada2019-05-281-1/+4
| | | | | * parse.y (parse_atmark): numbered parameter name is not allowed as a symbol regardless the context.
* Do not make an incomplete escape a valid charNobuyoshi Nakada2019-05-271-4/+4
|
* Ripper#tokenNobuyoshi Nakada2019-05-271-0/+23
| | | | | * parse.y (ripper_token): added Ripper#token which returns the current token string. [EXPERIMENTAL]