Commit Graph

54 Commits

Author SHA1 Message Date
Tom Alexander
1b63bc4083
Add a test for integer literals. 2020-05-10 23:42:56 -04:00
Tom Alexander
c88cab8316
Hook in the integer parser. 2020-05-10 23:13:25 -04:00
Tom Alexander
79099a8654
Parsing positive integers. 2020-05-10 23:02:21 -04:00
Tom Alexander
7a8247f38a
Getting the left and right sides. 2020-05-10 14:22:59 -04:00
Tom Alexander
d2904913ad
I think I have the full extraction code. 2020-05-09 21:33:10 -04:00
Tom Alexander
2a9657e3d5
Turns out the issue was the trailing space on the parameters. 2020-05-09 15:15:43 -04:00
Tom Alexander
369fbaf579
works fine with one parameter. 2020-05-09 15:11:04 -04:00
Tom Alexander
710785139a
Works fine with the partial but without parameters. 2020-05-09 15:08:31 -04:00
Tom Alexander
569b4594be
works fine without the partial. 2020-05-09 15:05:29 -04:00
Tom Alexander
bb3449467a
Running into an error parsing one of the partial test templates. 2020-05-09 15:02:54 -04:00
Tom Alexander
2f515e068d
Implemented the renderer logic.
I should just need to implement ContextElement at this point.
2020-05-08 22:22:30 -04:00
Tom Alexander
b45448edbd
Moved ParametersContext to its own file. 2020-05-08 22:12:35 -04:00
Tom Alexander
1a6db195cb
Starting a context for partial parameters. 2020-05-08 20:58:32 -04:00
Tom Alexander
f240b877b8
Start of rendering partials. 2020-05-08 19:24:32 -04:00
Tom Alexander
cc6dbefcdb
Implement specials in the renderer. 2020-05-03 14:52:08 -04:00
Tom Alexander
bafff8e7a0
Finished transitioning to the new top-level ignored whitespace template element. 2020-05-03 14:44:09 -04:00
Tom Alexander
908ae078b0
Start of making ignored whitespace a top-level template element to handle it in a more generic fashion. 2020-05-03 13:43:49 -04:00
Tom Alexander
b8c59f012b
Expanded the test definition and fixed part of the problem. 2020-05-03 13:21:02 -04:00
Tom Alexander
7670db9259
Identified an issue where tags separated by only whitespace are breaking parsing. 2020-05-03 13:07:27 -04:00
Tom Alexander
f97bb25ca8
Integrated the new span class 2020-05-03 12:48:02 -04:00
Tom Alexander
b8e8f19724
Implemented a new span to trim leading whitespace.
Through my experiements I have concluded that DustJS trims whitespace at the front of a line. To handle this, I implement a new parser that matches a newline followed by any amount of whitespace. This should allow me to trim whitespace at the head of the line because spans start immediately after a tag is closed. So, for example:

```
{foo}
  bar
{/foo}
```

Would be:

```
{foo}\n  bar{/foo}
     ^     ^
     \____/
      span
```

So while there is no magical "start of line" detector like in regular expressions, the first start of a line in a span will always be preceded with a newline character except for the opening of the document. For handling the opening of the document I am already trimming the whitespace in the `template()` parser.
2020-05-03 12:28:55 -04:00
Tom Alexander
f0a69d12b9
First attempt at a section render function.
Running into an issue with generics vs dynamic references.
2020-04-28 20:46:29 -04:00
Tom Alexander
41ad6179d1
Parse self-references and add a test for sections. 2020-04-28 19:02:43 -04:00
Tom Alexander
8e4f5e3229
Fixing warnings 2020-04-12 21:57:42 -04:00
Tom Alexander
883bda7a78
Added the signature for passing filters into the render function.
Added the signature for passing filters into the render function but I am not yet using the filters.
2020-04-12 21:54:15 -04:00
Tom Alexander
d30749f709
Updated to the latest nom 2020-04-12 17:39:24 -04:00
Tom Alexander
28b5cf1d34
Fix handling of surrounding whitespace 2020-04-12 16:02:26 -04:00
Tom Alexander
542c2c4536
Switching render_template to render_body.
The body element is re-used as a child element in blocks, so it makes more sense to make a function that renders that as opposed to a function that renders a top-level-only container that contains only a body.
2020-04-11 23:03:07 -04:00
Tom Alexander
273f6204d8
Rendering my first template with actually following paths.
Before I was hard-coding the path to the reference. Now I am following the full path programmatically using the new ContextElement and Walkable traits.
2020-04-11 22:52:20 -04:00
Tom Alexander
f65a144b3c
Beginning of the render_tag function.
Beginning of the render_tag function. At this point I need to figure out how to access elements in the context.
2020-04-11 19:05:40 -04:00
Tom Alexander
2459d7b418
Rendering spans 2020-04-11 18:25:48 -04:00
Tom Alexander
05d9e20a8f
Add all the helpers 2020-04-07 21:49:28 -04:00
Tom Alexander
15c732b3a3
Also stealing the ParameterizedBlock struct 2020-04-07 20:37:15 -04:00
Tom Alexander
b7120a34de
Forking the partial code for reuse as helper code 2020-04-07 20:21:26 -04:00
Tom Alexander
2ebe4798d5
Add test for quoted partial 2020-04-07 19:53:57 -04:00
Tom Alexander
e2f03de297
Integrated the partial parser into the rest of the grammar 2020-04-07 19:51:06 -04:00
Tom Alexander
8bfa622c4c
parsing out string literals in addition to paths 2020-04-06 23:47:50 -04:00
Tom Alexander
79100fc50f
Introducing a KVPair type 2020-04-06 23:35:09 -04:00
Tom Alexander
dd8b4ac28c
Introducing an RValue enum to handle paths vs literals 2020-04-06 23:30:42 -04:00
Tom Alexander
8641e5a98b
Starting stand-alone parsers for key value pairs 2020-04-06 23:21:03 -04:00
Tom Alexander
ffce2b0569
The extra steps are making it harder to debug, so move parser directly into test 2020-04-06 22:47:24 -04:00
Tom Alexander
647c22b3a9
Initial scaffold for partials 2020-04-06 22:02:10 -04:00
Tom Alexander
989bc6ed2a
Added backslash to the quoted string test 2020-04-06 21:26:08 -04:00
Tom Alexander
a6e48aee6a
Switch to escaped_transform to unescape the text. 2020-04-06 21:09:06 -04:00
Tom Alexander
5463ed2cdf
Added surrounding quotes 2020-04-06 21:03:03 -04:00
Tom Alexander
878cbf56ca
Switch to raw strings 2020-04-06 20:47:17 -04:00
Tom Alexander
a0b032ad4b
I was missing an escape character 2020-04-06 20:45:39 -04:00
Tom Alexander
586823aa8a
first test case failing 2020-04-06 20:34:04 -04:00
Tom Alexander
b3120d2e52
Initial scaffold for developing a quoted string parser 2020-04-06 20:20:53 -04:00
Tom Alexander
41abcb9b4a
Add support for named blocks 2020-04-05 23:47:55 -04:00