Commit graph

234 commits

Author SHA1 Message Date
Salem Talha
cc61fc0994 Removed all instances of XXX in preparation for relaxing of FIXME rule 2014-01-26 14:42:53 -05:00
Steven Fackler
ab5bbd3c17 Simplify and rename macro API
Now that procedural macros can be implemented outside of the compiler,
it's more important to have a reasonable API to work with. Here are the
basic changes:

* Rename SyntaxExpanderTTTrait to MacroExpander, SyntaxExpanderTT to
    BasicMacroExpander, etc. I think "procedural macro" is the right
    term for these now, right? The other option would be SynExtExpander
    or something like that.

* Stop passing the SyntaxContext to extensions. This was only ever used
    by macro_rules, which doesn't even use it anymore. I can't think of
    a context in which an external extension would need it, and removal
    allows the API to be significantly simpler - no more
    SyntaxExpanderTTItemExpanderWithoutContext wrappers to worry about.
2014-01-25 13:55:39 -08:00
Simon Sapin
bada25e425 [std::vec] Rename .pop_opt() to .pop(), drop the old .pop() behavior 2014-01-21 15:48:47 -08:00
Simon Sapin
aa66b91767 [std::vec] Rename .last_opt() to .last(), drop the old .last() behavior 2014-01-21 15:48:46 -08:00
Huon Wilson
39713b8295 Remove unnecessary parentheses. 2014-01-21 22:00:18 +11:00
Huon Wilson
4be3262058 syntax::ext: replace span_fatal with span_err in many places.
This means that compilation continues for longer, and so we can see more
errors per compile. This is mildly more user-friendly because it stops
users having to run rustc n times to see n macro errors: just run it
once to see all of them.
2014-01-18 02:03:04 +11:00
Patrick Walton
119c6141f5 librustc: Remove @ pointer patterns from the language 2014-01-13 14:45:21 -08:00
Brian Anderson
cdc44940b7 syntax: Fix capitalization in macro_parser errors 2014-01-10 18:06:35 -08:00
Eduard Burtescu
6b221768cf libsyntax: Renamed types, traits and enum variants to CamelCase. 2014-01-09 22:25:28 +02:00
Steven Fackler
bb49916d21 Use ~-objects instead of @-objects for syntax exts
This is necessary for #11151 to make sure dtors run before the libraries
are unloaded.
2014-01-05 18:02:57 -08:00
Patrick Walton
d347d5a762 libsyntax: De-@mut TtFrame 2014-01-03 14:01:58 -08:00
Patrick Walton
a7f7482e79 libsyntax: De-@mut TtFrame::idx 2014-01-03 14:01:58 -08:00
Patrick Walton
4d66af2698 librustc: De-@mut the span handler 2014-01-03 14:01:57 -08:00
Patrick Walton
7e1b535eb1 libsyntax: De-@mut StringReader, TtReader, and reader 2014-01-03 14:01:57 -08:00
Patrick Walton
2b83377b29 libsyntax: De-@mut TtReader::stack 2014-01-03 14:01:57 -08:00
Patrick Walton
b597207ced libsyntax: De-@mut TtReader::cur_span 2014-01-03 14:01:57 -08:00
Patrick Walton
c233c2edfd libsyntax: De-@mut TtReader::cur_tok 2014-01-03 14:01:57 -08:00
Patrick Walton
bac8b2e557 libsyntax: De-@mut TtReader::repeat_len 2014-01-03 14:01:57 -08:00
Patrick Walton
db21387ad0 libsyntax: De-@mut TtReader::repeat_idx 2014-01-03 14:01:57 -08:00
Patrick Walton
3810bea0da libsyntax: De-@mut TtReader::interpolations 2014-01-03 14:01:57 -08:00
Patrick Walton
3aa19a6b86 librustc: De-@mut the parse session 2014-01-03 14:01:56 -08:00
Patrick Walton
0c6cee55ea libsyntax: De-@mut Parser::span 2014-01-02 14:16:07 -08:00
Patrick Walton
758d854436 libsyntax: De-@mut token in the parser 2014-01-02 14:16:07 -08:00
Patrick Walton
425a140485 libsyntax: De-@mut quote_depth in the parser 2014-01-02 14:16:07 -08:00
Patrick Walton
f499d365ad libsyntax: Make the parser mutable 2014-01-02 14:16:07 -08:00
klutzy
9cdad685a3 syntax::codemap: Add static DUMMY_SP
It replaces `dummy_sp()`.
2014-01-01 19:51:35 +09:00
klutzy
fe10c63326 syntax::diagnostic: Remove unnecessary traits
This removes trait `handler` and `span_handler`,
and renames `HandlerT` to `Handler`, `CodemapT` to `SpanHandler`.
2014-01-01 19:10:43 +09:00
Steven Fackler
8143662836 Start passing around &mut ExtCtxt 2013-12-29 23:41:09 -08:00
Steven Fackler
0607c138ca Stop using @ExtCtxt 2013-12-28 21:16:03 -07:00
Eduard Burtescu
a9c4b18b18 Box Block, fn_decl, variant and Ty in the AST, as they were inflating critical enum sizes. 2013-12-01 00:00:39 +02:00
Alex Crichton
ab387a6838 Register new snapshots 2013-11-28 20:27:56 -08:00
Eduard Burtescu
f09b7b0ecd Freeze the AST by removing a couple of unused @mut ~[T] from token_tree. 2013-11-27 17:48:58 +02:00
Steven Fackler
c144752a2d Support multiple item macros
Closes #4375
2013-11-26 13:56:02 -08:00
Patrick Walton
efc512362b libsyntax: Remove all non-proc do syntax. 2013-11-26 08:24:18 -08:00
Alex Crichton
daf5f5a4d1 Drop the '2' suffix from logging macros
Who doesn't like a massive renaming?
2013-10-22 08:09:56 -07:00
Huon Wilson
4e0822e253 syntax: allow macros to expand to items with attributes.
Fixes #4471.
2013-10-10 09:57:37 +11:00
Huon Wilson
8284df9e7c syntax: indicate an error when a macro ignores trailing tokens.
That is, only a single expression or item gets parsed, so if there are
any extra tokens (e.g. the start of another item/expression) the user
should be told, rather than silently dropping them.

An example:

    macro_rules! foo {
        () => {
            println("hi");
            println("bye);
        }
    }

would expand to just `println("hi")`, which is almost certainly not
what the programmer wanted.

Fixes #8012.
2013-10-02 14:43:15 +10:00
Huon Wilson
bbbafc4e46 syntax: remove some dead code. 2013-10-02 11:43:10 +10:00
Alex Crichton
af3b132285 syntax: Remove usage of fmt! 2013-09-30 23:21:19 -07:00
Alex Crichton
409182de6d Update the compiler to not use printf/printfln 2013-09-26 17:05:59 -07:00
Patrick Walton
e95996399f libsyntax: Remove some more @fns from the macro expander 2013-09-23 18:23:21 -07:00
John Clements
fddc815ada WIP: adding mark-cancelling for macro_rules 2013-09-06 13:35:13 -07:00
John Clements
60562ac9f8 whitespace, reindentation, and comments only 2013-09-06 13:35:12 -07:00
John Clements
0954e66442 uncomment mtwt_resolve calls 2013-09-06 13:35:11 -07:00
John Clements
bc2a44daf1 fix one remaining token comparison, refactor token comparison to avoid == check 2013-09-06 13:35:11 -07:00
John Clements
b9bb4abcb6 capturing macros now implemented 2013-09-06 13:35:11 -07:00
John Clements
98a6cbdba3 comments only 2013-09-06 13:35:08 -07:00
John Clements
431ede40df removed unneccessary SyntaxExpander structs 2013-09-06 13:35:07 -07:00
John Clements
72ee6af4d4 compare macro tokens hygienically (commented out) 2013-09-06 13:35:06 -07:00
Marvin Löbel
857f867320 Renamed syntax::ast::ident -> Ident 2013-09-02 02:51:21 +02:00