summaryrefslogtreecommitdiff
path: root/src/syntax/mod.rs
AgeCommit message (Collapse)Author
2021-09-15Rename `SyntaxTree` to `Markup`Laurenz
Also `SyntaxNode` -> `MarkupNode`.
2021-08-14Separate type for string valuesLaurenz
2021-07-29Move EcoString and OptionExt into utilLaurenz
2021-07-10Reference-count complex valuesLaurenz
Rename some nodes types
2021-07-10Eco string ๐ŸŒฑLaurenz
2021-06-30No more collisions between syntax::Tree and layout::TreeLaurenz
2021-03-19Scheduled maintenance ๐Ÿ”จLaurenz
- 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-02-11Move all pretty printing into one module and pretty print values ๐Ÿฆ‹Laurenz
2021-02-09Split evaluation and execution ๐Ÿ”ชLaurenz
2021-02-07Dry-clean visitor with a macro ๐ŸœLaurenz
2021-02-04Fix counting bug โœ…Laurenz
2021-02-03Tidy up raw blocks ๐ŸงนLaurenz
- 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-01-30Interpret two backticks as single-backtick block โœ…Laurenz
2021-01-30New syntax ๐Ÿ’ŽLaurenz
- Everything everywhere! - Blocks with curly braces: {} - Templates with brackets: [] - Function templates with hashtag: `#[f]` - Headings with equals sign: `= Introduction`
2021-01-30Moves captures visitor into separate file ๐ŸššLaurenz
2021-01-27Capture variables in templates ๐Ÿ”Laurenz
2021-01-26For loop patterns ๐ŸฆšLaurenz
2021-01-26More straightforward pretty printing tests ๐ŸงนLaurenz
2021-01-06Pretty printing ๐Ÿฆ‹Laurenz
- Syntax tree and value pretty printing - Better value evaluation (top-level strings and content are evaluated plainly, everything else is pretty printed)
2021-01-03Move and rename many things ๐Ÿš›Laurenz
2020-12-31Parsing improvements ๐ŸงฝLaurenz
- 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-10-10Flatten ast module back into syntax module ๐ŸŒชLaurenz
2020-10-07Move deco, pass and feedback into diagnostics module โ†ฉLaurenz
2020-10-05Streamline generic layouting primitives ๐Ÿ›ซLaurenz
2020-10-04Shorten some names โ†”Laurenz
2020-10-03Rename bold/italic to strong/emph โœLaurenz
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-09-30Replace line/column with byte positions ๐Ÿ”ข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-08-30Format everything with rustfmt! ๐Ÿ’šLaurenz
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-16Remove tuples and objects in favor of tables ๐Ÿ›ขLaurenz
This refactores the parser tests to make them more concise and flexible with regards to spans.
2020-08-15Rename Value trait into TryFromExpr โœ’Laurenz
2020-08-04Refactor function parsing โ™ปLaurenz
2020-08-03Formatting, documentation and small improvements ๐ŸงฝLaurenz
2020-08-02Replace body! macro with functions ๐ŸงฐLaurenz
2020-08-02Refactor model into tree ๐Ÿ›’Laurenz
2020-08-02Refactor argument parsing ๐Ÿ”ฌLaurenz
2020-07-29Move, rename and switch some things (boring) ๐ŸššLaurenz
- Problems -> Diagnostics - Position -> Pos - offset_spans -> Offset trait - Size -> Length (and some more size types renamed) - Paper into its own module - scope::Parser -> parsing::CallParser - Create `Decorations` alias - Remove lots of double newlines - Switch from f32 to f64
2020-02-13New syntax features ๐Ÿ‘”Laurenz
- Forced line breaks with backslash followed by whitespace - (Multline) raw text in backticks - Set font class fallbacks with [font.family] (e.g. [font.family: monospace=("CMU Typewriter Text")]) - More sophisticated procedure to find end of function, which accounts for comments, strings, raw text and nested functions (this is a mix of a feature and a bug fix)
2020-02-11Parse tuples and objects ๐Ÿ’Laurenz
Generalizes the parsing of tuples, objects and function arguments into generic comma-separated collections.
2020-02-07Improve syntax testing framework โ™ปLaurenz
... and finally expand a few escape sequences in strings.
2020-02-06Highlight bold / italic / monospace ๐ŸŽจLaurenz
2020-02-04Merge `Parsed` and `Layouted` types into `Pass` with `Feedback` ๐ŸŒ๐ŸŽข๐ŸŒšLaurenz
2020-02-03Port tests ๐ŸšLaurenz