Class CfgBuildingParseTreeVisitor

java.lang.Object
org.antlr.v4.runtime.tree.AbstractParseTreeVisitor<Result>
com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
com.github._1c_syntax.bsl.languageserver.cfg.CfgBuildingParseTreeVisitor
All Implemented Interfaces:
com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>, org.antlr.v4.runtime.tree.ParseTreeVisitor<org.antlr.v4.runtime.tree.ParseTree>

public class CfgBuildingParseTreeVisitor extends com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    buildGraph​(com.github._1c_syntax.bsl.parser.BSLParser.CodeBlockContext block)
     
    void
    determineAdjacentDeadCode​(boolean enabled)
     
    void
    produceLoopIterations​(boolean enable)
     
    void
    producePreprocessorConditions​(boolean enable)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitAddHandlerStatement​(com.github._1c_syntax.bsl.parser.BSLParser.AddHandlerStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitAssignment​(com.github._1c_syntax.bsl.parser.BSLParser.AssignmentContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitBreakStatement​(com.github._1c_syntax.bsl.parser.BSLParser.BreakStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitCallStatement​(com.github._1c_syntax.bsl.parser.BSLParser.CallStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitCodeBlock​(com.github._1c_syntax.bsl.parser.BSLParser.CodeBlockContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitContinueStatement​(com.github._1c_syntax.bsl.parser.BSLParser.ContinueStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitElseBranch​(com.github._1c_syntax.bsl.parser.BSLParser.ElseBranchContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitElsifBranch​(com.github._1c_syntax.bsl.parser.BSLParser.ElsifBranchContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitExecuteStatement​(com.github._1c_syntax.bsl.parser.BSLParser.ExecuteStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitForEachStatement​(com.github._1c_syntax.bsl.parser.BSLParser.ForEachStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitForStatement​(com.github._1c_syntax.bsl.parser.BSLParser.ForStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitGotoStatement​(com.github._1c_syntax.bsl.parser.BSLParser.GotoStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitIfStatement​(com.github._1c_syntax.bsl.parser.BSLParser.IfStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitLabel​(com.github._1c_syntax.bsl.parser.BSLParser.LabelContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitPreproc_else​(com.github._1c_syntax.bsl.parser.BSLParser.Preproc_elseContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitPreproc_elsif​(com.github._1c_syntax.bsl.parser.BSLParser.Preproc_elsifContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitPreproc_endif​(com.github._1c_syntax.bsl.parser.BSLParser.Preproc_endifContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitPreproc_if​(com.github._1c_syntax.bsl.parser.BSLParser.Preproc_ifContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitRaiseStatement​(com.github._1c_syntax.bsl.parser.BSLParser.RaiseStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitRemoveHandlerStatement​(com.github._1c_syntax.bsl.parser.BSLParser.RemoveHandlerStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitReturnStatement​(com.github._1c_syntax.bsl.parser.BSLParser.ReturnStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitTryStatement​(com.github._1c_syntax.bsl.parser.BSLParser.TryStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitWaitStatement​(com.github._1c_syntax.bsl.parser.BSLParser.WaitStatementContext ctx)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitWhileStatement​(com.github._1c_syntax.bsl.parser.BSLParser.WhileStatementContext ctx)
     

    Methods inherited from class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor

    visitAcceptor, visitAccessCall, visitAccessIndex, visitAccessProperty, visitAnnotation, visitAnnotationName, visitAnnotationParam, visitAnnotationParamName, visitAnnotationParams, visitBoolOperation, visitCallParam, visitCallParamList, visitCompareOperation, visitCompilerDirective, visitCompilerDirectiveSymbol, visitComplexIdentifier, visitCompoundStatement, visitConstValue, visitDefaultValue, visitDoCall, visitEvent, visitExceptCodeBlock, visitExpression, visitFile, visitFileCodeBlock, visitFileCodeBlockBeforeSub, visitFuncDeclaration, visitFunction, visitGlobalMethodCall, visitHandler, visitIfBranch, visitLabelName, visitLValue, visitMember, visitMethodCall, visitMethodName, visitModifier, visitModuleVar, visitModuleVarDeclaration, visitModuleVars, visitModuleVarsList, visitMultilineString, visitNewExpression, visitNumeric, visitOperation, visitParam, visitParamList, visitPreproc_boolOperation, visitPreproc_expression, visitPreproc_logicalExpression, visitPreproc_logicalOperand, visitPreproc_symbol, visitPreproc_unknownSymbol, visitPreprocessor, visitProcDeclaration, visitProcedure, visitRegionEnd, visitRegionName, visitRegionStart, visitShebang, visitStatement, visitString, visitSub, visitSubCodeBlock, visitSubName, visitSubs, visitSubVar, visitSubVarDeclaration, visitSubVars, visitSubVarsList, visitTernaryOperator, visitTryCodeBlock, visitTypeName, visitUnaryModifier, visitUse, visitUsedLib, visitVar_name

    Methods inherited from class org.antlr.v4.runtime.tree.AbstractParseTreeVisitor

    aggregateResult, defaultResult, shouldVisitNextChild, visit, visitChildren, visitErrorNode, visitTerminal

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.antlr.v4.runtime.tree.ParseTreeVisitor

    visit, visitChildren, visitErrorNode, visitTerminal
  • Constructor Details

    • CfgBuildingParseTreeVisitor

      public CfgBuildingParseTreeVisitor()
  • Method Details

    • produceLoopIterations

      public void produceLoopIterations(boolean enable)
    • producePreprocessorConditions

      public void producePreprocessorConditions(boolean enable)
    • determineAdjacentDeadCode

      public void determineAdjacentDeadCode(boolean enabled)
    • buildGraph

      public ControlFlowGraph buildGraph(com.github._1c_syntax.bsl.parser.BSLParser.CodeBlockContext block)
    • visitCallStatement

      public org.antlr.v4.runtime.tree.ParseTree visitCallStatement(com.github._1c_syntax.bsl.parser.BSLParser.CallStatementContext ctx)
      Specified by:
      visitCallStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitCallStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitWaitStatement

      public org.antlr.v4.runtime.tree.ParseTree visitWaitStatement(com.github._1c_syntax.bsl.parser.BSLParser.WaitStatementContext ctx)
      Specified by:
      visitWaitStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitWaitStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitAssignment

      public org.antlr.v4.runtime.tree.ParseTree visitAssignment(com.github._1c_syntax.bsl.parser.BSLParser.AssignmentContext ctx)
      Specified by:
      visitAssignment in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitAssignment in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitIfStatement

      public org.antlr.v4.runtime.tree.ParseTree visitIfStatement(com.github._1c_syntax.bsl.parser.BSLParser.IfStatementContext ctx)
      Specified by:
      visitIfStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitIfStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitElsifBranch

      public org.antlr.v4.runtime.tree.ParseTree visitElsifBranch(com.github._1c_syntax.bsl.parser.BSLParser.ElsifBranchContext ctx)
      Specified by:
      visitElsifBranch in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitElsifBranch in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitCodeBlock

      public org.antlr.v4.runtime.tree.ParseTree visitCodeBlock(com.github._1c_syntax.bsl.parser.BSLParser.CodeBlockContext ctx)
      Specified by:
      visitCodeBlock in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitCodeBlock in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitElseBranch

      public org.antlr.v4.runtime.tree.ParseTree visitElseBranch(com.github._1c_syntax.bsl.parser.BSLParser.ElseBranchContext ctx)
      Specified by:
      visitElseBranch in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitElseBranch in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitWhileStatement

      public org.antlr.v4.runtime.tree.ParseTree visitWhileStatement(com.github._1c_syntax.bsl.parser.BSLParser.WhileStatementContext ctx)
      Specified by:
      visitWhileStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitWhileStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitForStatement

      public org.antlr.v4.runtime.tree.ParseTree visitForStatement(com.github._1c_syntax.bsl.parser.BSLParser.ForStatementContext ctx)
      Specified by:
      visitForStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitForStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitForEachStatement

      public org.antlr.v4.runtime.tree.ParseTree visitForEachStatement(com.github._1c_syntax.bsl.parser.BSLParser.ForEachStatementContext ctx)
      Specified by:
      visitForEachStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitForEachStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitExecuteStatement

      public org.antlr.v4.runtime.tree.ParseTree visitExecuteStatement(com.github._1c_syntax.bsl.parser.BSLParser.ExecuteStatementContext ctx)
      Specified by:
      visitExecuteStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitExecuteStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitAddHandlerStatement

      public org.antlr.v4.runtime.tree.ParseTree visitAddHandlerStatement(com.github._1c_syntax.bsl.parser.BSLParser.AddHandlerStatementContext ctx)
      Specified by:
      visitAddHandlerStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitAddHandlerStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitRemoveHandlerStatement

      public org.antlr.v4.runtime.tree.ParseTree visitRemoveHandlerStatement(com.github._1c_syntax.bsl.parser.BSLParser.RemoveHandlerStatementContext ctx)
      Specified by:
      visitRemoveHandlerStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitRemoveHandlerStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitGotoStatement

      public org.antlr.v4.runtime.tree.ParseTree visitGotoStatement(com.github._1c_syntax.bsl.parser.BSLParser.GotoStatementContext ctx)
      Specified by:
      visitGotoStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitGotoStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitLabel

      public org.antlr.v4.runtime.tree.ParseTree visitLabel(com.github._1c_syntax.bsl.parser.BSLParser.LabelContext ctx)
      Specified by:
      visitLabel in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitLabel in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitContinueStatement

      public org.antlr.v4.runtime.tree.ParseTree visitContinueStatement(com.github._1c_syntax.bsl.parser.BSLParser.ContinueStatementContext ctx)
      Specified by:
      visitContinueStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitContinueStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitReturnStatement

      public org.antlr.v4.runtime.tree.ParseTree visitReturnStatement(com.github._1c_syntax.bsl.parser.BSLParser.ReturnStatementContext ctx)
      Specified by:
      visitReturnStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitReturnStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitBreakStatement

      public org.antlr.v4.runtime.tree.ParseTree visitBreakStatement(com.github._1c_syntax.bsl.parser.BSLParser.BreakStatementContext ctx)
      Specified by:
      visitBreakStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitBreakStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitTryStatement

      public org.antlr.v4.runtime.tree.ParseTree visitTryStatement(com.github._1c_syntax.bsl.parser.BSLParser.TryStatementContext ctx)
      Specified by:
      visitTryStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitTryStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitRaiseStatement

      public org.antlr.v4.runtime.tree.ParseTree visitRaiseStatement(com.github._1c_syntax.bsl.parser.BSLParser.RaiseStatementContext ctx)
      Specified by:
      visitRaiseStatement in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitRaiseStatement in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitPreproc_if

      public org.antlr.v4.runtime.tree.ParseTree visitPreproc_if(com.github._1c_syntax.bsl.parser.BSLParser.Preproc_ifContext ctx)
      Specified by:
      visitPreproc_if in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitPreproc_if in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitPreproc_else

      public org.antlr.v4.runtime.tree.ParseTree visitPreproc_else(com.github._1c_syntax.bsl.parser.BSLParser.Preproc_elseContext ctx)
      Specified by:
      visitPreproc_else in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitPreproc_else in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitPreproc_elsif

      public org.antlr.v4.runtime.tree.ParseTree visitPreproc_elsif(com.github._1c_syntax.bsl.parser.BSLParser.Preproc_elsifContext ctx)
      Specified by:
      visitPreproc_elsif in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitPreproc_elsif in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
    • visitPreproc_endif

      public org.antlr.v4.runtime.tree.ParseTree visitPreproc_endif(com.github._1c_syntax.bsl.parser.BSLParser.Preproc_endifContext ctx)
      Specified by:
      visitPreproc_endif in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitPreproc_endif in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>