Yukihiro "Matz" Matsumoto
aee1476ebd
Provide better way to check compile errors.
...
Now you can just call `mrb_load_*` functions then check
`context->parser_nerr > 0` if the return value is `undef`,
instead of calling `mrb_parse_*` functions independently.
ref #3248 #3331
2017-06-28 16:04:40 +09:00
Yukihiro "Matz" Matsumoto
15945e14b9
Revert "Make mrb_load_exec a static function."
...
This reverts commit 7944d9a6d4 .
Because it voids #3248 and #3331 . But we should add better way
to check whether compile errors occur without duplicated callings.
2017-06-28 16:00:59 +09:00
Yukihiro "Matz" Matsumoto
7944d9a6d4
Make mrb_load_exec a static function.
2017-06-23 17:56:12 +09:00
Yukihiro "Matz" Matsumoto
b9f771dc50
Handles exceptions from code generation phase; fix #3695
2017-06-07 13:29:08 +09:00
Yukihiro "Matz" Matsumoto
7f417ade42
Revert "Update NODE_BLOCK check logic in void_expr_error."
...
This reverts commit 31e30686b0 .
2017-06-02 13:31:03 +09:00
Yukihiro "Matz" Matsumoto
31e30686b0
Update NODE_BLOCK check logic in void_expr_error.
2017-06-02 13:01:29 +09:00
Yukihiro "Matz" Matsumoto
0f2f021330
Fixed a bug in void_expr_error.
2017-06-02 12:06:40 +09:00
Yukihiro "Matz" Matsumoto
b59d244c0d
Add more precise void expression checks; ref #3686
2017-06-02 11:53:26 +09:00
Nobuyoshi Nakada
d54f9f8f78
Fix embedded document with unterminated terminator
...
`skips()` is `mrb_bool` function, should return `FALSE` at EOF, not
`EOF`.
2017-04-23 11:41:00 +09:00
Yukihiro "Matz" Matsumoto
326e043a64
Exceptions may be raised in yyparse(); fix #3600
2017-04-12 10:23:34 +09:00
Yukihiro "Matz" Matsumoto
77331d127b
Unify else clause style
2017-04-03 16:56:27 +09:00
Yukihiro "Matz" Matsumoto
051e40c049
Use MRB_PRId for NODE_NTH_REF; ref #3530
2017-03-23 01:52:52 +09:00
Yukihiro "Matz" Matsumoto
63dbed0094
__FILE__ should not update p->filename; fix #3485
2017-03-07 15:01:09 +09:00
Yukihiro "Matz" Matsumoto
cd0ac59dd3
Newlines in strings should be counted; fix #3477
2017-03-01 00:05:54 +09:00
Yukihiro "Matz" Matsumoto
22eb41ab20
Fix NODE_DREGX dump; ref #3471
2017-02-28 10:56:34 +09:00
Yukihiro "Matz" Matsumoto
89eac4f59d
Update codegen.c comments
2017-02-28 10:32:40 +09:00
Tomoyuki Sahara
da4f8e19fa
replace "yylval" with "pylval" to make it compile with byacc.
2017-02-24 11:47:48 +09:00
Clayton Smith
797ff625f3
Fix incorrect parsing of block parameters.
2017-01-21 09:08:37 -05:00
Yukihiro "Matz" Matsumoto
b0886d5692
Zero length heredoc still crashed; ref Shopify/mruby-internal#81
2016-12-18 02:02:30 +09:00
Yukihiro "Matz" Matsumoto
73cc08772f
remove debug code; ref #3344
2016-12-14 13:34:24 +09:00
Yukihiro "Matz" Matsumoto
fead715cef
tLABEL should not come after conditional ternary; fix #3344
2016-12-13 23:44:10 +09:00
Yukihiro "Matz" Matsumoto
d196e4dd04
void_expr_error(): n may be NULL.
...
Reported from @clayton-shopify.
2016-12-13 11:18:05 +09:00
Yukihiro "Matz" Matsumoto
7b968ca893
Clear parsing_heredoc at the end of file
2016-12-10 12:35:12 +09:00
Tomasz Dąbrowski
0360a744b5
Promote load_exec to mruby API as mrb_load_exec ( fixes #3248 )
2016-12-07 21:21:21 +01:00
Yukihiro "Matz" Matsumoto
43512cc7bd
Reorganize heredoc rules; fix #3273
...
The following codes used to be SyntaxError:
(1)
a = <<-EOD;
hello
EOD
(2)
<<-EOD.bla begin
k
EOD
end
2016-12-05 02:55:39 +09:00
Yukihiro "Matz" Matsumoto
a0fbc46ccd
Import locale insensitive strtod() from Ruby1.8; fix #3270
...
The function was renamed to `mrb_float_read(const char*, char**)`.
2016-12-03 18:47:04 +09:00
Yukihiro "Matz" Matsumoto
f6d199919d
Needed to apply block from safe-navigation operators; fix #3310
2016-12-03 16:38:43 +09:00
Yukihiro "Matz" Matsumoto
6b84ff4a44
Print NODE_SCALL (&.) from mrb_parser_dump()
2016-12-03 16:21:15 +09:00
Yukihiro "Matz" Matsumoto
2cca9d3688
avoid comparison between signed and unsigned integer; ref #3312
2016-12-01 18:49:39 +09:00
Nobuyoshi Nakada
0f08914ac0
Support multiple elements \u syntax
2016-12-01 16:48:43 +09:00
Nobuyoshi Nakada
fed40b44b8
Extract read_escape_unicode from read_escape
2016-12-01 16:48:43 +09:00
Yukihiro "Matz" Matsumoto
8461a31cb4
Fixed too much void_expr_error(); fix #3307
2016-11-30 13:04:50 +09:00
Bouke van der Bijl
523c267020
Interpret argument in 'f ()' as nil instead of nothing
2016-11-29 09:23:53 -05:00
Yukihiro "Matz" Matsumoto
27ceb84818
parse.y: use opt_paren_args to simplify yield rule
2016-11-27 22:43:46 +09:00
Bouke van der Bijl
73e4f069be
Fix nested empty heredoc causing segfault
...
As reported by https://hackerone.com/jpenalbae
2016-11-24 09:54:18 -05:00
Yukihiro "Matz" Matsumoto
227daa8811
Relax 'void value expression' check that was too strict
2016-11-24 11:22:54 +09:00
Yukihiro "Matz" Matsumoto
1c9593954b
Add "void value expression" check to the parser.
2016-11-24 10:32:28 +09:00
Yukihiro "Matz" Matsumoto
752ca514f6
do not dump_node if parser failed
2016-11-11 22:51:48 +09:00
Yukihiro "Matz" Matsumoto
185dad3a6e
node_dump() to print NODE_HEREDOC terminator
2016-11-11 22:50:41 +09:00
Yukihiro "Matz" Matsumoto
45aadd7e60
HEREDOC could fail with NUL terminated lines; fix#3244
2016-11-11 22:49:23 +09:00
Yukihiro "Matz" Matsumoto
cc3f1b7f5c
allow single quoted labels in hashes; ref #3231
2016-11-02 16:14:20 +09:00
Yukihiro "Matz" Matsumoto
13d0832965
allow quoted labels in hashes; fix #3231
2016-11-02 08:41:43 +09:00
Nobuyoshi Nakada
6511bfd79a
Removed trailing spaces
2016-09-28 12:29:41 +09:00
Nozomi SATO
068b46d5e2
- fix mrbc_filename leak; cxt->filename would not be freed until the state is closed.
2016-09-04 18:35:23 +09:00
Nobuyoshi Nakada
73dd82e30a
parse.y: lparen_arg statement
...
allow parenthesised statement as a method argument.
reported [Feature:12686] in bugs.ruby-lang.org fixed in CRuby 2.4.
2016-08-19 11:11:54 +09:00
Nobuyoshi Nakada
bdd7e2bc8c
parse.y: fix chained assignments
...
fix syntax errors with chained assignment with op assign.
reported [Bug:12669] in bugs.ruby-lang.org fixed in CRuby 2.4.
2016-08-13 13:56:14 +09:00
Nobuyoshi Nakada
a06940daa9
parse.y: simplify 90e8ce5
...
simplify tOP_ASGN rules by command_rhs and arg_rhs rules with
%prec.
2016-08-12 10:14:35 +09:00
Yukihiro "Matz" Matsumoto
90e8ce5c30
parse.y: rescue modifiers for OP_ASGN should protect rhs only
...
reported in [Bug:12402] in bugs.ruby-lang.org fixed in CRuby 2.4
2016-08-11 16:27:14 +09:00
Takashi Sawanaka
2eefbfed9d
Fix crash in mrb_parser_free() due to freed memory access
2016-07-23 11:34:04 +09:00
Yukihiro "Matz" Matsumoto
d4d807b774
relax string length limitation to 64KB; fix #2725
2016-07-13 03:22:15 +09:00