Class AbstractCfgVisitor
java.lang.Object
com.github._1c_syntax.bsl.languageserver.cfg.AbstractCfgVisitor
Абстрактный класс обхода графа управления. Переопределяйте методы-визиторы для обхода
конкретных узлов графа управления
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected final void
protected void
protected void
Метод рекомендуется переопределять, если необходимо одним методом обрабатывать любые типы ветвлений.protected void
protected boolean
protected void
protected boolean
protected void
protected void
protected void
protected boolean
protected void
Метод рекомендуется переопределять, если необходимо одним методом обрабатывать любые типы циклов.protected boolean
protected void
void
protected void
-
Field Details
-
graph
-
-
Constructor Details
-
AbstractCfgVisitor
-
-
Method Details
-
visitVertex
- Parameters:
v
- начинает обход с указанной вершины
-
visitBasicBlock
- Parameters:
v
- вершина линейного блока.
-
visitBranchingVertex
Метод рекомендуется переопределять, если необходимо одним методом обрабатывать любые типы ветвлений. Вызвать super, если надо диспетчеризовать визитор к более специальным листовым классам ветвлений- Parameters:
v
- посещаемая ветка
-
visitLoopVertex
Метод рекомендуется переопределять, если необходимо одним методом обрабатывать любые типы циклов. Вызвать super, если надо диспетчеризовать визитор к более специальным листовым классам циклов- Parameters:
v
- посещаемая ветка
-
visitConditionalVertex
- Parameters:
v
- обход условной ветки
-
visitWhileLoopVertex
- Parameters:
v
- обход цикла while
-
visitForLoopVertex
- Parameters:
v
- обход цикла for
-
visitForeachLoopVertex
- Parameters:
v
- обход цикла forEach
-
visitLabelVertex
- Parameters:
v
- обход узла метки
-
visitTryExceptVertex
- Parameters:
v
- обход узла метки
-
visitExitVertex
- Parameters:
v
- обход узла метки
-
visitDirectEdge
- Parameters:
e
- ребро перехода по потоку управления- Returns:
- true - если переход нужно совершить. false - если обход в этом направлении не нужен
-
visitTrueEdge
- Parameters:
e
- ребро перехода по потоку управления- Returns:
- true - если переход нужно совершить. false - если обход в этом направлении не нужен
-
visitFalseEdge
- Parameters:
e
- ребро перехода по потоку управления- Returns:
- true - если переход нужно совершить. false - если обход в этом направлении не нужен
-
visitLoopIterationEdge
- Parameters:
e
- ребро перехода по потоку управления- Returns:
- true - если переход нужно совершить. false - если обход в этом направлении не нужен
-
dispatchVertex
- Parameters:
v
- возможность вызвать прямую диспетчеризацию вершины из подкласса
-