diff options
author | David Faust <david.faust@oracle.com> | 2022-10-05 10:10:18 -0700 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-02-21 12:36:32 +0100 |
commit | 980bd25e25600b438680bc8ff69afc42d9718d94 (patch) | |
tree | dd3ced6e07eeb03df07bd53ceb090d626aedde73 | |
parent | d072b4a5164e1a1b5db06a7a6213c6182550cd94 (diff) | |
download | gcc-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.
-rw-r--r-- | gcc/rust/ast/rust-ast-dump.cc | 56 |
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) |