Class AbstractExpressionTreeDiagnostic
java.lang.Object
com.github._1c_syntax.bsl.languageserver.utils.expressiontree.ExpressionTreeVisitor
com.github._1c_syntax.bsl.languageserver.diagnostics.AbstractExpressionTreeDiagnostic
- All Implemented Interfaces:
BSLDiagnostic
- Direct Known Subclasses:
DoubleNegativesDiagnostic, IdenticalExpressionsDiagnostic
public abstract class AbstractExpressionTreeDiagnostic
extends ExpressionTreeVisitor
implements BSLDiagnostic
Диагностика, анализирующая выражения BSL и предоставляющая для этого Expression Tree
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static enumСтратегия по построению дерева выражения на основе выражения AST -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final DiagnosticStorageprotected DocumentContextprotected DiagnosticInfo -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal List<Diagnostic> getDiagnostics(DocumentContext documentContext) getInfo()При входе в выражение вызывается данный метод.voidsetInfo(DiagnosticInfo info) Methods inherited from class ExpressionTreeVisitor
visitAbstractCall, visitBinaryOperation, visitTernaryOperator, visitTopLevelExpression, visitUnaryOperationMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface BSLDiagnostic
configure
-
Field Details
-
info
-
diagnosticStorage
-
documentContext
-
-
Constructor Details
-
AbstractExpressionTreeDiagnostic
public AbstractExpressionTreeDiagnostic()
-
-
Method Details
-
getDiagnostics
- Specified by:
getDiagnosticsin interfaceBSLDiagnostic
-
onExpressionEnter
protected AbstractExpressionTreeDiagnostic.ExpressionVisitorDecision onExpressionEnter(BSLParser.ExpressionContext ctx) При входе в выражение вызывается данный метод. Переопределяя его можно оценить - имеет ли смысл строить дерево выражения, или данное выражение не подходит. Позволяет сократить время на построение дерева, если это не требуется для данного AST.- Parameters:
ctx- - выражение, которое в данный момент посещается.- Returns:
- - флаг дальнейшего поведения. - если надо прекратить обход в глубину и построить Expression Tree на данном выражении - надо вернуть ACCEPT - если надо пройти дальше и посетить дочерние выражения, не затрагивая данное - надо вернуть VISIT_CHILDREN - если надо пропустить выражение, не ходить глубже и не строить Expression Tree - надо вернуть SKIP
-
getInfo
- Specified by:
getInfoin interfaceBSLDiagnostic
-
setInfo
- Specified by:
setInfoin interfaceBSLDiagnostic
-