com.sun.msv.reader
Class RunAwayExpressionChecker

java.lang.Object
  extended by com.sun.msv.reader.RunAwayExpressionChecker
All Implemented Interfaces:
ExpressionVisitorVoid

public class RunAwayExpressionChecker
extends Object
implements ExpressionVisitorVoid

makes sure that the expression does not run away. "run-away" expressions are expressions like this. <hedgeRule label="foo" /> <hedgeRef label="foo" /> </hedgeRule> Apparently, those expressions cannot be expressed in string regular expression. Therefore run-away expressions are prohibited in both RELAX and TREX.

Author:
Kohsuke KAWAGUCHI

Field Summary
protected static RuntimeException eureka
          this exception is thrown to abort check when a error is found.
 
Constructor Summary
protected RunAwayExpressionChecker(GrammarReader reader)
           
 
Method Summary
protected  void binaryVisit(BinaryExp exp)
           
static void check(GrammarReader reader, Expression exp)
           
 void onAnyString()
           
 void onAttribute(AttributeExp exp)
           
 void onChoice(ChoiceExp exp)
           
 void onConcur(ConcurExp exp)
           
 void onData(DataExp exp)
           
 void onElement(ElementExp exp)
           
 void onEpsilon()
           
 void onInterleave(InterleaveExp exp)
           
 void onList(ListExp exp)
           
 void onMixed(MixedExp exp)
           
 void onNullSet()
           
 void onOneOrMore(OneOrMoreExp exp)
           
 void onOther(OtherExp exp)
           
 void onRef(ReferenceExp exp)
           
 void onSequence(SequenceExp exp)
           
 void onValue(ValueExp exp)
           
protected  void unaryVisit(UnaryExp exp)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

eureka

protected static final RuntimeException eureka
this exception is thrown to abort check when a error is found.

Constructor Detail

RunAwayExpressionChecker

protected RunAwayExpressionChecker(GrammarReader reader)
Method Detail

check

public static void check(GrammarReader reader,
                         Expression exp)

onAttribute

public void onAttribute(AttributeExp exp)
Specified by:
onAttribute in interface ExpressionVisitorVoid

onConcur

public void onConcur(ConcurExp exp)
Specified by:
onConcur in interface ExpressionVisitorVoid

onInterleave

public void onInterleave(InterleaveExp exp)
Specified by:
onInterleave in interface ExpressionVisitorVoid

onSequence

public void onSequence(SequenceExp exp)
Specified by:
onSequence in interface ExpressionVisitorVoid

onChoice

public void onChoice(ChoiceExp exp)
Specified by:
onChoice in interface ExpressionVisitorVoid

onOneOrMore

public void onOneOrMore(OneOrMoreExp exp)
Specified by:
onOneOrMore in interface ExpressionVisitorVoid

onMixed

public void onMixed(MixedExp exp)
Specified by:
onMixed in interface ExpressionVisitorVoid

onList

public void onList(ListExp exp)
Specified by:
onList in interface ExpressionVisitorVoid

onEpsilon

public void onEpsilon()
Specified by:
onEpsilon in interface ExpressionVisitorVoid

onNullSet

public void onNullSet()
Specified by:
onNullSet in interface ExpressionVisitorVoid

onAnyString

public void onAnyString()
Specified by:
onAnyString in interface ExpressionVisitorVoid

onData

public void onData(DataExp exp)
Specified by:
onData in interface ExpressionVisitorVoid

onValue

public void onValue(ValueExp exp)
Specified by:
onValue in interface ExpressionVisitorVoid

binaryVisit

protected final void binaryVisit(BinaryExp exp)

unaryVisit

protected final void unaryVisit(UnaryExp exp)

onRef

public void onRef(ReferenceExp exp)
Specified by:
onRef in interface ExpressionVisitorVoid

onOther

public void onOther(OtherExp exp)
Specified by:
onOther in interface ExpressionVisitorVoid

onElement

public void onElement(ElementExp exp)
Specified by:
onElement in interface ExpressionVisitorVoid


MSV