Skip to content

v0.3.0

Compare
Choose a tag to compare
@kddnewton kddnewton released this 06 Jan 21:23
· 5426 commits to main since this release
ec22bc7

New stuff

  • We now have a MissingNode that is inserted when an expression is expected but not present
  • We now keep a stack of contexts around as we're parsing. If a token is found that is unexpected that would close out a parent context, we put the parser into "recovering" mode and insert missing nodes until we get back up to the parent node
  • We now expose CommentNode nodes in the parse result, along with handling __END__ and =begin..=end syntax
  • We now support multiple encodings, and parse encoding magic comments to determine the encoding
  • Much more documentation has been added
  • Parse symbols in SymbolNode and InterpolatedSymbolNode
  • There's now a pack parser baked into YARP
  • We now template out Java classes based on the serialization
  • We now parse regular expressions to get out locals generated from capture groups
  • AliasNode and UndefNode
  • RestParameterNode, KeywordParameterNode, BlockParameterNode, ForwardingParameterNode, NoKeywordsParameterNode
  • BeginNode
  • SClassNode
  • ForNode
  • MultiTargetNode which is the beginnings of parsing multiple assignment
  • ParenthesesNode
  • We now support providing the escaped version of a string

Changed stuff

  • String lists with interpolation are now part of ArrayNode
  • IfNode now also functions in the elsif context
  • Now we parse else after unless
  • Use 32 bits for locations and lengths to shorten serialized string
  • We now support endless method definitions

Fixed stuff

  • Handle more underscores in number literals
  • Better handle identifiers that end in =
  • Better handle \r\n line terminators
  • Handle escaped terminators in strings