Class PackEmitter

java.lang.Object
jflex.generator.PackEmitter
Direct Known Subclasses:
CountEmitter, HiLowEmitter

public abstract class PackEmitter extends Object
Encodes int arrays as strings.

Also splits up strings when longer than 64K in UTF8 encoding. Subclasses emit unpacking code.

Usage protocol: p.emitInit();
for each data: p.emitData(data);
p.emitUnpack();

Version:
JFlex 1.8.2
Author:
Gerwin Klein
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int
    number of existing string chunks
    protected String
    name of the generated array (mixed case, no yy prefix)
    protected StringBuilder
    output buffer
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create new emitter for an array.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Execute line/chunk break if necessary.
    protected String
    Convert array name into all uppercase internal scanner constant name.
    void
    Emit declaration of decoded member and open first chunk.
    void
    emitUC(int i)
    Emit single unicode character.
    abstract void
    Emit the unpacking code.
    protected void
    nl()
    emit newline
    protected void
    println.
    Return current output buffer.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • name

      protected String name
      name of the generated array (mixed case, no yy prefix)
    • out

      protected StringBuilder out
      output buffer
    • chunks

      protected int chunks
      number of existing string chunks
  • Constructor Details

    • PackEmitter

      public PackEmitter(String name)
      Create new emitter for an array.
      Parameters:
      name - the name of the generated array
  • Method Details

    • constName

      protected String constName()
      Convert array name into all uppercase internal scanner constant name.
      Returns:
      name as a internal constant name.
      See Also:
    • toString

      public String toString()
      Return current output buffer.
      Overrides:
      toString in class Object
      Returns:
      a String object.
    • emitInit

      public void emitInit()
      Emit declaration of decoded member and open first chunk.
    • emitUC

      public void emitUC(int i)
      Emit single unicode character.

      Updates length, position, etc.

      Parameters:
      i - the character to emit.
    • breaks

      public void breaks()
      Execute line/chunk break if necessary. Leave space for at least two chars.
    • emitUnpack

      public abstract void emitUnpack()
      Emit the unpacking code.
    • nl

      protected void nl()
      emit newline
    • println

      protected void println(String s)
      println.
      Parameters:
      s - a String object.