Commit graph

68 commits

Author SHA1 Message Date
ba3a3b5a26 Implement basic script evaluation 2023-09-08 00:03:48 -04:00
1b8929657a Simplify parsing of enchanted words- special case grammar not needed 2023-08-31 22:58:44 -04:00
53bca8f878 Remove one warning from tests 2023-08-26 01:16:43 -04:00
a55aca3d00 fixup parser rename 2023-08-26 01:16:31 -04:00
1eb6d179be Add helpers for working with words 2023-08-26 01:16:22 -04:00
c39b4a4931 Rename parser module 2023-08-25 20:38:52 -04:00
a97f38a7b9 Parse command substitutions 2023-08-25 19:21:00 -04:00
ca5d64eca7 Configure automatic import sorting 2023-08-25 19:20:57 -04:00
e538471611 Don't consume the end pattern multiple times in script pattern 2023-08-25 19:20:26 -04:00
9ce7ec2598 Ensure bare words don't start with " or { 2023-08-25 19:20:26 -04:00
b031381ff7 Factor out script/command/word/bare-word patterns to permit making bracket variations 2023-08-25 19:20:26 -04:00
6cce5bb6ed Move Command/Script to broader-scope type 2023-08-25 19:20:22 -04:00
a4e65e567a Reorganize tests 2023-08-25 11:13:00 -04:00
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