static IRenderizable ParseIf(Token currentToken, List <Token> tokens, ref int index, Template mainTemplate) { var ifCondition = new IfCondition(); if (tokens.Count <= index) { throw new TemplateException(string.Format("Invalid if condition at: {0}", currentToken.Position)); } var condition = tokens[index]; if (condition.Type == TokenType.Parameter) { ifCondition.ModelKey = condition.Value; } else { var function = ParseFunction(condition, tokens, ref index, null) as Function; if (function == null) { throw new TemplateException(string.Format("Invalid if condition at: {0}", currentToken.Position)); } ifCondition.Expression = function; } index++; ifCondition.Body = Parse(mainTemplate, tokens, ref index); // Parsear el else si existe if (tokens.Count >= index && tokens[index].Value == "else") { index++; ifCondition.ElseBody = Parse(mainTemplate, tokens, ref index); } return(ifCondition); }
static IRenderizable ParseIf (Token currentToken, List<Token> tokens, ref int index, Template mainTemplate) { var ifCondition = new IfCondition(); if(tokens.Count <= index) { throw new TemplateException(string.Format("Invalid if condition at: {0}", currentToken.Position)); } var condition = tokens[index]; if(condition.Type == TokenType.Parameter) { ifCondition.ModelKey = condition.Value; } else { var function = ParseFunction(condition, tokens, ref index, null) as Function; if(function == null) { throw new TemplateException(string.Format("Invalid if condition at: {0}", currentToken.Position)); } ifCondition.Expression = function; } index++; ifCondition.Body = Parse(mainTemplate, tokens, ref index); // Parsear el else si existe if(tokens.Count >= index && tokens[index].Value == "else") { index++; ifCondition.ElseBody = Parse(mainTemplate, tokens, ref index); } return ifCondition; }