public TargetCodeResult Compile(SourceCode aSourceCode, string aCurrentCodeLine, int aLinePosition) { String line = aCurrentCodeLine; if (aSourceCode.ContainKeyword(aCurrentCodeLine, "override")) line = aSourceCode.RemoveKeyword(line, "override"); if (aSourceCode.ContainKeyword(aCurrentCodeLine, "virtual")) line = aSourceCode.RemoveKeyword(line,"virtual"); if (aSourceCode.ContainKeyword(aCurrentCodeLine, "internal")) line = aSourceCode.ReplaceKeyword(line, "internal", "protected"); if (aSourceCode.ContainKeyword(aCurrentCodeLine, "internal protected")) line = aSourceCode.ReplaceKeyword(line, "internal protected", "protected"); StringBuilder newLine = new StringBuilder(); newLine.Append(line); // TODO: We need to b able to indicate exception per method not just for all methods //if (aSourceCode.Arguments.ContainProgramArgument("throwexceptions")) //newLine.Append(" throws Exception"); return new TargetCodeResult(newLine.ToString()); }
public bool Identify(SourceCode aSourceCode, string aCurrentCodeLine, int aLinePosition) { bool result = false; if (aSourceCode.ContainKeyword(aCurrentCodeLine, "get;") || aSourceCode.ContainKeyword(aCurrentCodeLine, "set;")) result = true; return result; }
public static bool IdentifyMainMethod(SourceCode aSourceCode, string aCurrentCodeLine, int aLinePosition) { bool result = false; if (aSourceCode.ContainKeyword(aCurrentCodeLine, "static") && aCurrentCodeLine.IndexOf("Main") > -1 && (aCurrentCodeLine.EndsWith("{") || aSourceCode.GetNextLine(aLinePosition).StartsWith("{"))) result = true; return result; }
private bool IsProgramNamespace(SourceCode aSourceCode, string aUsingNamespace) { var found = (from code in aSourceCode.GetLines() where code.StartsWith("namespace") && aSourceCode.ContainKeyword(code, aUsingNamespace) select code).FirstOrDefault(); return found != null; }
private int CountInterfaces(SourceCode aSourceCode) { int result = 0; int pos = 1; foreach(String line in aSourceCode.GetLines()) { if (aSourceCode.ContainKeyword(line, "interface") && (line.EndsWith("{") || aSourceCode.GetNextLine(pos).StartsWith("{"))) result++; pos++; } return result; }
public bool Identify(SourceCode aSourceCode, string aCurrentCodeLine, int aLinePosition) { bool result = false; if ((aCurrentCodeLine.StartsWith("public") || aCurrentCodeLine.StartsWith("class") || aCurrentCodeLine.StartsWith("protected") || aCurrentCodeLine.StartsWith("private") || aCurrentCodeLine.StartsWith("sealed") || aCurrentCodeLine.StartsWith("internal") || aCurrentCodeLine.StartsWith("iternal protected")) && aSourceCode.ContainKeyword(aCurrentCodeLine, "class") && (aCurrentCodeLine.EndsWith("{") || aSourceCode.GetNextLine(aLinePosition).StartsWith("{"))) result = true; return result; }
public bool Identify(SourceCode aSourceCode, string aCurrentCodeLine, int aLinePosition) { // TODO: We need to also cater for C# properties later on bool result = false; if (aSourceCode.CountTokens(aCurrentCodeLine, '(') == 1 && aSourceCode.CountTokens(aCurrentCodeLine, ')') == 1 && aCurrentCodeLine.IndexOf(aSourceCode.GetFileName()) == -1 && !aSourceCode.ContainKeyword(aCurrentCodeLine, "class") && aCurrentCodeLine.Split(' ').Length > 2 && !MainMethodComp.IdentifyMainMethod(aSourceCode, aCurrentCodeLine, aLinePosition) && (aCurrentCodeLine.EndsWith("{") || aSourceCode.GetNextLine(aLinePosition).StartsWith("{"))) result = true; return result; }