aboutsummaryrefslogtreecommitdiffstats
path: root/subv.py
diff options
context:
space:
mode:
authors-ol <s+removethis@s-ol.nu>2021-05-22 13:03:56 +0000
committers-ol <s+removethis@s-ol.nu>2021-05-22 13:03:56 +0000
commit7d9fd6018aae0b60bbff268f2d4428c34f2bd3e4 (patch)
treeb0176c467c42222c6b7b81c85e96fd15f08f42f8 /subv.py
parentdisable qemu bios (diff)
downloadsubv-7d9fd6018aae0b60bbff268f2d4428c34f2bd3e4.tar.gz
subv-7d9fd6018aae0b60bbff268f2d4428c34f2bd3e4.zip
more error reporting in format.py
Diffstat (limited to 'subv.py')
-rw-r--r--subv.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/subv.py b/subv.py
index 107f0e9..43bfa35 100644
--- a/subv.py
+++ b/subv.py
@@ -223,12 +223,16 @@ def untag(part, expect=None):
return part[0]
def format_part(part):
- """ oppposite of parse_part.
+ """ opposite of parse_part.
>>> format_part((0,))
'00'
>>> format_part((0x00,))
'00'
+ >>> format_part((16,))
+ '10'
+ >>> format_part((0x10,))
+ '10'
>>> format_part(('label', 'tag*'))
'label/tag*'
@@ -245,7 +249,7 @@ def format_part(part):
return '/'.join([str(p) for p in part])
def format(line):
- """ oppposite of parse.
+ """ opposite of parse.
>>> format({
... 'type': 'instr',
@@ -262,6 +266,19 @@ def format(line):
else:
raise NotImplementedError()
+def dump(line):
+ """ debug-friendly string representation of parsed lines.
+
+ >>> dump({
+ ... 'type': 'instr',
+ ... 'instr': [(255, 'op'), (0, 'subop', 'add'), (1, 'rd', 'x1'), ('label[11:0]', 'imm12')],
+ ... 'comment': "this does things."
+ ... })
+ "instr[(255, 'op'), (0, 'subop', 'add'), (1, 'rd', 'x1'), ('label[11:0]', 'imm12')]"
+ """
+
+ return '{}{}'.format(line['type'], line[line['type']])
+
def join_all(gen):
res = '\n'.join(gen)
return res