summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler/core/parse.y
AgeCommit message (Collapse)Author
2018-08-25Add `NODE_KW_HASH` support in `mrb_parser_dump()`.Yukihiro "Matz" Matsumoto
2018-08-25Remove `arg_value` from `parse.y`.Yukihiro "Matz" Matsumoto
2018-07-30Keyword argument implemented.Yukihiro "Matz" Matsumoto
2018-07-30New bytecode implementation of mruby VM.Yukihiro "Matz" Matsumoto
2018-02-12Resolve conflicts between labels and conditional ternary; fix #3931Yukihiro "Matz" Matsumoto
2018-02-10Need to determine `IS_LABEL_POSSIBLE()` properly.Yukihiro "Matz" Matsumoto
Otherwise, `{"a": 1}` will cause `SyntaxError`.
2018-01-16Allow `-> do rescue; end` as well as `proc do rescue; end` [Ruby2.6]Yukihiro "Matz" Matsumoto
2017-11-04Merge branch 'master' of github.com:mruby/mrubyYAMAMOTO Masaya
2017-10-28Heavily refactored how lexical scope links are implemented; fix #3821Yukihiro "Matz" Matsumoto
Instead of `irep` links, we added a `upper` link to `struct RProc`. To make a space for the `upper` link, we moved `target_class` reference. If a `Proc` does not have `env`, `target_class` is saved in an `union` shared with `env` (if a `Proc` has env, you can tell it by `MRB_PROC_ENV_P()). Otherwise `target_class` is referenced from `env->c`. We removed links in `env` as well. This change removes 2 members from `mrb_irep` struct, thus saving 2 words per method/proc/block. This also fixes potential memory leaks due to the circular references caused by a link from `mrb_irep`.
2017-10-17`do/end` blocks to work with `rescue/ensure/else`; CRuby2.5Yukihiro "Matz" Matsumoto
2017-10-12Correct a small error in parse.y, which causes the reading of unassigned ↵Carlo Prelz
memory (triggers an error when address sanitizer is active)
2017-10-11Add MRB_WITHOUT_FLOATYAMAMOTO Masaya
2017-10-09Fix parse error on TRICK2013/yharaNobuyoshi Nakada
2017-10-09Replace lvar_defined with local_var_pNobuyoshi Nakada
2017-09-27fix: mrbgems\mruby-compiler\core\parse.y(3455): warning C4244: 'function': ↵Tomasz Dąbrowski
conversion from 'intptr_t' to 'int', possible loss of data
2017-09-25The `[]` special method call should be able to take a block.Yukihiro "Matz" Matsumoto
2017-09-25The `lex_state` after literals should be `EXPR_ENDARG`.Yukihiro "Matz" Matsumoto
2017-09-25The symbols should not take brace blocks.Yukihiro "Matz" Matsumoto
2017-08-28Add `__ENCODING__' support.Yukihiro "Matz" Matsumoto
`__ENCODING__' returns the current encoding name (string), unlike CRuby that returns the encoding object.
2017-08-28Remove integer type mismatch warnings from parse.y.Yukihiro "Matz" Matsumoto
2017-08-22`c` (`mrbc_context`) may be NULL; fix #3787Yukihiro "Matz" Matsumoto
2017-08-11`scan_hex` may be used to parse both unicode and hex escape.Yukihiro "Matz" Matsumoto
The error checks for both usage should be separated; ref #3774
2017-08-11Fixed a wrong condition in `scan_hex`; fix #3774Yukihiro "Matz" Matsumoto
2017-08-09Replaced tabs with spacesChristopher Aue
2017-08-05Change return type of `scan_oct` from `int` to `int32_t`.Yukihiro "Matz" Matsumoto
2017-08-05Left shift of signed integers is undefined behavior in C; fix #3762Yukihiro "Matz" Matsumoto
2017-07-24Initialize potentially uninitialized local variable.Yukihiro "Matz" Matsumoto
2017-06-28Provide better way to check compile errors.Yukihiro "Matz" Matsumoto
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-28Revert "Make `mrb_load_exec` a static function."Yukihiro "Matz" Matsumoto
This reverts commit 7944d9a6d4ccb94189f37d307d384ed1cfe33e17. Because it voids #3248 and #3331. But we should add better way to check whether compile errors occur without duplicated callings.
2017-06-23Make `mrb_load_exec` a static function.Yukihiro "Matz" Matsumoto
2017-06-07Handles exceptions from code generation phase; fix #3695Yukihiro "Matz" Matsumoto
2017-06-02Revert "Update NODE_BLOCK check logic in `void_expr_error`."Yukihiro "Matz" Matsumoto
This reverts commit 31e30686b0bd9333eb0593fb1fb43b9b99744517.
2017-06-02Update NODE_BLOCK check logic in `void_expr_error`.Yukihiro "Matz" Matsumoto
2017-06-02Fixed a bug in `void_expr_error`.Yukihiro "Matz" Matsumoto
2017-06-02Add more precise void expression checks; ref #3686Yukihiro "Matz" Matsumoto
2017-04-23Fix embedded document with unterminated terminatorNobuyoshi Nakada
`skips()` is `mrb_bool` function, should return `FALSE` at EOF, not `EOF`.
2017-04-12Exceptions may be raised in yyparse(); fix #3600Yukihiro "Matz" Matsumoto
2017-04-03Unify `else` clause styleYukihiro "Matz" Matsumoto
2017-03-23Use MRB_PRId for NODE_NTH_REF; ref #3530Yukihiro "Matz" Matsumoto
2017-03-07`__FILE__` should not update `p->filename`; fix #3485Yukihiro "Matz" Matsumoto
2017-03-01Newlines in strings should be counted; fix #3477Yukihiro "Matz" Matsumoto
2017-02-28Fix NODE_DREGX dump; ref #3471Yukihiro "Matz" Matsumoto
2017-02-28Update codegen.c commentsYukihiro "Matz" Matsumoto
2017-02-24replace "yylval" with "pylval" to make it compile with byacc.Tomoyuki Sahara
2017-01-21Fix incorrect parsing of block parameters.Clayton Smith
2016-12-18Zero length heredoc still crashed; ref Shopify/mruby-internal#81Yukihiro "Matz" Matsumoto
2016-12-14remove debug code; ref #3344Yukihiro "Matz" Matsumoto
2016-12-13tLABEL should not come after conditional ternary; fix #3344Yukihiro "Matz" Matsumoto
2016-12-13void_expr_error(): n may be NULL.Yukihiro "Matz" Matsumoto
Reported from @clayton-shopify.
2016-12-10Clear parsing_heredoc at the end of fileYukihiro "Matz" Matsumoto