diff --git a/pom.xml b/pom.xml index fe9f7f22d..d8deaef3f 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ 4.5 - 4.4.1 + 4.4.2 3.5.1 diff --git a/src/main/java/org/nest/nestml/_symboltable/NESTMLLanguage.java b/src/main/java/org/nest/nestml/_symboltable/NESTMLLanguage.java index 9bf6152af..72e95e3f6 100644 --- a/src/main/java/org/nest/nestml/_symboltable/NESTMLLanguage.java +++ b/src/main/java/org/nest/nestml/_symboltable/NESTMLLanguage.java @@ -36,14 +36,14 @@ public class NESTMLLanguage extends NESTMLLanguageTOP { public NESTMLLanguage() { super("NESTML Language", FILE_ENDING); - addResolver(CommonResolvingFilter.create(NeuronSymbol.class, NeuronSymbol.KIND)); + addResolver(CommonResolvingFilter.create(NeuronSymbol.KIND)); - addResolver(new PredefinedTypesFilter(TypeSymbol.KIND)); - addResolver(new PredefinedMethodsFilter(MethodSymbol.KIND)); + addResolver(new PredefinedTypesFilter()); + addResolver(new PredefinedMethodsFilter()); addResolver(CommonResolvingFilter.create(MethodSymbol.KIND)); addResolver(CommonResolvingFilter.create(VariableSymbol.KIND)); - addResolver(new PredefinedVariablesFilter(VariableSymbol.class, VariableSymbol.KIND)); + addResolver(new PredefinedVariablesFilter()); addResolver(CommonResolvingFilter.create( UsageSymbol.KIND)); diff --git a/src/main/java/org/nest/nestml/_symboltable/PredefinedMethodsFilter.java b/src/main/java/org/nest/nestml/_symboltable/PredefinedMethodsFilter.java index 9ccd90f6e..588372e10 100644 --- a/src/main/java/org/nest/nestml/_symboltable/PredefinedMethodsFilter.java +++ b/src/main/java/org/nest/nestml/_symboltable/PredefinedMethodsFilter.java @@ -11,28 +11,28 @@ import de.monticore.symboltable.resolving.ResolvingInfo; import org.nest.symboltable.symbols.MethodSymbol; +import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.Optional; import static org.nest.symboltable.predefined.PredefinedFunctions.getMethodSymbolIfExists; /** - * TODO + * Returns a predefined methods if one exists: e.g. pow, exp, ... * * @author plotnikov */ public class PredefinedMethodsFilter extends CommonResolvingFilter { - public PredefinedMethodsFilter( - final SymbolKind targetKind) { - super(targetKind); + public PredefinedMethodsFilter() { + super(MethodSymbol.KIND); } @Override - public Optional filter(ResolvingInfo resolvingInfo, String name, - List symbols) { + public Optional filter(ResolvingInfo resolvingInfo, String name, Map> symbols) { final Optional foundPredefinedMethod = getMethodSymbolIfExists(name); if (foundPredefinedMethod.isPresent()) { diff --git a/src/main/java/org/nest/nestml/_symboltable/PredefinedTypesFilter.java b/src/main/java/org/nest/nestml/_symboltable/PredefinedTypesFilter.java index 4bd55dacf..41f19eb98 100644 --- a/src/main/java/org/nest/nestml/_symboltable/PredefinedTypesFilter.java +++ b/src/main/java/org/nest/nestml/_symboltable/PredefinedTypesFilter.java @@ -12,25 +12,23 @@ import org.nest.symboltable.predefined.PredefinedTypes; import org.nest.symboltable.symbols.TypeSymbol; +import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.Optional; /** - * TODO + * All types in NESTML are predefined. This filter matches the type by name and returns if one exists * * @author plotnikov */ public class PredefinedTypesFilter extends CommonResolvingFilter { - public PredefinedTypesFilter( - final SymbolKind targetKind) { - super(targetKind); + public PredefinedTypesFilter() { + super(TypeSymbol.KIND); } @Override - public Optional filter( - final ResolvingInfo resolvingInfo, - final String name, - final List symbols) { + public Optional filter(ResolvingInfo resolvingInfo, String name, Map> symbols) { final Optional typeSymbol = PredefinedTypes.getTypeIfExists(name); if (typeSymbol.isPresent()) { return Optional.of(typeSymbol.get()); diff --git a/src/main/java/org/nest/nestml/_symboltable/PredefinedVariablesFilter.java b/src/main/java/org/nest/nestml/_symboltable/PredefinedVariablesFilter.java index 9c0e26de9..817d6664f 100644 --- a/src/main/java/org/nest/nestml/_symboltable/PredefinedVariablesFilter.java +++ b/src/main/java/org/nest/nestml/_symboltable/PredefinedVariablesFilter.java @@ -12,28 +12,23 @@ import org.nest.symboltable.predefined.PredefinedVariables; import org.nest.symboltable.symbols.VariableSymbol; +import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.Optional; /** - * TODO + * Returns a predefined variable (e.g. 't') if one exists. * - * @author (last commit) $$Author$$ - * @version $$Revision$$, $$Date$$ - * @since TODO + * @author plotnikov */ public class PredefinedVariablesFilter extends CommonResolvingFilter { - public PredefinedVariablesFilter( - final Class symbolClass, - final SymbolKind targetKind) { - super(targetKind); + public PredefinedVariablesFilter() { + super(VariableSymbol.KIND); } @Override - public Optional filter( - final ResolvingInfo resolvingInfo, - final String name, - final List symbols) { + public Optional filter(ResolvingInfo resolvingInfo, String name, Map> symbols) { final Optional predefinedVariable = PredefinedVariables.getVariableIfExists(name); if (predefinedVariable.isPresent()) { return Optional.of(predefinedVariable.get()); diff --git a/src/main/java/org/nest/spl/_symboltable/SPLLanguage.java b/src/main/java/org/nest/spl/_symboltable/SPLLanguage.java index b5747617e..5473c0658 100644 --- a/src/main/java/org/nest/spl/_symboltable/SPLLanguage.java +++ b/src/main/java/org/nest/spl/_symboltable/SPLLanguage.java @@ -44,9 +44,9 @@ public Optional getSymbolTableCreator(ResolverConfi @Override protected void initResolvingFilters() { super.initResolvingFilters(); - addResolver(new PredefinedTypesFilter(TypeSymbol.KIND)); - addResolver(CommonResolvingFilter.create(VariableSymbol.class, VariableSymbol.KIND)); - addResolver(CommonResolvingFilter.create(MethodSymbol.class, MethodSymbol.KIND)); + addResolver(new PredefinedTypesFilter()); + addResolver(CommonResolvingFilter.create(VariableSymbol.KIND)); + addResolver(CommonResolvingFilter.create(MethodSymbol.KIND)); } @Override protected ModelingLanguageModelLoader provideModelLoader() {