JFlex
Class PackEmitter

java.lang.Object
  extended by JFlex.PackEmitter
Direct Known Subclasses:
CountEmitter, HiLowEmitter

public abstract class PackEmitter
extends java.lang.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();


Field Summary
protected  int chunks
          number of existing string chunks
protected  java.lang.String name
          name of the generated array (mixed case, no yy prefix)
protected  java.lang.StringBuffer out
          output buffer
 
Constructor Summary
PackEmitter(java.lang.String name)
          Create new emitter for an array.
 
Method Summary
 void breaks()
          Execute line/chunk break if necessary.
protected  java.lang.String constName()
          Convert array name into all uppercase internal scanner constant name.
 void emitInit()
          Emit declaration of decoded member and open first chunk.
 void emitUC(int i)
          Emit single unicode character.
abstract  void emitUnpack()
          Emit the unpacking code.
protected  void nl()
          emit newline
protected  void println(java.lang.String s)
           
 java.lang.String toString()
          Return current output buffer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

name

protected java.lang.String name
name of the generated array (mixed case, no yy prefix)


out

protected java.lang.StringBuffer out
output buffer


chunks

protected int chunks
number of existing string chunks

Constructor Detail

PackEmitter

public PackEmitter(java.lang.String name)
Create new emitter for an array.

Parameters:
name - the name of the generated array
Method Detail

constName

protected java.lang.String constName()
Convert array name into all uppercase internal scanner constant name.

Returns:
name as a internal constant name.
See Also:
name

toString

public java.lang.String toString()
Return current output buffer.

Overrides:
toString in class java.lang.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(java.lang.String s)