Skip to content

Releases: TantrixAuto/yantra

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 30 Sep 12:03

Bug Fixes

  • Fixed a variable-name collision in generated dump() methods: a rule variable named the same as an internal parameter (e.g. p) could produce broken generated code

Improvements

  • Documented the generated file's structure (AST, walkers, parser, lexer, interface class, optional main())
  • Documented go's automatic top-down traversal, skip(), and manual traversal mode
  • Documented that %function return types can be any C++ type, not just primitives
  • Documented that rule variable names must not collide with go, skip, %members, or %function names

Installation

  • Windows: extract ycc-v0.5.1-windows-x86_64.zip, copy ycc.exe to anywhere on the PATH
  • macOS: extract ycc-v0.5.1-macos-arm64.tar.gz, copy ycc to anywhere on the PATH
  • Linux: extract ycc-v0.5.1-linux-x86_64.tar.gz, copy ycc to anywhere on the PATH

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 04:00

Features

  • Added C++23 support
  • Implemented %enable_log pragma for per-source (lexer/parser/generator) debug logging
  • Implemented %class_members and text-string walker output mode

Improvements

  • Project version is now derived automatically from git tags
  • Added CI and a release workflow building Linux/macOS/Windows binaries
  • Rule precedence now defaults to a rule's last terminal, matching Yacc/Bison/Lemon convention
  • Indexed FIRST/FOLLOW rule lookups and other parser/lexer performance improvements
  • Rewrote the documentation: verified Quick Start, comparison vs Bison/ANTLR/tree-sitter, Known Limitations doc

Bug Fixes

  • Fixed LALR shift/reduce precedence comparison
  • Fixed crash when two or more overlapping keyword literals share a token
  • Fixed _findSmallestSuperset to pick the smallest match, not the first
  • Fixed a use-after-free error and a recursive-rule-handling bug
  • Fixed std::print/std::println portability on Apple Clang and MSVC

Installation

  • Windows: extract ycc-v0.5.0-windows-x86_64.zip, copy ycc.exe to anywhere on the PATH
  • macOS: extract ycc-v0.5.0-macos-arm64.tar.gz, copy ycc to anywhere on the PATH
  • Linux: extract ycc-v0.5.0-linux-x86_64.tar.gz, copy ycc to anywhere on the PATH

2026-01: January Release

Choose a tag to compare

@renjipanicker renjipanicker released this 01 Jan 06:43

Features

  • Support multiple walkers in command line options

Improvements

  • Additional functions in TextWriter
  • Use CMAKE_PARSE_ARGUMENTS in .cmake file

Bug Fixes

  • Fixed indentation issue
  • Remove redundant lines of code from walker

Installation

  • Windows: Copy ycc.exe to anywhere on the PATH
  • OSX: Rename ycc.osx to ycc and copy to anywhere on the PATH
  • Linux: Rename ycc.linux to ycc and copy to anywhere on the PATH

2025-12: December release

Choose a tag to compare

@renjipanicker renjipanicker released this 02 Dec 07:38

Features

  • implemented inline/external interfaces: A walker can be implemented in a separate .cpp file
  • implemented %lexer_include pragma: A lexer_mode can be included inside one or more other lexer_modes
  • Added quickstart tutorial by @rajch: Follow the steps to get started

Improvements

  • improved error reporting
  • improved auto-traverse performance
  • error checking for duplicate rules

Bug Fixes

  • Fixed stringify error
  • Fixed %namespace error
  • Fixed separate (non-Amalgamated) main() issue

Installation

  • Windows: Copy ycc.exe to anywhere on the PATH
  • OSX: Rename ycc.osx to ycc and copy to anywhere on the PATH
  • Linux: Rename ycc.linux to ycc and copy to anywhere on the PATH

2025-11-002: Patch Release

Choose a tag to compare

@renjipanicker renjipanicker released this 03 Nov 08:38

Features

  • Implemented -t option in generated parser to print matched AST
    • -t2 to print full AST tree
    • -t1 to print AST as a single line S-Expression (for unit tests)
  • Implemented gcc support
  • Implemented --version command line parameter

Improvements

  • Improved unit tests
  • Improved readability of generated code

Bug fixes

  • fixed #line numbering
  • Fixed precedence issue
  • Fixed epsilon issue
  • fixed version number to 0.2.1

Installation

  • Windows: Copy ycc.exe to anywhere on the PATH
  • OSX: Rename ycc.osx to ycc and copy to anywhere on the PATH
  • Linux: Rename ycc.linux to ycc and copy to anywhere on the PATH

2025-11-001

Choose a tag to compare

@renjipanicker renjipanicker released this 01 Nov 20:58

Features

  • Implemented -t option in generated parser to print matched AST
    • -t2 to print full AST tree
    • -t1 to print AST as a single line S-Expression (for unit tests)
  • Implemented gcc support
  • Implemented --version command line parameter

Improvements

  • Improved unit tests
  • Improved readability of generated code

Bug fixes

  • fixed #line numbering
  • Fixed precedence issue
  • Fixed epsilon issue

Installation

  • Windows: Copy ycc.exe to anywhere on the PATH
  • OSX: Rename ycc.osx to ycc and copy to anywhere on the PATH
  • Linux: Rename ycc.linux to ycc and copy to anywhere on the PATH