Package org.antlr.v4.runtime.atn
Class SemanticContext.AND
java.lang.Object
org.antlr.v4.runtime.atn.SemanticContext
org.antlr.v4.runtime.atn.SemanticContext.Operator
org.antlr.v4.runtime.atn.SemanticContext.AND
- Enclosing class:
SemanticContext
A semantic context which is true whenever none of the contained contexts
is false.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.antlr.v4.runtime.atn.SemanticContext
SemanticContext.AND, SemanticContext.Operator, SemanticContext.OR, SemanticContext.PrecedencePredicate, SemanticContext.Predicate
-
Field Summary
FieldsFields inherited from class org.antlr.v4.runtime.atn.SemanticContext
NONE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
eval
(Recognizer<?, ?> parser, RuleContext parserCallStack) For context independent predicates, we evaluate them without a local context (i.e., null context).evalPrecedence
(Recognizer<?, ?> parser, RuleContext parserCallStack) Evaluate the precedence predicates for the context and reduce the result.Gets the operands for the semantic context operator.int
hashCode()
toString()
Methods inherited from class org.antlr.v4.runtime.atn.SemanticContext
and, or
-
Field Details
-
opnds
-
-
Constructor Details
-
AND
-
-
Method Details
-
getOperands
Description copied from class:SemanticContext.Operator
Gets the operands for the semantic context operator.- Specified by:
getOperands
in classSemanticContext.Operator
- Returns:
- a collection of
SemanticContext
operands for the operator.
-
equals
-
hashCode
public int hashCode() -
eval
For context independent predicates, we evaluate them without a local context (i.e., null context). That way, we can evaluate them without having to create proper rule-specific context during prediction (as opposed to the parser, which creates them naturally). In a practical sense, this avoids a cast exception from RuleContext to myruleContext.For context dependent predicates, we must pass in a local context so that references such as $arg evaluate properly as _localctx.arg. We only capture context dependent predicates in the context in which we begin prediction, so we passed in the outer context here in case of context dependent predicate evaluation.
The evaluation of predicates by this context is short-circuiting, but unordered.
- Specified by:
eval
in classSemanticContext
-
evalPrecedence
Description copied from class:SemanticContext
Evaluate the precedence predicates for the context and reduce the result.- Overrides:
evalPrecedence
in classSemanticContext
- Parameters:
parser
- The parser instance.parserCallStack
-- Returns:
- The simplified semantic context after precedence predicates are
evaluated, which will be one of the following values.
SemanticContext.NONE
: if the predicate simplifies totrue
after precedence predicates are evaluated.null
: if the predicate simplifies tofalse
after precedence predicates are evaluated.this
: if the semantic context is not changed as a result of precedence predicate evaluation.- A non-
null
SemanticContext
: the new simplified semantic context after precedence predicates are evaluated.
-
toString
-