Fix parsing primitive types

This commit is contained in:
Joeri Exelmans 2024-10-21 15:01:27 +02:00
parent 107f2f750e
commit ee790e4a11

View file

@ -47,7 +47,10 @@ def parse_od(state, m_text, mm):
m = state.create_node() m = state.create_node()
od = OD(mm, m, state) 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): class T(TBase):
def __init__(self, visit_tokens): 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) obj_node = od.create_object(obj_name, type_name)
else: else:
src, tgt = link src, tgt = link
if tgt == "Integer": if tgt in primitive_types:
if state.read_dict(m, "Integer") == None: if state.read_dict(m, tgt) == None:
scd = SCD(m, state) 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) od.create_link(obj_name, type_name, src, tgt)
# Create slots # Create slots
slots = el[3:] slots = el[3:]