コード例 #1
0
        // ----------------------- ReportParsedWords -------------------------------
        public static ParsedWordsReport ReportParsedWords(
            StmtWord InParentWord, int InLevel)
        {
            ParsedWordsReport r1         = new ParsedWordsReport();
            StmtWord          parentWord = InParentWord;

            if (InLevel == 0)
            {
                r1.AddTextLine(BuildLegend());

                // show the stmt text ( up until any NewLine pattern in the string )
                string s1 =
                    parentWord.StmtText.SubstringLenient(parentWord.BeginCursor.WordBx, 100);
                int fx = s1.IndexOf(Environment.NewLine);
                if (fx != -1)
                {
                    s1 = s1.Substring(0, fx);
                }
                r1.AddTextLine(s1);

                r1.AddTextLine(StmtWordToPresentationString(parentWord, InLevel));

                ParsedWordsReport r2 = null;
                r2 = ReportParsedWords(parentWord, InLevel + 1);
                r1.AddReport(r2);
            }

            else
            {
                r1.AddSepLine();

                foreach (StmtWord subWord in parentWord.SubWords)
                {
                    r1.AddTextLine(StmtWordToPresentationString(subWord, InLevel));

                    if (subWord.HasSubWords == true)
                    {
                        var r3 = ReportParsedWords(subWord, InLevel + 1);
                        r1.AddReport(r3);
                    }
                }
                r1.AddSepLine();
            }
            return(r1);
        }
コード例 #2
0
        // ----------------------- ReportParsedWords -------------------------------
        public static ParsedWordsReport ReportParsedWords(List <Stmt> InStmts)
        {
            ParsedWordsReport r0 = new ParsedWordsReport();

            foreach (Stmt stmt in InStmts)
            {
                ParsedWordsReport r1 = ReportParsedWords(stmt);
                r0.AddReport(r1);
            }
            return(r0);
        }