//internal static String RenderRegexPosTypePattern() /// <summary> /// Renders the open. /// </summary> /// <param name="level">The level.</param> /// <returns></returns> public static String renderOpen(this cnt_level level, contentTokenSubjectRenderMode mode) { switch (level) { case flags.token.cnt_level.mcChunk: switch (mode) { case contentTokenSubjectRenderMode.currentForm: case contentTokenSubjectRenderMode.lemmaForm: return(" "); break; } return("{"); break; default: case flags.token.cnt_level.mcToken: return(""); break; case flags.token.cnt_level.mcBlock: return(Environment.NewLine); break; case flags.token.cnt_level.mcTokenStream: return(Environment.NewLine); break; } }
public textMap <pipelineTaskSubjectContentToken> render(pipelineTaskSubjectContentToken subject, contentTokenSubjectRenderMode mode) { if (layers.ContainsKey(mode)) { return(layers[mode]); } layers.Add(mode, subject.render(mode)); return(layers[mode]); }
/// <summary> /// Renders the token into string form /// </summary> /// <param name="token">The token.</param> /// <param name="mode">The mode.</param> /// <returns></returns> private static String renderString(pipelineTaskSubjectContentToken token, contentTokenSubjectRenderMode mode) { StringBuilder sb = new StringBuilder(); if (token == null) { sb.Append(textMapBase.SEPARATOR); return(sb.ToString()); } switch (mode) { default: case contentTokenSubjectRenderMode.currentForm: sb.Append(token.currentForm); break; case contentTokenSubjectRenderMode.lemmaForm: if (token.graph != null) { sb.Append(token.graph.lemmaForm); } else { sb.Append(token.currentForm); } break; case contentTokenSubjectRenderMode.descriptive: sb.Append(token.currentForm); if (token.graph != null) { sb.Append(textMapBase.MAINLEVEL_COMMA); sb.Append(token.graph.lemmaForm); } sb.Append(textMapBase.MAINLEVEL_COMMA); renderGramCase(sb, token.flagBag, false); break; case contentTokenSubjectRenderMode.flagsForm: renderGramCase(sb, token.flagBag, false); break; case contentTokenSubjectRenderMode.flagsFullForm: renderGramCase(sb, token.flagBag, true); break; case contentTokenSubjectRenderMode.initialForm: sb.Append(token.initialForm); break; case contentTokenSubjectRenderMode.none: break; case contentTokenSubjectRenderMode.posTypeAndGramTagForm: //sb.Append("["); sb.Append(renderString(token, contentTokenSubjectRenderMode.posTypeTagForm)); //sb.Backspace(textMapBase.SEPARATOR); if (token.graph != null) { for (int i = 0; i < token.graph.Count(); i++) { lexicGrammarCase pt = token.graph[i] as lexicGrammarCase; renderGramCase(sb, pt.tags.GetTags(), false); if (i < token.graph.Count() - 1) { sb.Append(textMapBase.MAINLEVEL_COMMA); } } } //sb.Append("]"); break; case contentTokenSubjectRenderMode.posTypeTagForm: List <pos_type> posTypeTags = new List <pos_type>(); Boolean ok = false; if (token.graph != null) { var pst = token.graph.GetTagFromGramTags <pos_type>(); foreach (var ps in pst) { posTypeTags.AddUnique(ps); } if (posTypeTags.Any()) { ok = true; } } if (ok == false) { var pst = token.flagBag.getAllOfType <pos_type>(false); foreach (var ps in pst) { posTypeTags.AddUnique(ps); } } if (!posTypeTags.Any()) { posTypeTags.Add(pos_type.none); } foreach (pos_type pt in posTypeTags) { if (pt != pos_type.none) { sb.Append(pt.ToString()); if (pt != posTypeTags.Last()) { sb.Append(textMapBase.SUBLEVEL_COMMA); } } } break; } sb.Append(" "); return(sb.ToString()); }
/// <summary> /// Renders the textMap from specified token subject /// </summary> /// <param name="token">The token.</param> /// <param name="mode">The mode.</param> /// <returns></returns> public static textMap <pipelineTaskSubjectContentToken> render(this pipelineTaskSubjectContentToken token, contentTokenSubjectRenderMode mode) { textMap <pipelineTaskSubjectContentToken> output = new textMap <pipelineTaskSubjectContentToken>(); renderSub(output, token, mode); output.AddPlainRender(textMapBase.SEPARATOR); return(output); }
private static void renderSub(textMap <pipelineTaskSubjectContentToken> output, pipelineTaskSubjectContentToken token, contentTokenSubjectRenderMode mode) { switch (token.contentLevelType) { //output.Add(token, renderString(token, mode)); //break; case flags.token.cnt_level.mcToken: output.Add(token, renderString(token, mode)); break; case flags.token.cnt_level.mcChunk: case flags.token.cnt_level.mcBlock: case flags.token.cnt_level.mcTokenStream: output.AddOpen(token, token.contentLevelType.renderOpen(mode)); foreach (pipelineTaskSubjectContentToken tkn in token) { renderSub(output, tkn, mode); } output.AddClose(token.contentLevelType.renderClose(mode)); break; } }