| java.lang.Object org.antlr.analysis.SemanticContext
SemanticContext | abstract public class SemanticContext (Code) | | A binary tree structure used to record the semantic context in which
an NFA configuration is valid. It's either a single predicate or
a tree representing an operation tree such as: p1&&p2 or p1||p2.
For NFA o-p1->o-p2->o, create tree AND(p1,p2).
For NFA (1)-p1->(2)
| ^
| |
(3)-p2----
we will have to combine p1 and p2 into DFA state as we will be
adding NFA configurations for state 2 with two predicates p1,p2.
So, set context for combined NFA config for state 2: OR(p1,p2).
I have scoped the AND, NOT, OR, and Predicate subclasses of
SemanticContext within the scope of this outer class.
July 7, 2006: TJP altered OR to be set of operands. the Binary tree
made it really hard to reduce complicated || sequences to their minimum.
Got huge repeated || conditions.
|
Inner Class :public static class TruePredicate extends Predicate | |
Field Summary | |
final public static SemanticContext | EMPTY_SEMANTIC_CONTEXT Create a default value for the semantic context shared among all
NFAConfigurations that do not have an actual semantic context. |
EMPTY_SEMANTIC_CONTEXT | final public static SemanticContext EMPTY_SEMANTIC_CONTEXT(Code) | | Create a default value for the semantic context shared among all
NFAConfigurations that do not have an actual semantic context.
This prevents lots of if!=null type checks all over; it represents
just an empty set of predicates.
|
genExpr | abstract public StringTemplate genExpr(CodeGenerator generator, StringTemplateGroup templates, DFA dfa)(Code) | | Generate an expression that will evaluate the semantic context,
given a set of output templates.
|
getGatedPredicateContext | abstract public SemanticContext getGatedPredicateContext()(Code) | | Given a semantic context expression tree, return a tree with all
nongated predicates set to true and then reduced. So p&&(q||r) would
return p&&r if q is nongated but p and r are gated.
|
isSyntacticPredicate | abstract public boolean isSyntacticPredicate()(Code) | | |
trackUseOfSyntacticPredicates | public void trackUseOfSyntacticPredicates(Grammar g)(Code) | | Notify the indicated grammar of any syn preds used within this context
|
|
|