[flang] Fix some F90 unparsings; address review comments.
Original-commit: flang-compiler/f18@af33f37600e6c88f9745c9ae0400e99719819652
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
diff --git a/flang/lib/parser/unparse.cc b/flang/lib/parser/unparse.cc
index 03688c5..e81440e 100644
--- a/flang/lib/parser/unparse.cc
+++ b/flang/lib/parser/unparse.cc
@@ -217,9 +217,9 @@
Put("EXTENDS("), Walk(x.v), Put(')');
return false;
}
- void Post(const EndTypeStmt &) { // R730
- Outdent();
- Put("END TYPE");
+ bool Pre(const EndTypeStmt &x) { // R730
+ Outdent(), Put("END TYPE"), Walk(" ", x.v);
+ return false;
}
bool Pre(const SequenceStmt &x) { // R731
Put("SEQUENCE");
@@ -411,6 +411,11 @@
Walk(",", x.step);
return false;
}
+ bool Pre(const AcImpliedDo &x) { // R774
+ Put('('), Walk(std::get<std::list<AcValue>>(x.t), ", ");
+ Put(", "), Walk(std::get<AcImpliedDoControl>(x.t)), Put(')');
+ return false;
+ }
bool Pre(const AcImpliedDoControl &x) { // R775
Walk(std::get<std::optional<IntegerTypeSpec>>(x.t), "::");
Walk(std::get<LoopBounds<ScalarIntExpr>>(x.t));