summaryrefslogtreecommitdiff
path: root/test/core/parser
diff options
context:
space:
mode:
Diffstat (limited to 'test/core/parser')
-rw-r--r--test/core/parser/stack/TokenStackTest.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/core/parser/stack/TokenStackTest.cpp b/test/core/parser/stack/TokenStackTest.cpp
index c14de1c..bca16ec 100644
--- a/test/core/parser/stack/TokenStackTest.cpp
+++ b/test/core/parser/stack/TokenStackTest.cpp
@@ -75,5 +75,24 @@ TEST(TokenStack, lookup)
ASSERT_EQ(1U, descr.shortForm.size());
ASSERT_EQ(ListC[1], descr.shortForm[0]);
}
+
+TEST(TokenStack, sorting)
+{
+ TokenStack ts;
+ std::vector<SyntaxDescriptor> descrs;
+ descrs.insert(descrs.end(), ListC.begin(), ListC.end());
+ descrs.insert(descrs.end(), ListA.begin(), ListA.end());
+ descrs.insert(descrs.end(), ListB.begin(), ListB.end());
+ ts.pushTokens(descrs);
+
+ TokenDescriptor descr = ts.lookup(3);
+ ASSERT_EQ(1U, descr.open.size());
+ ASSERT_EQ(0U, descr.close.size());
+ ASSERT_EQ(2U, descr.shortForm.size());
+ ASSERT_EQ(ListA[2], descr.open[0]);
+ ASSERT_EQ(ListB[1], descr.shortForm[0]);
+ ASSERT_EQ(ListC[1], descr.shortForm[1]);
+}
+
}
}