Class SemanticContext.Predicate

    • Field Detail

      • predicateAST

        public GrammarAST predicateAST
        The AST node in tree created from the grammar holding the predicate
      • gated

        protected boolean gated
        Is this a {...}?=> gating predicate or a normal disambiguating {..}? If any predicate in expression is gated, then expression is considered gated. The simple Predicate object's predicate AST's type is used to set gated to true if type==GATED_SEMPRED.
      • synpred

        protected boolean synpred
        syntactic predicates are converted to semantic predicates but synpreds are generated slightly differently.
      • constantValue

        protected int constantValue
        sometimes predicates are known to be true or false; we need a way to represent this without resorting to a target language value like true or TRUE.
    • Method Detail

      • equals

        public boolean equals​(java.lang.Object o)
        Two predicates are the same if they are literally the same text rather than same node in the grammar's AST. Or, if they have the same constant value, return equal. As of July 2006 I'm not sure these are needed.
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • genExpr

        public org.stringtemplate.v4.ST genExpr​(CodeGenerator generator,
                                                org.stringtemplate.v4.STGroup templates,
                                                DFA dfa)
        Description copied from class: SemanticContext
        Generate an expression that will evaluate the semantic context, given a set of output templates.
        Specified by:
        genExpr in class SemanticContext
      • getGatedPredicateContext

        public SemanticContext getGatedPredicateContext()
        Description copied from class: SemanticContext
        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.
        Specified by:
        getGatedPredicateContext in class SemanticContext
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object