Release Notes

1.3.0 (2025-09-12)

Fix a #line directive handling

Requirements to run

  • JDK 11

Requirements to build

  • JDK 17

New

  • Add Tokens.isKeywordOrIdentifier(Token)
  • Add Tokens.reparseLineDigitsAndFilename()
  • Add TokenType.DIGITS

Fixed

  • Fix #line directive handling

Changed

  • Add test cases for the Tokens class

1.2.0 (2025-09-07)

Enhance Source Filename Handling and Improve Parser API

Requirements to run

  • JDK 11

Requirements to build

  • JDK 17

New

  • Add the following methods to Tokens class:
    • reparseIncludeFilename()
    • normalizeToken()
  • Add SourceChar#getFilename().
  • Add LexicalParser#getFilename().
  • Add new factory methods of(Reader, String) and of(Reader, String, Collection) to LexicalParser interface.

Changed

  • Deprecate SourceChar.STATIC_EOF.
  • Change a new Eof instance to be created for each source file, carrying the appropriate filename.
  • Change visibility of Tokens.isDelimiterOrComment() to public.

1.1.0 (2025-09-02)

Add utility class for token operations and bug fixes

Requirements to run

  • JDK 11

Requirements to build

  • JDK 17

New

  • Add a new utility class Tokens, which provides operations such as token concatenation and stringizing.
  • Add new test classes such as TokenTest and TokensTest.
  • Add default methods isValue() and isType() to the Token interface.
  • Add the getReservedWords() method to LexicalParser for retrieving reserved words.

Removed

  • Removed unnecessary JavadocParagraph Checkstyle module.
  • Cleaned up outdated dependencies and unused code fragments.

Changed

  • Upgrade Java version from 14 to 17 for the test project.
  • Update Gradle from 7.2 to 9.0.0.
  • Update dependency versions (JUnit, Hamcrest, Checkstyle, etc.).
  • Refactor classes such as DefaultLexicalParser and Transcriber, and clarified token acquisition logic.
  • Improve documentation in README.md to better reflect the current implementation.

Fixed

  • Fix missing static/final modifiers in several internal classes and constants to enhance visibility and design.
  • Correct typos and errors in comments and documentation.
  • Add The undef preprocessor directive was missing from the PP_DIRECTIVE_NAMES set, causing incomplete coverage of C preprocessor directives.
  • Fix certain specifications in TokenType and parser logic (e.g., clarified handling and type determination of # and ## tokens).
  • Potential fix for code scanning alert no. 1: Workflow does not contain permissions.

1.0 (2022-01-25)

Initial release

Requirements to run

  • JDK 11

Requirements to build

  • JDK 17

New

  • Add a lexical parser with the features of unifying newline characters, trigraph replacement, line splicing, and tokenization.