summary refs log tree commit diff
path: root/src/libsyntax/ext/tt/macro_rules.rs
AgeCommit message (Collapse)AuthorLines
2014-06-13syntax: parse outer attributes in `quote_item!` calls.Huon Wilson-2/+1
Fixes #14857.
2014-06-11std: Remove i18n/l10n from format!Alex Crichton-2/+4
* The select/plural methods from format strings are removed * The # character no longer needs to be escaped * The \-based escapes have been removed * '{{' is now an escape for '{' * '}}' is now an escape for '}' Closes #14810 [breaking-change]
2014-06-11syntax: Move the AST from @T to Gc<T>Alex Crichton-4/+5
2014-06-06Change to_str().to_string() to just to_str()Adolfo OchagavĂ­a-1/+1
2014-05-30libsyntax: Fix snake_case errors.Kevin Butler-1/+1
A number of functions/methods have been moved or renamed to align better with rust standard conventions. syntax::ext::mtwt::xorPush => xor_push syntax::parse::parser::Parser => Parser::new [breaking-change]
2014-05-28Add patterns to MacResultKeegan McAllister-0/+5
2014-05-27std: Rename strbuf operations to stringRicho Healey-2/+2
[breaking-change]
2014-05-22libstd: Remove `~str` from all `libstd` modules except `fmt` and `str`.Patrick Walton-1/+1
2014-05-08libsyntax: Remove uses of `~str` from libsyntax, and fix falloutPatrick Walton-4/+4
2014-05-06librustc: Remove `~EXPR`, `~TYPE`, and `~PAT` from the language, exceptPatrick Walton-5/+5
for `~str`/`~[]`. Note that `~self` still remains, since I forgot to add support for `Box<self>` before the snapshot. How to update your code: * Instead of `~EXPR`, you should write `box EXPR`. * Instead of `~TYPE`, you should write `Box<Type>`. * Instead of `~PATTERN`, you should write `box PATTERN`. [breaking-change]
2014-05-02Replace most ~exprs with 'box'. #11779Brian Anderson-4/+4
2014-04-18Replace all ~"" with "".to_owned()Richo Healey-1/+1
2014-04-16syntax: unify all MacResult's into a single trait.Huon Wilson-17/+28
There's now one unified way to return things from a macro, instead of being able to choose the `AnyMacro` trait or the `MRItem`/`MRExpr` variants of the `MacResult` enum. This does simplify the logic handling the expansions, but the biggest value of this is it makes macros in (for example) type position easier to implement, as there's this single thing to modify. By my measurements (using `-Z time-passes` on libstd and librustc etc.), this appears to have little-to-no impact on expansion speed. There are presumably larger costs than the small number of extra allocations and virtual calls this adds (notably, all `macro_rules!`-defined macros have not changed in behaviour, since they had to use the `AnyMacro` trait anyway).
2014-03-28De-@ NamedMatch.Eduard Burtescu-6/+6
2014-03-28De-@ TokenTree.Eduard Burtescu-3/+4
2014-03-22syntax: Fix fallout of removing get()Alex Crichton-18/+12
2014-03-20Removing imports of std::vec_ng::VecAlex Crichton-1/+0
It's now in the prelude.
2014-03-20rename std::vec_ng -> std::vecDaniel Micay-1/+1
Closes #12771
2014-03-17De-@ codemap and diagnostic.Eduard Burtescu-5/+4
2014-03-17De-@ ParseSess uses.Eduard Burtescu-4/+4
2014-03-01libsyntax: Fix errors arising from the automated `~[T]` conversionPatrick Walton-6/+22
2014-03-01libsyntax: Mechanically change `~[T]` to `Vec<T>`Patrick Walton-8/+7
2014-02-14Refactored ast_map and friends, mainly to have Paths without storing them.Eduard Burtescu-6/+4
2014-02-07Removed @self and @Trait.Eduard Burtescu-7/+7
2014-02-02libsyntax: De-`@str` `MacroDef`Patrick Walton-2/+2
2014-02-02librustc: Fix merge fallout.Patrick Walton-3/+5
2014-01-25Simplify and rename macro APISteven Fackler-8/+6
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-21Remove unnecessary parentheses.Huon Wilson-1/+1
2014-01-13librustc: Remove `@` pointer patterns from the languagePatrick Walton-8/+8
2014-01-09libsyntax: Renamed types, traits and enum variants to CamelCase.Eduard Burtescu-37/+36
2014-01-05Use ~-objects instead of @-objects for syntax extsSteven Fackler-2/+2
This is necessary for #11151 to make sure dtors run before the libraries are unloaded.
2014-01-03libsyntax: De-`@mut` `StringReader`, `TtReader`, and `reader`Patrick Walton-10/+3
2014-01-02libsyntax: De-`@mut` `Parser::span`Patrick Walton-1/+1
2014-01-02libsyntax: De-`@mut` `token` in the parserPatrick Walton-2/+2
2014-01-02libsyntax: Make the parser mutablePatrick Walton-16/+28
2014-01-01syntax::codemap: Add static DUMMY_SPklutzy-3/+3
It replaces `dummy_sp()`.
2013-12-29Start passing around &mut ExtCtxtSteven Fackler-2/+2
2013-12-28Stop using @ExtCtxtSteven Fackler-3/+3
2013-11-27Freeze the AST by removing a couple of unused @mut ~[T] from token_tree.Eduard Burtescu-1/+1
2013-11-26Support multiple item macrosSteven Fackler-3/+10
Closes #4375
2013-10-10syntax: allow macros to expand to items with attributes.Huon Wilson-2/+5
Fixes #4471.
2013-10-02syntax: indicate an error when a macro ignores trailing tokens.Huon Wilson-4/+29
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-02syntax: remove some dead code.Huon Wilson-73/+0
2013-09-26Update the compiler to not use printf/printflnAlex Crichton-2/+2
2013-09-23libsyntax: Remove some more `@fn`s from the macro expanderPatrick Walton-16/+125
2013-09-06WIP: adding mark-cancelling for macro_rulesJohn Clements-1/+4
2013-09-06whitespace, reindentation, and comments onlyJohn Clements-1/+0
2013-09-06capturing macros now implementedJohn Clements-2/+2
2013-09-06comments onlyJohn Clements-0/+6
2013-09-06removed unneccessary SyntaxExpander structsJohn Clements-1/+1