CHANGES FOR 2.7.4 C# CHANGES By Anthony Oguntimehin, Kunle Odutola & Micheal Jordan - Changes that affect Lexers a. Added TokenCreator abstract class. It's name explains it's intent b. Generated Lexers now use TokenCreators to create Tokens. If you are using a custom Token class, consider creating a custom TokenCreator. If none is available, your Lexer will default to doing what it's always done and create your token by reflection anyway. c. CommonToken and CommonHiddenStreamToken have sample TokenCreator nested classes you can adapt ;-) d. Tell your lexer to use your TokenCreator thingamajig with this method: setTokenCreator(TokenCreator) e. Buffer handling has been tweaked. Lexing should hop along [even more] nicely. - Changes that affect Parsers and TreeParsers a. Added ASTNodeCreator abstract class. It's name explains it's intent b. ASTFactory can now use ASTNodeCreators to create AST nodes. If you use a custom AST class or, you are using hetero-ASTs, you should either: 1) develop a custom ASTFactory (recommended if you have many custom ASTs) 2) develop ASTNodeCreators to customize the default ASTFactory cheaply 3) Do nothing and ASTFactory will do what it's always done and create your AST nodes by reflection anyway. c. CommonAST and CommonASTWithHiddenToken have sample ASTNodeCreator nested classes you can adapt ;-) d. Make your ASTFactory use your new-fangled ASTNodeCreator gizmo with these methods: 1) setASTNodeCreator(ASTNodeCreator) -- set "default" creator 2) setTokenTypeASTNodeCreator(int, ASTNodeCreator) -- set creator for specified ID - makefile.mono updated. C++ CHANGES - Fixed content comments for lexer bitsets. - Removed superfluous namespace #ifdef for MSVC7+ from config.hpp - Fixed configure build for missing files with '$' in the name in the generated jar. - Rewrote handling of strings coming from ANTLR's lexer. Added a dequote and requote step. This should fix the last sign extension problems in code generated for match/matchRange and creative quoting/escaping by the user. - Barf on multibyte strings coming from the ANTLR lexer. - fixes the ASTFactory initialization code generated for a parser/treewalker. - missing inner classes from the rewrite engine in the jar file. (for autoconf build) - When I first 'fixed' getMessage in NoViableAltForCharException I seemed to have missed Integer.toHexString this should fix the problem (incorrect hexvalues getting printed) Anakreon reported on the list. - I hope the definite fix for the sign extension problems that sometimes crop up. (the one the chinese (?) guy found) Had to build a very thorough unquoter from java string to C++ string/char. - The makefile issue with the dollar signs. - The #define removal for MSVC 7.1 somewhere in the config.hpp (nobrainer fix) - Cosmetic fix for lexer bitset contents dumping into a comment.