Lines Matching refs:Sema

22 class MockSema : public Parser::Sema {
90 MockSema Sema; in TEST() local
91 Sema.parse("true"); in TEST()
92 Sema.parse("false"); in TEST()
93 EXPECT_EQ(2U, Sema.Values.size()); in TEST()
94 EXPECT_TRUE(Sema.Values[0].getBoolean()); in TEST()
95 EXPECT_FALSE(Sema.Values[1].getBoolean()); in TEST()
99 MockSema Sema; in TEST() local
100 Sema.parse("1.0"); in TEST()
101 Sema.parse("2.0f"); in TEST()
102 Sema.parse("34.56e-78"); in TEST()
103 Sema.parse("4.E+6"); in TEST()
104 Sema.parse("1"); in TEST()
105 EXPECT_EQ(5U, Sema.Values.size()); in TEST()
106 EXPECT_EQ(1.0, Sema.Values[0].getDouble()); in TEST()
107 EXPECT_EQ("1:1: Error parsing numeric literal: <2.0f>", Sema.Errors[1]); in TEST()
108 EXPECT_EQ(34.56e-78, Sema.Values[2].getDouble()); in TEST()
109 EXPECT_EQ(4e+6, Sema.Values[3].getDouble()); in TEST()
110 EXPECT_FALSE(Sema.Values[4].isDouble()); in TEST()
114 MockSema Sema; in TEST() local
115 Sema.parse("0"); in TEST()
116 Sema.parse("123"); in TEST()
117 Sema.parse("0x1f"); in TEST()
118 Sema.parse("12345678901"); in TEST()
119 Sema.parse("1a1"); in TEST()
120 EXPECT_EQ(5U, Sema.Values.size()); in TEST()
121 EXPECT_EQ(0U, Sema.Values[0].getUnsigned()); in TEST()
122 EXPECT_EQ(123U, Sema.Values[1].getUnsigned()); in TEST()
123 EXPECT_EQ(31U, Sema.Values[2].getUnsigned()); in TEST()
124 EXPECT_EQ("1:1: Error parsing numeric literal: <12345678901>", Sema.Errors[3]); in TEST()
125 EXPECT_EQ("1:1: Error parsing numeric literal: <1a1>", Sema.Errors[4]); in TEST()
129 MockSema Sema; in TEST() local
130 Sema.parse("\"Foo\""); in TEST()
131 Sema.parse("\"\""); in TEST()
132 Sema.parse("\"Baz"); in TEST()
133 EXPECT_EQ(3ULL, Sema.Values.size()); in TEST()
134 EXPECT_EQ("Foo", Sema.Values[0].getString()); in TEST()
135 EXPECT_EQ("", Sema.Values[1].getString()); in TEST()
136 EXPECT_EQ("1:1: Error parsing string token: <\"Baz>", Sema.Errors[2]); in TEST()
157 MockSema Sema; in TEST() local
158 const uint64_t ExpectedFoo = Sema.expectMatcher("Foo"); in TEST()
159 const uint64_t ExpectedBar = Sema.expectMatcher("Bar"); in TEST()
160 const uint64_t ExpectedBaz = Sema.expectMatcher("Baz"); in TEST()
161 Sema.parse(" Foo ( Bar ( 17), Baz( \n \"B A,Z\") ) .bind( \"Yo!\") "); in TEST()
162 for (const auto &E : Sema.Errors) { in TEST()
170 EXPECT_EQ(1ULL, Sema.Values.size()); in TEST()
171 EXPECT_EQ(ExpectedFoo, getSingleMatcher(Sema.Values[0])->getID().second); in TEST()
173 EXPECT_EQ(3ULL, Sema.Matchers.size()); in TEST()
174 const MockSema::MatcherInfo Bar = Sema.Matchers[0]; in TEST()
180 const MockSema::MatcherInfo Baz = Sema.Matchers[1]; in TEST()
186 const MockSema::MatcherInfo Foo = Sema.Matchers[2]; in TEST()
196 MockSema Sema; in TEST() local
197 Sema.expectMatcher("Foo"); in TEST()
198 Sema.parse(" Foo() # Bar() "); in TEST()
199 for (const auto &E : Sema.Errors) { in TEST()
203 EXPECT_EQ(1ULL, Sema.Matchers.size()); in TEST()
205 Sema.parse("Foo(#) "); in TEST()
207 EXPECT_EQ("1:4: Error parsing matcher. Found end-of-code while looking for ')'.", Sema.Errors[1]); in TEST()