mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-28 07:50:09 +01:00
Implement the current set of rules for precedence partial ordering (#1096)
In the process, switch to an unambiguous grammar, using the precedence-climbing method for operator precedence (suitably modified to handle a partial precedence order) rather than Bison %precedence / %prec.
This commit is contained in:
@@ -18,14 +18,14 @@ TEST(UnimplementedExampleTest, VerifyPrecedence) {
|
||||
static constexpr std::string_view Program = R"(
|
||||
package ExecutableSemanticsTest api;
|
||||
fn Main() -> i32 {
|
||||
return 1 __unimplemented_example_infix 2 + 3;
|
||||
return 1 __unimplemented_example_infix 2 == 3;
|
||||
}
|
||||
)";
|
||||
Arena arena;
|
||||
EXPECT_THAT(ParseFromString(&arena, "dummy.carbon", Program, false),
|
||||
ParsedAs(ASTDeclarations(
|
||||
ElementsAre(MatchesFunctionDeclaration().WithBody(
|
||||
BlockContentsAre(ElementsAre(MatchesReturn(MatchesAdd(
|
||||
BlockContentsAre(ElementsAre(MatchesReturn(MatchesEq(
|
||||
MatchesUnimplementedExpression(
|
||||
"ExampleInfix", ElementsAre(MatchesLiteral(1),
|
||||
MatchesLiteral(2))),
|
||||
|
||||
Reference in New Issue
Block a user