From 1a25cb0b1e0f81e7b76c0b41b94d18eca3bd3bfb Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 7 Aug 2018 14:52:03 +0300 Subject: simplify unary expr grammar --- src/grammar.ron | 4 +--- src/grammar/expressions/mod.rs | 14 ++------------ src/syntax_kinds/generated.rs | 8 ++------ 3 files changed, 5 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/grammar.ron b/src/grammar.ron index 5181e296e..960838c97 100644 --- a/src/grammar.ron +++ b/src/grammar.ron @@ -171,9 +171,7 @@ Grammar( // unary "REF_EXPR", - "DEREF_EXPR", - "NOT_EXPR", - "NEG_EXPR", + "PREFIX_EXPR", "RANGE_EXPR", // just weird "BIN_EXPR", diff --git a/src/grammar/expressions/mod.rs b/src/grammar/expressions/mod.rs index 739c2f80f..853a9411c 100644 --- a/src/grammar/expressions/mod.rs +++ b/src/grammar/expressions/mod.rs @@ -130,28 +130,18 @@ fn lhs(p: &mut Parser, r: Restrictions) -> Option { // fn foo() { // **&1; // } - STAR => { - m = p.start(); - p.bump(); - DEREF_EXPR - } // test not_expr // fn foo() { // !!true; // } - EXCL => { - m = p.start(); - p.bump(); - NOT_EXPR - } // test neg_expr // fn foo() { // --1; // } - MINUS => { + STAR | EXCL | MINUS => { m = p.start(); p.bump(); - NEG_EXPR + PREFIX_EXPR } DOTDOT => { m = p.start(); diff --git a/src/syntax_kinds/generated.rs b/src/syntax_kinds/generated.rs index c8ddf333c..cf286a0f1 100644 --- a/src/syntax_kinds/generated.rs +++ b/src/syntax_kinds/generated.rs @@ -157,9 +157,7 @@ pub enum SyntaxKind { TRY_EXPR, CAST_EXPR, REF_EXPR, - DEREF_EXPR, - NOT_EXPR, - NEG_EXPR, + PREFIX_EXPR, RANGE_EXPR, BIN_EXPR, EXTERN_BLOCK_EXPR, @@ -397,9 +395,7 @@ impl SyntaxKind { TRY_EXPR => &SyntaxInfo { name: "TRY_EXPR" }, CAST_EXPR => &SyntaxInfo { name: "CAST_EXPR" }, REF_EXPR => &SyntaxInfo { name: "REF_EXPR" }, - DEREF_EXPR => &SyntaxInfo { name: "DEREF_EXPR" }, - NOT_EXPR => &SyntaxInfo { name: "NOT_EXPR" }, - NEG_EXPR => &SyntaxInfo { name: "NEG_EXPR" }, + PREFIX_EXPR => &SyntaxInfo { name: "PREFIX_EXPR" }, RANGE_EXPR => &SyntaxInfo { name: "RANGE_EXPR" }, BIN_EXPR => &SyntaxInfo { name: "BIN_EXPR" }, EXTERN_BLOCK_EXPR => &SyntaxInfo { name: "EXTERN_BLOCK_EXPR" }, -- cgit v1.2.3