Skip to content

Conversation

@charlespwd
Copy link
Contributor

Architectural changes

  • parse_expression and safe_parse_expression have been removed from Tag and ParseContext
  • Parser methods now produce AST nodes instead of strings
    • Parser#expression produces a value,
    • Parser#string produces a string,
    • etc.

Breaking changes

  • Parser#expression is renamed to Parser#expression_string
  • safe_parse_expression methods are replaced by Parser#expression
  • parse_expression methods are replaced by Parser#unsafe_parse_expression

- Make `Parser` accept the expression cache
- Remove `safe_parse_expression` from `ParseContext`
- Replace all usage of `safe_parse_expression` with `parser.expression_node`
- Add Parser#string
- Add Parser#unsafe_parse_expression
- Add private Parser#parse_expression
- Remove ParseContext.parse_expression
- Remove Tag.parse_expression
- Condition.parse_expression now takes a parser as argument
We don't need all the multi-dot logic in a world where number comes
out of the Lexer.
Goal is to get rid of it entirely, but baby steps.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant