summaryrefslogtreecommitdiff
path: root/src/syntax/tree.rs
AgeCommit message (Collapse)Author
2020-10-02Refactor parser ๐ŸžLaurenz
2020-10-01Reorganize ast types ๐Ÿ•Laurenz
2020-10-01Rename table to dict โœLaurenz
2020-10-01Make syntax not depend on parse ๐Ÿ“ฉLaurenz
This would make it possible to split them into two separate crates.
2020-10-01Implement low-level char parser ๐ŸฅœLaurenz
2020-09-30Refactor raw blocks ๐Ÿ’ฑLaurenz
2020-09-30SpanWith trait โ†”Laurenz
2020-09-30Move decoration into mod.rs ๐Ÿ”™Laurenz
2020-09-30Reorganize syntax types into two modules ๐Ÿ“ฆLaurenz
2020-09-03Split up parser into multiple files ๐ŸงฑLaurenz
Splits up into: - escaping: resolving of escape sequences - parser: the parsing code - tests: all integrated parsing tests Also moves Ident from the root syntax module into the tree module.
2020-09-01Add section headings ๐Ÿ‘จโ€๐ŸฆฒMartin Haug
Co-authored-by: Laurenz Mรคdje <laurmaedje@gmail.com>
2020-08-30Format everything with rustfmt! ๐Ÿ’šLaurenz
2020-08-29Newlines are complicated, y'all ๐Ÿ˜ฑMartin Haug
Co-authored-by: laurmaedje@outlook.de <laurmaedje@outlook.de>
2020-08-29Merge branch 'master' into code-blocksMartin
2020-08-29Added code blocks ๐ŸšŸMartin Haug
2020-08-29Remove par nodes in favor of parbreaks ๐Ÿ”„Laurenz
This basically reverts the earlier change from parbreaks to par nodes because: - It is simpler and less nested - It works way better with functions that layout their body inline like `font`, which where buggy before, previously The original reasons for changing to par nodes were: - the envisioned design of the layouter at that time (based on dynamic nodes etc.), which is not relevant anymore - possibly existing benefits with regards to incremental compilation, which are unsure and outweighed by the immediate benefits of the parbreak-representation
2020-08-27Better error reporting for nameless function ๐Ÿ’กLaurenz
2020-08-19Make compute functions possible ๐Ÿ’ปLaurenz
Ships with the amazing new `rgb` function!
2020-08-16Add Value type and replace dyn-nodes with call-exprs ๐Ÿ—Laurenz
- 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-04Refactor function parsing โ™ปLaurenz
2020-08-04Par nodes ๐ŸงณLaurenz
2020-08-03Formatting, documentation and small improvements ๐ŸงฝLaurenz
2020-08-02Refactor model into tree ๐Ÿ›’Laurenz