Makes the golden IR more human-readable.
diff --git a/front_end/glue.py b/front_end/glue.py
index 3a2f0fa..691b126 100644
--- a/front_end/glue.py
+++ b/front_end/glue.py
@@ -111,7 +111,7 @@
def format_module_ir(self):
"""Renders self.ir in a human-readable format."""
- return repr(self.ir)
+ return self.ir.to_json(indent=2)
def format_production_set(productions):
diff --git a/front_end/glue_test.py b/front_end/glue_test.py
index 1435922..2f3f5fa 100644
--- a/front_end/glue_test.py
+++ b/front_end/glue_test.py
@@ -155,7 +155,8 @@
self.assertEqual(_SPAN_SE_LOG_FILE_PARSE_TREE_TEXT.strip(),
debug_info.format_parse_tree().strip())
self.assertEqual(_SPAN_SE_LOG_FILE_IR, debug_info.ir)
- self.assertEqual(repr(_SPAN_SE_LOG_FILE_IR), debug_info.format_module_ir())
+ self.assertEqual(_SPAN_SE_LOG_FILE_IR.to_json(indent=2),
+ debug_info.format_module_ir())
def test_parse_emboss_file(self):
# parse_emboss_file calls parse_module, wraps its results, and calls
diff --git a/testdata/golden/span_se_log_file_status.ir.txt b/testdata/golden/span_se_log_file_status.ir.txt
index ad6fcaf..942b49a 100644
--- a/testdata/golden/span_se_log_file_status.ir.txt
+++ b/testdata/golden/span_se_log_file_status.ir.txt
@@ -1 +1,1087 @@
-{"attribute":[{"is_default":true,"name":{"source_location":{"end":{"column":21,"line":17},"is_synthetic":false,"start":{"column":11,"line":17}},"text":"byte_order"},"source_location":{"end":{"column":38,"line":17},"is_synthetic":false,"start":{"column":1,"line":17}},"value":{"source_location":{"end":{"column":37,"line":17},"is_synthetic":false,"start":{"column":23,"line":17}},"string_constant":{"source_location":{"end":{"column":37,"line":17},"is_synthetic":false,"start":{"column":23,"line":17}},"text":"LittleEndian"}}},{"back_end":{"source_location":{"end":{"column":7,"line":18},"is_synthetic":false,"start":{"column":2,"line":18}},"text":"cpp"},"is_default":false,"name":{"source_location":{"end":{"column":17,"line":18},"is_synthetic":false,"start":{"column":8,"line":18}},"text":"namespace"},"source_location":{"end":{"column":1,"line":20},"is_synthetic":false,"start":{"column":1,"line":18}},"value":{"source_location":{"end":{"column":33,"line":18},"is_synthetic":false,"start":{"column":19,"line":18}},"string_constant":{"source_location":{"end":{"column":33,"line":18},"is_synthetic":false,"start":{"column":19,"line":18}},"text":"emboss::test"}}}],"documentation":[{"source_location":{"end":{"column":1,"line":16},"is_synthetic":false,"start":{"column":1,"line":15}},"text":"This is a simple, real-world example structure."}],"foreign_import":[{"file_name":{"source_location":{"end":{"column":1,"line":16},"is_synthetic":false,"start":{"column":1,"line":16}},"text":""},"local_name":{"source_location":{"end":{"column":1,"line":16},"is_synthetic":false,"start":{"column":1,"line":16}},"text":""},"source_location":{"end":{"column":1,"line":16},"is_synthetic":false,"start":{"column":1,"line":16}}}],"source_location":{"end":{"column":1,"line":26},"is_synthetic":false,"start":{"column":1,"line":1}},"type":[{"addressable_unit":8,"name":{"name":{"source_location":{"end":{"column":21,"line":21},"is_synthetic":false,"start":{"column":8,"line":21}},"text":"LogFileStatus"},"source_location":{"end":{"column":21,"line":21},"is_synthetic":false,"start":{"column":8,"line":21}}},"source_location":{"end":{"column":1,"line":26},"is_synthetic":false,"start":{"column":1,"line":21}},"structure":{"field":[{"existence_condition":{"boolean_constant":{"source_location":{"end":{"column":35,"line":22},"is_synthetic":false,"start":{"column":3,"line":22}},"value":true},"source_location":{"end":{"column":35,"line":22},"is_synthetic":false,"start":{"column":3,"line":22}}},"location":{"size":{"constant":{"source_location":{"end":{"column":9,"line":22},"is_synthetic":false,"start":{"column":8,"line":22}},"value":"4"},"source_location":{"end":{"column":9,"line":22},"is_synthetic":false,"start":{"column":8,"line":22}}},"source_location":{"end":{"column":10,"line":22},"is_synthetic":false,"start":{"column":3,"line":22}},"start":{"constant":{"source_location":{"end":{"column":4,"line":22},"is_synthetic":false,"start":{"column":3,"line":22}},"value":"0"},"source_location":{"end":{"column":4,"line":22},"is_synthetic":false,"start":{"column":3,"line":22}}}},"name":{"name":{"source_location":{"end":{"column":35,"line":22},"is_synthetic":false,"start":{"column":25,"line":22}},"text":"file_state"},"source_location":{"end":{"column":35,"line":22},"is_synthetic":false,"start":{"column":25,"line":22}}},"source_location":{"end":{"column":35,"line":22},"start":{"column":3,"line":22}},"type":{"atomic_type":{"reference":{"source_location":{"end":{"column":17,"line":22},"is_synthetic":false,"start":{"column":13,"line":22}},"source_name":[{"source_location":{"end":{"column":17,"line":22},"is_synthetic":false,"start":{"column":13,"line":22}},"text":"UInt"}]},"source_location":{"end":{"column":17,"line":22},"is_synthetic":false,"start":{"column":13,"line":22}}},"source_location":{"end":{"column":17,"line":22},"is_synthetic":false,"start":{"column":13,"line":22}}}},{"existence_condition":{"boolean_constant":{"source_location":{"end":{"column":34,"line":23},"is_synthetic":false,"start":{"column":3,"line":23}},"value":true},"source_location":{"end":{"column":34,"line":23},"is_synthetic":false,"start":{"column":3,"line":23}}},"location":{"size":{"constant":{"source_location":{"end":{"column":10,"line":23},"is_synthetic":false,"start":{"column":8,"line":23}},"value":"12"},"source_location":{"end":{"column":10,"line":23},"is_synthetic":false,"start":{"column":8,"line":23}}},"source_location":{"end":{"column":11,"line":23},"is_synthetic":false,"start":{"column":3,"line":23}},"start":{"constant":{"source_location":{"end":{"column":4,"line":23},"is_synthetic":false,"start":{"column":3,"line":23}},"value":"4"},"source_location":{"end":{"column":4,"line":23},"is_synthetic":false,"start":{"column":3,"line":23}}}},"name":{"name":{"source_location":{"end":{"column":34,"line":23},"is_synthetic":false,"start":{"column":25,"line":23}},"text":"file_name"},"source_location":{"end":{"column":34,"line":23},"is_synthetic":false,"start":{"column":25,"line":23}}},"source_location":{"end":{"column":34,"line":23},"start":{"column":3,"line":23}},"type":{"array_type":{"base_type":{"atomic_type":{"reference":{"source_location":{"end":{"column":17,"line":23},"is_synthetic":false,"start":{"column":13,"line":23}},"source_name":[{"source_location":{"end":{"column":17,"line":23},"is_synthetic":false,"start":{"column":13,"line":23}},"text":"UInt"}]},"source_location":{"end":{"column":17,"line":23},"is_synthetic":false,"start":{"column":13,"line":23}}},"size_in_bits":{"constant":{"source_location":{"end":{"column":19,"line":23},"is_synthetic":false,"start":{"column":18,"line":23}},"value":"8"},"source_location":{"end":{"column":19,"line":23},"is_synthetic":false,"start":{"column":17,"line":23}}},"source_location":{"end":{"column":19,"line":23},"is_synthetic":false,"start":{"column":13,"line":23}}},"element_count":{"constant":{"source_location":{"end":{"column":22,"line":23},"is_synthetic":false,"start":{"column":20,"line":23}},"value":"12"},"source_location":{"end":{"column":23,"line":23},"is_synthetic":false,"start":{"column":19,"line":23}}},"source_location":{"end":{"column":23,"line":23},"is_synthetic":false,"start":{"column":13,"line":23}}},"source_location":{"end":{"column":23,"line":23},"is_synthetic":false,"start":{"column":13,"line":23}}}},{"existence_condition":{"boolean_constant":{"source_location":{"end":{"column":37,"line":24},"is_synthetic":false,"start":{"column":3,"line":24}},"value":true},"source_location":{"end":{"column":37,"line":24},"is_synthetic":false,"start":{"column":3,"line":24}}},"location":{"size":{"constant":{"source_location":{"end":{"column":9,"line":24},"is_synthetic":false,"start":{"column":8,"line":24}},"value":"4"},"source_location":{"end":{"column":9,"line":24},"is_synthetic":false,"start":{"column":8,"line":24}}},"source_location":{"end":{"column":10,"line":24},"is_synthetic":false,"start":{"column":3,"line":24}},"start":{"constant":{"source_location":{"end":{"column":5,"line":24},"is_synthetic":false,"start":{"column":3,"line":24}},"value":"16"},"source_location":{"end":{"column":5,"line":24},"is_synthetic":false,"start":{"column":3,"line":24}}}},"name":{"name":{"source_location":{"end":{"column":37,"line":24},"is_synthetic":false,"start":{"column":25,"line":24}},"text":"file_size_kb"},"source_location":{"end":{"column":37,"line":24},"is_synthetic":false,"start":{"column":25,"line":24}}},"source_location":{"end":{"column":37,"line":24},"start":{"column":3,"line":24}},"type":{"atomic_type":{"reference":{"source_location":{"end":{"column":17,"line":24},"is_synthetic":false,"start":{"column":13,"line":24}},"source_name":[{"source_location":{"end":{"column":17,"line":24},"is_synthetic":false,"start":{"column":13,"line":24}},"text":"UInt"}]},"source_location":{"end":{"column":17,"line":24},"is_synthetic":false,"start":{"column":13,"line":24}}},"source_location":{"end":{"column":17,"line":24},"is_synthetic":false,"start":{"column":13,"line":24}}}},{"existence_condition":{"boolean_constant":{"source_location":{"end":{"column":30,"line":25},"is_synthetic":false,"start":{"column":3,"line":25}},"value":true},"source_location":{"end":{"column":30,"line":25},"is_synthetic":false,"start":{"column":3,"line":25}}},"location":{"size":{"constant":{"source_location":{"end":{"column":9,"line":25},"is_synthetic":false,"start":{"column":8,"line":25}},"value":"4"},"source_location":{"end":{"column":9,"line":25},"is_synthetic":false,"start":{"column":8,"line":25}}},"source_location":{"end":{"column":10,"line":25},"is_synthetic":false,"start":{"column":3,"line":25}},"start":{"constant":{"source_location":{"end":{"column":5,"line":25},"is_synthetic":false,"start":{"column":3,"line":25}},"value":"20"},"source_location":{"end":{"column":5,"line":25},"is_synthetic":false,"start":{"column":3,"line":25}}}},"name":{"name":{"source_location":{"end":{"column":30,"line":25},"is_synthetic":false,"start":{"column":25,"line":25}},"text":"media"},"source_location":{"end":{"column":30,"line":25},"is_synthetic":false,"start":{"column":25,"line":25}}},"source_location":{"end":{"column":30,"line":25},"start":{"column":3,"line":25}},"type":{"atomic_type":{"reference":{"source_location":{"end":{"column":17,"line":25},"is_synthetic":false,"start":{"column":13,"line":25}},"source_name":[{"source_location":{"end":{"column":17,"line":25},"is_synthetic":false,"start":{"column":13,"line":25}},"text":"UInt"}]},"source_location":{"end":{"column":17,"line":25},"is_synthetic":false,"start":{"column":13,"line":25}}},"source_location":{"end":{"column":17,"line":25},"is_synthetic":false,"start":{"column":13,"line":25}}}}],"source_location":{"end":{"column":1,"line":26},"start":{"column":1,"line":21}}}}]}
+{
+ "attribute": [
+ {
+ "name": {
+ "text": "byte_order",
+ "source_location": {
+ "start": {
+ "line": 17,
+ "column": 11
+ },
+ "end": {
+ "line": 17,
+ "column": 21
+ },
+ "is_synthetic": false
+ }
+ },
+ "value": {
+ "string_constant": {
+ "text": "LittleEndian",
+ "source_location": {
+ "start": {
+ "line": 17,
+ "column": 23
+ },
+ "end": {
+ "line": 17,
+ "column": 37
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 17,
+ "column": 23
+ },
+ "end": {
+ "line": 17,
+ "column": 37
+ },
+ "is_synthetic": false
+ }
+ },
+ "is_default": true,
+ "source_location": {
+ "start": {
+ "line": 17,
+ "column": 1
+ },
+ "end": {
+ "line": 17,
+ "column": 38
+ },
+ "is_synthetic": false
+ }
+ },
+ {
+ "name": {
+ "text": "namespace",
+ "source_location": {
+ "start": {
+ "line": 18,
+ "column": 8
+ },
+ "end": {
+ "line": 18,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "value": {
+ "string_constant": {
+ "text": "emboss::test",
+ "source_location": {
+ "start": {
+ "line": 18,
+ "column": 19
+ },
+ "end": {
+ "line": 18,
+ "column": 33
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 18,
+ "column": 19
+ },
+ "end": {
+ "line": 18,
+ "column": 33
+ },
+ "is_synthetic": false
+ }
+ },
+ "is_default": false,
+ "back_end": {
+ "text": "cpp",
+ "source_location": {
+ "start": {
+ "line": 18,
+ "column": 2
+ },
+ "end": {
+ "line": 18,
+ "column": 7
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 18,
+ "column": 1
+ },
+ "end": {
+ "line": 20,
+ "column": 1
+ },
+ "is_synthetic": false
+ }
+ }
+ ],
+ "type": [
+ {
+ "structure": {
+ "field": [
+ {
+ "location": {
+ "start": {
+ "constant": {
+ "value": "0",
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 3
+ },
+ "end": {
+ "line": 22,
+ "column": 4
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 3
+ },
+ "end": {
+ "line": 22,
+ "column": 4
+ },
+ "is_synthetic": false
+ }
+ },
+ "size": {
+ "constant": {
+ "value": "4",
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 8
+ },
+ "end": {
+ "line": 22,
+ "column": 9
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 8
+ },
+ "end": {
+ "line": 22,
+ "column": 9
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 3
+ },
+ "end": {
+ "line": 22,
+ "column": 10
+ },
+ "is_synthetic": false
+ }
+ },
+ "type": {
+ "atomic_type": {
+ "reference": {
+ "source_name": [
+ {
+ "text": "UInt",
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 13
+ },
+ "end": {
+ "line": 22,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ }
+ ],
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 13
+ },
+ "end": {
+ "line": 22,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 13
+ },
+ "end": {
+ "line": 22,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 13
+ },
+ "end": {
+ "line": 22,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "name": {
+ "name": {
+ "text": "file_state",
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 25
+ },
+ "end": {
+ "line": 22,
+ "column": 35
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 25
+ },
+ "end": {
+ "line": 22,
+ "column": 35
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 3
+ },
+ "end": {
+ "line": 22,
+ "column": 35
+ }
+ },
+ "existence_condition": {
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 3
+ },
+ "end": {
+ "line": 22,
+ "column": 35
+ },
+ "is_synthetic": false
+ },
+ "boolean_constant": {
+ "source_location": {
+ "start": {
+ "line": 22,
+ "column": 3
+ },
+ "end": {
+ "line": 22,
+ "column": 35
+ },
+ "is_synthetic": false
+ },
+ "value": true
+ }
+ }
+ },
+ {
+ "location": {
+ "start": {
+ "constant": {
+ "value": "4",
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 3
+ },
+ "end": {
+ "line": 23,
+ "column": 4
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 3
+ },
+ "end": {
+ "line": 23,
+ "column": 4
+ },
+ "is_synthetic": false
+ }
+ },
+ "size": {
+ "constant": {
+ "value": "12",
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 8
+ },
+ "end": {
+ "line": 23,
+ "column": 10
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 8
+ },
+ "end": {
+ "line": 23,
+ "column": 10
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 3
+ },
+ "end": {
+ "line": 23,
+ "column": 11
+ },
+ "is_synthetic": false
+ }
+ },
+ "type": {
+ "array_type": {
+ "base_type": {
+ "atomic_type": {
+ "reference": {
+ "source_name": [
+ {
+ "text": "UInt",
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 13
+ },
+ "end": {
+ "line": 23,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ }
+ ],
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 13
+ },
+ "end": {
+ "line": 23,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 13
+ },
+ "end": {
+ "line": 23,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "size_in_bits": {
+ "constant": {
+ "value": "8",
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 18
+ },
+ "end": {
+ "line": 23,
+ "column": 19
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 17
+ },
+ "end": {
+ "line": 23,
+ "column": 19
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 13
+ },
+ "end": {
+ "line": 23,
+ "column": 19
+ },
+ "is_synthetic": false
+ }
+ },
+ "element_count": {
+ "constant": {
+ "value": "12",
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 20
+ },
+ "end": {
+ "line": 23,
+ "column": 22
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 19
+ },
+ "end": {
+ "line": 23,
+ "column": 23
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 13
+ },
+ "end": {
+ "line": 23,
+ "column": 23
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 13
+ },
+ "end": {
+ "line": 23,
+ "column": 23
+ },
+ "is_synthetic": false
+ }
+ },
+ "name": {
+ "name": {
+ "text": "file_name",
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 25
+ },
+ "end": {
+ "line": 23,
+ "column": 34
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 25
+ },
+ "end": {
+ "line": 23,
+ "column": 34
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 3
+ },
+ "end": {
+ "line": 23,
+ "column": 34
+ }
+ },
+ "existence_condition": {
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 3
+ },
+ "end": {
+ "line": 23,
+ "column": 34
+ },
+ "is_synthetic": false
+ },
+ "boolean_constant": {
+ "source_location": {
+ "start": {
+ "line": 23,
+ "column": 3
+ },
+ "end": {
+ "line": 23,
+ "column": 34
+ },
+ "is_synthetic": false
+ },
+ "value": true
+ }
+ }
+ },
+ {
+ "location": {
+ "start": {
+ "constant": {
+ "value": "16",
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 3
+ },
+ "end": {
+ "line": 24,
+ "column": 5
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 3
+ },
+ "end": {
+ "line": 24,
+ "column": 5
+ },
+ "is_synthetic": false
+ }
+ },
+ "size": {
+ "constant": {
+ "value": "4",
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 8
+ },
+ "end": {
+ "line": 24,
+ "column": 9
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 8
+ },
+ "end": {
+ "line": 24,
+ "column": 9
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 3
+ },
+ "end": {
+ "line": 24,
+ "column": 10
+ },
+ "is_synthetic": false
+ }
+ },
+ "type": {
+ "atomic_type": {
+ "reference": {
+ "source_name": [
+ {
+ "text": "UInt",
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 13
+ },
+ "end": {
+ "line": 24,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ }
+ ],
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 13
+ },
+ "end": {
+ "line": 24,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 13
+ },
+ "end": {
+ "line": 24,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 13
+ },
+ "end": {
+ "line": 24,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "name": {
+ "name": {
+ "text": "file_size_kb",
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 25
+ },
+ "end": {
+ "line": 24,
+ "column": 37
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 25
+ },
+ "end": {
+ "line": 24,
+ "column": 37
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 3
+ },
+ "end": {
+ "line": 24,
+ "column": 37
+ }
+ },
+ "existence_condition": {
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 3
+ },
+ "end": {
+ "line": 24,
+ "column": 37
+ },
+ "is_synthetic": false
+ },
+ "boolean_constant": {
+ "source_location": {
+ "start": {
+ "line": 24,
+ "column": 3
+ },
+ "end": {
+ "line": 24,
+ "column": 37
+ },
+ "is_synthetic": false
+ },
+ "value": true
+ }
+ }
+ },
+ {
+ "location": {
+ "start": {
+ "constant": {
+ "value": "20",
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 3
+ },
+ "end": {
+ "line": 25,
+ "column": 5
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 3
+ },
+ "end": {
+ "line": 25,
+ "column": 5
+ },
+ "is_synthetic": false
+ }
+ },
+ "size": {
+ "constant": {
+ "value": "4",
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 8
+ },
+ "end": {
+ "line": 25,
+ "column": 9
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 8
+ },
+ "end": {
+ "line": 25,
+ "column": 9
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 3
+ },
+ "end": {
+ "line": 25,
+ "column": 10
+ },
+ "is_synthetic": false
+ }
+ },
+ "type": {
+ "atomic_type": {
+ "reference": {
+ "source_name": [
+ {
+ "text": "UInt",
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 13
+ },
+ "end": {
+ "line": 25,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ }
+ ],
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 13
+ },
+ "end": {
+ "line": 25,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 13
+ },
+ "end": {
+ "line": 25,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 13
+ },
+ "end": {
+ "line": 25,
+ "column": 17
+ },
+ "is_synthetic": false
+ }
+ },
+ "name": {
+ "name": {
+ "text": "media",
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 25
+ },
+ "end": {
+ "line": 25,
+ "column": 30
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 25
+ },
+ "end": {
+ "line": 25,
+ "column": 30
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 3
+ },
+ "end": {
+ "line": 25,
+ "column": 30
+ }
+ },
+ "existence_condition": {
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 3
+ },
+ "end": {
+ "line": 25,
+ "column": 30
+ },
+ "is_synthetic": false
+ },
+ "boolean_constant": {
+ "source_location": {
+ "start": {
+ "line": 25,
+ "column": 3
+ },
+ "end": {
+ "line": 25,
+ "column": 30
+ },
+ "is_synthetic": false
+ },
+ "value": true
+ }
+ }
+ }
+ ],
+ "source_location": {
+ "start": {
+ "line": 21,
+ "column": 1
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ }
+ }
+ },
+ "addressable_unit": 8,
+ "source_location": {
+ "start": {
+ "line": 21,
+ "column": 1
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ },
+ "is_synthetic": false
+ },
+ "name": {
+ "name": {
+ "text": "LogFileStatus",
+ "source_location": {
+ "start": {
+ "line": 21,
+ "column": 8
+ },
+ "end": {
+ "line": 21,
+ "column": 21
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 21,
+ "column": 8
+ },
+ "end": {
+ "line": 21,
+ "column": 21
+ },
+ "is_synthetic": false
+ }
+ }
+ }
+ ],
+ "documentation": [
+ {
+ "text": "This is a simple, real-world example structure.",
+ "source_location": {
+ "start": {
+ "line": 15,
+ "column": 1
+ },
+ "end": {
+ "line": 16,
+ "column": 1
+ },
+ "is_synthetic": false
+ }
+ }
+ ],
+ "foreign_import": [
+ {
+ "file_name": {
+ "text": "",
+ "source_location": {
+ "start": {
+ "line": 16,
+ "column": 1
+ },
+ "end": {
+ "line": 16,
+ "column": 1
+ },
+ "is_synthetic": false
+ }
+ },
+ "local_name": {
+ "text": "",
+ "source_location": {
+ "start": {
+ "line": 16,
+ "column": 1
+ },
+ "end": {
+ "line": 16,
+ "column": 1
+ },
+ "is_synthetic": false
+ }
+ },
+ "source_location": {
+ "start": {
+ "line": 16,
+ "column": 1
+ },
+ "end": {
+ "line": 16,
+ "column": 1
+ },
+ "is_synthetic": false
+ }
+ }
+ ],
+ "source_location": {
+ "start": {
+ "line": 1,
+ "column": 1
+ },
+ "end": {
+ "line": 26,
+ "column": 1
+ },
+ "is_synthetic": false
+ }
+}