示例#1
0
        //============================================================
        // <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;
                        }
                    }
                }
            }
        }
示例#2
0
        //============================================================
        // <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;
                }
            }
        }