Move file. Small fix.

This commit is contained in:
Joeri Exelmans 2024-10-04 10:50:16 +02:00
parent 9faa5770a8
commit 03cc568516
5 changed files with 41 additions and 6 deletions

View file

@ -1,3 +1,5 @@
# PlantUML renderer
from services import scd, od from services import scd, od
from services.bottom.V0 import Bottom from services.bottom.V0 import Bottom
from transformation import ramify from transformation import ramify

View file

@ -0,0 +1,28 @@
grammar = r"""
%import common.WS_INLINE
%ignore WS_INLINE
%ignore COMMENT
%declare _INDENT _DEDENT
?start: (_NL | object )*
IDENTIFIER: /[A-Za-z_][A-Za-z_0-9]*/
COMMENT: /#.*/
# newline
_NL: /(\r?\n[\t ]*)+/
literal: INT
| STR
| BOOL
INT: /[0-9]+/
STR: /"[^"]*"/
| /'[^']*'/
BOOL: "True" | "False"
object: [IDENTIFIER] ":" IDENTIFIER [link] _NL [_INDENT slot+ _DEDENT]
link: "(" IDENTIFIER "->" IDENTIFIER ")"
slot: IDENTIFIER "=" literal _NL
"""

View file

@ -30,8 +30,8 @@ STR: /"[^"]*"/
| /'[^']*'/ | /'[^']*'/
BOOL: "True" | "False" BOOL: "True" | "False"
object: [IDENTIFIER] ":" IDENTIFIER [link] _NL [_INDENT slot+ _DEDENT] object: [IDENTIFIER] ":" IDENTIFIER [link_spec] _NL [_INDENT slot+ _DEDENT]
link: "(" IDENTIFIER "->" IDENTIFIER ")" link_spec: "(" IDENTIFIER "->" IDENTIFIER ")"
slot: IDENTIFIER "=" literal _NL slot: IDENTIFIER "=" literal _NL
""" """
@ -75,7 +75,7 @@ def parse_od(state, cs_text, mm):
def literal(self, el): def literal(self, el):
return el[0] return el[0]
def link(self, el): def link_spec(self, el):
[src, tgt] = el [src, tgt] = el
return (src, tgt) return (src, tgt)

View file

@ -11,7 +11,7 @@ from transformation.ramify import ramify
from transformation import rewriter from transformation import rewriter
from services.bottom.V0 import Bottom from services.bottom.V0 import Bottom
from services.primitives.integer_type import Integer from services.primitives.integer_type import Integer
from concrete_syntax import plantuml from concrete_syntax.plantuml import renderer as plantuml
from concrete_syntax.textual_od import parser, renderer from concrete_syntax.textual_od import parser, renderer
import sys import sys
@ -30,6 +30,12 @@ def main():
int_mm_id = UUID(state.read_value(state.read_dict(state.read_root(), "Integer"))) int_mm_id = UUID(state.read_value(state.read_dict(state.read_root(), "Integer")))
string_mm_id = UUID(state.read_value(state.read_dict(state.read_root(), "String"))) string_mm_id = UUID(state.read_value(state.read_dict(state.read_root(), "String")))
conf = Conformance(state, scd_mm_id, scd_mm_id)
print("Conformance SCD_MM -> SCD_MM?", conf.check_nominal(log=True))
# print("--------------------------------------")
# print(renderer.render_od(state, scd_mm_id, scd_mm_id, hide_names=False))
# print("--------------------------------------")
def create_dsl_mm_api(): def create_dsl_mm_api():
# Create DSL MM with SCD API # Create DSL MM with SCD API
dsl_mm_id = state.create_node() dsl_mm_id = state.create_node()
@ -64,7 +70,6 @@ Man_weight:AttributeLink (Man -> Integer)
name = "weight" name = "weight"
optional = False optional = False
afraidOf:Association (Man -> Animal) afraidOf:Association (Man -> Animal)
source_lower_cardinality = 0
target_lower_cardinality = 1 target_lower_cardinality = 1
Man_inh_Animal:Inheritance (Man -> Animal) Man_inh_Animal:Inheritance (Man -> Animal)
Bear_inh_Animal:Inheritance (Bear -> Animal) Bear_inh_Animal:Inheritance (Bear -> Animal)

View file

@ -333,5 +333,5 @@ def read_primitive_value(bottom, modelref: UUID, mm: UUID):
elif typ_name == "Boolean": elif typ_name == "Boolean":
return Boolean(referred_model, bottom.state).read() return Boolean(referred_model, bottom.state).read()
else: else:
raise Exception("Unimplemented type:", host_type_name) raise Exception("Unimplemented type:", typ_name)