/// <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(); } } } }
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()); }
/// <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(); } } }