visitConditional method

  1. @override
StringSink visitConditional(
  1. Conditional conditional, [
  2. StringSink? output
])
inherited

Implementation

@override
StringSink visitConditional(Conditional conditional, [StringSink? output]) {
  output ??= StringBuffer();
  for (var i = 0; i < conditional.branches.length; i++) {
    final branch = conditional.branches[i];
    if (i == 0) {
      output.write('if (');
    } else {
      output.write(' else if (');
    }
    branch.condition.accept(this, output);
    output.writeln(') {');
    if (branch.body != null) {
      branch.body!.accept(this, output);
    }
    output.write(' }');
  }
  if (conditional.orElse != null) {
    output.writeln(' else {');
    conditional.orElse!.accept(this, output);
    output.write(' }');
  }
  return output;
}