// Path: src/com/floreysoft/jmte/token/Token.java
// public interface Token extends Cloneable {
// 
// 	/**
// 	 * Returns the text of the token.
// 	 * 
// 	 * @return the text
// 	 */
// 	public String getText();
// 
// 	public int getLine();
// 
// 	public int getColumn();
// 
// 	public String getSourceName();
// 	
// 	public Object evaluate(TemplateContext context);
// 	
// 	public int getTokenIndex();
// 	
// 	public String emit();
// }


import com.floreysoft.jmte.token.Token;

package com.floreysoft.jmte;


/**
 * Callback for execution steps of the engine. Reports in interpreted mode only.
 * 
 */
public interface ProcessListener {
	public static enum Action {
		/**
		 * Expression being executed.
		 */
		EVAL,
		/**
		 * Expression being skipped.
		 */
		SKIP,
		/**
		 * End of control structure.
		 */
		END
	}

	/**
	 * Reports a step executed by the engine
	 * 
	 * @param context
	 *            current context during template evaluation
	 * @param token
	 *            the token that is handled
	 * @param action
	 *            the action that is executed on the action
	 */

// Path: src/com/floreysoft/jmte/token/Token.java
// public interface Token extends Cloneable {
// 
// 	/**
// 	 * Returns the text of the token.
// 	 * 
// 	 * @return the text
// 	 */
// 	public String getText();
// 
// 	public int getLine();
// 
// 	public int getColumn();
// 
// 	public String getSourceName();
// 	
// 	public Object evaluate(TemplateContext context);
// 	
// 	public int getTokenIndex();
// 	
// 	public String emit();
// }


// Path: src/com/floreysoft/jmte/ProcessListener.java
import com.floreysoft.jmte.token.Token;

package com.floreysoft.jmte;


/**
 * Callback for execution steps of the engine. Reports in interpreted mode only.
 * 
 */
public interface ProcessListener {
	public static enum Action {
		/**
		 * Expression being executed.
		 */
		EVAL,
		/**
		 * Expression being skipped.
		 */
		SKIP,
		/**
		 * End of control structure.
		 */
		END
	}

	/**
	 * Reports a step executed by the engine
	 * 
	 * @param context
	 *            current context during template evaluation
	 * @param token
	 *            the token that is handled
	 * @param action
	 *            the action that is executed on the action
	 */

	void log(TemplateContext context, Token token, Action action);
