public CSProperty(string rawContent, CSEntity parent) : base(rawContent, parent) { string[] splitContent = rawContent.Split(' ', '='); int hasVisibilityKey = 0; for (int i = 0; i < splitContent.Length; i++) { if (CSParsingTool.IsVisibilityKeyword(splitContent[i])) { hasVisibilityKey = 1; this.visibility = splitContent[i]; } } if (hasVisibilityKey == 0) { this.visibility = "public"; } this.type = splitContent[hasVisibilityKey]; this.name = splitContent[hasVisibilityKey + 1].Replace(";", ""); int equalIndex = rawContent.IndexOf('='); if (equalIndex != -1) { string rawInitializer = rawContent.Substring(equalIndex + 1); this.initializer = rawInitializer.Trim(); } }
public CSClass(string rawContent, CSEntity parent) : base(rawContent, parent) { string[] splitContent = rawContent.Split(' '); for (int i = 0; i < splitContent.Length; i++) { if (splitContent[i] == "class") { if (i + 1 < splitContent.Length) { this.name = splitContent[i + 1]; } } else if (CSParsingTool.IsVisibilityKeyword(splitContent[i])) { this.visibility = splitContent[i]; } else if (splitContent[i] == ":") { if (i + 1 < splitContent.Length) { this.baseName = splitContent[i + 1]; } } } }
public CSMethod(string rawContent, CSEntity parent) : base(rawContent, parent) { string[] splitContent = rawContent.Split(' '); int hasVisibilityKey = 0; for (int i = 0; i < splitContent.Length; i++) { if (CSParsingTool.IsVisibilityKeyword(splitContent[i])) { hasVisibilityKey = 1; this.visibility = splitContent[i]; } } if (hasVisibilityKey == 0) { this.visibility = "public"; } this.returnType = splitContent[hasVisibilityKey]; this.name = splitContent[hasVisibilityKey + 1].Replace("(", ""); int startParametersIndex = rawContent.IndexOf('('); int endParametersIndex = rawContent.LastIndexOf(')'); int lengthParameters = endParametersIndex - startParametersIndex + 1; string rawParameters = rawContent.Substring(startParametersIndex, lengthParameters); rawParameters = rawParameters.Replace("(", ""); rawParameters = rawParameters.Replace(")", ""); string[] splitParameters = rawParameters.Split(','); for (int i = 0; i < splitParameters.Length; i++) { splitParameters[i] = splitParameters[i].Trim(); string[] splitParameter = splitParameters[i].Split(' '); if (splitParameter.Length >= 2) { this.parameters.Add( new CSParameter( splitParameter[0], splitParameter[splitParameter.Length - 1] ) ); } } }