summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/spack/spack/spec.py24
-rw-r--r--lib/spack/spack/test/spec_dag.py7
2 files changed, 16 insertions, 15 deletions
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index e4bb50dd89..4a5e14bd85 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -1806,6 +1806,8 @@ class SpecParser(spack.parse.Parser):
try:
while self.next:
+ if self.previous:
+ specs.append(self.previous.value)
if self.accept(ID):
self.previous = self.token
if self.accept(EQ):
@@ -1818,6 +1820,7 @@ class SpecParser(spack.parse.Parser):
specs[-1]._add_flag(self.previous.value, self.token.value)
else:
specs.append(self.spec(self.previous.value))
+ self.previous = None
elif self.accept(HASH):
specs.append(self.spec_by_hash())
@@ -1825,6 +1828,7 @@ class SpecParser(spack.parse.Parser):
if not specs:
self.previous = self.token
specs.append(self.spec(''))
+ self.previous = None
if self.accept(HASH):
specs[-1]._add_dependency(self.spec_by_hash())
else:
@@ -1911,17 +1915,6 @@ class SpecParser(spack.parse.Parser):
check_valid_token = False
elif self.accept(ON):
-# self.expect(ID)
-# self.check_identifier()
-# option = self.token.value
-# if self.accept(EQ):
-# if self.accept(QT):
-# self.token.value = self.token.value[1:-1]
-# else:
-# self.expect(ID)
-# spec._add_flag(option,self.token.value)
-# else:
-# spec._add_variant(self.variant(option),True)
spec._add_variant(self.variant(), True)
check_valid_token = False
@@ -1933,6 +1926,15 @@ class SpecParser(spack.parse.Parser):
spec._set_compiler(self.compiler())
check_valid_token = False
+ elif self.accept(ID):
+ self.previous = self.token
+ if self.accept(EQ):
+ self.expect(ID)
+ spec._add_flag(self.previous.value, self.token.value)
+ self.previous = None
+ else:
+ return spec
+
else:
if check_valid_token:
self.unexpected_token()
diff --git a/lib/spack/spack/test/spec_dag.py b/lib/spack/spack/test/spec_dag.py
index c6714097ce..9576c362b8 100644
--- a/lib/spack/spack/test/spec_dag.py
+++ b/lib/spack/spack/test/spec_dag.py
@@ -243,9 +243,6 @@ class SpecDagTest(MockPackagesTest):
def test_unsatisfiable_architecture(self):
set_pkg_dep('mpileaks', 'mpich arch=bgqos_0')
spec = Spec('mpileaks ^mpich arch=sles_10_ppc64 ^callpath ^dyninst ^libelf ^libdwarf')
- print spec
- spec.normalize()
- print spec
self.assertRaises(spack.spec.UnsatisfiableArchitectureSpecError, spec.normalize)
@@ -339,7 +336,7 @@ class SpecDagTest(MockPackagesTest):
self.assertEqual(lhs, rhs)
self.assertEqual(str(lhs), str(rhs))
- # Test that equal and equal_dag are doing the right thing
+ # test that equal and equal_dag are doing the right thing
self.assertEqual(spec, expected_flat)
self.assertTrue(spec.eq_dag(expected_flat))
@@ -440,3 +437,5 @@ class SpecDagTest(MockPackagesTest):
orig_ids = set(id(s) for s in orig.traverse())
copy_ids = set(id(s) for s in copy.traverse())
self.assertFalse(orig_ids.intersection(copy_ids))
+
+# LocalWords: libdwarf