示例#1
0
 /// <inheritdoc />
 public void Visit(MorestachioArgumentExpressionList expression)
 {
     for (var index = 0; index < expression.Expressions.Count; index++)
     {
         var expressionExpression = expression.Expressions[index];
         this.Visit(expressionExpression);
     }
 }
        /// <inheritdoc />
        public void Visit(MorestachioArgumentExpressionList expression)
        {
            StringBuilder
            .AppendLine("Exp[")
            .Up()
            .AppendInterlaced();;
            for (var index = 0; index < expression.Expressions.Count; index++)
            {
                var expressionExpression = expression.Expressions[index];
                this.Visit(expressionExpression);
                if (index != expression.Expressions.Count - 1)
                {
                    StringBuilder.AppendLine(",").AppendInterlaced();
                }
            }

            StringBuilder.Down()
            .AppendLine()
            .AppendInterlaced("]");
        }
示例#3
0
        internal static IMorestachioExpression ParseExpressionFromKind(this XmlReader reader)
        {
            IMorestachioExpression exp = null;

            switch (reader.Name)
            {
            case "Expression":
                exp = new MorestachioExpression();
                break;

            case "ExpressionMultiPart":
                exp = new MorestachioMultiPartExpressionList();
                break;

            case "ExpressionArgList":
                exp = new MorestachioArgumentExpressionList();
                break;

            case "ExpressionString":
                exp = new MorestachioExpressionString();
                break;

            case "ExpressionNumber":
                exp = new MorestachioExpressionNumber();
                break;

            case "ExpressionOperator":
                exp = new MorestachioOperatorExpression();
                break;

            case "ExpressionBracket":
                exp = new MorestachioBracketExpression();
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(ExpressionKindNodeName));
            }
            exp.ReadXml(reader);
            return(exp);
        }