GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — `boolean record = true;` causes a syntax error even thought it is valid Java · Issue #1241 · processing/processing4

boolean record = true; causes a syntax error even thought it is valid Java #1241

New issue
Copy link
New issue
Copy link
Open
Open
boolean record = true; causes a syntax error even thought it is valid Java#1241
Copy link
Assignees
catilac
Labels
bugSomething isn't workingSomething isn't working

Description

@Stefterv
Stefterv
opened on Sep 12, 2025
Issue body actions

Most appropriate sub-area of Processing 4?

PDE

Processing version

main

Operating system

macOS/Windows/Linux?

Bug description

Adding boolean record = true; anywhere to the sketch causes the preprocess to emit an Error even though it is valid Java.

This is what I know so far:

  • record is a java keyword
  • changing it to boolean record1 = true; suppresses the error
  • I tried changing the antlr version back to what it was defined in the Ant build system but that didn't help either

Steps to reproduce this

  1. Add boolean record = true; to a sketch

  2. See the preprocessor be unhappy

snippet

boolean record = true;

void setup() {

}

void draw() {
 
}

Additional context

No response

Would you like to work on the issue?

Yes, I’d like to help with this

Activity

  1. Stefterv
    assigned
    Stefterv
    and
    catilac
    on Sep 12, 2025
  2. Stefterv
    added
    bugSomething isn't workingSomething isn't working
    on Sep 12, 2025
  3. Stefterv commented on Sep 12, 2025

    @Stefterv
    Stefterv
    on Sep 12, 2025
    MemberAuthor
    More actions

    processing4/java/preprocessor/src/main/antlr/JavaLexer.g4

    Lines 109 to 110 in 275d789

    // Records
    RECORD: 'record';

    Here it is defined in the Lexer

    and here most of it in the Parser

    processing4/java/preprocessor/src/main/antlr/JavaParser.g4

    Lines 443 to 463 in 275d789

    // RECORDS - Java 17
    recordDeclaration
    : RECORD identifier typeParameters? recordHeader (IMPLEMENTS typeList)? recordBody
    ;
    recordHeader
    : '(' recordComponentList? ')'
    ;
    recordComponentList
    : recordComponent (',' recordComponent)*
    ;
    recordComponent
    : typeType identifier
    ;
    recordBody
    : '{' (classBodyDeclaration | compactConstructorDeclaration)* '}'
    ;

    Changing the string in the top does make the error go away but that of course moves it to a separate keyword

  4. catilac commented on Sep 12, 2025

    @catilac
    catilac
    on Sep 12, 2025
    Collaborator
    More actions

    @Stefterv Oh I will explore this! 🤓

  5. Stefterv commented on Sep 12, 2025

    @Stefterv
    Stefterv
    on Sep 12, 2025
    MemberAuthor
    More actions

    Cool, the antlr stuff has been an antler (pun intended) in my side for a while so it'd be nice to share this :)

    Reacted by Moon
  6. Stefterv
    removed their assignment
    on Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

  • @catilac
    catilac

Labels

bugSomething isn't workingSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    You are visitor 01402520 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.