emit method

  1. @override
String emit({
  1. int indent = 0,
})
override

Implementation

@override
String emit({int indent = 0}) {
  final String tabs = "\t" * indent;
  final String insideTabs = "\t" * (indent + 1);

  String output = "${tabs}do\n\n";

  if (initializer != null) {
    output += initializer!.emit(indent: indent + 1);
  }

  final condStr = condition != null ? condition!.emit() : "true";
  output += "${insideTabs}while $condStr do\n\n";

  for (var node in body) {
    output += node.emit(indent: indent + 2);
  }

  final String updateTabs = "\t" * (indent + 2);

  for (var node in updaters) {
    output += "$updateTabs${node.emit()}\n\n";
  }

  output += "${insideTabs}end\n\n";
  output += "${tabs}end\n\n";

  return output;
}