Exemple #1
0
        /// <summary>
        /// 要素リストを受け、要素のノートと操作のふるまいをテキスト出力する。
        /// テキスト解析に使用する。
        /// </summary>
        /// <param name="atf">対象成果物VO</param>
        /// <param name="elements">要素の</param>
        /// <param name="sw"></param>
        private void setParsedCodeInArtifact(ArtifactVO atf)
        {
            foreach (ElementVO elem in atf.getOwnElements())
            {
                if (elem.methods != null)
                {
                    foreach (MethodVO mth in elem.methods)
                    {
                        List <BehaviorChunk> chunks = behaviorParser.parseBehavior(mth);
                        StringWriter         outsw  = new StringWriter();

                        foreach (BehaviorChunk cnk in chunks)
                        {
                            if (cnk.behaviorToken == null || cnk.behaviorToken.token == "[comment]")
                            {
                                outsw.WriteLine(generateIndentStr(cnk.indLv) + "// " + cnk.dottedNum + " " + cnk.behavior);
                            }
                            else
                            {
                                outsw.WriteLine(generateIndentStr(cnk.indLv) + cnk.getTokenRepresented());
                            }
                        }

                        mth.code = outsw.ToString();
                        outsw.Close();
                    }
                }
            }
        }
Exemple #2
0
        private static string getParsedBehavior(MethodVO mth)
        {
            BehaviorParser       parser    = new BehaviorParser();
            List <BehaviorChunk> chunkList = parser.parseBehavior(mth);

            StringWriter outsw = new StringWriter();

            foreach (var bc in chunkList)
            {
                outsw.WriteLine(generateIndentStr(bc.indLv) + bc.behavior);
            }

            return(outsw.ToString());
        }
Exemple #3
0
        /// <summary>
        /// 要素リストを受け、要素のノートと操作のふるまいをテキスト出力する。
        /// テキスト解析に使用する。
        /// </summary>
        /// <param name="atf">対象成果物VO</param>
        /// <param name="elements">要素の</param>
        /// <param name="sw"></param>
        private void retrieveElementsInArtifact(ArtifactVO atf, StreamWriter sw)
        {
            foreach (ElementVO elem in atf.getOwnElements())
            {
                if (elem.methods != null)
                {
                    foreach (MethodVO mth in elem.methods)
                    {
                        List <BehaviorChunk> chunks = behaviorParser.parseBehavior(mth);

                        foreach (BehaviorChunk cnk in chunks)
                        {
                            writeChunkLine(cnk, sw);
                        }
                    }
                }
            }
        }
        private void insertBehaviorsInMethod(ElementVO elem, MethodVO mth)
        {
            // ふるまいを行ごとに切り分け、チャンク単位で登録
            List <BehaviorChunk> chunks = bhvParser.parseBehavior(mth);

            foreach (BehaviorChunk chk in chunks)
            {
                insertBehaviorTable(mth, chk);
                behaviorRecCount++;

                if (behaviorRecCount > 0 && (behaviorRecCount + 1) % 1000 == 0)
                {
                    Console.Write(".");
                    transaction.Commit();
                    transaction = conn.BeginTransaction();
                }
            }
        }