145 Commits

Author SHA1 Message Date
Martin Haug
aac3afcba8 Remove Parbreak as a NodeKind 2022-02-21 13:48:21 +01:00
Laurenz
e01970b20a Basic show rules 2022-02-18 16:57:53 +01:00
Laurenz
20b1a38414 Switch from Rc to Arc 2022-01-31 16:47:00 +01:00
Laurenz
fa57d86ed9 Fix another parser bug 2022-01-31 13:57:15 +01:00
Laurenz
8f37189d6f Fix incremental parsing bugs 2022-01-31 13:26:52 +01:00
Laurenz
b1a82ae22d Remove markup_while 2022-01-31 11:16:31 +01:00
Laurenz
8d1ce390e2 Rework strong and emph
- Star and underscore not parsed as strong/emph inside of words
- Stars/underscores must be balanced and they cannot go over paragraph break
- New `strong` and `emph` classes
2022-01-30 22:46:59 +01:00
Laurenz
9c906f92c5 Parse break, continue and return expression 2022-01-28 21:01:36 +01:00
Laurenz
3a07603b66 Remove unnecessary group 2022-01-28 20:17:30 +01:00
Laurenz
76b1d4a93f Parse show and wrap expressions 2022-01-28 20:02:42 +01:00
Martin Haug
c994cfa7d8 Code Review: Your parsers were so preoccupied with whether they could 2022-01-04 00:21:33 +01:00
Martin Haug
5f114e18eb Added a test framework for incremental parsing
Fix several errors:

- Indented markup is now reparsed right
- All end group errors will now fail a reparse
- Rightmost errors will always fail a reparse
2022-01-02 00:46:19 +01:00
Martin Haug
e05eb5fda5 Code Review: Parser, I can't let you do this 2021-11-28 18:18:45 +01:00
Martin Haug
edc686d738 Make incremental parsing simpler and move it somewhere else 2021-11-27 16:10:22 +01:00
Martin Haug
fdb9d0743d Refactoring and bugfixes 2021-11-18 16:21:45 +01:00
Martin Haug
3162c6a83a Comments and neighbors 2021-11-10 20:41:10 +01:00
Martin Haug
7a631d8b09 Simplify node mode management 2021-11-09 13:07:55 +01:00
Martin Haug
9141cba6a9 Deal with the effects of keywords 2021-11-08 12:01:35 +01:00
Martin Haug
0663758fbb Tests
- length updates
- dealing with keywords and comments
2021-11-07 19:43:01 +01:00
Martin Haug
eba7fc34ef Incremental-safety based approach 2021-11-06 16:07:21 +01:00
Martin Haug
1e4cab393e Introduce incremental parsing 2021-11-02 12:06:22 +01:00
Laurenz
f5dcb84e36 Make clippy a bit happier 2021-12-30 12:00:12 +01:00
Laurenz
2a3d0f4b39 Set Rules Episode VII: The Set Awakens 2021-12-15 20:27:41 +01:00
Laurenz
f3bdc9d3da Syntax highlighting 2021-11-30 18:55:50 +01:00
Laurenz
38c5c36241 Final touches 2021-11-08 13:06:11 +01:00
Laurenz
75fffc1f9b Fine-grained capturing 2021-11-08 11:52:09 +01:00
Laurenz
95866d5fc9 Tidy up AST 2021-11-08 01:37:49 +01:00
Laurenz
41bdafb578 Faster parser 2021-11-06 15:49:39 +01:00
Laurenz
515fe89c5e Style changes
Co-Authored-By: Martin <mhaug@live.de>
2021-11-05 13:46:42 +01:00
Martin Haug
cf2e527a02 Code Review: No Patrick, question marks are not an instrument 2021-11-05 13:46:41 +01:00
Martin Haug
5c952d56d0 New error handling 2021-11-05 13:46:41 +01:00
Laurenz
f0c9635db5 Notes 2021-11-05 13:46:41 +01:00
Laurenz
65fac0e57c Refactoring
Co-Authored-By: Martin <mhaug@live.de>
2021-11-05 13:46:41 +01:00
Martin Haug
49fb3cd4e2 Code Review: Life is Like a Box of Iterators 2021-11-05 13:44:50 +01:00
Martin Haug
7d34a548cc Reorganize syntax module 2021-11-05 13:44:50 +01:00
Martin Haug
2e7d359e59 Unicode escape error moved to tokenizer 2021-11-05 13:44:49 +01:00
Martin Haug
c569e14c07 Improve error handling 2021-11-05 13:44:49 +01:00
Martin Haug
1c0ac793d2 Slim NodeKind memory footprint 2021-11-05 13:44:49 +01:00
Martin Haug
84d35efee3 Less owning, more iterating 2021-11-05 13:44:49 +01:00
Martin Haug
4875633acf Change parser 2021-11-05 13:44:49 +01:00
Laurenz
1af194f383 Dedent code blocks 2021-10-29 16:26:47 +02:00
Laurenz
de6786eb28 Allow multiple template bodies 2021-10-29 16:04:55 +02:00
Laurenz
00be5d36c4 Change indent requirements to allow alignment
Previously the following wouldn't work correctly because "Fourth" would have been a child of "Third".
```
3. Third
⎵. Fourth
```
2021-10-05 17:25:58 +02:00
Laurenz
6d26e15fbe Support else if 2021-09-30 19:07:06 +02:00
Laurenz
9e95502622 No hashtag before else anymore 2021-09-30 18:28:25 +02:00
Laurenz
ea921aca5d Blocks directly in template also scope 2021-09-15 13:12:07 +02:00
Laurenz
5de791d9e6 Rename SyntaxTree to Markup
Also `SyntaxNode` -> `MarkupNode`.
2021-09-15 13:05:01 +02:00
Laurenz
c18321a4c2 Bugfix and tidying 2021-09-15 13:05:00 +02:00
Laurenz
0dd4ae0a7a Prune derives 2021-08-21 17:30:21 +02:00
Laurenz
594809e35b Library functions behave more imperatively
- Templates scope state changes
- State-modifying function operate in place instead of returning a template
- Internal template representation contains actual owned nodes instead of a pointer to a syntax tree + an expression map
- No more wide calls
2021-08-17 22:20:37 +02:00