117 Commits

Author SHA1 Message Date
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
Laurenz
f6814b7732 Optimize memory sizes 2021-08-13 18:17:24 +02:00
Laurenz
6a3385e4e7 Argument collection and spreading 2021-08-13 16:55:45 +02:00
Laurenz
144f208821 Add file information to spans 2021-08-13 14:33:58 +02:00
Laurenz
d002cdf451 Named arguments for user defined functions 2021-08-12 16:07:42 +02:00
Laurenz
8207c31aec Minor refactorings
- Reorder parser methods and use `Pos` everywhere
- Remove tab special handling for columns and adapt heading/list/enum indent handling
- Don't panic when a file has an empty path
2021-08-10 11:28:12 +02:00
Laurenz
3c92bad9a7 Pretty-printed diagnostics with traceback 2021-08-01 00:00:36 +02:00
Laurenz
fbd3d19113 Call args span now includes parens 2021-07-31 22:41:06 +02:00
Laurenz
1ee1d078e2 Fatal errors
- Makes errors fatal, so that a phase is only reached when all previous phases were error-free
- Parsing still recovers and can produce multiple errors
- Evaluation fails fast and can thus produce only a single error (except for parse errors due to an import)
- The single error that could occur during execution is removed for now
- Removes Value::Error variant
2021-07-30 18:49:19 +02:00
Laurenz
312dcd070c Move EcoString and OptionExt into util 2021-07-29 11:35:49 +02:00
Laurenz
5edbd3a5b5 Use array's IntoIterator impl and nested or patterns
*yay*
2021-07-16 12:07:15 +02:00
Laurenz
891e0c5fa6 Remove warnings from parsing and casting 2021-07-10 23:14:46 +02:00
Laurenz
6a4823461f Reference-count complex values
Rename some nodes types
2021-07-10 23:10:17 +02:00
Laurenz
36b3067c19 Eco string 🌱 2021-07-10 13:07:39 +02:00
Laurenz
551e3af9d0 Replace using with from 2021-07-08 21:16:16 +02:00
Laurenz
5c327e249e Switch to = for headings once again 2021-07-08 20:03:13 +02:00
Laurenz
c5635d8a3f Handle missing arguments to with expr 2021-07-08 18:56:52 +02:00
Laurenz
44d8028b49 Allow wide calls only directly in templates 2021-06-30 22:49:11 +02:00
Laurenz
17e8946884
Remove color literals (#39) 2021-06-30 22:32:24 +02:00
Laurenz
470f8001a1 No more collisions between syntax::Tree and layout::Tree 2021-06-30 11:40:27 +02:00
Laurenz
b89cd128ae Wide calls 2021-06-29 13:49:50 +02:00
Laurenz
422b8e640f With expressions 2021-06-26 18:07:05 +02:00
Laurenz
2a30c20f0e Flip outdated expression names 2021-06-18 12:47:59 +02:00
Laurenz
4dbd9285c9 Basic enums 2021-06-11 14:00:06 +02:00
Laurenz
bce553a991 Tidy up 2021-06-09 22:44:40 +02:00
Martin Haug
29cfef0a6d Add a grid layouter 2021-06-09 22:44:40 +02:00
Martin Haug
73fa2eda2c Introduce frs 2021-06-09 22:44:40 +02:00
Laurenz
5afb42ad89 Lists with indent-based parsing
- Unordered lists with indent-based parsing and basic layout using stacks
- Headings are now also indent based
- Removes syntax functions since they will be superseded by select & transform
2021-06-09 00:37:13 +02:00
Laurenz
d69dfa84ec Move import parser to appropriate position in the file 2021-06-08 11:51:21 +02:00