예제 #1
0
 /// <summary>
 /// Builds concrete statement
 /// </summary>
 /// <param name="stmtNode">Statement node</param>
 private void BuildStatement(IASTStatementNode stmtNode)
 {
     if (stmtNode is ASTBodyStatementNode bodyNode)
     {
         BuildBodyStatement(bodyNode);
     }
     if (stmtNode is ASTAssignStatementNode assignNode)
     {
         BuildAssignStatement(assignNode);
     }
     if (stmtNode is ASTCallStatementNode callNode)
     {
         BuildCallStatement(callNode);
     }
     if (stmtNode is ASTIfStatementNode ifNode)
     {
         BuildIfStatement(ifNode);
     }
     if (stmtNode is ASTWhileStatementNode whileNode)
     {
         BuildWhileStatement(whileNode);
     }
     if (stmtNode is ASTForStatementNode forNode)
     {
         BuildForStatement(forNode);
     }
     if (stmtNode is ASTReturnStatementNode retNode)
     {
         BuildReturnStatement(retNode);
     }
     if (stmtNode is ASTBreakStatementNode breakNode)
     {
         BuildBreakStatement(breakNode);
     }
 }
예제 #2
0
 private void CheckStatement(IASTStatementNode stmtNode)
 {
     if (stmtNode is ASTAssignStatementNode assignNode)
     {
         CheckAssignStatement(assignNode);
     }
     if (stmtNode is ASTCallStatementNode callNode)
     {
         CheckSubCall(callNode, false);
     }
     if (stmtNode is ASTIfStatementNode ifNode)
     {
         CheckIfStatement(ifNode);
     }
     if (stmtNode is ASTWhileStatementNode whileNode)
     {
         CheckWhileStatement(whileNode);
     }
     if (stmtNode is ASTForStatementNode forNode)
     {
         CheckForStatement(forNode);
     }
     if (stmtNode is ASTReturnStatementNode retNode)
     {
         CheckReturnStatement(retNode);
     }
     if (stmtNode is ASTBreakStatementNode breakNode)
     {
         CheckBreakStatement(breakNode);
     }
 }
예제 #3
0
 private void VisitStatement(IASTStatementNode stmtNode)
 {
     if (stmtNode is ASTAssignStatementNode assignNode)
     {
         VisitAssignStatement(assignNode);
     }
     if (stmtNode is ASTForStatementNode forNode)
     {
         VisitForStatement(forNode);
     }
     if (stmtNode is ASTWhileStatementNode whileNode)
     {
         VisitWhileStatement(whileNode);
     }
     if (stmtNode is ASTIfStatementNode ifNode)
     {
         VisitIfStatement(ifNode);
     }
     if (stmtNode is ASTReturnStatementNode retNode)
     {
         VisitReturnStatement(retNode);
     }
 }