//============================================================ // <T>解析单个文件</T> // // @param file 要解析的文件 //============================================================ public void ParserSingleFile(FileInfo file) { FStrings strLines = FAsParser.GetLines(file.FullName); for (int n = 0; n < strLines.Count; n++) { if (FAsPackage.IsPackage(strLines, n)) { string package = string.Empty; int endindex = FAsPackage.ParserPackage(strLines, n, out package); int start, end = CheckParaAnnotate(strLines, n, out start); for (int i = n; i < endindex; i++) { if (IsInInterregional(i, start, end)) { continue; } if (FAsClass.IsClass(strLines, i)) { string classStr = FAsClass.ParserClass(strLines, i); FMapNode node = new FMapNode(classStr, package); AddNode(node); n = i; } } } } }
//============================================================ // <T>解析包。</T> // // @param indextable 类全名的索引表 // @param path 解析结果的输出路径 // @param swPrint 用于打印警告结果的StreamWriter对象 // @param relative 当前解析文件所在的目录的路径 //============================================================ public void ParserPackage(FAsClassesIndexTable indextable, string path, StreamWriter swPrint, FileInfo file, string relative) { int start, endIndex = CheckParaAnnotate(_strLines, _beginIndex, out start); for (int n = 0; n < _endIndex; n++) { if (IsInInterregional(n, start, endIndex)) { continue; } if (FAsClass.IsClass(_strLines, n)) { int caonima = GetPairNum(_strLines, n); FAsClass asClass = new FAsClass(_strLines, n, caonima); asClass.ParserClass(indextable, this, path, swPrint, file, relative); this.AsClass = AsClass; } } }