123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- include "primitives.alh"
- include "modelling.alh"
- include "object_operations.alh"
- A B {
- Composite schedule {
- {Contains} Success success {}
- {Contains} ForAll render_blocks {
- LHS {
- Pre_CBD/Block pre_block_0 {
- label = "0"
- }
- }
- RHS {
- Post_CBD/Block post_block_0 {
- label = "0"
- }
- Post_Rendered/Group post_block_1 {
- label = "1"
- post_x = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 0!
- $
- post_y = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 0!
- $
- }
- Post_Rendered/Rectangle post_block_2 {
- label = "2"
- post_x = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 0!
- $
- post_y = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 0!
- $
- post_width = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 10!
- $
- post_height = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 10!
- $
- post_lineWidth = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 2!
- $
- post_lineColour = $
- String function value(model : Element, name : String, mapping : Element):
- return "black"!
- $
- post_fillColour = $
- String function value(model : Element, name : String, mapping : Element):
- return "white"!
- $
- }
- Post_Rendered/Text post_block_3 {
- label = "3"
- post_x = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 10!
- $
- post_y = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 10!
- $
- post_lineWidth = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 1!
- $
- post_lineColour = $
- String function value(model : Element, name : String, mapping : Element):
- return "black"!
- $
- post_content = $
- String function value(model : Element, name : String, mapping : Element):
- String type
- type = read_type(model, name)
- if (type == "AdditionBlock"):
- return "+"!
- elif (type == "NegatorBlock"):
- return "-"!
- elif (type == "MultiplyBlock"):
- return "*"!
- elif (type == "InverseBlock"):
- return "/"!
- elif (type == "DerivatorBlock"):
- return "d/dx"!
- elif (type == "IntegratorBlock"):
- return "1/s"!
- elif (type == "DelayBlock"):
- return "DELAY"!
- elif (type == "ProbeBlock"):
- return "PROBE"!
- $
- }
- Post_Rendered/contains (post_block_1, post_block2) {}
- Post_Rendered/contains (post_block_1, post_block3) {}
- Post_Tracability (post_block_0, post_block_1) {}
- }
- }
- {Contains} ForAll render_connections {
- LHS {
- Pre_CBD/Block pre_conn_0 {
- label = "0"
- }
- Pre_CBD/Block pre_conn_1 {
- label = "1"
- }
- Pre_CBD/Link (pre_conn_0, pre_conn_1){
- label = "2"
- }
- Pre_Rendered/Group pre_conn_3 {
- label = "3"
- }
- Pre_Rendered/Group pre_conn_4 {
- label = "4"
- }
- Pre_Tracability (pre_conn_0, pre_conn_3) {}
- Pre_Tracability (pre_conn_0, pre_conn_4) {}
- }
- RHS {
- Post_CBD/Block post_conn_0 {
- label = "0"
- }
- Post_CBD/Block post_conn_1 {
- label = "1"
- }
- Post_CBD/Link (post_conn_0, post_conn_1){
- label = "2"
- }
- Post_Rendered/Group post_conn_3 {
- label = "3"
- }
- Post_Rendered/Group post_conn_4 {
- label = "4"
- }
- Post_Tracability (post_conn_0, post_conn_3) {}
- Post_Tracability (post_conn_0, post_conn_4) {}
- Post_Rendered/Link {
- label = "5"
- post_x = $
- Integer function value(model : Element, name : String, mapping : Element):
- return read_attribute(model, mapping["3"], "x")!
- $
- post_y = $
- Integer function value(model : Element, name : String, mapping : Element):
- return read_attribute(model, mapping["3"], "y")!
- $
- post_lineWidth = $
- Integer function value(model : Element, name : String, mapping : Element):
- return 1!
- $
- post_lineColour = $
- String function value(model : Element, name : String, mapping : Element):
- if (read_type(model, name) == "ICLink"):
- return "red"!
- else:
- return "black"!
- $
- post_targetX = $
- Integer function value(model : Element, name : String, mapping : Element):
- return read_attribute(model, mapping["4"], "x")!
- $
- post_targetY = $
- Integer function value(model : Element, name : String, mapping : Element):
- return read_attribute(model, mapping["4"], "y")!
- $
- }
- }
- }
- }
- Initial (schedule, render_blocks) {}
- OnSuccess (render_blocks, render_connections) {}
- OnFailure (render_blocks, render_connections) {}
- OnSuccess (render_connections, success) {}
- OnFailure (render_connections, success) {}
- }
|