Skip to content

Refactor AST nodes and add support for user defined modifier handler functions - #244

Merged
sarmadka merged 23 commits into
Alusus:masterfrom
sarmadka:master
Oct 9, 2026
Merged

sarmadka merged 23 commits into
Alusus:masterfrom
sarmadka:master

Conversation

@sarmadka

@sarmadka sarmadka commented Oct 1, 2026 •

Copy link
Copy Markdown
Member
  • Refactored the Core to clean up data class hierarchies
    • Moved Core::Data::Ast to Core::Ast.
    • Moved Core::Data::Grammar to Core::Grammar.
    • Removed the Core::Data namespace.
    • Inherited all AST node classes from Core::Ast::Node.
    • Inherited all grammar node classes from Core::Grammar::Node.
    • Moved the functionality of MetaHaving into the Core::Ast::Node class and removed the interface.
    • Moved the functionality of Printable into the Core::Ast::Node class and removed the interface.
  • Fixed a bug that results in memory corruption due to double deallocation of memory when TI basic types are destructed on the Alusus side.
  • Apply optimizations on offline builds
  • Replaced the modifier translations in the grammar with modifier actions, which provides more standard operations than just translations.
  • Moved the modifiers array from Definition and GenericCommand into Node.
  • Added metadata to Node to hold various metadata for the Node, while the modifiers array is kept for unprocessed modifiers.
  • Made the statement's parsing handler capture any unprocessed modifier and store it on the Node.
  • Enabled the user to define custom functions for handling custom modifiers during preprocessing.
  • Treat custom modifiers with no matching functions as errors.
  • Added Spp.astMgr.addPossiblyMergeableElement.
  • Added metadata functions to Nod in Alusus side.
  • Added Containing.findElementIndex.
  • Enabled searching by meatadata in SeekerExtension.
  • Made few fixes to Arabic element names.
  • Added SppMgr.getStringsFromStringParams
  • Add a command line option for turning optimization layer on or off.
  • Enabled requesting optimized code when generating offline builds.
  • Fixed passing and returning structs of up to 16 bytes by value to make it compatible with C ABI, which allows users to use any C library directly without the need to reinterpret small structures.

* Moved Core::Data::Ast to Core::Ast.
* Moved Core::Data::Grammar to Core::Grammar.
* Removed the Core::Data namespace.
* Inherited all AST node classes from Core::Ast::Node.
* Inherited all grammar node classes from Core::Grammar::Node.
Fixed a bug that results in memory corruption due to
double deallocation of memory when TI basic types
are destructed on the Alusus side.
Moved the functionality of MetaHaving into the
Core::Ast::Node class and removed the interface.
Moved the functionality of Printable into the
Core::Ast::Node class and removed the interface.
* Replaced the modifier translations in the grammar
  with modifier actions, which provides more standard
  operations than just translations.
* Moved the modifiers array from Definition and
  GenericCommand into Node.
* Added metadata to Node to hold various metadata
  for the Node, while the modifiers array is kept for
  unprocessed modifiers.
* Made the statement's parsing handler capture any
  unprocessed modifier and store it on the Node.
* Enabled the user to define custom functions for handling
  custom modifiers during preprocessing.
* Treat custom modifiers with no matching functions as
  errors.
* Added Spp.astMgr.addPossiblyMergeableElement.
* Added metadata functions to `Nod` in Alusus side.
* Added Containing.findElementIndex.
* Enabled searching by meatadata in SeekerExtension.
* Made few fixes to Arabic element names.
* Updated documentations.
* Changed the Arabic names of a couple of functions in the
  Time module.
* Updated the documentation and the changelogs.
* Fixed failing tests.
* Fixed issue with compilation failing silently when pre-
  processing fails.
* Fixed missing custom modifier handlers in Srl.
* Fixed dependency on `use Srl` in `AstMgr`.
* Added `SppMgr.getStringsFromStringParams`
* Add a command line option for turning optimization
  layer on or off.
* Enabled requesting optimized code when generating
  offline builds.
Fixed passing and returning structs of up to 16 bytes
by value to make it compatible with C ABI, which
allows users to use any C library directly without the
need to reinterpret small structures.
@sarmadka
sarmadka merged commit 7350140 into Alusus:master Oct 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant