private HtmlStatement ParseHtml() { HtmlStatement node = new HtmlStatement(_curtok); Token tok = Peek(); string data = _curtok.Data; switch (tok.TokenId) { case TokenId.RCurly: { int pos = data.LastIndexOf("\r\n"); if (pos > 0) { _curtok.Data = data.Substring(0, pos + 2); } break; } case TokenId.Dollar: { Token tok2 = Peek(_index + 1); if (tok2.TokenId == TokenId.If || tok2.TokenId == TokenId.For) { Token tok3 = Search(TokenId.Html); if (tok2.StartLocation.LineIndex != tok3.StartLocation.LineIndex) { data = _curtok.Data.TrimEnd(' ', '\t'); if (data.EndsWith("\r\n")) { _curtok.Data = data; } } } break; } } node.Expression = new StringPrimitive(_curtok); Advance(); if (_curtok.TokenId == TokenId.Semi) { Advance(); } return(node); }
private StatementNode ParseDollar() { Token last = _curtok; Advance(); if (_curtok.TokenId == TokenId.Ident) { HtmlStatement node = new HtmlStatement(last); node.Expression = ParseExpression(); return(node); } else { return(ParseStatement()); } }
private HtmlStatement ParseHtml() { HtmlStatement node = new HtmlStatement(_curtok); Token tok = Peek(); string data = _curtok.Data; switch (tok.TokenId) { case TokenId.RCurly: { int pos = data.LastIndexOf("\r\n"); if (pos > 0) _curtok.Data = data.Substring(0, pos + 2); break; } case TokenId.Dollar: { Token tok2 = Peek(_index + 1); if (tok2.TokenId == TokenId.If || tok2.TokenId == TokenId.For) { Token tok3 = Search(TokenId.Html); if (tok2.StartLocation.LineIndex != tok3.StartLocation.LineIndex) { data = _curtok.Data.TrimEnd(' ', '\t'); if (data.EndsWith("\r\n")) _curtok.Data = data; } } break; } } node.Expression = new StringPrimitive(_curtok); Advance(); if (_curtok.TokenId == TokenId.Semi) Advance(); return node; }
private StatementNode ParseDollar() { Token last = _curtok; Advance(); if (_curtok.TokenId == TokenId.Ident) { HtmlStatement node = new HtmlStatement(last); node.Expression = ParseExpression(); return node; } else { return ParseStatement(); } }