Long und Float Literals nicht implementiert #303

Closed
opened 2024-03-22 19:57:49 +00:00 by i21023 · 0 comments
Collaborator

Aktuell funktionieren Long und Float Literals in JavaTX nicht. Sie werden zwar vom Parser akzeptiert, dann aber wohl nicht richtig weiter verarbeitet. Im Fall vom Long Literal fliegt folgende Exception: Exception in thread "main" java.lang.NumberFormatException: For input string: "10L" . Hier scheint aber nicht mal die Grammatik das LongLiteral zu erkennen, stattdessen wird es als IntegerLiteral mit Wert 10L eingelesen.

Beispiel:

import java.lang.Long;
class Foo{
    Long a = 10L;
}

Quellcode


Screenshot_20240322_205213
Antlr Baum


Das Float Literal scheint etwas weiter implementiert zu sein (hier erkennt die Antlr Grammatik dass es sich um ein floatLiteral handelt), scheitert dann allerdings beim Typinferenz Algorithmus.

Beispiel:

import java.lang.Float;

class Foo{
    Float b = 10.0F;
}
Exception in thread "main" de.dhbwstuttgart.exceptions.TypeinferenceException: Unresolved constraints: [[(java.lang.Double <. java.lang.Float, )@4 in Foo.java]]
Aktuell funktionieren Long und Float Literals in JavaTX nicht. Sie werden zwar vom Parser akzeptiert, dann aber wohl nicht richtig weiter verarbeitet. Im Fall vom Long Literal fliegt folgende Exception: `Exception in thread "main" java.lang.NumberFormatException: For input string: "10L" `. Hier scheint aber nicht mal die Grammatik das LongLiteral zu erkennen, stattdessen wird es als IntegerLiteral mit Wert 10L eingelesen. **Beispiel:** ```java import java.lang.Long; class Foo{ Long a = 10L; } ``` *Quellcode* \ \ ![Screenshot_20240322_205213](/attachments/e33226b7-deab-4eb0-a225-f77d444b2cc1) *Antlr Baum* ___ Das Float Literal scheint etwas weiter implementiert zu sein (hier erkennt die Antlr Grammatik dass es sich um ein floatLiteral handelt), scheitert dann allerdings beim Typinferenz Algorithmus. **Beispiel:** ```java import java.lang.Float; class Foo{ Float b = 10.0F; } ``` ``` Exception in thread "main" de.dhbwstuttgart.exceptions.TypeinferenceException: Unresolved constraints: [[(java.lang.Double <. java.lang.Float, )@4 in Foo.java]] ```
dholle referenced this issue from a commit 2024-03-25 14:10:53 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: JavaTX/JavaCompilerCore#303
No description provided.