kmy.regex.compiler
Class RCompiler

java.lang.Object
  |
  +--kmy.regex.tree.RContext
        |
        +--kmy.regex.compiler.RCompiler

public class RCompiler
extends RContext

This class compiles regex tree (RNode) into regex instructions. Regex instructions are represented by calls to corresponding methods of RMachine class.


Field Summary
(package private)  boolean charStarHead
           
(package private) static int CONDJUMP_COMPLEXITY
           
(package private)  RMachine gen
           
(package private) static int MIN_CHAR_LEFT
          Do not generate a check that we have enough characters if we need minimum MIN_CHAR_LEFT chars.
 
Constructor Summary
RCompiler()
           
RCompiler(RMachine gen)
           
 
Method Summary
 void compile(RNode node, java.lang.String name)
           
 java.lang.Object evalRAlt(RAltNode regexAlt)
           
 java.lang.Object evalRAny(RAnyNode regexAny)
           
 java.lang.Object evalRBoundary(RBoundaryNode regexBoundary)
           
 java.lang.Object evalRCharClass(RCharClassNode regexCharClass)
           
 java.lang.Object evalRConst(RConstNode regexConst)
           
 java.lang.Object evalRLookAhead(RLookAheadNode regexLookAhead)
           
 java.lang.Object evalRPick(RPickNode regexPick)
           
 java.lang.Object evalRRepeat(RRepeatNode regexRepeat)
           
 java.lang.Object evalRSubst(RSubstNode regexSubst)
           
private  java.lang.Object evalTail(RNode regex)
           
 void genShiftTable(RConstNode regexConst)
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

MIN_CHAR_LEFT

static final int MIN_CHAR_LEFT
Do not generate a check that we have enough characters if we need minimum MIN_CHAR_LEFT chars.

CONDJUMP_COMPLEXITY

static final int CONDJUMP_COMPLEXITY

gen

RMachine gen

charStarHead

boolean charStarHead
Constructor Detail

RCompiler

public RCompiler()

RCompiler

public RCompiler(RMachine gen)
Method Detail

evalTail

private java.lang.Object evalTail(RNode regex)

genShiftTable

public void genShiftTable(RConstNode regexConst)

evalRConst

public java.lang.Object evalRConst(RConstNode regexConst)
Overrides:
evalRConst in class RContext

evalRCharClass

public java.lang.Object evalRCharClass(RCharClassNode regexCharClass)
Overrides:
evalRCharClass in class RContext

evalRBoundary

public java.lang.Object evalRBoundary(RBoundaryNode regexBoundary)
Overrides:
evalRBoundary in class RContext

evalRAny

public java.lang.Object evalRAny(RAnyNode regexAny)
Overrides:
evalRAny in class RContext

evalRLookAhead

public java.lang.Object evalRLookAhead(RLookAheadNode regexLookAhead)
Overrides:
evalRLookAhead in class RContext

evalRAlt

public java.lang.Object evalRAlt(RAltNode regexAlt)
Overrides:
evalRAlt in class RContext

evalRRepeat

public java.lang.Object evalRRepeat(RRepeatNode regexRepeat)
Overrides:
evalRRepeat in class RContext

evalRPick

public java.lang.Object evalRPick(RPickNode regexPick)
Overrides:
evalRPick in class RContext

evalRSubst

public java.lang.Object evalRSubst(RSubstNode regexSubst)
Overrides:
evalRSubst in class RContext

compile

public void compile(RNode node,
                    java.lang.String name)