Class LineNumberCalculator

java.lang.Object
org.ek9lang.cli.LineNumberCalculator

public final class LineNumberCalculator extends Object
Calculates line number translations between buffer indices and actual source lines. Buffer indices are 1-based and refer to user-entered lines only. Actual line numbers include boilerplate (module header, section declarations).

Source structure:

Line 1: #!ek9
Line 2: defines module repl
Line 3: (blank)
Line 4+: Section headers and content
  • Constructor Details

  • Method Details

    • bufferToActual

      public int bufferToActual(int bufferIndex)
      Convert a buffer index (1-based user line) to actual source line number.
      Parameters:
      bufferIndex - The 1-based buffer index
      Returns:
      The actual line number, or -1 if not found
    • actualToBuffer

      public int actualToBuffer(int actualLineNumber)
      Convert an actual source line number to buffer index.
      Parameters:
      actualLineNumber - The actual line number in assembled source
      Returns:
      The buffer index, or -1 if not a user line