Class LiteralExtractor

java.lang.Object
org.ek9lang.compiler.phase5.flow.LiteralExtractor

public final class LiteralExtractor extends Object
Extracts constant values from EK9 AST literal nodes.

Converts ANTLR parse tree literal contexts into ConstantValue instances for the value tracking analyzer. Supports integer, boolean, string, float, character, date, time, datetime, and millisecond literals.

The EK9 grammar uses labeled alternatives for the literal rule, so the concrete context types are subclasses of LiteralContext (IntegerLiteralContext, etc.).

  • Constructor Details

    • LiteralExtractor

      public LiteralExtractor()
  • Method Details

    • extractFromAssignment

      public ConstantValue extractFromAssignment(EK9Parser.AssignmentExpressionContext assignExpr)
      Extract a constant value from an assignment expression context.

      Handles both simple literals (5) and negated literals (-5).

      Parameters:
      assignExpr - the assignment expression to examine
      Returns:
      a ConstantValue if the expression is a literal, null otherwise
    • extractFromLiteral

      public ConstantValue extractFromLiteral(EK9Parser.LiteralContext literal)
      Extract a constant value directly from a literal context.
    • extractFromExpression

      public ConstantValue extractFromExpression(EK9Parser.ExpressionContext expr)
      Extract a constant value from an expression context.