Package com.sun.msv.reader
Class RunAwayExpressionChecker
java.lang.Object
com.sun.msv.reader.RunAwayExpressionChecker
- All Implemented Interfaces:
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Set
Expressions which are used as the content model of current element.protected static final RuntimeException
this exception is thrown to abort check when a error is found.private final GrammarReader
private Stack
visited Expressions.private final Set
set of ElementExps which are already confirmed as being not a run-away exp.private Stack
Queue of unchecked element exps. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final void
binaryVisit
(BinaryExp exp) private void
check
(Expression exp) static void
check
(GrammarReader reader, Expression exp) private void
enter
(Expression exp) private void
leave()
void
void
onAttribute
(AttributeExp exp) void
void
void
void
onElement
(ElementExp exp) void
void
void
void
void
void
onOneOrMore
(OneOrMoreExp exp) void
void
onRef
(ReferenceExp exp) void
onSequence
(SequenceExp exp) void
protected final void
unaryVisit
(UnaryExp exp)
-
Field Details
-
eureka
this exception is thrown to abort check when a error is found. -
testedExps
set of ElementExps which are already confirmed as being not a run-away exp. -
contentModel
Expressions which are used as the content model of current element. -
refStack
visited Expressions. this information is useful for the user to figure out where did they make a mistake. -
unprocessedElementExps
Queue of unchecked element exps. -
reader
-
-
Constructor Details
-
RunAwayExpressionChecker
-
-
Method Details
-
check
-
check
-
onAttribute
- Specified by:
onAttribute
in interfaceExpressionVisitorVoid
-
onConcur
- Specified by:
onConcur
in interfaceExpressionVisitorVoid
-
onInterleave
- Specified by:
onInterleave
in interfaceExpressionVisitorVoid
-
onSequence
- Specified by:
onSequence
in interfaceExpressionVisitorVoid
-
onChoice
- Specified by:
onChoice
in interfaceExpressionVisitorVoid
-
onOneOrMore
- Specified by:
onOneOrMore
in interfaceExpressionVisitorVoid
-
onMixed
- Specified by:
onMixed
in interfaceExpressionVisitorVoid
-
onList
- Specified by:
onList
in interfaceExpressionVisitorVoid
-
onEpsilon
public void onEpsilon()- Specified by:
onEpsilon
in interfaceExpressionVisitorVoid
-
onNullSet
public void onNullSet()- Specified by:
onNullSet
in interfaceExpressionVisitorVoid
-
onAnyString
public void onAnyString()- Specified by:
onAnyString
in interfaceExpressionVisitorVoid
-
onData
- Specified by:
onData
in interfaceExpressionVisitorVoid
-
onValue
- Specified by:
onValue
in interfaceExpressionVisitorVoid
-
binaryVisit
-
unaryVisit
-
enter
-
leave
private void leave() -
onRef
- Specified by:
onRef
in interfaceExpressionVisitorVoid
-
onOther
- Specified by:
onOther
in interfaceExpressionVisitorVoid
-
onElement
- Specified by:
onElement
in interfaceExpressionVisitorVoid
-