bsml.cfr 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. abstract xor EventOptions
  2. PresentInWhole
  3. PresentInRemainder
  4. PresentInNextComboStep
  5. PresentInNextSmallStep
  6. PresentInSame
  7. [BSML.Semantics.ConcurrencyAndConsistency.Concurrency.Many]
  8. abstract BSML
  9. Syntax
  10. Events?
  11. [Semantics.EventLifeLine]
  12. EventTriggers?
  13. EnvironmentalInputEvents?
  14. [Semantics.EventLifeLine.ExternalEvents.ExternalInputEvents.ExternalInputEventOptions.SyntacticInputEvents]
  15. NegatedEnvironmentalnputEvents?
  16. [Semantics.Priority.NegationOfTriggers]
  17. InterfaceEvents?
  18. [Syntax.Events.GeneratedEvents.GeneratedInterfaceEvents]
  19. [Semantics.EventLifeLine.InterfaceEvents]
  20. NegatedInterfaceEvents?
  21. [Semantics.Priority.NegationOfTriggers]
  22. NegatedEvents?
  23. [Semantics.Priority.NegationOfTriggers]
  24. GeneratedEvents?
  25. EnvironmentalOutputEvents?
  26. [Semantics.EventLifeLine.ExternalEvents.ExternalOutputEvents.ExternalOutputEventOptions.SyntacticOutputEvents]
  27. GeneratedInterfaceEvents?
  28. [Syntax.Events.EventTriggers.InterfaceEvents]
  29. Variables?
  30. VariableOperators // in Day & Atlee, this is an optional feature, but it may not have to be optional because all its nested clafers are optional too.
  31. new?
  32. [Semantics.OrderOfSmallSteps.Dataflow]
  33. [Semantics.EnablednessMemoryProtocol.InternalVariablesInGC.GCBigStep ||
  34. Semantics.EnablednessMemoryProtocol.InternalVariablesInGC.GCSmallStep ||
  35. Semantics.AssignmentMemoryProtocol.InternalVariablesInRHS.RHSBigStep ||
  36. Semantics.AssignmentMemoryProtocol.InternalVariablesInRHS.RHSSmallStep]
  37. new_small?
  38. [Semantics.EnablednessMemoryProtocol.InternalVariablesInGC.GCSmallStep ||
  39. Semantics.AssignmentMemoryProtocol.InternalVariablesInRHS.RHSSmallStep]
  40. cur?
  41. [Semantics.EnablednessMemoryProtocol.InternalVariablesInGC.GCBigStep ||
  42. Semantics.AssignmentMemoryProtocol.InternalVariablesInRHS.RHSBigStep]
  43. pre?
  44. [Semantics.EnablednessMemoryProtocol.InternalVariablesInGC.GCSmallStep ||
  45. Semantics.AssignmentMemoryProtocol.InternalVariablesInRHS.RHSSmallStep]
  46. VariableAssignments?
  47. [Semantics.AssignmentMemoryProtocol]
  48. EnvironmentalOutputVariablesInLHS?
  49. InterfaceVariablesInRHS?
  50. [Semantics.AssignmentMemoryProtocol.InterfaceVariablesInRHS]
  51. EnvironmentalInputVariablesInRHS?
  52. GuardConditions?
  53. [Semantics.EnablednessMemoryProtocol]
  54. InterfaceVariablesInGC?
  55. [Semantics.EnablednessMemoryProtocol.InterfaceVariablesInGC]
  56. EnvironmentalInputVariablesInGC?
  57. ControlStates?
  58. Hierarchical?
  59. And?
  60. [Semantics.ConcurrencyAndConsistency]
  61. Stable?
  62. [Semantics.BigStepMaximality.Syntactic]
  63. ComboStable?
  64. [Semantics.ComboStepMaximality.ComboSyntactic]
  65. Semantics
  66. xor BigStepMaximality
  67. Syntactic
  68. [Syntax.ControlStates.Stable]
  69. TakeOne
  70. TakeMany
  71. xor ComboStepMaximality ?
  72. // Need any other combo-step semantic option for this to have meaning:
  73. [Semantics.EventLifeLine.InternalEvents.PresentInNextComboStep ||
  74. Semantics.EventLifeLine.ExternalEvents.ExternalInputEvents.EventOptions.PresentInNextComboStep ||
  75. Semantics.EventLifeLine.ExternalEvents.ExternalOutputEvents.EventOptions.PresentInNextComboStep ||
  76. Semantics.EnablednessMemoryProtocol.InternalVariablesInGC.GCComboStep ||
  77. Semantics.AssignmentMemoryProtocol.InternalVariablesInRHS.RHSComboStep]
  78. // Options:
  79. ComboSyntactic
  80. [Syntax.ControlStates.ComboStable]
  81. ComboTakeOne
  82. ComboTakeMany
  83. [not Semantics.BigStepMaximality.TakeOne]
  84. ConcurrencyAndConsistency ?
  85. [Syntax.ControlStates.Hierarchical.And]
  86. xor Concurrency
  87. Single
  88. Many
  89. xor SmallStepConsistency
  90. SourceDestinationOrthogonal
  91. ArenaOrthogonal
  92. xor Preemption
  93. NonPreemptive
  94. Preemptive
  95. EventLifeLine ?
  96. [Syntax.Events]
  97. InternalEvents : EventOptions
  98. ExternalEvents ?
  99. ExternalInputEvents ?
  100. EventOptions : EventOptions
  101. xor ExternalInputEventOptions
  102. SyntacticInputEvents
  103. [Syntax.Events.EventTriggers.EnvironmentalInputEvents]
  104. ReceivedEventsAsEnvironmental
  105. HybridInputEvents
  106. ExternalOutputEvents ?
  107. EventOptions : EventOptions
  108. xor ExternalOutputEventOptions
  109. SyntacticOutputEvents
  110. [Syntax.Events.GeneratedEvents.EnvironmentalOutputEvents]
  111. LastComboStepGeneratedEvents
  112. LastSmallStepGeneratedEvents
  113. HybridOutputEvents
  114. xor InterfaceEvents ?
  115. [Syntax.Events.EventTriggers.InterfaceEvents]
  116. StrongSynchronousEvent
  117. WeakSynchronousEvent
  118. AsynchronousEvent
  119. EnablednessMemoryProtocol ?
  120. [Syntax.Variables.GuardConditions]
  121. xor InternalVariablesInGC
  122. GCBigStep
  123. GCSmallStep
  124. GCComboStep
  125. xor InterfaceVariablesInGC ?
  126. [Syntax.Variables.GuardConditions.InterfaceVariablesInGC]
  127. GCStrongSynchronousVariable
  128. GCWeakSynchronousVariable
  129. GCAsynchronousVariable
  130. AssignmentMemoryProtocol ?
  131. [Syntax.Variables.VariableAssignments]
  132. xor InternalVariablesInRHS
  133. RHSBigStep
  134. RHSSmallStep
  135. RHSComboStep
  136. xor InterfaceVariablesInRHS ?
  137. [Syntax.Variables.VariableAssignments.InterfaceVariablesInRHS]
  138. RHSStrongSynchronousVariable
  139. RHSWeakSynchronousVariable
  140. RHSAsynchronousVariable
  141. xor OrderOfSmallSteps ?
  142. None
  143. ExplicitOrdering
  144. Dataflow
  145. [Syntax.Variables.VariableOperators.new]
  146. Priority ?
  147. Hierarchical?
  148. [Syntax.ControlStates.Hierarchical]
  149. ExplicitPriority?
  150. NegationOfTriggers?
  151. [Syntax.Events.EventTriggers.NegatedEvents ||
  152. Syntax.Events.EventTriggers.InterfaceEvents.NegatedInterfaceEvents ||
  153. Syntax.Events.EventTriggers.EnvironmentalInputEvents.NegatedEnvironmentalnputEvents]
  154. // Let's say in SCCD, we always have a minimum of syntactic features
  155. SCCD : BSML
  156. [Syntax.Events]
  157. [Syntax.ControlStates.Hierarchical.And]
  158. [Syntax.Variables.VariableAssignments]
  159. [Syntax.Variables.GuardConditions]
  160. currentlySupported : SCCD
  161. [PresentInNextSmallStep || PresentInNextComboStep]
  162. [SyntacticInputEvents]
  163. [SyntacticOutputEvents]
  164. // validConfiguration : BSML
  165. // [PresentInSame]
  166. // [ComboTakeMany]
  167. // invalidConfiguration : BSML
  168. // [PresentInSame]
  169. // [not Concurrency]