/**
 * Copyright (c) 2008, 2021 Obeo.
 * 
 * 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:
 *      Obeo - initial API and implementation
 */
package org.eclipse.acceleo;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc --> A representation of the model object '<em><b>AST Node</b></em>'. <!-- end-user-doc
 * -->
 *
 * @see org.eclipse.acceleo.AcceleoPackage#getASTNode()
 * @model interface="true" abstract="true"
 * @generated
 */
public interface ASTNode extends EObject {

} // ASTNode
