visitTableLiteral method

  1. @override
Object? visitTableLiteral(
  1. TableLiteral table
)
override

Implementation

@override
Object? visitTableLiteral(TableLiteral table) {
  final t = LuaFieldsMap();

  int next = 0;
  for (var e in table.pairs) {
    final Object? k = switch (e.key) {
      final RawExpr expr => expr.token.lexeme,
      final MathExpr expr => expr.accept(this),
      _ => ++next,
    };

    if(k == null) {
      throw 'Table key could not be parsed!';
    }

    final v = e.value.accept(this);
    t[k] = v?.toLua(k.toString());
  }

  return LuaObject.table('table', t);
}