/// <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);
        }
Пример #2
0
        /// <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));
 }