Laurenz
38c5c36241
Final touches
2021-11-08 13:06:11 +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
49fb3cd4e2
Code Review: Life is Like a Box of Iterators
2021-11-05 13:44:50 +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
4645d1a517
Switch to borrowed strings in split_lines
2021-10-29 16:36:09 +02:00
Laurenz
1af194f383
Dedent code blocks
2021-10-29 16:26:47 +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
312dcd070c
Move EcoString and OptionExt into util
2021-07-29 11:35:49 +02:00
Laurenz
36b3067c19
Eco string 🌱
2021-07-10 13:07:39 +02:00
Laurenz
5e08028fb3
Syntax functions 🚀
...
This adds overridable functions that markup desugars into. Specifically:
- \ desugars into linebreak
- Two newlines desugar into parbreak
- * desugars into strong
- _ desugars into emph
- = .. desugars into heading
- `..` desugars into raw
2021-03-21 17:50:56 +01: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
d86a5e8a1f
Tidy up raw blocks 🧹
...
- Better trimming (only trim at the end if necessary)
- Fixed block-level layouting
- Improved pretty printing
- Flip inline variable to block
- Flip inline variable to display for math formulas
2021-02-03 21:34:49 +01:00
Laurenz
9eac62c31a
Add lots of new tokens 🍪
2021-01-10 17:52:37 +01:00
Laurenz
7b4d4d6002
Pretty printing 🦋
...
- Syntax tree and value pretty printing
- Better value evaluation (top-level strings and content are evaluated plainly, everything else is pretty printed)
2021-01-06 01:32:59 +01:00
Laurenz
aae67bd572
Move and rename many things 🚛
2021-01-03 00:12:09 +01:00
Laurenz
2b6ccd8248
Better parser testing ✅
2021-01-01 16:43:58 +01:00
Laurenz
4069f0744d
Parsing improvements 🧽
...
- Simplified scanner code
- Peek eagerly
- Skip whitespace and comments automatically in header mode
- Parse simple block expressions
- Move literal definitions into expression module
- Raw resolving tests
2020-12-31 17:48:56 +01:00
Laurenz
1a70cb6a33
Naming and grammar ✔
2020-10-12 18:01:22 +02:00
Laurenz
dc8d5d2f1e
Small improvements 🧺
2020-10-02 20:22:08 +02:00
Laurenz
343982c56f
Optimize parser by remembering peeked token ⚡
2020-10-02 16:52:01 +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
16f0bd430e
Rename CharParser to Scanner ✏
2020-10-01 11:08:53 +02:00
Laurenz
4b9bc66028
Implement low-level char parser 🥜
2020-10-01 01:38:18 +02:00