Laurenz
fd8160f374
Remove SpanPos
in favor of ErrorPos
2022-10-05 13:15:02 +02:00
Laurenz
ddd3b6a82b
Tracked memoization
2022-09-21 20:25:57 +02:00
Laurenz
757a701c1a
A New World
2022-09-20 16:37:15 +02:00
Laurenz
c81e2a5f56
Many fixes
2022-06-14 13:53:02 +02:00
Laurenz
ed6550fdb0
Bump dependencies
2022-06-10 23:54:16 +02:00
Laurenz
af10b08cc1
Documentation
2022-06-01 16:51:46 +02:00
Laurenz
94b375ce55
Incremental renumbering
2022-06-01 13:49:02 +02:00
Laurenz
0a9172cb15
Enforce and make use of span ordering
2022-05-31 13:19:09 +02:00
Laurenz
9bbebd69dd
Numbered spans
2022-05-31 12:37:05 +02:00
Laurenz
91e45458e3
Make values hashable
2022-02-17 12:50:54 +01:00
Laurenz
3739ab7720
Export into rendered images
2022-01-24 17:39:49 +01:00
Laurenz
63c274e7f6
Make clippy happier and remove Str
2021-11-15 17:06:43 +01:00
Laurenz
75fffc1f9b
Fine-grained capturing
2021-11-08 11:52:09 +01:00
Laurenz
65fac0e57c
Refactoring
...
Co-Authored-By: Martin <mhaug@live.de>
2021-11-05 13:46:41 +01:00
Martin Haug
4875633acf
Change parser
2021-11-05 13:44:49 +01:00
Laurenz
0dd4ae0a7a
Prune derives
2021-08-21 17:30:21 +02:00
Laurenz
6ae6d86b9c
Separate type for string values
2021-08-14 15:55:39 +02:00
Laurenz
144f208821
Add file information to spans
2021-08-13 14:33:58 +02:00
Laurenz
3c92bad9a7
Pretty-printed diagnostics with traceback
2021-08-01 00:00:36 +02:00
Laurenz
6a4823461f
Reference-count complex values
...
Rename some nodes types
2021-07-10 23:10:17 +02:00
Laurenz
72478946c2
Make frames serializable 📚
...
This also makes serialization support non-optional since it's too much feature-management for too little benefit.
2021-04-21 21:17:25 +02:00
Laurenz
264a7dedd4
Scheduled maintenance 🔨
...
- New naming scheme
- TextNode instead of NodeText
- CallExpr instead of ExprCall
- ...
- Less glob imports
- Removes Value::Args variant
- Removes prelude
- Renames Layouted to Fragment
- Moves font into env
- Moves shaping into layout
- Moves frame into separate module
2021-03-19 17:57:31 +01:00
Laurenz
1711b67877
Move all pretty printing into one module and pretty print values 🦋
2021-02-11 17:33:13 +01:00
Laurenz
06ca740d01
Split evaluation and execution 🔪
2021-02-09 19:46:57 +01:00
Laurenz
e847082435
Multi-expression blocks 🛍️
2021-01-26 21:13:52 +01:00
Laurenz
ac788f2082
Many more expressions 🥗
...
Boolean, equality, comparison and assignment expression parsing and evaluation.
2021-01-22 17:16:42 +01:00
Laurenz
51efb0f4d6
Port remaining parser tests 🚚
2021-01-16 15:08:03 +01:00
Laurenz
2e77b1c836
Better value representations, type function 🌐
2021-01-04 21:29:15 +01:00
Laurenz
aae67bd572
Move and rename many things 🚛
2021-01-03 00:12:09 +01:00
Laurenz
8cad78481c
A few small improvements ♻
2021-01-01 17:54:31 +01:00
Laurenz
3a7bfd6bed
Remove unused function Spanned::value
🗑
2020-11-16 11:08:36 +01:00
Laurenz
38157b0e0c
Synchronous layout 🪀
2020-10-12 17:10:01 +02:00
Laurenz
5a7a32a9ba
Streamline generic layouting primitives 🛫
2020-10-05 16:44:35 +02:00
Laurenz
605ab104c5
Better argument parsing 🥙
2020-10-04 22:36:20 +02:00
Laurenz
54e0da59e3
Small documentation fixes 🧾
2020-10-03 18:15:09 +02:00
Laurenz
904bc392ab
Remove spans from token iterator 🧽
2020-10-02 19:17:47 +02:00
Laurenz
3533268b1f
Refactor parser 🏞
2020-10-02 15:43:29 +02:00
Laurenz
7fcad452b8
Reorganize ast types 🏕
2020-10-01 15:03:37 +02:00
Laurenz
885bfec5d7
Make syntax not depend on parse 📩
...
This would make it possible to split them into two separate crates.
2020-10-01 11:32:48 +02:00
Laurenz
4077a7c11e
Refactor raw blocks 💱
2020-09-30 18:59:33 +02:00
Laurenz
7cc279f7ae
Replace line/column with byte positions 🔢
2020-09-30 17:25:09 +02:00
Laurenz
3c3730425f
SpanWith trait ↔
2020-09-30 14:38:46 +02:00
Laurenz
3e791e3337
Move decoration into mod.rs 🔙
2020-09-30 12:49:30 +02:00
Laurenz
bc1b4216a8
Reorganize syntax types into two modules 📦
2020-09-30 12:45:33 +02:00
Laurenz
30f16bbf64
Add Value type and replace dyn-nodes with call-exprs 🏗
...
- In addition to syntax trees there are now `Value`s, which syntax trees can be evaluated into (e.g. the tree is `5+5` and the value is `10`)
- Parsing is completely pure, function calls are not parsed into nodes, but into simple call expressions, which are resolved later
- Functions aren't dynamic nodes anymore, but simply functions which receive their arguments as a table and the layouting context
- Functions may return any `Value`
- Layouting is powered by functions which return the new `Commands` value, which informs the layouting engine what to do
- When a function returns a non-`Commands` value, the layouter simply dumps the value into the document in monospace
2020-08-16 22:39:21 +02:00
Laurenz
84f30fb735
Remove SpanlessEq 🎃
...
The new solution is slightly hacky, but way more flexible. All types that implement PartialEq can now be compared spanlessly in tests by manipulating a thread-local boolean that is read in Span's PartialEq implementation.
2020-08-15 15:01:55 +02:00
Laurenz
4b723add38
Take references in TryFromExpr 🔭
2020-08-15 11:58:01 +02:00
Laurenz
dbfb3d2ced
Formatting, documentation and small improvements 🧽
2020-08-03 16:04:55 +02:00
Laurenz
d5ff97f42e
Move binary into separate crate and tidy dependencies 🎭
2020-08-02 16:56:14 +02:00
Laurenz
533374db14
Refactor argument parsing 🔬
2020-08-02 16:31:34 +02:00