85 lines
1.7 KiB
Text
85 lines
1.7 KiB
Text
# Link state ("signal")
|
|
|
|
Signal:Class {
|
|
# abstract = True;
|
|
}
|
|
|
|
Signal_signal:AttributeLink (Signal -> Integer) {
|
|
name = "signal";
|
|
optional = False;
|
|
}
|
|
|
|
hasSignal:Association (link -> Signal) {
|
|
# every Signal has 1 link
|
|
source_lower_cardinality = 1;
|
|
source_upper_cardinality = 1;
|
|
# every link has 0..1 Signals:
|
|
target_upper_cardinality = 1;
|
|
}
|
|
|
|
# BoolSignal:Class
|
|
# IntSignal:Class
|
|
# StrSignal:Class
|
|
|
|
# :Inheritance (BoolSignal -> Signal)
|
|
# :Inheritance (IntSignal -> Signal)
|
|
# :Inheritance (StrSignal -> Signal)
|
|
|
|
# BoolSignal_signal:AttributeLink (BoolSignal -> Boolean) {
|
|
# name = "signal";
|
|
# optional = False;
|
|
# }
|
|
# IntSignal_signal:AttributeLink (IntSignal -> Integer) {
|
|
# name = "signal";
|
|
# optional = False;
|
|
# }
|
|
# StrSignal_signal:AttributeLink (StrSignal -> String) {
|
|
# name = "signal";
|
|
# optional = False;
|
|
# }
|
|
|
|
|
|
|
|
# Delay block state
|
|
# mandatory - otherwise we cannot determine the output signal of a delay block
|
|
|
|
State:Class {
|
|
# abstract = True;
|
|
}
|
|
|
|
State_state:AttributeLink (State -> Integer) {
|
|
name = "state";
|
|
optional = False;
|
|
}
|
|
|
|
|
|
delay2State:Association (Delay -> State) {
|
|
source_lower_cardinality = 1;
|
|
source_upper_cardinality = 1;
|
|
target_lower_cardinality = 1;
|
|
target_upper_cardinality = 1;
|
|
}
|
|
|
|
# BoolState:Class
|
|
# IntState:Class
|
|
# StrState:Class
|
|
|
|
# :Inheritance (BoolState -> State)
|
|
# :Inheritance (IntState -> State)
|
|
# :Inheritance (StrState -> State)
|
|
|
|
|
|
# BoolState_state:AttributeLink (BoolState -> Boolean) {
|
|
# name = "state";
|
|
# optional = False;
|
|
# }
|
|
|
|
# IntState_state:AttributeLink (IntState -> Integer) {
|
|
# name = "state";
|
|
# optional = False;
|
|
# }
|
|
|
|
# StrState_state:AttributeLink (StrState -> String) {
|
|
# name = "state";
|
|
# optional = False;
|
|
# }
|