protected void createSymbolTableFromAST( ASTHost ast, String modelName, MutableScope enclosingScope, ResolverConfiguration resolverConfiguration) { final CompositeSymbolTableCreator symbolTableCreator = getModelingLanguage() .getSymbolTableCreator(resolverConfiguration, enclosingScope) .orElse(null); if (symbolTableCreator != null) { Log.debug( "Start creation of symbol table for model \"" + modelName + "\".", CompositeModelLoader.class.getSimpleName()); final Scope scope = symbolTableCreator.createFromAST(ast); if (!(scope instanceof ArtifactScope)) { Log.warn( "Top scope of model " + modelName + " is expected to be an artifact scope, but" + " is scope \"" + scope.getName() + "\""); } Log.debug( "Created symbol table for model \"" + modelName + "\".", CompositeModelLoader.class.getSimpleName()); } else { Log.warn( "No symbol created, because '" + getModelingLanguage().getName() + "' does not define a symbol table creator."); } }