summaryrefslogtreecommitdiff
path: root/src/syntax/span.rs
AgeCommit message (Collapse)Author
2020-09-30SpanWith trait โ†”Laurenz
2020-09-30Move decoration into mod.rs ๐Ÿ”™Laurenz
2020-09-30Reorganize syntax types into two modules ๐Ÿ“ฆ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-15Remove SpanlessEq ๐ŸŽƒLaurenz
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-15Take references in TryFromExpr ๐Ÿ”ญLaurenz
2020-08-03Formatting, documentation and small improvements ๐ŸงฝLaurenz
2020-08-02Move binary into separate crate and tidy dependencies ๐ŸŽญ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-07-27Refactor parser ๐Ÿš‡Laurenz
2020-07-26Streamline parser and tokenizer test code โœˆLaurenz
2020-07-26Rename errors to problems and make error! macro more ergonomic ๐ŸงผLaurenz
Also adds a `warning!` macro.
2020-02-11Parse tuples and objects ๐Ÿ’Laurenz
Generalizes the parsing of tuples, objects and function arguments into generic comma-separated collections.
2020-02-04Merge `Parsed` and `Layouted` types into `Pass` with `Feedback` ๐ŸŒ๐ŸŽข๐ŸŒšLaurenz
2020-02-03Port tests ๐ŸšLaurenz
2020-02-03Better Debug/Display and Derives ๐ŸงฝLaurenz
2020-01-26Document everything ๐Ÿ“œLaurenz
2020-01-24Reorganize modules ๐ŸงฑLaurenz
2020-01-21Decoupled function parser ๐Ÿ”— [WIP]Laurenz
2020-01-19Move to non-fatal errors ๐Ÿช‚ [WIP]Laurenz
- Dynamic models instead of SyntaxTrees - No more ParseResult/LayoutResult - Errors and Decorations which are propagated to parent contexts - Models are finally clonable
2020-01-18ColorToken serialization + function fix ๐ŸšงLaurenz
2020-01-16Powerful parser testing ๐Ÿฑโ€๐Ÿ‘คLaurenz
2020-01-13Refactor expressions and create tuples and objects ๐ŸงฎLaurenz
2020-01-13Checkpoint ๐ŸLaurenz
2020-01-11Span tests โ†”Laurenz
2020-01-11Re-engineer tokenization ๐ŸšฟLaurenz
2020-01-10Convert spans to line/column format ๐Ÿ“‘Laurenz
2020-01-09Introduce color tokens ๐ŸŽจLaurenz
2020-01-06Formatting ๐Ÿ›€Laurenz
2019-12-05Move arg parser into `FuncArgs` and create (incomplete) consistent map ๐ŸงญLaurenz
2019-12-04Expand functionality of function! macro ๐Ÿ›ฐLaurenz