/// <summary> /// Returns variables used in statement that have passed number. /// statementType is additional filter parameter, if this parameter is passsed only var in statement of given type will be return /// </summary> public List <string> UsesVarModInStmt(int statementNumber, NodeType statementType = NodeType.Statement) { if (statementType == NodeType.Statement) { return(StatementUsesTable.Where(x => x.StatementNumber == statementNumber).Select(x => x.Variables).FirstOrDefault()); } else { return(StatementUsesTable.Where(x => x.StatementNumber == statementNumber && x.StatementType == statementType).Select(x => x.Variables).FirstOrDefault()); } }
/// <summary> /// Returns all statement numbers that uses passed variable /// statementType is additional filter parameter, if this parameter is passsed only statement of given type will be return /// </summary> public List <int> UsesStmtThatModVar(string variable, NodeType statementType = NodeType.Statement) { if (statementType == NodeType.Statement) { return(StatementUsesTable.Where(x => x.Variables.Contains(variable)).Select(x => x.StatementNumber).ToList()); } else { return(StatementUsesTable.Where(x => x.Variables.Contains(variable) && x.StatementType == statementType).Select(x => x.StatementNumber).ToList()); } }
/// <summary> /// Check if stetement uses variable /// </summary> public bool UsesStatement(int statementNumber, string variable) { if (String.IsNullOrEmpty(variable)) { return(false); } if (StatementUsesTable.Where(x => x.StatementNumber == statementNumber && x.Variables.Contains(variable)).Any()) { return(true); } return(false); }