/// <summary> /// If a value is pure Expression. /// </summary> /// <param name="context">Key value structure value context.</param> /// <param name="expression">String expression.</param> /// <returns>Is pure expression or not.</returns> public static bool IsPureExpression(this LGTemplateParser.KeyValueStructureValueContext context, out string expression) { expression = context.GetText(); var hasExpression = false; foreach (ITerminalNode node in context.children) { switch (node.Symbol.Type) { case LGTemplateParser.ESCAPE_CHARACTER_IN_STRUCTURE_BODY: return(false); case LGTemplateParser.EXPRESSION_IN_STRUCTURE_BODY: if (hasExpression) { return(false); } hasExpression = true; expression = node.GetText(); break; default: if (!string.IsNullOrWhiteSpace(node.GetText())) { return(false); } break; } } return(hasExpression); }
/// <summary> /// If a value is pure Expression. /// </summary> /// <param name="context">Key value structure value context.</param> /// <returns>Is pure expression or not.</returns> public static bool IsPureExpression(this LGTemplateParser.KeyValueStructureValueContext context) { if (context.expressionInStructure() == null || context.expressionInStructure().Length != 1) { return(false); } return(context.expressionInStructure(0).GetText().Trim() == context.GetText().Trim()); }
/// <summary> /// Exit a parse tree produced by <see cref="LGTemplateParser.keyValueStructureValue"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitKeyValueStructureValue([NotNull] LGTemplateParser.KeyValueStructureValueContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="LGTemplateParser.keyValueStructureValue"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitKeyValueStructureValue([NotNull] LGTemplateParser.KeyValueStructureValueContext context) { return(VisitChildren(context)); }