Commit graph

105 commits

Author SHA1 Message Date
ab4cd761b8 Implement "quoted words" 2023-08-23 01:09:56 -04:00
8c3953cdf0 Implement \ suppression in {} 2023-08-21 23:57:27 -04:00
2261d18d56 Write brace tests 2023-08-10 21:51:23 -04:00
308f586dad Add concept of "enchanted" word
An enchanted word has provenance of appearing directly in source code as-written, not the result of interpolations, quotes, or escapes.
2023-08-06 23:18:13 -04:00
37df46381b Make the existing visual test a snapshot unit test. 2023-08-06 23:10:12 -04:00
f3eb9dee6d Fix newline folding test, and newline folding replacement (not replaced yet but brace tests will cover it) 2023-08-06 20:18:38 -04:00
b8d48ef834 Expand test cases 2023-08-06 19:52:00 -04:00
36b6460357 noEmit tsc 2023-08-06 02:40:02 -04:00
e585f315bb First jest test 2023-08-06 02:38:52 -04:00
ad2e7ad196 DOM-less escapeHTML implementation 2023-08-06 02:38:42 -04:00
62df86acb4 Init Jest 2023-08-06 02:38:22 -04:00
e9fbf137c7 Fixup types to make TS happy 2023-08-06 02:11:06 -04:00
8fc2892630 Port to TS 2023-08-05 01:09:33 -04:00
8b4584eb48 Reorganize files for TS conversion 2023-08-05 01:07:03 -04:00
56d7826aad Add deps for esbuild + jest 2023-08-04 23:48:50 -04:00
57c65b10f2 Rereorganize grammar for better feedback 2023-08-04 23:29:53 -04:00
1c04d8dece Attempt to merge applicable multiple expecteds at the same spot.
Avoid counting a successful capture as an error at the current locaiton.
2023-08-04 20:28:26 -04:00
0c90b45d3a Remove Hint hack 2023-08-04 19:25:57 -04:00
797d3cc6b2 Try to improve error location identification 2023-08-04 19:25:47 -04:00
ef59915add Refactor error reporting to allow ignored errors to be reported on a successful pattern match 2023-08-04 18:31:21 -04:00
4b982a64ef Rearrange grammer 2023-08-04 17:43:51 -04:00
5eb7acd8b1 Better comment logic 2023-08-04 17:43:42 -04:00
b287b1d9b6 WIP hack combinator to try and improve error messages. 2023-08-04 17:43:11 -04:00
61d967b6f1 Fix handling text-after-closing-brace and trailing command whitespace 2023-08-04 15:52:50 -04:00
0d469abffc Rearrange grammar to report text-after-closing-brace errors 2023-08-04 15:19:36 -04:00
ee618fa244 Add some expects() labels for clarity 2023-08-04 11:30:41 -04:00
8214f05fe3 Choose() returns the expected message from the alternative that made the furthest progress, if any did. 2023-08-04 02:18:07 -04:00
3bb125dd8c Regex pattern returns custom expects() if set 2023-08-04 02:17:16 -04:00
5c5884a39b Make End patterns instanced so expects() can be used on them 2023-08-04 01:33:40 -04:00
50df27c50e Add more ability to communicate what was expected in the error 2023-08-04 01:24:02 -04:00
58cd1a56b2 Output fancier error message on parse error 2023-08-04 00:26:15 -04:00
7ad94d13a6 Report parse error position 2023-08-04 00:18:17 -04:00
0a7e051ab5 Match entire script from a top level grammar symbol 2023-08-03 23:15:14 -04:00
36f78982e6 Make pattern mapping chained 2023-07-29 16:26:41 -04:00
e61485012e Make thunk used for recursive braces more understandable 2023-07-29 14:50:49 -04:00
9b87906c09 Break out Peg namespace to permit self-reference 2023-07-29 14:39:11 -04:00
97aca502a8 Use locals for readability 2023-07-29 13:50:13 -04:00
9333357e44 Start matching {braces} and nested braces 2023-07-29 13:41:47 -04:00
88497965b3 Parse Commands with Peg 2023-07-29 01:45:55 -04:00
a3cdc53330 Add End to Peg 2023-07-29 01:45:34 -04:00
347af33bf1 Use PEG to strip whitespace/comments before commands 2023-07-29 01:14:00 -04:00
4430580412 Add AtLeast to Peg helpers 2023-07-29 01:13:38 -04:00
64c2d1c35d Namespace Notcl 2023-07-29 00:37:25 -04:00
71581253d5 factor out helpers for PEG parsing 2023-07-29 00:26:29 -04:00
7b42a496c2 Start a PEG-inspired approach to parsing 2023-07-29 00:11:54 -04:00
371ca2b512 Don't throw away vm in render 2023-07-28 18:49:43 -04:00
2f475d711f Fix sample 2023-07-28 18:48:09 -04:00
ac8479bf61 Fix logic around newline folding/escaping, since test data was being escaped more than expected. 2023-07-27 21:08:34 -04:00
1ee71e4ab8 Initial HTML escape plan is a bust, for the excellent reason that & contains a semicolon
which is meaningful TCL-ish syntax.
2023-07-27 02:00:23 -04:00
eca8c6218f Stub parser for code 2023-07-27 01:54:06 -04:00