visitIfStmt method

  1. @override
String visitIfStmt(
  1. IfStmt stmt
)
override

Implementation

@override
String visitIfStmt(IfStmt stmt) {
  final expr = stmt.expr?.accept(this);
  late final String body;

  wrapScope(current, block: () {
    body = stmt.body.map((e) => e.accept(this)).join(_sep);
  });

  if (stmt.isTerminalElse) {
    return '$_sep$body${_sep}end';
  }

  final next = switch (stmt.nextIfStmt?.accept(this)) {
    final String n => '${_sep}else$n',
    null => '${_sep}end',
  };

  return 'if $expr then$_sep$body$next';
}