private Node parseExpr()
{
Token token = peek();
if (token is Tag)
{
return parseTag();
}
if (token is Mixin)
{
return parseMixin();
}
if (token is MixinInject)
{
return parseMixinInject();
}
if (token is Block)
{
return parseBlock();
}
if (token is ExtendsToken)
{
return parseExtends();
}
if (token is Include)
{
return parseInclude();
}
if (token is Filter)
{
return parseFilter();
}
if (token is Comment)
{
return parseComment();
}
if (token is Text)
{
return parseText();
}
if (token is Each)
{
return parseEach();
}
if (token is While)
{
return parseWhile();
}
if (token is CssClass || token is CssId)
{
return parseCssClassOrId();
}
if (token is If)
{
return parseConditional();
}
if (token is CaseToken)
{
return parseCase();
}
if (token is Assignment)
{
return parseAssignment();
}
if (token is Doctype)
{
return parseDoctype();
}
if (token is Lexer.Tokens.Expression)
{
return parseCode();
}
if (token is Yield)
{
return parseYield();
}
throw new JadeParserException(filename, _jadeLexer.getLineno(), templateLoader, token);
}