#ifndef H_CORAL_LANG_SMD01_SMDLANG
#define H_CORAL_LANG_SMD01_SMDLANG
// This file is part of the Coral project.
// Please read the copyright notice in the LICENSE file.

#include <coral/coral.h>
#include <coral/lib/ref_counted.h>

NAMESPACE_BEGIN(coral);

class Meta2ModelBridge;
class Element;
class Language;

NAMESPACE_BEGIN(SMD01);

/*
 * Maps an SMD model to Coral data structures
 * This is the interface for creating new
 * metamodels out of SMD models.
 *
 * You may pass NULL, in which case you get NULL,
 * otherwise a new complete Coral language is returned.
 */
coral::autounref<coral::Language> smd2lang(coral::Element* language) throw (std::exception);

NAMESPACE_END();
NAMESPACE_END();

#endif

