visitMemoryAccess method

  1. @override
String visitMemoryAccess(
  1. MemoryAccess memoryAccess
)
override

Implementation

@override
String visitMemoryAccess(MemoryAccess memoryAccess) {
  final id = memoryAccess.callee.accept(this);
  final field = memoryAccess.field?.accept(this);
  final args = memoryAccess.args.map((e) => e.accept(this)).join(',');

  return switch (memoryAccess.type) {
    MemoryAccessType.field => '$id.$field',
    MemoryAccessType.table => '$id[$field]',
    MemoryAccessType.call => switch (memoryAccess.isSelfFwd) {
      true => '$id:$args',
      false => '$id($args)',
    },
  };
}