public override bool test(ITokenCollection semi) { int index; semi.find("delegate", out index); if (index != -1 && semi.size() > index + 2) { ITokenCollection local = Factory.create(); local.add(semi[index]).add(semi[index + 2]); doActions(local); return(true); } return(false); }
public override bool test(ITokenCollection semi) { int index; semi.find("{", out index); if (index != -1) { ITokenCollection local = Factory.create(); // create local semiExp with tokens for type and name local.add("control").add("anonymous"); doActions(local); return(true); } return(false); }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectNamespace"); int index; semi.find("namespace", out index); if (index != -1 && semi.size() > index + 1) { ITokenCollection local = Factory.create(); // create local semiExp with tokens for type and name local.add(semi[index]).add(semi[index + 1]); doActions(local); return true; } return false; }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectAnonymousScope"); int index; semi.find("{", out index); if (index != -1) { ITokenCollection local = Factory.create(); local.add("control").add("anonymous"); doActions(local); return(true); } return(false); }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectAlias"); int index; if (semi.find("using", out index) && !semi.find("System", out index) && semi.find("=", out index)) { ITokenCollection local = Factory.create(); local.add("alias").add(semi[index - 1]); StringBuilder ConcreType = new StringBuilder(); string alias = semi[index - 1]; index++; while (semi[index] != ";" && semi[index] != "<") { ConcreType.Append(semi[index]); index++; } string type = ConcreType.ToString(); local.add(ConcreType.ToString()); doActions(local); return(true); } return(false); }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectDelegates"); int index; semi.find("delegate", out index); if (index != -1 && semi.size() > index + 1) { ITokenCollection local = Factory.create(); local.add(semi[index]).add(semi[index + 2]); doActions(local); return(true); } return(false); }
public override bool test(ITokenCollection semi) { int index; semi.find("namespace", out index); if (index != -1 && semi.size() > index + 1) { ITokenCollection local = Factory.create(); // create local semiExp with tokens for type and name local.add(semi[index]).add(semi[index + 1]); doActions(local); return(true); } return(false); }
public override bool test(ITokenCollection semi)//Added semi.find function in ITok ss { Display.displayRules(actionDelegate, "rule DetectDelegate"); int index; semi.find("delegate", out index); if (index != -1 && semi.size() > index + 1) { ITokenCollection local = Factory.create();//need factory bcoz i dont have semi class but interface ss // create local semiExp with tokens for type and name local.add(semi[index]).add(semi[index + 2]); doActions(local); return(true);//Fully satisfied no more parsing required ss } return(false); }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectFunction"); if (semi[semi.size() - 1] != "{") return false; int index; semi.find("(", out index); if (index > 0 && !isSpecialToken(semi[index - 1])) { ITokenCollection local = Factory.create(); local.add("function").add(semi[index - 1]); doActions(local); return true; } return false; }
//---------------<Extract the semi expression of parameter>------------- private ITokenCollection getPara(ITokenCollection semi) { ITokenCollection current = Factory.create(); int index; semi.find("(", out index); index++; while (index < semi.size()) { if (semi[index] != "}") { current.add(semi[index]); } index++; } return(current); }
public string testusing(ITokenCollection semi) { int index; semi.find("using", out index); if (index != -1 && semi.size() > index + 1) { // ITokenCollection local = Factory.create(); // create local semiExp with tokens for type and name //local.add(semi[index]).add(semi[index + 1]); if (semi[index + 1] != "System") { return(semi[index + 1]); } } return(null); }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectAlias"); int index; semi.find("using", out index); if (index != -1 && semi.size() > index + 1) { ITokenCollection local = Factory.create(); if (semi[index + 1] != "System" && semi[index + 2] == "=") { local.add(semi[index]).add(semi[index + 1]).add(semi[index + 3]); doActions(local); return(true); } } return(false); }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectNamespace"); int index; semi.find("namespace", out index); if (index != -1 && semi.size() > index + 1) { var local = Factory.create(); // create local semiExp with tokens for type and name local.add(semi[index]).add(semi[index + 1]); doActions(local); var repo = Repository.getInstance(); repo.currentNameSpace = semi[index + 1]; return(true); } return(false); }
public override bool test(ITokenCollection semi) { if (semi[semi.size() - 1] != "{") { return(false); } int index; semi.find("(", out index); if (index > 0 && !isSpecialToken(semi[index - 1])) { ITokenCollection local = Factory.create(); local.add("function").add(semi[index - 1]); doActions(local); return(true); } return(false); }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectClass"); int indexDG; semi.find("delegate", out indexDG); if (indexDG != -1 && semi.size() > indexDG + 1 && semi[semi.size() - 1] == ";") { ITokenCollection local = Factory.create(); local.filePath = semi.filePath; // local semiExp with tokens for type and name local.add(semi[indexDG]).add(semi[indexDG + 1]).add(semi[indexDG + 2]); doActions(local); return(true); } return(false); }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectUsing"); int index; semi.find("using", out index); if (index != -1 && semi.size() > index + 1) { ITokenCollection local = Factory.create(); // create local semiExp with tokens for type and name if (!semi[index + 1].Equals("System")) { local.add(semi[index]).add(semi[index + 1]); local.currentFilename = semi.currentFilename; doActions(local); return(true); } } return(false); }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectClass"); if (!semi.hasSequence("class", ":", "{")) { return(true); } int indexColon; semi.find(":", out indexColon); var local = Factory.create(); local.add(semi[indexColon + 1]).add("base").add(";"); doActions(local); return(true); }
public override bool test(ITokenCollection semi) { Display.displayRules(actionDelegate, "rule DetectUsing"); int index; semi.find("using", out index); if (index != -1 && semi.size() > index + 1) { ITokenCollection local = Factory.create(); // create local semiExp with tokens for type and name //Console.WriteLine(semi[index]+"!!!!"); //Console.WriteLine(semi[index + 1]); if (semi[index + 1] != "System") { local.add(semi[index]).add(semi[index + 1]); doActions(local); } return(true); } return(false); }
public override bool test(ITokenCollection semi) { int index = indexOfType(semi); int indexColon; semi.find(":", out indexColon); if (index != -1 && semi.size() > index + 1) { if (indexColon != -1 && semi.size() > indexColon + 1) { for (int i = indexColon + 1; i < semi.size() - 1; i++) { if (this.isPossibleType(semi[i])) { ITokenCollection local = Factory.create(); local.filePath = semi.filePath; int indexBegin = i; for (int j = i - 1; j >= 0; j = j - 2) { if (semi[j] != ".") { indexBegin = j + 1; break; } indexBegin = j - 1; } for (int k = indexBegin; k <= i; k = k + 2) { local.add(semi[k]); } doActions(local); } } } return(true); } return(false); }
public override bool test(ITokenCollection semi) { int index; string type = String.Empty; semi.find("using", out index); if (index != -1 && semi.size() > index + 1 && (!(semi[index + 1].ToString().ToLower().Equals("system")))) { ITokenCollection local = Factory.create(); if ((semi.contains("=") && semi.Count() > 3) || semi[index + 1].Contains("(")) { ; } else { type = "using"; local.add(semi[index]).add(semi[index + 1]); doActions(local); } return(true); } return(false); }
static void Main(string[] args) { Console.Write("\n testing Semi"); Console.Write("\n =============="); ITokenCollection semi = Factory.create(); string source = "../../semi.cs"; if (!semi.open(source)) { Console.Write("\n Can't open {0}\n", source); return; } while (!semi.isDone()) { semi.get(); semi.show(); } Console.Write("\n"); Console.Write("\n demonstrating semi operations"); Console.Write("\n -------------------------------"); ITokenCollection test = Factory.create(); test.add("one").add("two").add("three"); test.show(); if (test.hasSequence("one", "three")) Console.Write("\n semi has token \"one\" followed by token \"three\""); if (!test.hasSequence("foo", "two")) Console.Write("\n semi does not have token \"foo\" followed by token \"two\""); if (!test.hasTerminator()) Console.Write("\n semi does not have terminator"); Console.Write("\n demonstrate changing semi with insert and add"); test.insert(0, "#"); test.add("\n"); test.show(); Console.Write("\n demonstrate semi tests"); if (test.hasTerminator()) Console.Write("\n semi has terminator"); else Console.Write("\n semi does not have terminator"); int index; Token tok = "two"; if (test.find(tok, out index)) Console.Write("\n found token \"{0}\" at position {1}", tok, index); else Console.Write("\n did not find token \"{0}\"", tok); tok = "foo"; if (test.find(tok, out index)) Console.Write("\n found token \"{0}\" at position {1}", tok, index); else Console.Write("\n did not find token \"{0}\"", tok); tok = "one"; Token tok2 = test.predecessor(tok); Console.Write("\n predecessor of \"{0}\" is \"{1}\"", tok, tok2); tok = "bar"; tok2 = test.predecessor(tok); Console.Write("\n predecessor of \"{0}\" is \"{1}\"", tok, tok2); Console.Write("\n indexing semi\n "); for (int i = 0; i < test.size(); ++i) Console.Write("{0} ", test[i]); Console.Write("\n using foreach:\n "); foreach (var tk in test) Console.Write("{0} ", tk); Console.Write("\n\n"); }
public override bool test(ITokenCollection semi) { var repo = Repository.getInstance(); int parIndex; if (!semi.find("(", out parIndex)) { return(false); } var local = semi.clone().getFunctionParams(); if (local.size() == 0 || local[0] == "using") { return(false); } Display.displayRules(actionDelegate, "rule DetectDeclar"); int index; local.find(";", out index); if (index != -1) { local = compactGeneric(local); var pos = 0; while (pos < local.size()) { if (repo.qualTable.contains(local[pos])) { local.remove(pos); } else { ++pos; } } local.find("=", out index); if (index != -1) { while (index < local.size() - 1) { local.remove(index); } } int indexPar; local.find("(", out indexPar); if (indexPar > -1) { return(false); } if (local.size() == 3) { doActions(local); return(false); } if (local.size() == 5 && local[1] == ".") { doActions(local); return(false); } } return(false); }
static void Main(string[] args) { Console.Write("\n testing Semi"); Console.Write("\n =============="); // Access Semi through interface and object factory. // That isolates client from any changes that may occur to Semi // as long as ITokenCollection doesn't change. ITokenCollection semi = Factory.create(); string source = "C:\\Project2\\TestTypeAnaylyzer\\RulesAndActions.cs"; if (!semi.open(source)) { Console.Write("\n Can't open {0}\n", source); return; } while (!semi.isDone()) { semi.get(); semi.show(); } Console.Write("\n"); Console.Write("\n demonstrating semi operations"); Console.Write("\n -------------------------------"); ITokenCollection test = Factory.create(); test.add("one").add("two").add("three"); test.show(); if (test.hasSequence("one", "three")) Console.Write("\n semi has token \"one\" followed by token \"three\""); if (!test.hasSequence("foo", "two")) Console.Write("\n semi does not have token \"foo\" followed by token \"two\""); if (!test.hasTerminator()) Console.Write("\n semi does not have terminator"); Console.Write("\n demonstrate changing semi with insert and add"); test.insert(0, "#"); test.add("\n"); test.show(); Console.Write("\n demonstrate semi tests"); if (test.hasTerminator()) Console.Write("\n semi has terminator"); else Console.Write("\n semi does not have terminator"); int index; Token tok = "two"; if (test.find(tok, out index)) Console.Write("\n found token \"{0}\" at position {1}", tok, index); else Console.Write("\n did not find token \"{0}\"", tok); tok = "foo"; if (test.find(tok, out index)) Console.Write("\n found token \"{0}\" at position {1}", tok, index); else Console.Write("\n did not find token \"{0}\"", tok); tok = "one"; Token tok2 = test.predecessor(tok); Console.Write("\n predecessor of \"{0}\" is \"{1}\"", tok, tok2); tok = "bar"; tok2 = test.predecessor(tok); Console.Write("\n predecessor of \"{0}\" is \"{1}\"", tok, tok2); Console.Write("\n indexing semi\n "); for (int i = 0; i < test.size(); ++i) Console.Write("{0} ", test[i]); Console.Write("\n using foreach:\n "); foreach (var tk in test) Console.Write("{0} ", tk); Console.Write("\n\n"); Console.ReadKey(); }