package ${package}.lang;
import java.util.Optional;
import javax.annotation.Nullable;
import de.monticore.CommonModelingLanguage;
import de.monticore.symboltable.MutableScope;
import de.monticore.symboltable.ResolvingConfiguration;
import de.monticore.symboltable.resolving.CommonResolvingFilter;
import ${package}.mydsl._parser.MyDSLParser;
import ${package}.symboltable.MyDSLModelLoader;
import ${package}.symboltable.MyDSLSymbolTableCreator;
import ${package}.symboltable.MyElementSymbol;
import ${package}.symboltable.MyFieldSymbol;
import ${package}.symboltable.MyModelSymbol;
public class MyDSLLanguage extends CommonModelingLanguage {
public static final String FILE_ENDING = "mydsl";
public MyDSLLanguage() {
super("MyDSL", FILE_ENDING);
addResolver(CommonResolvingFilter.create(MyModelSymbol.class, MyModelSymbol.KIND));
addResolver(CommonResolvingFilter.create(MyElementSymbol.class, MyElementSymbol.KIND));
addResolver(CommonResolvingFilter.create(MyFieldSymbol.class, MyFieldSymbol.KIND));
}
@Override
public MyDSLParser getParser() {
return new MyDSLParser();
}
@Override
public Optional<MyDSLSymbolTableCreator> getSymbolTableCreator(
ResolvingConfiguration resolvingConfiguration, @Nullable MutableScope enclosingScope) {
return Optional
.of(new MyDSLSymbolTableCreator(resolvingConfiguration, enclosingScope));
}
@Override
public MyDSLModelLoader getModelLoader() {
return (MyDSLModelLoader) super.getModelLoader();
}
@Override
protected MyDSLModelLoader provideModelLoader() {
return new MyDSLModelLoader(this);
}
}