private void generateBody( ScriptOutputImpl sourceCode, List<TokenImpl> tokens, CompileCallback callbacks) { for (int i = 0; i < tokens.size(); i++) { TokenImpl token = tokens.get(i); TokenImpl previousToken = null; if (i > 0) previousToken = tokens.get(i - 1); TemplateToken state = token.state; switch (state) { case EOF: return; case PLAIN: creator.printPlain(token, sourceCode); break; case SCRIPT: creator.printScript(token, sourceCode); break; case EXPR: creator.printExpression(token, sourceCode); break; case MESSAGE: creator.printMessage(token, sourceCode); break; case ACTION: creator.printAction(false); break; case ABSOLUTE_ACTION: creator.printAction(true); break; case COMMENT: creator.unprintUpToLastNewLine(); break; case START_END_TAG: creator.printStartEndTag(token, sourceCode, callbacks); break; case START_TAG: creator.printStartTag(token, previousToken, sourceCode, callbacks); break; case END_TAG: creator.printEndTag(token, sourceCode); break; } } }