Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | parser: add type for `Node::Lit` | 2023-08-01 | 3 | -49/+54 | ||
| | ||||||
* | parser: add type for `Node::BlockDef` | 2023-08-01 | 2 | -30/+45 | ||
| | ||||||
* | parser: add type for `Node::Match` | 2023-08-01 | 2 | -36/+54 | ||
| | ||||||
* | parser: add type for `Node::Call` | 2023-08-01 | 2 | -20/+40 | ||
| | ||||||
* | parser: add type for `Node::Import` | 2023-08-01 | 2 | -17/+33 | ||
| | ||||||
* | parser: let `Macro` know its name | 2023-08-01 | 1 | -52/+53 | ||
| | ||||||
* | parser: add `Ast::nodes()` method | 2023-08-01 | 1 | -0/+4 | ||
| | ||||||
* | parser: impement `PartialEq` for `Ast` | 2023-08-01 | 1 | -0/+7 | ||
| | ||||||
* | parser: implement `Debug` for `Parsed` | 2023-08-01 | 1 | -1/+9 | ||
| | ||||||
* | parser: use `?` | 2023-08-01 | 1 | -5/+1 | ||
| | ||||||
* | parser: ensure correct drop order for `Parsed` | 2023-08-01 | 1 | -2/+3 | ||
| | | | | | | | | | | | | | | | According to [RFC 1857] the fields of a struct are dropped in the same order as they are declared. For `struct S { a: A, b: B }` field `a` is dropped before field `b`. Our struct `Parsed` is self referencial. Its field `ast` depends on `source`, so `source` must outlife `ast`. This PR changes the order of the fields to reflect this requirement. In practice it should not matter, because we know that the variant of `Node` won't access the string data during their `Drop`, but better safe than sorry - maybe `Node` changes in the future. [RFC 1857]: https://rust-lang.github.io/rfcs/1857-stabilize-drop-order.html | |||||
* | parser: remove panicking `From<&str> for Whitespace` | 2023-08-01 | 1 | -12/+5 | ||
| | ||||||
* | Fix parsing arrays | 2023-07-31 | 2 | -5/+90 | ||
| | | | | | | | | | | | | | | | | This change * allows using empty arrays `[]` in expessions, * adds a cut when the leading `[` was encountered, and * fixes the interaction between arrays and boolean OR. IMO the restriction that you couldn't use empty arrays is not needed. The missing cut made error messages slictly worse if you forget to add the closing `]`. Filter expressions must not have white spaces before the pipe `|`. The white space is used to tell a filter expressions, and `std::ops::Or` apart. | |||||
* | Fix parsing calls | 2023-07-31 | 2 | -4/+31 | ||
| | | | | | | | This change: * adds a cut when the leading `(` was encountered, and * fixed the interaction between call expressions and boolean OR. | |||||
* | parser: rename block to nodes | 2023-07-31 | 1 | -12/+13 | ||
| | ||||||
* | parser: reorder items in node module | 2023-07-31 | 1 | -50/+50 | ||
| | ||||||
* | parser: move Expr parser helpers into callers | 2023-07-31 | 1 | -53/+54 | ||
| | ||||||
* | parser: move single expr parsers into Expr impl | 2023-07-31 | 1 | -63/+63 | ||
| | ||||||
* | parser: move binary operator parsers into Expr impl | 2023-07-31 | 1 | -71/+71 | ||
| | ||||||
* | parser: flatten top-level Expr interface | 2023-07-31 | 2 | -36/+28 | ||
| | ||||||
* | parser: move suffix parsers into impl block | 2023-07-31 | 1 | -53/+61 | ||
| | ||||||
* | parser: move cond parsers into type impls | 2023-07-31 | 1 | -39/+43 | ||
| | ||||||
* | parser: move parser helpers into callers | 2023-07-31 | 1 | -35/+35 | ||
| | ||||||
* | parser: move when parsers into impl block | 2023-07-31 | 1 | -47/+50 | ||
| | ||||||
* | parser: define a struct for Match | 2023-07-31 | 1 | -3/+22 | ||
| | ||||||
* | parser: define a struct for Cond | 2023-07-31 | 1 | -3/+19 | ||
| | ||||||
* | parser: move node parsers into impl block | 2023-07-31 | 2 | -410/+406 | ||
| | ||||||
* | parser: move Whitespace parser into method | 2023-07-31 | 1 | -144/+142 | ||
| | ||||||
* | parser: move impl blocks closer to type definitions | 2023-07-31 | 1 | -12/+12 | ||
| | ||||||
* | parser: simplify top-level parser match | 2023-07-31 | 1 | -29/+24 | ||
| | ||||||
* | parser: add top-level Ast type | 2023-07-31 | 2 | -115/+148 | ||
| | ||||||
* | parser: move nested_parenthesis() helper into node module | 2023-07-31 | 2 | -51/+49 | ||
| | ||||||
* | parser: move helper functions into State impl | 2023-07-31 | 2 | -93/+92 | ||
| | ||||||
* | parser: move trait impl closer to type definition | 2023-07-31 | 2 | -11/+11 | ||
| | ||||||
* | parser: move single-use functions into caller | 2023-07-31 | 1 | -13/+13 | ||
| | ||||||
* | Extract askama_parser crate | 2023-07-31 | 5 | -0/+2072 | ||