/*******************************************************************************
 * Copyright (c) 2004-2008 Peter Pasztor, Akos Horvath, Gergely Varro, Istvan Rath and Daniel Varro
 * All rights reserved. This program and the accompanying materials
 * are made available under the  terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Peter Pasztor, Akos Horvath, Gergely Varro, Istvan Rath - initial API and implementation
 *******************************************************************************/

package org.eclipse.viatra2.gtasm.interpreter.term.internal;

import org.eclipse.viatra2.gtasm.interpreter.exception.GTASMException;
import org.eclipse.viatra2.gtasmmodel.gtasm.metamodel.asm.terms.Term;

public class TermInterpreterException extends GTASMException {

	private static final long serialVersionUID = -3313291694540379516L;

	/*public TermInterpreterException(String msg) {
        super(msg);
    }*/

	public TermInterpreterException(String msg, String[] context,Term term) {
        super(msg,context);
        addNewStackElement(term);
    }
}
