/*******************************************************************************
 * 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.impl.machine;

import org.eclipse.viatra2.gtasm.interpreter.exception.GTASMException;
import org.eclipse.viatra2.gtasmmodel.gtasm.metamodel.asm.core.AnnotatedElement;

/**
 * 
 * @author Peter Pasztor, Akos Horvath
 * 
 */
public class ASMInterpreterException extends GTASMException {

    private static final long serialVersionUID = -8202674621802024602L;
    
    
    public ASMInterpreterException(String msg, String[] context, AnnotatedElement element) {
		super(msg, context);
		addNewStackElement(element);
	}

//    public ASMInterpreterException(String msg) {
//    	super(msg);
//    }
//    
//    public ASMInterpreterException(String msg, GTASMElement gtasmElement) {
//        super(msg);
//        interpreterStackTrace.add(createStackTraceElement(gtasmElement));
//    }

}
