cbd_design.mvc 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import models/SimpleClassDiagrams as SCD
  2. include "primitives.alh"
  3. SCD CausalBlockDiagrams{
  4. Class Float {
  5. $
  6. if (bool_not(is_physical_float(self))):
  7. return "Natural has no float value"!
  8. else:
  9. return "OK"!
  10. $
  11. }
  12. Class Block{
  13. output : Block
  14. }
  15. Class ConstantBlock{
  16. value : Float
  17. }
  18. Class AdditionBlock{
  19. input1 : Block
  20. input2 : Block
  21. }
  22. Class NegatorBlock{
  23. input1 : Block
  24. input2 : Block
  25. }
  26. Class MultiplyBlock{
  27. input1 : Block
  28. input2 : Block
  29. }
  30. Class InverseBlock{
  31. input : Block
  32. }
  33. Class DelayBlock{
  34. input : Block
  35. initial : Block
  36. }
  37. Inheritance (ConstantBlock, Block){}
  38. Inheritance (AdditionBlock, Block){}
  39. Inheritance (NegatorBlock, Block){}
  40. Inheritance (MultiplyBlock, Block){}
  41. Inheritance (InverseBlock, Block){}
  42. Inheritance (DelayBlock, Block){}
  43. }
  44. export CausalBlockDiagrams to models/CausalBlockDiagrams