From 4585a4d344da5498200548e7add61e5cccd44924 Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Tue, 8 May 2018 17:03:07 +0200 Subject: Refactored to the milestone version of Viatra 2.0 --- .../ide/ApplicationConfigurationIdeModule.xtend | 11 ++++++++ .../ide/ApplicationConfigurationIdeSetup.xtend | 20 ++++++++++++++ .../application/ApplicationConfiguration.xtext | 2 +- .../GenerateApplicationConfiguration.mwe2 | 2 +- .../execution/GenerationTaskExecutor.xtend | 2 +- .../application/execution/QueryLoader.xtend | 6 ++-- .../application/execution/util/VQLParser.xtend | 12 +++----- .../ApplicationConfigurationScopeProvider.xtend | 2 +- .../validation/QueryAndMetamodelValidator.xtend | 2 +- .../META-INF/MANIFEST.MF | 4 +-- .../TypeConsistencyChecker.xtend | 28 +++++++++---------- .../dslreasoner/viatra2logic/Viatra2Logic.xtend | 6 ++-- .../Logic2Smt_TypeMapper_FilteredTypes.xtend | 20 +++++++------- .../META-INF/MANIFEST.MF | 31 ++++++++++----------- .../viatrasolver/logic2viatra/TypeAnalysis.xtend | 32 +++++++++++----------- .../viatrasolver/logic2viatra/util/ParseUtil.xtend | 12 +++----- .../PartialInterpretationInitialiser.xtend | 12 ++++---- 17 files changed, 113 insertions(+), 91 deletions(-) create mode 100644 Application/hu.bme.mit.inf.dslreasoner.application.ide/src/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeModule.xtend create mode 100644 Application/hu.bme.mit.inf.dslreasoner.application.ide/src/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeSetup.xtend diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/src/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeModule.xtend b/Application/hu.bme.mit.inf.dslreasoner.application.ide/src/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeModule.xtend new file mode 100644 index 00000000..195aa77a --- /dev/null +++ b/Application/hu.bme.mit.inf.dslreasoner.application.ide/src/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeModule.xtend @@ -0,0 +1,11 @@ +/* + * generated by Xtext 2.12.0 + */ +package hu.bme.mit.inf.dslreasoner.application.ide + + +/** + * Use this class to register ide components. + */ +class ApplicationConfigurationIdeModule extends AbstractApplicationConfigurationIdeModule { +} diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/src/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeSetup.xtend b/Application/hu.bme.mit.inf.dslreasoner.application.ide/src/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeSetup.xtend new file mode 100644 index 00000000..afaa5ee2 --- /dev/null +++ b/Application/hu.bme.mit.inf.dslreasoner.application.ide/src/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeSetup.xtend @@ -0,0 +1,20 @@ +/* + * generated by Xtext 2.12.0 + */ +package hu.bme.mit.inf.dslreasoner.application.ide + +import com.google.inject.Guice +import hu.bme.mit.inf.dslreasoner.application.ApplicationConfigurationRuntimeModule +import hu.bme.mit.inf.dslreasoner.application.ApplicationConfigurationStandaloneSetup +import org.eclipse.xtext.util.Modules2 + +/** + * Initialization support for running Xtext languages as language servers. + */ +class ApplicationConfigurationIdeSetup extends ApplicationConfigurationStandaloneSetup { + + override createInjector() { + Guice.createInjector(Modules2.mixin(new ApplicationConfigurationRuntimeModule, new ApplicationConfigurationIdeModule)) + } + +} diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext index 2361d965..1f9495cf 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext @@ -1,7 +1,7 @@ grammar hu.bme.mit.inf.dslreasoner.application.ApplicationConfiguration with org.eclipse.xtext.common.Terminals import "http://www.eclipse.org/emf/2002/Ecore" as ecore -import "http://www.eclipse.org/viatra/query/patternlanguage/PatternLanguage" as viatra +import "http://www.eclipse.org/viatra/query/patternlanguage/emf/PatternLanguage" as viatra generate applicationConfiguration "http://www.bme.hu/mit/inf/dslreasoner/application/ApplicationConfiguration" ConfigurationScript: diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/GenerateApplicationConfiguration.mwe2 b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/GenerateApplicationConfiguration.mwe2 index 9265ce4a..13cc78a8 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/GenerateApplicationConfiguration.mwe2 +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/GenerateApplicationConfiguration.mwe2 @@ -30,7 +30,7 @@ Workflow { language = StandardLanguage { name = "hu.bme.mit.inf.dslreasoner.application.ApplicationConfiguration" referencedResource = "platform:/resource/org.eclipse.emf.ecore/model/Ecore.genmodel" - referencedResource = "platform:/resource/org.eclipse.viatra.query.patternlanguage/model/generated/PatternLanguage.genmodel" + referencedResource = "platform:/resource/org.eclipse.viatra.query.patternlanguage.emf/model/PatternLanguage.genmodel" fileExtensions = "vsconfig" serializer = { generateStub = false diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend index 5506d762..2cbfc20d 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend @@ -198,7 +198,7 @@ class GenerationTaskExecutor { val vis1 = new PartialInterpretation2Gml val gml = vis1.transform(representation) outputWorkspaceForRun.writeText('''model«IF runs>1»_«run»«ENDIF»_«interpretationIndex+1».gml''',gml) - if(false && representation.newElements.size + representation.problem.elements.size < 150) { + if(representation.newElements.size + representation.problem.elements.size < 150) { val vis2 = new GraphvizVisualisation val dot = vis2.visualiseConcretization(representation) dot.writeToFile(outputWorkspaceForRun,'''model«IF runs>1»_«run»«ENDIF»_«interpretationIndex+1»''') diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend index 73a8ad59..c25bfb07 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend @@ -13,10 +13,10 @@ import java.util.List import java.util.Set import org.eclipse.emf.ecore.EClass import org.eclipse.emf.ecore.EPackage -import org.eclipse.viatra.query.patternlanguage.emf.eMFPatternLanguage.PatternModel import org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder -import org.eclipse.viatra.query.patternlanguage.patternLanguage.Pattern -import org.eclipse.viatra.query.patternlanguage.patternLanguage.PatternCompositionConstraint +import org.eclipse.viatra.query.patternlanguage.emf.vql.Pattern +import org.eclipse.viatra.query.patternlanguage.emf.vql.PatternCompositionConstraint +import org.eclipse.viatra.query.patternlanguage.emf.vql.PatternModel import org.eclipse.viatra.query.runtime.api.IQuerySpecification import org.eclipse.xtext.EcoreUtil2 diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend index 0da42e0f..e458267c 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend @@ -10,24 +10,21 @@ import org.eclipse.emf.common.util.URI import org.eclipse.emf.ecore.resource.Resource import org.eclipse.emf.ecore.resource.ResourceSet import org.eclipse.emf.ecore.util.EcoreUtil -import org.eclipse.viatra.query.patternlanguage.PatternLanguageStandaloneSetup -import org.eclipse.viatra.query.patternlanguage.annotations.ExtensionBasedAnnotationValidatorLoader -import org.eclipse.viatra.query.patternlanguage.annotations.IAnnotationValidatorLoader import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageRuntimeModule import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetup import org.eclipse.viatra.query.patternlanguage.emf.GenmodelExtensionLoader import org.eclipse.viatra.query.patternlanguage.emf.IGenmodelMappingLoader -import org.eclipse.viatra.query.patternlanguage.emf.eMFPatternLanguage.PatternModel import org.eclipse.viatra.query.patternlanguage.emf.scoping.CompoundMetamodelProviderService import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProvider import org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder +import org.eclipse.viatra.query.patternlanguage.emf.vql.PatternModel import org.eclipse.viatra.query.runtime.api.IQuerySpecification import org.eclipse.xtext.resource.XtextResourceSet class MyModule extends EMFPatternLanguageRuntimeModule implements Module { - def public Class bindAnnotationValidatorLoader() { - return typeof(ExtensionBasedAnnotationValidatorLoader); - } +// override public Class bindAnnotationValidatorLoader() { +// return typeof(ExtensionBasedAnnotationValidatorLoader); +// } def public Class bindGenmodelMappingLoader() { return typeof(GenmodelExtensionLoader); } @@ -42,7 +39,6 @@ class VQLParser { val SpecificationBuilder builder = new SpecificationBuilder new() { - PatternLanguageStandaloneSetup.doSetup EMFPatternLanguageStandaloneSetup.doSetup; injector = internalCreateInjector diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend index 8973e7cf..36948c2d 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend @@ -19,7 +19,7 @@ import org.eclipse.emf.ecore.EClass import org.eclipse.emf.ecore.EEnum import org.eclipse.emf.ecore.EObject import org.eclipse.emf.ecore.EReference -import org.eclipse.viatra.query.patternlanguage.patternLanguage.PatternModel +import org.eclipse.viatra.query.patternlanguage.emf.vql.PatternModel import org.eclipse.xtext.EcoreUtil2 import org.eclipse.xtext.naming.QualifiedName import org.eclipse.xtext.scoping.IScope diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.xtend index 0efd522b..e5488e50 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.xtend @@ -6,7 +6,7 @@ import java.util.LinkedList import java.util.List import java.util.Set import org.eclipse.emf.ecore.ENamedElement -import org.eclipse.viatra.query.patternlanguage.patternLanguage.Pattern +import org.eclipse.viatra.query.patternlanguage.emf.vql.Pattern class QueryAndMetamodelValidator { diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/META-INF/MANIFEST.MF b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/META-INF/MANIFEST.MF index b4f60202..763ba19c 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/META-INF/MANIFEST.MF +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/META-INF/MANIFEST.MF @@ -29,7 +29,7 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.core.resources;bundle-version="3.8.101", org.eclipse.viatra.query.runtime;bundle-version="1.3.0", org.apache.commons.lang;bundle-version="2.6.0" -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Bundle-ActivationPolicy: lazy Import-Package: org.apache.log4j Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.logic.model +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/consistencychecker/TypeConsistencyChecker.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/consistencychecker/TypeConsistencyChecker.xtend index 9148424c..7e9dd5fb 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/consistencychecker/TypeConsistencyChecker.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/consistencychecker/TypeConsistencyChecker.xtend @@ -1,19 +1,19 @@ package hu.bme.mit.inf.dslreasoner.logic.model.builder.consistencychecker import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner -import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem -import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration -import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasonerException -import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult -import org.eclipse.viatra.query.runtime.emf.EMFScope -import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicresultFactory -import hu.bme.mit.inf.dslreasoner.logic.model.patterns.TypeSystemIsInconsistentMatcher -import hu.bme.mit.inf.dslreasoner.logic.model.patterns.ElementNotDefinedInSupertypeMatcher -import hu.bme.mit.inf.dslreasoner.logic.model.patterns.ElementWithNoPossibleDynamicTypeMatcher -import hu.bme.mit.inf.dslreasoner.logic.model.patterns.PossibleDynamicTypeMatcher +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult +import hu.bme.mit.inf.dslreasoner.logic.model.patterns.ElementNotDefinedInSupertype +import hu.bme.mit.inf.dslreasoner.logic.model.patterns.ElementWithNoPossibleDynamicType +import hu.bme.mit.inf.dslreasoner.logic.model.patterns.PossibleDynamicType +import hu.bme.mit.inf.dslreasoner.logic.model.patterns.TypeSystemIsInconsistent +import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine +import org.eclipse.viatra.query.runtime.emf.EMFScope class TypeConsistencyChecker extends LogicReasoner{ val extension LogicresultFactory factory = LogicresultFactory.eINSTANCE @@ -32,10 +32,10 @@ class TypeConsistencyChecker extends LogicReasoner{ val queryEngine = ViatraQueryEngine.on(new EMFScope(problem)) - val typeSystemInconsistencyMatcher = TypeSystemIsInconsistentMatcher.on(queryEngine) - val elementNotDefinedInSupertype = ElementNotDefinedInSupertypeMatcher.on(queryEngine) - val elementWithNoPossibleDynamicType = ElementWithNoPossibleDynamicTypeMatcher.on(queryEngine) - val possibleDynamicType = PossibleDynamicTypeMatcher.on(queryEngine) + val typeSystemInconsistencyMatcher = TypeSystemIsInconsistent.Matcher.on(queryEngine) + val elementNotDefinedInSupertype = ElementNotDefinedInSupertype.Matcher.on(queryEngine) + val elementWithNoPossibleDynamicType = ElementWithNoPossibleDynamicType.Matcher.on(queryEngine) + val possibleDynamicType = PossibleDynamicType.Matcher.on(queryEngine) val hasErrorPatternMatch = typeSystemInconsistencyMatcher.hasMatch(problem) diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend index 42c93da1..8d234fe9 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/Viatra2Logic.xtend @@ -143,7 +143,7 @@ class Viatra2Logic { { val pquery = squery.internalQueryRepresentation val disjunction = if(config.normalize) { - val normalizer = new PBodyNormalizer(EMFQueryMetaContext.INSTANCE,true) + val normalizer = new PBodyNormalizer(EMFQueryMetaContext.DEFAULT) normalizer.rewrite(pquery) } else { pquery.disjunctBodies @@ -255,7 +255,7 @@ class Viatra2Logic { def TypeDescriptor getType(PVariable v, PBody body, TracedOutput ecore2LogicTrace) { if(v.isPositiveVariable) { val allTypes = v.lookup( - body.getAllUnaryTypeRestrictions(EMFQueryMetaContext.INSTANCE)) + body.getAllUnaryTypeRestrictions(EMFQueryMetaContext.DEFAULT)) val types = allTypes.filter[it.inputKey instanceof BaseEMFTypeKey].toSet if(types.size == 0) { @@ -279,7 +279,7 @@ class Viatra2Logic { val indexOfVariable = v.lookup(onlyConstraint.actualParametersTuple.invertIndex) val parameter = onlyConstraint.referredQuery.parameters.get(indexOfVariable) val declaredUnaryType = parameter.declaredUnaryType as BaseEMFTypeKey - if(declaredUnaryType == null) { + if(declaredUnaryType === null) { throw new UnsupportedOperationException( '''parameter «parameter.name» in pattern « onlyConstraint.referredQuery.fullyQualifiedName» does not have type!''') diff --git a/Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2Smt_TypeMapper_FilteredTypes.xtend b/Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2Smt_TypeMapper_FilteredTypes.xtend index 2796e077..56668b79 100644 --- a/Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2Smt_TypeMapper_FilteredTypes.xtend +++ b/Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2Smt_TypeMapper_FilteredTypes.xtend @@ -7,8 +7,8 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem -import hu.bme.mit.inf.dslreasoner.logic.model.patterns.PossibleDynamicTypeMatcher -import hu.bme.mit.inf.dslreasoner.logic.model.patterns.SupertypeStarMatcher +import hu.bme.mit.inf.dslreasoner.logic.model.patterns.PossibleDynamicType +import hu.bme.mit.inf.dslreasoner.logic.model.patterns.SupertypeStar import hu.bme.mit.inf.dslreasoner.smtLanguage.SMTComplexTypeReference import hu.bme.mit.inf.dslreasoner.smtLanguage.SMTDocument import hu.bme.mit.inf.dslreasoner.smtLanguage.SMTEnumLiteral @@ -111,7 +111,7 @@ class Logic2Smt_TypeMapperTrace_FilteredTypes implements Logic2Smt_TypeMapperTra } def validate(EObject element, EObject other) { - if(element != null) { + if(element !== null) { val headOfElement = EcoreUtil2.getContainerOfType(element,SMTDocument) val expectedHeadOfElement = EcoreUtil2.getContainerOfType(other,SMTDocument) if(headOfElement !== expectedHeadOfElement) { @@ -234,8 +234,8 @@ class Logic2Smt_TypeMapper_FilteredTypes implements Logic2Smt_TypeMapper { } protected def transformOldTypes(Iterable oldTypes,Iterable oldElements, Logic2SmtMapperTrace trace, SMTInput document, ViatraQueryEngine engine) { - val possibleTypeMatcher = PossibleDynamicTypeMatcher.on(engine) - val supertypeStarMatcher = SupertypeStarMatcher.on(engine) + val possibleTypeMatcher = PossibleDynamicType.Matcher.on(engine) + val supertypeStarMatcher = SupertypeStar.Matcher.on(engine) // val possibleTypes = new LinkedList // if(hasDefinedElement) possibleTypes += typesWithDefinedSupertype // if(hasUndefinedElement) possibleTypes += typesWithoutDefinedSupertype @@ -351,7 +351,7 @@ class Logic2Smt_TypeMapper_FilteredTypes implements Logic2Smt_TypeMapper { Iterable typesWithoutDefinedSupertype, Logic2SmtMapperTrace trace, SMTInput document, ViatraQueryEngine engine) { - val supertypeStarMatcher = SupertypeStarMatcher.on(engine) + val supertypeStarMatcher = SupertypeStar.Matcher.on(engine) val possibleTypes = typesWithoutDefinedSupertype val possibleConcreteTypes = possibleTypes.filter[!it.isIsAbstract].toList @@ -483,7 +483,7 @@ class Logic2Smt_TypeMapper_FilteredTypes implements Logic2Smt_TypeMapper { } if(list.empty) throw new AssertionError('''Typereference to type is «type.name» empty''') - if(list.exists[it.type == null]){ + if(list.exists[it.type === null]){ throw new AssertionError('''Typereference to null!''') } return list @@ -520,14 +520,14 @@ class Logic2Smt_TypeMapper_FilteredTypes implements Logic2Smt_TypeMapper { } val engine = ViatraQueryEngine.on(new EMFScope(problem)) - val supertypeStarMatcher = SupertypeStarMatcher.on(engine) + val supertypeStarMatcher = SupertypeStar.Matcher.on(engine) val Map> type2Elements = new HashMap for(key : problem.types) { type2Elements.put(key,new LinkedList) } - if(trace.typeTrace.independentClasses != null) { + if(trace.typeTrace.independentClasses !== null) { for(type : trace.typeTrace.independentClasses.keySet) { if(type instanceof TypeDefinition) { type.lookup(type2Elements).addAll(type.elements) @@ -537,7 +537,7 @@ class Logic2Smt_TypeMapper_FilteredTypes implements Logic2Smt_TypeMapper { } } - if(trace.typeTrace.oldObjectTypeFunction != null) { + if(trace.typeTrace.oldObjectTypeFunction !== null) { val inverseOldTypeMap = trace.typeTrace.oldObjectTypeMap.bijectiveInverse for(oldElement: trace.typeTrace.elementMap.values) { val type = interpretation.queryEngine.resolveFunctionDefinition( diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/META-INF/MANIFEST.MF b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/META-INF/MANIFEST.MF index 6510a20a..b2e3667c 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/META-INF/MANIFEST.MF +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/META-INF/MANIFEST.MF @@ -4,23 +4,22 @@ Bundle-Name: Logic2viatra Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatraquery;singleton:=true Bundle-Version: 1.0.0.qualifier Export-Package: hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra, - hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries, - hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.util + hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries Require-Bundle: hu.bme.mit.inf.dslreasoner.logic.model;bundle-version="1.0.0", - hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0", - hu.bme.mit.inf.dslreasoner.ecore2logic;bundle-version="1.0.0", - hu.bme.mit.inf.dslreasoner.viatra2logic;bundle-version="1.0.0", - com.google.guava, - org.eclipse.xtext.xbase.lib, - org.eclipse.xtend.lib, - org.eclipse.xtend.lib.macro, - org.eclipse.viatra.query.runtime;bundle-version="1.5.0", - org.eclipse.viatra.query.runtime.base.itc;bundle-version="1.5.0", - org.eclipse.viatra.query.patternlanguage.emf;bundle-version="1.5.0", - com.google.inject;bundle-version="3.0.0", - org.eclipse.xtext;bundle-version="2.10.0", - org.eclipse.viatra.transformation.runtime.emf;bundle-version="1.5.0", - org.eclipse.xtext.xbase;bundle-version="2.10.0" + hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0", + hu.bme.mit.inf.dslreasoner.ecore2logic;bundle-version="1.0.0", + hu.bme.mit.inf.dslreasoner.viatra2logic;bundle-version="1.0.0", + com.google.guava, + org.eclipse.xtext.xbase.lib, + org.eclipse.xtend.lib, + org.eclipse.xtend.lib.macro, + org.eclipse.viatra.query.runtime;bundle-version="1.5.0", + org.eclipse.viatra.query.runtime.base.itc;bundle-version="1.5.0", + org.eclipse.viatra.query.patternlanguage.emf;bundle-version="1.5.0", + com.google.inject;bundle-version="3.0.0", + org.eclipse.xtext;bundle-version="2.10.0", + org.eclipse.viatra.transformation.runtime.emf;bundle-version="1.5.0", + org.eclipse.xtext.xbase;bundle-version="2.10.0" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: org.apache.log4j Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatraquery diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/TypeAnalysis.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/TypeAnalysis.xtend index 395aba85..2dd01343 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/TypeAnalysis.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/TypeAnalysis.xtend @@ -1,21 +1,21 @@ package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra -import org.eclipse.xtend.lib.annotations.Data +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem +import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.DontHaveDefinedSupertype +import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementMayTypeNegativeConstraint +import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeConstructor +import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeRefinementNegativeConstraint +import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeRefinementTarget +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation +import java.util.ArrayList import java.util.List import java.util.Map -import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation -import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine import org.eclipse.viatra.query.runtime.emf.EMFScope -import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeConstructorMatcher -import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeRefinementTargetMatcher -import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeRefinementNegativeConstraintMatcher -import java.util.ArrayList -import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.DontHaveDefinedSupertypeMatcher -import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration -import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement -import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementMayTypeNegativeConstraintMatcher +import org.eclipse.xtend.lib.annotations.Data @Data class TypeRefinementPrecondition { Type targetType @@ -60,11 +60,11 @@ class TypeAnalysis { def TypeAnalysisResult performTypeAnalysis(LogicProblem problem, PartialInterpretation interpretation) { val viatraEngine = ViatraQueryEngine.on(new EMFScope(problem)) - val negativeMatcher = NewElementTypeRefinementNegativeConstraintMatcher.on(viatraEngine) + val negativeMatcher = NewElementTypeRefinementNegativeConstraint.Matcher.on(viatraEngine) - val possibleNewDynamicTypes = NewElementTypeConstructorMatcher.on(viatraEngine).allValuesOftype + val possibleNewDynamicTypes = NewElementTypeConstructor.Matcher.on(viatraEngine).allValuesOftype - val possibleNewTypeRefinementTargets = NewElementTypeRefinementTargetMatcher.on(viatraEngine).allValuesOfrefined + val possibleNewTypeRefinementTargets = NewElementTypeRefinementTarget.Matcher.on(viatraEngine).allValuesOfrefined val possibleNewTypeRefinements = new ArrayList for(possibleNewTypeRefinementTarget : possibleNewTypeRefinementTargets) { val inhibitorTypes = negativeMatcher.getAllValuesOfinhibitor(possibleNewTypeRefinementTarget) @@ -73,8 +73,8 @@ class TypeAnalysis { inhibitorTypes.toList) } - val possibleTypes = DontHaveDefinedSupertypeMatcher.on(viatraEngine).allValuesOftype - val newElementMayTypeMatcher = NewElementMayTypeNegativeConstraintMatcher.on(viatraEngine) + val possibleTypes = DontHaveDefinedSupertype.Matcher.on(viatraEngine).allValuesOftype + val newElementMayTypeMatcher = NewElementMayTypeNegativeConstraint.Matcher.on(viatraEngine) val mayNewTypePreconditions = possibleTypes.toInvertedMap[type | val inhibitorTypes = newElementMayTypeMatcher.getAllValuesOfinhibitor(type as TypeDeclaration) diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/util/ParseUtil.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/util/ParseUtil.xtend index d315ac3f..6febe0a6 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/util/ParseUtil.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/util/ParseUtil.xtend @@ -12,21 +12,18 @@ import java.util.LinkedHashMap import org.eclipse.emf.common.util.URI import org.eclipse.emf.ecore.resource.Resource import org.eclipse.emf.ecore.util.EcoreUtil -import org.eclipse.viatra.query.patternlanguage.PatternLanguageStandaloneSetup -import org.eclipse.viatra.query.patternlanguage.annotations.ExtensionBasedAnnotationValidatorLoader -import org.eclipse.viatra.query.patternlanguage.annotations.IAnnotationValidatorLoader import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageRuntimeModule import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetup import org.eclipse.viatra.query.patternlanguage.emf.GenmodelExtensionLoader import org.eclipse.viatra.query.patternlanguage.emf.IGenmodelMappingLoader -import org.eclipse.viatra.query.patternlanguage.emf.eMFPatternLanguage.PatternModel import org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder +import org.eclipse.viatra.query.patternlanguage.emf.vql.PatternModel import org.eclipse.xtext.resource.XtextResourceSet class MyModule extends EMFPatternLanguageRuntimeModule implements Module{ - def public Class bindAnnotationValidatorLoader() { - return typeof(ExtensionBasedAnnotationValidatorLoader); - } +// def public Class bindAnnotationValidatorLoader() { +// return typeof(ExtensionBasedAnnotationValidatorLoader); +// } def public Class bindGenmodelMappingLoader() { return typeof(GenmodelExtensionLoader); } @@ -35,7 +32,6 @@ class MyModule extends EMFPatternLanguageRuntimeModule implements Module{ class ParseUtil { val Injector injector; new() { - PatternLanguageStandaloneSetup.doSetup EMFPatternLanguageStandaloneSetup.doSetup; PartialinterpretationPackage.eINSTANCE.class; LogicproblemPackage.eINSTANCE.class; diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/PartialInterpretationInitialiser.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/PartialInterpretationInitialiser.xtend index 9ddee6a7..45fd2c6d 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/PartialInterpretationInitialiser.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/PartialInterpretationInitialiser.xtend @@ -1,15 +1,19 @@ package hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput +import hu.bme.mit.inf.dslreasoner.logic.model.builder.TypeScopes import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntLiteral import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealLiteral import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.StringLiteral import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem -import hu.bme.mit.inf.dslreasoner.logic.model.patterns.SupertypeStarMatcher +import hu.bme.mit.inf.dslreasoner.logic.model.patterns.SupertypeStar import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialConstantInterpretation import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialFunctionInterpretation import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation @@ -23,10 +27,6 @@ import org.eclipse.viatra.query.runtime.emf.EMFScope import org.eclipse.xtend.lib.annotations.Data import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* -import hu.bme.mit.inf.dslreasoner.logic.model.builder.TypeScopes -import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntLiteral -import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealLiteral -import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.StringLiteral @Data class Problem2PartialInterpretationTrace { Map type2Interpretation = new HashMap @@ -112,7 +112,7 @@ class PartialInterpretationInitialiser { * Initialize type with existing elements */ def private initialisePartialTypeInterpretation(TypeDeclaration t, ViatraQueryEngine engine, Problem2PartialInterpretationTrace trace) { - val supertypeMatcher = SupertypeStarMatcher.on(engine) + val supertypeMatcher = SupertypeStar.Matcher.on(engine) val res = createPartialTypeInterpratation => [ it.interpretationOf = t it.elements += supertypeMatcher.getAllValuesOfsubtype(t) -- cgit v1.2.3-54-g00ecf