All Versions
Latest Version
Avg Release Cycle
90 days
Latest Release
1369 days ago

Changelog History
Page 1

  • v0.7.2 Changes

    July 26, 2020

    ๐Ÿ“œ [#105] Fix counting newlines in strings
    ๐Ÿ“œ [#110] Fix JSON dumper
    ๐Ÿ–จ [#109] Do not override Stmts in printNodeRoot()
    ๐Ÿ“œ [#111] NamespaceResolver: Resolve PHP 7.4 class property types

  • v0.7.1 Changes

    June 14, 2020

    ๐Ÿ“œ [#107] fix infinite loop when $ appear between variable and the end of a template string

  • v0.7.0 Changes

    March 09, 2020

    ๐Ÿ“œ [#82] PHP 7.4
    ๐Ÿ“œ [#93] Wrong line number when parsing string
    ๐Ÿ“œ [#91] Scanner doesn't support \x80-\xff identifiers
    ๐Ÿ“œ [#86] JsonDumper don't work
    ๐Ÿ–จ [#78] Print echo
    ๐Ÿ“œ [#80] Ragel based lexer

  • v0.6.1 Changes

    August 20, 2019

    ๐Ÿ“œ #96 handle lexer errors

  • v0.6.0 Changes

    February 25, 2019

    ๐Ÿ†• new

    golang/json dumper
    ๐Ÿ–จ saving and printing free-floating comments and whitespaces


    ๐Ÿšš attribute StringVar was removed from expr.Variable
    ๐Ÿšš node stmt.Die was removed, added Die attribute to stmt.Exit instead


    ๐Ÿ’พ save position within node
    ๐Ÿ”€ use sync.Pool to reuse scanner.Token

    ๐Ÿ›  bugfix

    __halt_compiler(); terminates parsing process
    accept backslash+newline in single quotes
    ๐Ÿ›  fixed /*/ comment termination
    ๐Ÿ›  fixed crash on an empty list item, missed items are represented by empty *expr.ArrayItem

  • v0.5.1 Changes

    July 03, 2018

    ๐Ÿšš #44: if array item list ends by a comma, last nil does not removed
    ๐Ÿ“œ #44: fixed crash on an empty list item
    ๐Ÿ— #41: Namespace resolver now does not resolve build-in primitives
    ๐Ÿ›  Fixed bug: Namespace resolver fails when TraitUse does not contain adaptations
    ๐Ÿ”€ #40: memory allocations reduced for position.Position by using sync.Pool
    ๐Ÿ”€ #27: memory allocations reduced for scanner.Token by using sync.Pool
    ๐Ÿ“œ #26: TrimLeft replaced by TrimLeftFunc (small optimization)
    ๐Ÿ“œ #38: fixed saving positions for php5 ArrayDimFetch, PropertyFetch and MethodCall nodes
    ๐Ÿ“œ #34: fixed saving position for Class node

  • v0.5.0 Changes

    June 07, 2018

    โœจ Enhancements:

    • ๐Ÿ“œ Error-tolerant parsing
    • ๐Ÿ“œ Possibility to parse files concurrently
    • Saving all comments
    • Saving comments position

    ๐Ÿ’ฅ Breaking changes:

    • โœ‚ Removed DocComment and PlainComment types
    • โœ‚ Removed boolWithToken, altSintaxNode, nodesWithEndToken types
    • Created node.Root, node.ArgumentList, stmt.TraitAdaptationList, stmt.CaseList, stmt.ClassExtends, stmt.ClassImplements, stmt.InterfaceExtends, expr.Reference nodes
    • ๐Ÿ”„ Changed ClosureUse node purpose, now it represents variables list instead of wrapping the variable
    • ๐Ÿ— Builder was renamed to PositionBuilder
    • scanner.CreateToken returns pointer
    • scanner.Token saves position as position.Position
    • ๐Ÿ“ฆ Parser interface moved to parser package
    • ๐Ÿ“ฆ token package merged into scanner package
    • ๐Ÿ“ฆ Positions and Comments moved into parser package

    ๐Ÿ›  Fixes:

    • scanner: added (binary) cast
    • ๐Ÿ“œ #28 fixed race conditions
    • ๐Ÿšš #18 heredocLabelvariable moved from global into scanner.Lexer
    • ๐Ÿ›  fixed panic on 32-bit systems
    • ๐Ÿ›  fixed bug when scanning an empty inline comment
    • ๐Ÿ›  fixed namespace resolver fail on anonymous class
    • ๐Ÿ›  fixed the saving non-latin comments


    • ๐Ÿ”จ #21 refactored scanner.Lexer.charsToBytes and renamed to scanner.Lexer.tokenString
  • v0.4.0 Changes

    April 06, 2018

    ๐Ÿ–จ Created simple pretty printer
    Created Heredoc node
    ๐Ÿ›  Fixed Heredoc scanning
    ๐Ÿ›  Fixed template strings and backquoted strings scanning
    Dumper now writes to io.writer
    โœ‚ Removed redundant nop before InlineHtml
    ๐Ÿ“‡ Renamed assign.AssignRef to assign.Reference
    ๐Ÿšš Renamed cast nodes, remove Cast prefix

  • v0.3.0 Changes

    March 01, 2018

    Namespace resolver

    Namespace resolver is a visitor that traverses nodes and resolves name nodes as fully qualified names.
    It does not change AST but collects resolved names into map[node.Node]string

    For Class, Interface, Trait, Function, ConstList nodes collects name with current namespace.
    For Name, Relative, 'FullyQualified' nodes resolves use aliases and collects a fully qualified name.

    Other changes

    • โœ‚ Remove the underscore from package names
    • ๐Ÿ›  Fix warnings
    • ๐Ÿ“‡ Rename Walker to Walkable interface
    • โž• Add Names interface
    • โž• Add dumper and namespace_resolver tests
  • v0.2.0 Changes

    February 28, 2018

    โž• Add PHP5 parsing rules tests
    โž• Add PHP7 parsing rules tests
    โž• Add lexer rules tests
    โž• Add node traversing tests
    โž• Add alternative syntax nodes for while, for, foreach, and switch
    ๐Ÿ›  Fix parsing bugs found by test