Commit Graph

240 Commits

Author SHA1 Message Date
Carson McDonald b2f3919bc2 Accept =begin and =end with spaces after 2014-04-28 14:15:03 -04:00
Carson McDonald af95acec17 make peek_n append p->pb to list 2014-04-28 14:11:18 -04:00
take_cheeze 215f8fdd64 Fix lineno overwrite in parser_init_cxt.
By reordering parsing string with mrb_parser_parse won't always start with line 1.
2014-04-25 21:56:02 +09:00
Nobuyoshi Nakada ac6747a9c5 fix optional block arguments in rhs
define optional block arguments as argument variables in the rhs
default expressions, as same as mere assignment expressions.

Import ruby/ruby@01740f0c27
2014-04-21 14:55:06 +09:00
Nobuyoshi Nakada 28f6cfe424 adjust indent 2014-04-21 14:53:37 +09:00
Nobuyoshi Nakada 367118b1b6 fix optional arguments in rhs
define optional arguments as argument variables in the rhs default
expressions, as same as mere assignment expressions.

Import ruby/ruby@01740f0c27
2014-04-21 10:48:00 +09:00
Nobuyoshi Nakada 9eaddfab44 allow method definition in cmdarg
save cmdarg_stack and isolate command argument state from outer scope
to allow method definition in cmdarg

import from ruby/ruby@04bb9d6b75
2014-04-21 07:00:57 +09:00
Nobuyoshi Nakada a3d6290d7b use stack_type instead of raw unsigned int 2014-04-21 06:53:35 +09:00
Nobuyoshi Nakada b16697982e Allow parenthesed do-block in cmdarg
Flush cmdarg flags inside left-paren in a command argument, to allow
parenthesed `do-block` as an argument without arguments parentheses.
`CMDARG_PUSH(0)` for tLPAREN_ARG is before `CMDARG_PUSH(1)` in
`command_args` due to look-ahead.
2014-04-19 18:46:07 +09:00
take_cheeze 70f6aa0496 Fix wrong mrb_bug use found with mruby-clang-plugin. 2014-04-08 23:46:18 +09:00
Yukihiro "Matz" Matsumoto 5f2817b36c backslash escapes in regexp should be addressed by Regexp processor; close #2005 2014-04-04 13:12:58 +09:00
Yukihiro "Matz" Matsumoto 9b45189626 remove some empty lines 2014-04-02 10:42:56 +09:00
Yukihiro "Matz" Matsumoto 911764e8e2 handle CR before LF; close #1781 2014-04-02 03:22:06 +09:00
Yukihiro "Matz" Matsumoto 3b339ed47f simpler escape handling in ?c strings 2014-04-02 02:21:57 +09:00
Yukihiro "Matz" Matsumoto 5bcaa749fc fix else indentation style 2014-04-02 02:16:09 +09:00
Yukihiro "Matz" Matsumoto bfd2a539ed add new function mrb_toplevel_run to prevent running through C function boudaries on exceptions; close #1942 2014-03-26 01:09:09 +09:00
chasonr 509cbc51eb Implement \u notation for strings and regexes.
This change adds the \u notation for double quoted strings and regular
expressions.  It does not implement the \u notation for character literals.
Both the \uNNNN and \u{NNNN} notations are supported.

\uNNNN is implemented by emitting equivalent UTF-8; that is, "\u4000" is
equivalent to "\xE4\x80\x80".

Unlike CRuby, the \u{NNNN} notation allows only one character per pair of
braces; I see no way to lift this restriction without remodeling the parser.
2014-03-23 21:46:00 -04:00
Yukihiro "Matz" Matsumoto 3e24e06b29 add a space after C reserved words 2014-03-18 23:57:29 +09:00
Yukihiro "Matz" Matsumoto c476c1b528 symbol length type to be mrb_int 2014-03-15 15:43:40 +09:00
take_cheeze 52cf39a67a remove deprecated register keyword 2014-03-11 22:01:00 +09:00
cubicdaiya 019d15c3ee Use mrb_exc_new_str_lit widely 2014-03-04 02:45:53 +09:00
Yukihiro "Matz" Matsumoto 7721463a35 add const to char* to pacify warnings for string litral to char* conversion 2014-03-02 00:59:12 +09:00
take_cheeze 78915f9601 support c++ exception 2014-03-01 20:05:29 +09:00
cubicdaiya 67de10bfcb use C style comments instead of C++ style comments
According to CONTRIBUTING.md,

Don't use C++ style comments

 /* This is the prefered comment style */

Use C++ style comments only for temporary comment e.g. commenting out some code lines.
2014-03-01 03:31:45 +09:00
cremno 4507985c3e use mrb_bool, FALSE and TRUE more
It doesn't matter to me if one is using FALSE/TRUE instead of 1/0
but I prefer a type (alias) which emphasizes boolean vars to int.
I changed 1/0 to FALSE/TRUE anyway.
2014-01-31 18:00:36 +01:00
Yukihiro "Matz" Matsumoto 7c9a1accff remove conflict 2014-01-31 17:09:04 +09:00
h2so5 650ffb9d84 reindent parse.y 2014-01-31 11:30:58 +09:00
cremno f2a62a74ed clean up external symbols
remove unused and unneeded:
- sysexit_status
- type (a global variable)

add mrb_ prefix to:
- codedump_all
- class_instance_method_list
- parser_dump

make various functions static, incl.:
- yyparse
- make_exception
2014-01-31 01:30:18 +01:00
Yukihiro "Matz" Matsumoto a68a517028 refactor parser lineno adjustment; ref #1667 2014-01-31 00:49:46 +09:00
Yukihiro "Matz" Matsumoto dd70ae0b6e add semicolon after the statements 2014-01-30 22:08:31 +09:00
h2so5 36e0925053 more accurate backtrace lineno 2014-01-30 10:08:04 +09:00
Yukihiro "Matz" Matsumoto c150f115a1 adjust lineno after continuing script files using mrb_partial_hook; close #1652 2014-01-08 13:05:19 +09:00
Yukihiro "Matz" Matsumoto 9c6398a444 rename mrb_intern2() to mrb_intern(); huge API incompatibility; close #1513 2013-11-29 08:47:28 +09:00
Yukihiro "Matz" Matsumoto edd6c17c1e load_exec() no longer return fixnum value for no_exec; should close #1569 2013-11-13 15:48:13 +09:00
Yukihiro "Matz" Matsumoto 3bbf66f9f3 cancel #1565 since it breaks mirb; instead add special treatment to heredocs 2013-11-10 04:32:57 +09:00
Yukihiro "Matz" Matsumoto 29792d1725 Merge branch 'master' of github.com:mruby/mruby 2013-11-09 23:29:50 +09:00
Yukihiro "Matz" Matsumoto ec0a94dae6 Merge pull request #1565 from Fleurer/fix1564
nextc(): always return an '\n' at end of input
2013-11-08 17:22:59 -08:00
fleuria fa71403bc5 nextc(): always return an '\n' at end of input
fix #1564
2013-11-08 11:40:26 +08:00
Yukihiro "Matz" Matsumoto e92d4e2680 modified to use irep->reps to reference child ireps. preparation for
removing irep array from mrb_state.  note that instructions OP_LAMBDA,
OP_EXEC and OP_EPUSH are incompatible, and dumped mrb format has changed.
2013-11-07 03:54:22 +09:00
Yukihiro "Matz" Matsumoto f80401de6c resolved conflicts and updated to latest return value change of mrb_generate_code() 2013-11-05 00:13:01 +09:00
fleuria a511957ec8 refactor mrb_context_run() 2013-11-03 12:05:25 +08:00
Yukihiro "Matz" Matsumoto 0be572df62 change return value from mrb_generate_code() 2013-11-02 23:20:04 +09:00
fleuria c64cae4d2d fix 3a4c8e2
unfortunately the previouse commit is incorrect, which still concate the
keywords, but like this:

      method='"end\nb"' (201)
2013-10-30 17:17:13 +08:00
fleuria 3a4c8e2d9f fix #1550
emit a "\n" as the first token for parser instead of taking the
first character from the next file for lexer, to prevent mruby
"concatenate" two keywords between files

it should be regarded as a work around, for it can not resolve
this case:

$ cat a.rb
"
$ cat b.rb
b"

$ bin/mrbc -o- -v a.rb b.rb
mruby - Embeddable Ruby  Copyright (c) 2010-2013 mruby
developers
NODE_SCOPE:
        NODE_BEGIN:
                NODE_STR "

b " len 4
irep 0 nregs=2 nlocals=1 pools=1 syms=0
000 OP_STRING   R1      "\n\nb "
001 OP_STOP

thanks @bovi 's idea
2013-10-30 10:34:28 +08:00
Yukihiro "Matz" Matsumoto 11b0dda641 Merge pull request #1509 from FUKUZAWA-Tadashi/heredoc-bugfix
fix bugs on Heredocument
2013-09-25 18:02:00 -07:00
Yuichi Nishiwaki 0e4a7b2a03 eliminate use of traditional intern API (mrb_intern()) completely 2013-09-23 19:36:50 -07:00
FUKUZAWA-Tadashi 8d34e00102 fix bugs on Heredocument
- heredoc in array literal
- heredoc in args
- heredoc in expression expand
2013-09-22 18:14:40 +09:00
Yukihiro "Matz" Matsumoto d74887f582 incomplete renaming node->filename -> node->filename_index 2013-09-20 15:41:59 +09:00
Cremno 501df71833 MSVC: compilation works again (+minor style fixes) 2013-09-03 21:15:14 +02:00
take_cheeze d606f9d33f fix line number after first file 2013-09-03 00:29:49 +09:00