def _walk_TableConstructor(self, node):
        yield self._get_text(node, '{')
        self._indent += 1
        if node.fields:
            for t in self._walk(node.fields[0]):
                yield t
            if len(node.fields) > 1:
                for i in range(1, len(node.fields)):
                    # The parser doesn't store which field separator was
                    # used, so we have to find it in the token stream.
                    yield self._get_code_for_spaces(node)
                    if self._args.get('ignore_tokens'):
                        yield ', '
                    else:
                        yield self._get_text(node, self._tokens[self._pos].code)
                    for t in self._walk(node.fields[i]):
                        yield t
        # Process a trailing fieldsep, if any.
        self._indent -= 1
        yield self._get_code_for_spaces(node)
        if not self._args.get('ignore_tokens'):
            if (self._tokens[self._pos].matches(lexer.TokSymbol(',')) or
                self._tokens[self._pos].matches(lexer.TokSymbol(';'))):
                yield self._get_text(node, self._tokens[self._pos].code)
        yield self._get_text(node, '}')
dataset/ETHPy150Open dansanderson/picotool/pico8/lua/lua.py/LuaASTEchoWriter._walk_TableConstructor/original