Beispiel #1
0
        internal ConditionTemplateElement BeginCondition()
        {
            var conditionTemplateElement = new ConditionTemplateElement();

            _elements.Add(conditionTemplateElement);
            _blocks.Push(conditionTemplateElement);
            return(conditionTemplateElement);
        }
        internal void EvalCondition(ConditionTemplateElement element)
        {
            var condition = (bool)_model.GetValue(element.ValueAccess);

            if (condition)
            {
                foreach (TemplateElement inner in element.Inner)
                {
                    inner.Accept(this);
                }
            }
        }
        public IState Next(Token token)
        {
            if (token.TokenType == TokenType.Identifier)
            {
                return(new IdentifierState(token.Content, _builder));
            }

            if (token.TokenType == TokenType.BeginIf)
            {
                ConditionTemplateElement conditionTemplateElement = _builder.BeginCondition();
                return(new BeginIfState(conditionTemplateElement, _builder));
            }

            if (token.TokenType == TokenType.EndIf)
            {
                return(new EndIfState(_builder));
            }

            throw new ParsingException(this, token);
        }
 internal BeginIfState(ConditionTemplateElement conditionTemplateElement, TemplateModelBuilder builder)
 {
     _conditionTemplateElement = conditionTemplateElement;
     _builder = builder;
 }