/**
* Copyright (C) 2013-2016 The Rythm Engine project
* for LICENSE and other details see:
* https://github.com/rythmengine/rythmengine
*/
package org.rythmengine.internal.parser.build_in;
import org.rythmengine.exception.ParseException;
import org.rythmengine.internal.CodeBuilder;
import org.rythmengine.internal.IContext;
import org.rythmengine.internal.Token;
import org.rythmengine.internal.parser.CodeToken;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: luog
* Date: 19/07/12
* Time: 9:24 AM
* To change this template use File | Settings | File Templates.
*/
public class ExecMacroToken extends CodeToken {
public ExecMacroToken(String macro, IContext context, int line) {
super(macro, context);
this.line = line;
}
@Override
public void output() {
CodeBuilder cb = ctx.getCodeBuilder();
if (!cb.hasMacro(s)) {
throw new ParseException(ctx.getEngine(), ctx.getTemplateClass(), line, "Cannot find macro definition for \"%s\"", s);
}
List<Token> list = cb.getMacro(s);
for (Token tb : list) {
tb.build();
}
}
}