Class SemanticContext

  • Direct Known Subclasses:
    SemanticContext.CommutativePredicate, SemanticContext.NOT, SemanticContext.Predicate

    public abstract class SemanticContext
    extends java.lang.Object
    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.
    • Field Detail

      • EMPTY_SEMANTIC_CONTEXT

        public static final SemanticContext EMPTY_SEMANTIC_CONTEXT
        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.
    • Constructor Detail

      • SemanticContext

        public SemanticContext()