Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZoltan Ujhelyi2018-11-18 09:57:22 +0000
committerZoltan Ujhelyi2018-11-18 09:57:22 +0000
commitf520e7fd65a2634f591f5c202a99aa35551cdf50 (patch)
tree20276bbd797a7817f24645c2aab67e3e151e50dd
parentdb6f14bc6deb9072d8c3b9d59e7b80f2d6604be1 (diff)
downloadorg.eclipse.viatra-f520e7fd65a2634f591f5c202a99aa35551cdf50.tar.gz
org.eclipse.viatra-f520e7fd65a2634f591f5c202a99aa35551cdf50.tar.xz
org.eclipse.viatra-f520e7fd65a2634f591f5c202a99aa35551cdf50.zip
[541080] Fixes optional semicolon support with import declarations
The optional semicolon by mistake was not at the end of the declaration but before the alias declarations, causing unexpected validation issues when used as intended. This change fixes this issue and adds two basic parsing tests that rely on the alias functionality. Change-Id: I8f1818145a137c9505649b326a09a1bcea0c7050 Signed-off-by: Zoltan Ujhelyi <zoltan.ujhelyi@incquerylabs.com>
-rw-r--r--query/plugins/org.eclipse.viatra.query.patternlanguage.emf/src/org/eclipse/viatra/query/patternlanguage/emf/EMFPatternLanguage.xtext2
-rw-r--r--query/tests/org.eclipse.viatra.query.patternlanguage.emf.tests/src/org/eclipse/viatra/query/patternlanguage/emf/tests/imports/PackageDeclarationTest.xtend28
2 files changed, 29 insertions, 1 deletions
diff --git a/query/plugins/org.eclipse.viatra.query.patternlanguage.emf/src/org/eclipse/viatra/query/patternlanguage/emf/EMFPatternLanguage.xtext b/query/plugins/org.eclipse.viatra.query.patternlanguage.emf/src/org/eclipse/viatra/query/patternlanguage/emf/EMFPatternLanguage.xtext
index 7998fc75c..dfb210c55 100644
--- a/query/plugins/org.eclipse.viatra.query.patternlanguage.emf/src/org/eclipse/viatra/query/patternlanguage/emf/EMFPatternLanguage.xtext
+++ b/query/plugins/org.eclipse.viatra.query.patternlanguage.emf/src/org/eclipse/viatra/query/patternlanguage/emf/EMFPatternLanguage.xtext
@@ -25,7 +25,7 @@ VQLImportSection:
importDeclarations+=XImportDeclaration)*;
PackageImport:
- 'import' 'epackage'? ePackage=[ecore::EPackage|STRING] ';'? ('as' alias=ID)?;
+ 'import' 'epackage'? ePackage=[ecore::EPackage|STRING] ('as' alias=ID)? ';'?;
PatternImport:
'import' 'pattern'? pattern=[Pattern|QualifiedName] ';'?;
diff --git a/query/tests/org.eclipse.viatra.query.patternlanguage.emf.tests/src/org/eclipse/viatra/query/patternlanguage/emf/tests/imports/PackageDeclarationTest.xtend b/query/tests/org.eclipse.viatra.query.patternlanguage.emf.tests/src/org/eclipse/viatra/query/patternlanguage/emf/tests/imports/PackageDeclarationTest.xtend
index c85713bab..e5176cd3e 100644
--- a/query/tests/org.eclipse.viatra.query.patternlanguage.emf.tests/src/org/eclipse/viatra/query/patternlanguage/emf/tests/imports/PackageDeclarationTest.xtend
+++ b/query/tests/org.eclipse.viatra.query.patternlanguage.emf.tests/src/org/eclipse/viatra/query/patternlanguage/emf/tests/imports/PackageDeclarationTest.xtend
@@ -72,6 +72,34 @@ class PackageDeclarationTest {
val packageName = model.packageName
assertEquals(packageName, "hu.bme.mit.school");
}
+ @Test
+ def packageAlias() {
+ val model = parseHelper.parse('
+ package hu.bme.mit.school;
+ import "http://www.eclipse.org/viatra/query/patternlanguage/emf/PatternLanguage" as pl
+
+ pattern resolutionTest(Name) = {
+ pl::Pattern(Name);
+ }
+ ')
+ model.assertNoErrors
+ val packageName = model.packageName
+ assertEquals(packageName, "hu.bme.mit.school");
+ }
+ @Test
+ def packageAliasWithSemicolon() {
+ val model = parseHelper.parse('
+ package hu.bme.mit.school;
+ import "http://www.eclipse.org/viatra/query/patternlanguage/emf/PatternLanguage" as pl;
+
+ pattern resolutionTest(Name) = {
+ pl::Pattern(Name);
+ }
+ ')
+ model.assertNoErrors
+ val packageName = model.packageName
+ assertEquals(packageName, "hu.bme.mit.school");
+ }
@Test
def capitalizedPackageName() {

Back to the top