public class RECompiler
extends java.lang.Object
RE,
recompile| Modifier and Type | Class and Description |
|---|---|
(package private) class |
RECompiler.RERange
Local, nested class for maintaining character ranges for character classes.
|
| Modifier and Type | Field and Description |
|---|---|
(package private) int |
bracketMin |
(package private) int |
bracketOpt |
(package private) static int |
bracketUnbounded |
(package private) static int |
ESC_BACKREF |
(package private) static int |
ESC_CLASS |
(package private) static int |
ESC_COMPLEX |
(package private) static int |
ESC_MASK |
(package private) static java.util.Hashtable |
hashPOSIX |
(package private) int |
idx |
(package private) char[] |
instruction |
(package private) int |
len |
(package private) int |
lenInstruction |
(package private) static int |
NODE_NORMAL |
(package private) static int |
NODE_NULLABLE |
(package private) static int |
NODE_TOPLEVEL |
(package private) int |
parens |
(package private) java.lang.String |
pattern |
| Constructor and Description |
|---|
RECompiler()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
(package private) int |
atom()
Absorb an atomic character string.
|
(package private) void |
bracket()
Match bracket {m,n} expression put results in bracket member variables
|
(package private) int |
branch(int[] flags)
Compile body of one branch of an or operator (implements concatenation)
|
(package private) int |
characterClass()
Compile a character class
|
(package private) int |
closure(int[] flags)
Compile a possibly closured terminal
|
REProgram |
compile(java.lang.String pattern)
Compiles a regular expression pattern into a program runnable by the pattern
matcher class 'RE'.
|
(package private) void |
emit(char c)
Emit a single character into the program stream.
|
(package private) void |
ensure(int n)
Ensures that n more characters can fit in the program buffer.
|
(package private) int |
escape()
Match an escape sequence.
|
(package private) int |
expr(int[] flags)
Compile an expression with possible parens around it.
|
(package private) void |
internalError()
Throws a new internal error exception
|
(package private) int |
node(char opcode,
int opdata)
Adds a new node
|
(package private) void |
nodeInsert(char opcode,
int opdata,
int insertAt)
Inserts a node with a given opcode and opdata at insertAt.
|
(package private) void |
setNextOfEnd(int node,
int pointTo)
Appends a node to the end of a node chain
|
(package private) void |
syntaxError(java.lang.String s)
Throws a new syntax error exception
|
(package private) int |
terminal(int[] flags)
Match a terminal node.
|
char[] instruction
int lenInstruction
java.lang.String pattern
int len
int idx
int parens
static final int NODE_NORMAL
static final int NODE_NULLABLE
static final int NODE_TOPLEVEL
static final int ESC_MASK
static final int ESC_BACKREF
static final int ESC_COMPLEX
static final int ESC_CLASS
static final int bracketUnbounded
int bracketMin
int bracketOpt
static final java.util.Hashtable hashPOSIX
public RECompiler()
void ensure(int n)
n - Number of additional characters to ensure will fit.void emit(char c)
c - Character to addvoid nodeInsert(char opcode,
int opdata,
int insertAt)
opcode - Opcode for new nodeopdata - Opdata for new node (only the low 16 bits are currently used)insertAt - Index at which to insert the new node in the programvoid setNextOfEnd(int node,
int pointTo)
node - Start of node chain to traversepointTo - Node to have the tail of the chain point toint node(char opcode,
int opdata)
opcode - Opcode for nodeopdata - Opdata for node (only the low 16 bits are currently used)void internalError()
throws java.lang.Error
java.lang.Error - Thrown in the event of an internal error.void syntaxError(java.lang.String s)
throws RESyntaxException
RESyntaxException - Thrown if the regular expression has invalid syntax.void bracket()
throws RESyntaxException
RESyntaxException - Thrown if the regular expression has invalid syntax.int escape()
throws RESyntaxException
RESyntaxException - Thrown if the regular expression has invalid syntax.int characterClass()
throws RESyntaxException
RESyntaxException - Thrown if the regular expression has invalid syntax.int atom() throws RESyntaxException
RESyntaxException - Thrown if the regular expression has invalid syntax.int terminal(int[] flags)
throws RESyntaxException
flags - FlagsRESyntaxException - Thrown if the regular expression has invalid syntax.int closure(int[] flags)
throws RESyntaxException
flags - Flags passed by referenceRESyntaxException - Thrown if the regular expression has invalid syntax.int branch(int[] flags)
throws RESyntaxException
flags - Flags passed by referenceRESyntaxException - Thrown if the regular expression has invalid syntax.int expr(int[] flags) throws RESyntaxException
flags - Flag value passed by referenceRESyntaxException - Thrown if the regular expression has invalid syntax.public REProgram compile(java.lang.String pattern) throws RESyntaxException
pattern - Regular expression pattern to compile (see RECompiler class
for details).RESyntaxException - Thrown if the regular expression has invalid syntax.RECompiler,
RECopyright © 2001-2007 Apache Software Foundation. All Rights Reserved.