Chris Wong
37835b3b24
Rename $if
and $for
to #if
and #for
...
`#if` and `#for` aren't splices. They are a different concept, so should
have different syntax as well.
2015-09-12 13:53:14 +12:00
Chris Wong
ebbd5d2e54
Add a write_html!
macro
...
This handles the common case of wrapping the stream in a `Utf8Writer`.
2015-09-07 19:46:06 +12:00
Chris Wong
4c6fe05395
Use match
instead of let
to hold on to the writer
...
This fixes a bunch of lifetime issues
2015-09-06 12:10:55 +12:00
Chris Wong
136d8abdf6
Update: rename LitBinary
to LitByteStr
2015-09-06 11:26:57 +12:00
Chris Wong
28b1624f4c
Rename write_html!
to html!
...
It's more concise
2015-09-03 11:06:05 +12:00
Chris Wong
1badbd9df2
De-closureify the API
...
Closes #18
2015-09-01 18:26:50 +12:00
Chris Wong
6d59013f1b
Update Rust
2015-07-31 17:33:50 +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
3c4f892d29
Update Rust
2015-04-08 22:43:48 +12:00
Chris Wong
c75ced0f02
Clean up lifetimes stuff
2015-04-04 10:27:44 +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
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
ef1e305468
Rewrite if
expression stuff
2015-03-01 19:56:01 -05: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
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
dca0400692
Implement toggleable boolean attributes
...
Closes #4
2015-01-29 13:47:11 +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
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
fba6d68cb8
Add self-closing elements
2015-01-11 12:51:35 +13:00
Chris Wong
b826788be4
Simplify parser a bit
2015-01-11 11:50:52 +13:00
Chris Wong
6a8ce2cf34
Move Escape type to render module
2015-01-11 11:01:39 +13:00
Chris Wong
b1aa300884
Don't use different escaping rules for attributes
2015-01-11 10:58:27 +13:00
Chris Wong
905edd0ae0
Rewrite parser again
...
Now it's some one-pass monstrosity oh noes
2015-01-10 21:29:58 +13:00
Chris Wong
81cbfb9267
Use shiny new slicing syntax
2015-01-07 17:54:43 +13:00
Chris Wong
05c68067dd
Rewrite the parser yay
2015-01-07 17:43:37 +13:00
Chris Wong
8a8ae3a5a3
Update Rust
2015-01-04 21:34:10 +13:00
Chris Wong
d8a2aedbd7
Parse semicolons
2014-12-21 16:47:40 +13:00
Chris Wong
f8a8e89a30
Fix the build
2014-12-20 21:27:55 +13:00
Chris Wong
0b34339f76
Make parser more epic
...
It's so sexy now, it's kind of disturbing
2014-12-20 20:41:53 +13:00
Chris Wong
225fee6681
Add escaping
2014-12-19 12:33:02 +13:00
Chris Wong
9e8e2f652e
Rename htmlthing to maud
...
rocks
2014-12-18 19:49:49 +13:00