interpret method

  1. @override
String interpret(
  1. EditorContext context
)
override

Implementation

@override
String interpret(EditorContext context) {
  var buffer = StringBuffer();
  buffer.write(context.indent());

  // example: static modifier
  buffer.write(modifier.isEmpty ? '' : '$modifier ');

  if (returnType != null) {
    buffer.write('$returnType ');
  }

  buffer.write('$name(${param?.interpret(context) ?? ''})');

  if (statements != null) {
    buffer.write(isAsync ? ' async' : '');
    buffer.writeln(context.openScope(Scope.METHOD));
    statements!.forEach((statement) {
      buffer.write(statement.interpret(context));
    });
    buffer.writeln(context.closeScope());
  }
  /// [Abstract method] ex: void change();
  else {
    buffer.writeln(''.putSemicolon);
  }

  return buffer.toString();
}