Package jflex
Class PackEmitter
- java.lang.Object
-
- jflex.PackEmitter
-
- Direct Known Subclasses:
CountEmitter
,HiLowEmitter
public abstract class PackEmitter extends java.lang.Object
Encodesint
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.7.0
-
-
Field Summary
Fields Modifier and Type Field Description protected int
chunks
number of existing string chunksprivate static java.lang.String
indent
indent for string linesprivate int
linepos
position in the current lineprivate static int
maxEntries
max number of entries per lineprivate static int
maxSize
maximum size of chunksprotected java.lang.String
name
name of the generated array (mixed case, no yy prefix)protected java.lang.StringBuilder
out
output bufferprivate int
UTF8Length
current UTF8 length of generated string in current chunk
-
Constructor Summary
Constructors Constructor Description PackEmitter(java.lang.String name)
Create new emitter for an array.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description 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.private void
nextChunk()
emit next chunkprotected void
nl()
emit newlineprotected void
println(java.lang.String s)
println.private void
printUC(char c)
Append a unicode/octal escaped character toout
buffer.java.lang.String
toString()
Return current output buffer.private int
UTF8Length(int value)
Calculates the number of bytes a Unicode character would have in UTF8 representation in a class file.
-
-
-
Field Detail
-
name
protected java.lang.String name
name of the generated array (mixed case, no yy prefix)
-
UTF8Length
private int UTF8Length
current UTF8 length of generated string in current chunk
-
linepos
private int linepos
position in the current line
-
maxEntries
private static final int maxEntries
max number of entries per line- See Also:
- Constant Field Values
-
out
protected java.lang.StringBuilder out
output buffer
-
chunks
protected int chunks
number of existing string chunks
-
maxSize
private static final int maxSize
maximum size of chunks- See Also:
- Constant Field Values
-
indent
private static final java.lang.String indent
indent for string lines- See Also:
- Constant Field Values
-
-
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 classjava.lang.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.
-
nextChunk
private void nextChunk()
emit next chunk
-
nl
protected void nl()
emit newline
-
printUC
private void printUC(char c)
Append a unicode/octal escaped character toout
buffer.- Parameters:
c
- the character to append
-
UTF8Length
private int UTF8Length(int value)
Calculates the number of bytes a Unicode character would have in UTF8 representation in a class file.- Parameters:
value
- the char code of the Unicode character- Returns:
- length of UTF8 representation.
-
println
protected void println(java.lang.String s)
println.- Parameters:
s
- aString
object.
-
-