summaryrefslogtreecommitdiff
path: root/parse.y
AgeCommit message (Collapse)Author
2019-07-11Revert "parse.y: Deprecate flip-flops"Nobuyoshi Nakada
This reverts commit bae638ad5b782c44c80efe33834cb9039279af46. [Feature #5400]
2019-07-10Removed duplicate assignmentNobuyoshi Nakada
This `last_state` is set to `lex.state` just before the `switch` statement, and `token_flush` nor `nextc` never change the state.
2019-07-08Check indent of `end` against `else` if presentNobuyoshi Nakada
2019-07-07Message to pipe should end with a newlineNobuyoshi Nakada
2019-07-07Enable indentation warning against `if` just after `else`Nobuyoshi Nakada
```ruby if false puts 'false' else if true puts 'true' end # -:5: warning: mismatched indentations at 'end' with 'if' at 3 end ``` [Feature #15990]
2019-07-07Renamed column in token_info to indentNobuyoshi Nakada
2019-07-05Multiple codepoints are not allowed at single character literalNobuyoshi Nakada
It has unintentionally passed since 2.5.
2019-07-05Fix a typoKazuhiro NISHIYAMA
2019-07-04Do not dispatch a nil token in ripperNobuyoshi Nakada
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>
2019-06-30Hoisted out f_rest_margNobuyoshi Nakada
* parse.y (f_rest_marg): extract named and unnamed rest parameter in parenthesized method arguments, and should not be warned as unused.
2019-06-29Should not warn massign parameters as unusedNobuyoshi Nakada
2019-06-27Omit `EXPR_` prefix to show lex_stateNobuyoshi Nakada
2019-06-27Fix ripper fatalNobuyoshi Nakada
* parse.y (parser_yylex): return END_OF_INPUT at unterminated here document instead of an error. [Bug #15962]
2019-06-17Fix wrong "void value expression" errorNobuyoshi Nakada
* 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]
2019-06-17Fix wrong "void value expression" errorNobuyoshi Nakada
* 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]
2019-06-17Support Bison 3Nobuyoshi Nakada
2019-06-16Fix memory leakNobuyoshi Nakada
* 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>
2019-06-15Revert github/pull/2230, commit missNobuyoshi Nakada
2019-06-15Prefer `enum yytokentype` to intNobuyoshi Nakada
2019-06-15Multiline method chain with leading dot works for blank linesJosh Cheek
2019-06-15Remove blank line I accidentally addedJosh Cheek
2019-06-15Rename LINEND to EMPTYLNJosh Cheek
2019-06-15Omg, it works!Josh Cheek
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).
2019-06-14An operator is not allowed just after `|>`Nobuyoshi Nakada
https://twitter.com/yukihiro_matz/status/1139454774640726019
2019-06-13Continue to the next line beginning with a pipelineNobuyoshi Nakada
2019-06-13parse.y: moved pipeline to exprNobuyoshi Nakada
To allow arguments without parentheses.
2019-06-13Add pipeline operator [Feature #15799]Nobuyoshi Nakada
2019-06-11Refined syntax error messagesNobuyoshi Nakada
2019-06-11&. is not allowed inside LHS of massignNobuyoshi Nakada
https://hackerone.com/reports/605262
2019-06-05Fix grammar of macro name: ECCESSED -> ECCESSIVEMartin Dürst
Fix the name of the macro variable introduced in 0872ea5330 from NODE_SPECIAL_EXCESSED_COMMA to NODE_SPECIAL_EXCESSIVE_COMMA.
2019-06-04node.h: Avoid a magic number to represent excessed commaYusuke Endoh
`(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.
2019-06-04EOF by 2 ^D on a TTYNobuyoshi Nakada
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.
2019-06-03Fix the error token on "invalid hex escape"Nobuyoshi Nakada
* parse.y (tok_hex): flush token after dispatching the "invalid hex escape" parse error.
2019-05-30parse.y: adjust here-doc error tokenNobuyoshi Nakada
* parse.y (here_document): adjust token to the here-doc identifier in compile_error when a here-document misses the closing identifier.
2019-05-30parse.y: continue after heredoc errorNobuyoshi Nakada
* parse.y: continue parsing the rest of the here-document starting line, after the terminator was not found.
2019-05-29parse.y: fix state after ivar/cvarNobuyoshi Nakada
* parse.y (parse_atmark): return EXPR_END or EXPR_ENDFN, depending on the previous state, even incomplete names consistently.
2019-05-29parse.y: flush invalid charNobuyoshi Nakada
2019-05-29parse.y: warn escaped whitespaceNobuyoshi Nakada
* parse.y (warn_space_char_code): warn whitespace characters escaped with meta/control prefix.
2019-05-28Skip following all digits after `@@`Nobuyoshi Nakada
2019-05-28parse.y: numbered parameter symbolNobuyoshi Nakada
* parse.y (parse_atmark): numbered parameter name is not allowed as a symbol regardless the context.
2019-05-27Do not make an incomplete escape a valid charNobuyoshi Nakada
2019-05-27Ripper#tokenNobuyoshi Nakada
* parse.y (ripper_token): added Ripper#token which returns the current token string. [EXPERIMENTAL]
2019-05-27parse.y: removed "parser_" prefix from tokadd_utf8Nobuyoshi Nakada
2019-05-27parse.y: broke the terminator condition downNobuyoshi Nakada
* parse.y (here_document): broke the terminator condition down into each piece, the positional condition, resetting the dedented here-document indentation, and matching identifier. suppress a false warning by icc.
2019-05-26parse.y: adjust error indicatorNobuyoshi Nakada
* parse.y (parser_yylex): adjust the error indicator of unexpected fraction part. before: ~~~ 1.2.3 ^~~ ~~~ after: ~~~ 1.2.3 ^~ ~~~
2019-05-26Fix scanner event at invalid syntaxNobuyoshi Nakada
* parse.y (parser_yyerror, parser_compile_error): revert r67224 (e5d10cda07b23682e5e4e64d1324e4d3247d4785) "Flush erred token".
2019-05-24Mixed encoding error can continue to parseNobuyoshi Nakada
2019-05-22Fix mixed encoding in heredocJeremy Evans
Heredocs are parsed line-by-line, so we need to keep track of the temporary encoding of the string. Previously, a heredoc would only detect mixed encoding errors if they were on the same line, this changes things so they will be caught on different lines. Fixes [Bug #15839]
2019-05-20Mixed encoding error can continue to parseNobuyoshi Nakada
2019-05-16Pack struct rb_strterm_heredoc_struct on 32-bit platformsNobuyoshi Nakada