/// <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); } }
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); } }
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); } }