Commit graph

216 commits

Author SHA1 Message Date
Chris Wong
46fab1372b Allow nested macro invocations
Closes 
2015-07-03 10:59:34 +12:00
Chris Wong
d6677b3319 Borrow spliced values instead of moving them
Closes 
2015-04-30 16:32:15 +12:00
Chris Wong
4653b2e2d8 Add html_debug! macro; remove print-expansion feature 2015-04-13 20:41:12 +12:00
Chris Wong
e5711929e3 print-expansion for all your expansion printing needs 2015-04-11 10:19:28 +12:00
Chris Wong
d7d5679e6e Fix typo 2015-04-10 20:21:09 +12:00
Chris Wong
180becbee4 Coalesce the contents of blocks as well 2015-04-10 19:02:36 +12:00
Chris Wong
dfbd4e2880 Rename a bunch of things 2015-04-10 19:02:36 +12:00
Chris Wong
c507571c5d Coalesce adjacent writes
Fixes 
2015-04-10 19:02:14 +12:00
Chris Wong
e3998645f6 API comment conventions redux 2015-04-08 22:51:21 +12:00
Chris Wong
3c4f892d29 Update Rust 2015-04-08 22:43:48 +12:00
Chris Wong
67daea81d8 Merge 2015-04-04 10:34:31 +13:00
Chris Wong
c75ced0f02 Clean up lifetimes stuff 2015-04-04 10:27:44 +13:00
ArtemGr
3866afbe2a Rust upgrade (seems to need a Clone with a Copy). 2015-04-03 23:41:53 +03:00
Chris Wong
2aa687fc0f Update Rust 2015-03-29 19:37:26 +13:00
Chris Wong
c7ab906ad9 Guard against trailing tokens in Rust exprs
Currently, the following parses:

    $for x in y.iter() #$%!INVALID~SYNTAX!^&* {
    }

This is because the Rust parser only consumes enough to parse a single
expression (in this case `y.iter()`), ignoring all the nonsense after
it.

With this patch, we check that the parser has consumed *all* tokens
before yielding a result, ensuring that invalid syntax (like the snippet
above) is not ignored.
2015-03-27 13:57:58 +13:00
Chris Wong
a8928988d0 Add some missing semicolons 2015-03-27 13:57:58 +13:00
Chris Wong
5988d32562 Epic rustup of doom 2015-03-21 13:38:39 +13:00
Chris Wong
92020cfa86 Cleanup 2015-03-15 16:42:34 +13:00
Chris Wong
333eb46c3a Support if let 2015-03-15 16:23:19 +13:00
Chris Wong
a530d73d25 Implement for expressions 2015-03-14 21:14:11 +13:00
Chris Wong
4da1e369cd Tweak error messages a bit 2015-03-14 21:14:11 +13:00
Chris Wong
74475f922b Update Rust 2015-03-01 20:07:50 -05:00
Chris Wong
ef1e305468 Rewrite if expression stuff 2015-03-01 19:56:01 -05:00
Chris Wong
b1e0647192 Remove cow
moo
2015-02-27 17:40:38 +13:00
Chris Wong
ed28f1c1bc Implement if/else 2015-02-27 17:26:14 +13:00
Chris Wong
bc305caf17 Epic refactor of doom, the third 2015-02-27 17:26:06 +13:00
Chris Wong
9b13557781 Switch to new std::io module 2015-02-18 20:28:44 +13:00
Chris Wong
649be1de09 Remove &: annotation from generated closures 2015-02-10 17:28:52 +13:00
Chris Wong
fa9404872e Refactor toggleable attributes 2015-02-09 15:05:50 +13:00
Chris Wong
7e6528550d Update Rust 2015-02-09 15:03:54 +13:00
Chris Wong
1c0d5e9c31 Make the renderer owned instead of borrowed 2015-02-07 17:48:09 +13:00
Chris Wong
8be631411c Make span always the first parameter 2015-02-07 17:08:08 +13:00
Chris Wong
56a7728fa1 Use correct span while parsing a block 2015-02-07 17:05:36 +13:00
Chris Wong
f080ee7da1 Epic refactor of doom, redux 2015-02-06 16:26:35 +13:00
Chris Wong
e01af11eaa Update Rust 2015-02-02 20:53:47 +13:00
Chris Wong
110930a558 Epic refactor of doom
* Use `&ExtCtxt` instead of `&mut ExtCtxt`

* Take statements vector by value instead of by reference

* Make control structures easier to write
2015-01-30 18:48:29 +13:00
Chris Wong
21a68c305c Silence "unnecessary parentheses" warnings 2015-01-29 13:56:55 +13:00
Chris Wong
dca0400692 Implement toggleable boolean attributes
Closes 
2015-01-29 13:47:11 +13:00
Chris Wong
8eb655207e Take inner closure by value instead of by reference
Closes 
2015-01-26 12:20:49 +13:00
Chris Wong
205cc59849 Remove deprecated .slice_from() call 2015-01-25 20:05:43 +13:00
Chris Wong
2250c2e961 Make splices a bit nicer to use 2015-01-18 20:18:21 +13:00
Chris Wong
40424e283c Use the Escaper struct directly
It's internal anyway, so meh
2015-01-17 22:21:27 +13:00
Chris Wong
4da9272494 Finally make splicing variables work 2015-01-17 22:21:27 +13:00
Chris Wong
e3752b72e6 Make Renderer::write() private
It's pretty much an implementation detail anyway
2015-01-13 16:47:14 +13:00
Chris Wong
e047b3fbb3 Add syntax for empty attributes 2015-01-13 16:46:37 +13:00
Chris Wong
77fa50fdef Remove the boolean dance 2015-01-12 16:46:12 +13:00
Chris Wong
270781b255 Show error on unexpected end of input
Without this error, rustc would treat our dummy result as a real one,
causing much pain.
2015-01-12 16:24:53 +13:00
Chris Wong
75dffff135 Remove redundant lifetime constraints
It compiles fine without them, so meh
2015-01-12 16:02:30 +13:00
Chris Wong
663247aef3 Use an opaque Markup type instead of a bare closure 2015-01-12 15:52:11 +13:00
Chris Wong
fba6d68cb8 Add self-closing elements 2015-01-11 12:51:35 +13:00