425 Commits

Author SHA1 Message Date
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
7016ab0d12 Make stuff more elegant 2021-11-03 11:03:00 +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
11565a40b3 Set Rules Episode IX: The Rise of Testing 2021-12-21 00:20:24 +01:00
Laurenz
2a3d0f4b39 Set Rules Episode VII: The Set Awakens 2021-12-15 20:27:41 +01:00
Martin Haug
738ff7e1f5 Reduce the size of the FramesEntry struct and bump edition 2021-12-13 15:56:14 +01:00
Laurenz
f3bdc9d3da Syntax highlighting 2021-11-30 18:55:50 +01:00
Laurenz
304d9dd110 Small style changes 2021-11-24 17:00:10 +01:00
Laurenz
63c274e7f6 Make clippy happier and remove Str 2021-11-15 17:06:43 +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
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
42afb27cef Add documentation 2021-11-05 13:44:50 +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
3968181622 Replace .. syntax with range function 2021-10-25 13:38:32 +02:00
Laurenz
4b2c6334d0 Change precedence of range expression 2021-10-05 17:19:48 +02:00
Laurenz
9e78dbe525 Better function and closure pretty printing 2021-09-30 19:07:17 +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
7f48e8fe66 Make user-facing "debug" representation use Debug instead of Display 2021-08-31 16:25:12 +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
9462fb17b3 Convert single-field structs to tuple structs 2021-08-16 19:15:03 +02:00
Laurenz
7e6e7e928c Adjust macros to new version 2021-08-14 23:53:57 +02:00
Laurenz
6ae6d86b9c Separate type for string values 2021-08-14 15:55:39 +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
ccb4be4da4 Make range-end exclusive 2021-08-12 14:54:52 +02:00
Laurenz
eaa3cbaa9c Array and dictionary indexing 2021-08-12 13:56:23 +02:00
Laurenz
3c92bad9a7 Pretty-printed diagnostics with traceback 2021-08-01 00:00:36 +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