Class 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.1
    Author:
    Gerwin Klein
    • Field Detail

      • name

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

        protected int chunks
        number of existing string chunks
    • Constructor Detail

      • PackEmitter

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

      • constName

        protected String constName()
        Convert array name into all uppercase internal scanner constant name.
        Returns:
        name as a internal constant name.
        See Also:
        name
      • 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.