aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust
diff options
context:
space:
mode:
authorDavid Faust <david.faust@oracle.com>2022-10-05 10:10:18 -0700
committerArthur Cohen <arthur.cohen@embecosm.com>2023-02-21 12:36:32 +0100
commit980bd25e25600b438680bc8ff69afc42d9718d94 (patch)
treedd3ced6e07eeb03df07bd53ceb090d626aedde73 /gcc/rust
parentd072b4a5164e1a1b5db06a7a6213c6182550cd94 (diff)
downloadgcc-980bd25e25600b438680bc8ff69afc42d9718d94.zip
gcc-980bd25e25600b438680bc8ff69afc42d9718d94.tar.gz
gcc-980bd25e25600b438680bc8ff69afc42d9718d94.tar.bz2
gccrs: ast: dump assignment and compound assignment expr
gcc/rust/ChangeLog: * ast/rust-ast-dump.cc (Dump::visit): Dump assignment and compound assignment expressions.
Diffstat (limited to 'gcc/rust')
-rw-r--r--gcc/rust/ast/rust-ast-dump.cc56
1 files changed, 54 insertions, 2 deletions
diff --git a/gcc/rust/ast/rust-ast-dump.cc b/gcc/rust/ast/rust-ast-dump.cc
index 3d1b42d..f3d0e2d 100644
--- a/gcc/rust/ast/rust-ast-dump.cc
+++ b/gcc/rust/ast/rust-ast-dump.cc
@@ -306,11 +306,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)