diff options
author | Zoltan Ujhelyi | 2018-11-18 09:57:22 +0000 |
---|---|---|
committer | Zoltan Ujhelyi | 2018-11-18 09:57:22 +0000 |
commit | f520e7fd65a2634f591f5c202a99aa35551cdf50 (patch) | |
tree | 20276bbd797a7817f24645c2aab67e3e151e50dd | |
parent | db6f14bc6deb9072d8c3b9d59e7b80f2d6604be1 (diff) | |
download | org.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>
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() { |