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.ToString().Contains("System") && !semi.ToString().Contains("=")) { local.add(semi[index]).add(semi[index + 1]); doActions(local); return(true); } } return(false); }
public void displaysemi(List <string> arguments, string displaytokenfile) { ITokenCollection semi = Factory.create(); BuildTypeAnalyzer builder = new BuildTypeAnalyzer(semi); Parser parser = builder.build(); Repository repo = Repository.getInstance(); foreach (string file in arguments) { List <string> Semicollection = new List <string>(); if (file.Contains("TemporaryGeneratedFile")) { continue; } if (!semi.open(file as string)) { //Console.Write("\n Can't open {0}\n\n", args[0]); continue; } repo.currentFile = file; repo.locations.Clear(); try { while (semi.get().Count > 0) { Console.WriteLine(semi.ToString()); Semicollection.Add(semi.ToString()); } parser.parse(semi); } catch (Exception ex) { Console.Write("\n\n {0}\n", ex.Message); } WriteFile(displaytokenfile, Semicollection); } }
public void parse(ITokenCollection semi) { // Note: rule returns true to tell parser to stop // processing the current semiExp Display.displaySemiString(semi.ToString()); foreach (var rule in Rules) { if (rule.test(semi)) { break; } } }