From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1643) id 502D93948492; Thu, 6 Oct 2022 20:05:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 502D93948492 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1665086743; bh=yBw23eyxbi/98AqBTPJn3snmTNlVCgr4XdOEjnnP6VA=; h=From:To:Subject:Date:From; b=IsG7I3LkXqaWkbaGd15dE2gPKc62hUd9cyV01YB+Ts374OrB9oNrkaaKp57uwnTi7 gbhXRm8zo5+zaEazLprRm4MekiCGJ49RfHokeiAkq+gwDIilxRozXaVCHmvuMCxuBh TlkJ4iqHGQnMp2XFOOK6Y3EVvj4rQ72C4l4AKHEQ= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Thomas Schwinge To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/rust/master] ast: dump assignment and compound assignment expr X-Act-Checkin: gcc X-Git-Author: David Faust X-Git-Refname: refs/heads/devel/rust/master X-Git-Oldrev: 8ff035ddc55079161d24941785114aa0f5056260 X-Git-Newrev: d55f22d046f5b54ec6d77af040aa1805e12ea9d1 Message-Id: <20221006200543.502D93948492@sourceware.org> Date: Thu, 6 Oct 2022 20:05:43 +0000 (GMT) List-Id: https://gcc.gnu.org/g:d55f22d046f5b54ec6d77af040aa1805e12ea9d1 commit d55f22d046f5b54ec6d77af040aa1805e12ea9d1 Author: David Faust Date: Wed Oct 5 10:10:18 2022 -0700 ast: dump assignment and compound assignment expr Diff: --- gcc/rust/ast/rust-ast-dump.cc | 56 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/gcc/rust/ast/rust-ast-dump.cc b/gcc/rust/ast/rust-ast-dump.cc index 8ad00b5929f..f137f4ed62c 100644 --- a/gcc/rust/ast/rust-ast-dump.cc +++ b/gcc/rust/ast/rust-ast-dump.cc @@ -281,11 +281,63 @@ Dump::visit (TypeCastExpr &expr) void Dump::visit (AssignmentExpr &expr) -{} +{ + expr.visit_lhs (*this); + stream << " = "; + expr.visit_rhs (*this); +} void Dump::visit (CompoundAssignmentExpr &expr) -{} +{ + auto op = ""; + switch (expr.get_expr_type ()) + { + case CompoundAssignmentOperator::ADD: + op = "+"; + break; + + case CompoundAssignmentOperator::SUBTRACT: + op = "-"; + break; + + case CompoundAssignmentOperator::MULTIPLY: + op = "*"; + break; + + case CompoundAssignmentOperator::DIVIDE: + op = "/"; + break; + + case CompoundAssignmentOperator::MODULUS: + op = "%"; + break; + + case CompoundAssignmentOperator::BITWISE_AND: + op = "&"; + break; + + case CompoundAssignmentOperator::BITWISE_OR: + op = "|"; + break; + + case CompoundAssignmentOperator::BITWISE_XOR: + op = "^"; + break; + + case CompoundAssignmentOperator::LEFT_SHIFT: + op = "<<"; + break; + + case CompoundAssignmentOperator::RIGHT_SHIFT: + op = ">>"; + break; + } + + expr.get_left_expr ()->accept_vis (*this); + stream << " " << op << "= "; + expr.get_right_expr ()->accept_vis (*this); +} void Dump::visit (GroupedExpr &expr)