blob: 18c1b5ad130bf72dc3f62c211b1ff4c246d2769b [file] [log] [blame]
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
"""Generate JSON/compact JSON/Hjson from register JSON tree
"""
import hjson
def gen_json(obj, outfile, format):
# Temporary hack to deal with the fact that the 'registers' field is a list
# rather than a dictionary. When we convert the top-level object to a class
# (with its own _as_dict method), this logic can go in there.
obj = obj.copy()
obj['registers'] = obj['registers'].as_dicts()
if format == 'json':
hjson.dumpJSON(obj,
outfile,
ensure_ascii=False,
use_decimal=True,
indent=' ',
for_json=True)
elif format == 'compact':
hjson.dumpJSON(obj,
outfile,
ensure_ascii=False,
for_json=True,
use_decimal=True,
separators=(',', ':'))
elif format == 'hjson':
hjson.dump(obj,
outfile,
ensure_ascii=False,
for_json=True,
use_decimal=True)
else:
raise ValueError('Invalid JSON format ' + format)
return 0