Skip to content

Releases: IrisShaders/glsl-transformer

v1.0.0-pre12 - Grouped Transformation and ASTTransformer Abstraction

17 Aug 03:31
4c9e926
Compare
Choose a tag to compare
  • Refactor ASTTransformer to be abstract and introduce ASTParser
  • Added grouped transformation for transforming sources in batches for cross-source data usage
  • Added more types of AST transformers that can transform in different ways: EnumASTTransformer and TriASTTransformer
  • Changed things on the CST transformer and the base classes
  • Added more transform tests

Meta:

  • Update gradle to 7.5.1
  • Remove vscode settings jdk list

Full Changelog: v1.0.0-pre11...v1.0.0-pre12

v1.0.0-pre11 - Parse Tree Caching and Cleanup

08 Aug 16:06
e0a0f78
Compare
Choose a tag to compare
  • Removed the clone method from the AST node since that approach wasn't going to work
  • Added parse tree caching with CachingParser which the AST transformer uses
  • Cleanup of the AST builder methods and added javadoc to them
  • Removed unused parsing methods
  • Added LRU Cache that is used for the caching parser but this class can also be used externally
  • Cleanup and refactor the performance tests, added a performance test that ensures caching is fast

Full Changelog: v1.0.0-pre10.3...v1.0.0-pre11

v1.0.0-pre10.3 - Improved ASTNode Member Handling, Activity Return Values and Various Fixes

01 Aug 23:38
13b841c
Compare
Choose a tag to compare
  • Initial addition of a clone method to ASTNode. All other nodes have not been implemented yet. (This will be expanded in a future release and improve the performance of expression replacement methods)
  • Change ASTNode to always update the self replacer when setting a parent since the self replacer may change even if the parent stays the same (in-parent move)
  • Refine the condition for discarding an updateParents call to also check that the parent is already set since sometimes detached nodes are updated even if the identity of the node being set doesn't change
  • Added tests that confirm this behavior has changed
  • Added boolean return values indicating if anything happened to all the Root methods that manipulate the tree
  • Added replaceReferenceExpressionsReport that also does this since the base version of this method would be slower if the activity indication is given
  • Fixed getOne in NodeIndex and IdentifierIndex to return null if there is no element instead of throwing
  • Added a test that wraps a function in another function call and then re-inserts it into the tree
  • Added a reprint test for long numbers

Full Changelog: v1.0.0-pre10.2...v1.0.0-pre10.3

v1.0.0-pre10.2 - Simplify Job Parameters

31 Jul 14:23
c508581
Compare
Choose a tag to compare
  • Removed the equals(JobParameters) method in JobParameters to make it easier to implement this class

Full Changelog: v1.0.0-pre10.1...v1.0.0-pre10.2

v1.0.0-pre10.1 - Fix Missing Method for Setting a Parse Token Filter

31 Jul 00:29
739cd55
Compare
Choose a tag to compare
  • After the previous release there was no way to set the parse token filter, that is now fixed.

Full Changelog: v1.0.0-pre10...v1.0.0-pre10.1

v1.0.0-pre10 - Safer Identifier and LiteralExpression Nodes, Cleanup and Tests

31 Jul 00:28
124b9ec
Compare
Choose a tag to compare
  • Added content validation to Identifier
  • Added state validation to LiteralExpression along with methods for manipulating its values safely
  • Added getReferenceExpressions and getAncestors to IdentifierIndex
  • Made identifier renaming more efficient by simply moving the set of identifiers for a given name in the identifier index instead of renaming each instance separately
  • Removed getInternalParser and refactored some CST transformer methods to use parser methods like there are for the AST transformer
  • Fixed whitespace for printing a sequence of selection (if) statements
  • Added a test that demonstrates and tests the AST transformer's ability to do a complex transformation involving the removal of uniform declarations with certain names
  • Renamed some things in tests

Full Changelog: v1.0.0-pre9...v1.0.0-pre10

v1.0.0-pre9 - Partial Version-Dependent Lexing and Grammar fixes

27 Jul 01:00
b59ffec
Compare
Choose a tag to compare
  • Added VersionedGLSLLexer which is the new base class of the Lexer. Using this base class, version-dependent lexing can be performed. By default the most recent version is assumed and no tokens are not recognized.
  • Made the GLSL lexer not recognize some tokens if they were only introduced in later versions. This doesn't apply to all tokens and doesn't take the ES profile into account. This fixes issues where variables or parameters named using future keywords could not be correctly parsed.
  • Changed VersionStatement to use an enum for the GL version that also contains additional information.
  • Changed the order of some parser rules
  • Renamed "boolean" lexer tokens to "logical" lexer tokens
  • Fixed versions in test cases so that the new version parser can work with it
  • Added tests for parsing and matching difficult cases that were fixed in this version

Meta:

  • Added a new test logger
  • Cleaned up build.gradle

Full Changelog: v1.0.0-pre8.1...v1.0.0-pre9

v1.0.0-pre8.1 - AutoHintedMatcher fix

24 Jul 23:55
badbee9
Compare
Choose a tag to compare
Pre-release
  • Fixed AutoHintedMatcher not using node wildcards

Full Changelog: v1.0.0-pre8...v1.0.0-pre8.1

v1.0.0-pre8 - Expanded Node Processing and Match Hinting

24 Jul 23:02
b654ef2
Compare
Choose a tag to compare
  • Added HintedMatcher and AutoHintedMatcher that automatically give Root information about where to find the pattern
  • Added more matcher tests
  • Moved query classes into match and index packages depending on their role
  • Renamed processing methods in Root and added some to use hinted matchers

Full Changelog: v1.0.0-pre7...v1.0.0-pre8

v1.0.0-pre7 - General Refactoring, Better Grouping Expressions and Documentation

23 Jul 17:31
e126ba3
Compare
Choose a tag to compare
  • Refactor ExpressionType to include structural, precedence and associativity information and removed it from the subclasses
  • Refactor StatementType to include structural information and removed it for the subclasses
  • Moved TypeKind inside the BuiltinType enum in which it is exclusively used
  • Changed the AST printer to avoid printing unnecessary grouping expressions, added tests
  • Changed the AST builder to omit unnecessary grouping expressions
  • The AST printer now inserts grouping expressions if the AST's semantics are lost during printing without a grouping expression, added tests
  • Improved construction of the NodeIndex and made the construction of the bucket sets configurable
  • Renamed Root#registerChild to registerNode (same for unregister)
  • Removed unused and unnecessary Matcher methods matchesWide etc
  • Added SuperclassNodeIndex that also indexes the superclasses of nodes so that queries for Expression are possible (at the expensive of more work and memory usage)
  • Added test for NodeIndex and SuperclassNodeIndex
  • Refactored transform assertions in tests
  • Added javadoc to many relevant classes
  • Removed the bad replaceAllExpressions method from Root

Full Changelog: v1.0.0-pre6.1...v1.0.0-pre7