From ee790e4a11ea534de4e48ae539055a0a161c30a9 Mon Sep 17 00:00:00 2001 From: Joeri Exelmans Date: Mon, 21 Oct 2024 15:01:27 +0200 Subject: [PATCH] Fix parsing primitive types --- concrete_syntax/textual_od/parser.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/concrete_syntax/textual_od/parser.py b/concrete_syntax/textual_od/parser.py index 3a0ef13..fb6e3f0 100644 --- a/concrete_syntax/textual_od/parser.py +++ b/concrete_syntax/textual_od/parser.py @@ -47,7 +47,10 @@ def parse_od(state, m_text, mm): m = state.create_node() od = OD(mm, m, state) - int_mm_id = UUID(state.read_value(state.read_dict(state.read_root(), "Integer"))) + primitive_types = { + type_name : UUID(state.read_value(state.read_dict(state.read_root(), type_name))) + for type_name in ["Integer", "String", "Boolean"] + } class T(TBase): def __init__(self, visit_tokens): @@ -73,10 +76,10 @@ def parse_od(state, m_text, mm): obj_node = od.create_object(obj_name, type_name) else: src, tgt = link - if tgt == "Integer": - if state.read_dict(m, "Integer") == None: + if tgt in primitive_types: + if state.read_dict(m, tgt) == None: scd = SCD(m, state) - scd.create_model_ref("Integer", int_mm_id) + scd.create_model_ref(tgt, primitive_types[tgt]) od.create_link(obj_name, type_name, src, tgt) # Create slots slots = el[3:]