No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
In MDriven we | In MDriven, we want to change data when appropriate – so we use the same syntax as OCL in something we call EAL – ExtendedActionLanguage. | ||
We use EAL in MDriven here: | We use EAL in MDriven here: | ||
Line 7: | Line 7: | ||
* StateMachine Effects | * StateMachine Effects | ||
==== EAL | ==== EAL Differences ==== | ||
When using EAL one often | When using EAL, one often wants to stack expressions one after the other. To allow for this, EAL has introduced an expression separator: The semicolon “''';'''”. This means that you can build method bodies that do several things like this: | ||
self.SomeDateTime := DateTime.Now; | self.SomeDateTime := DateTime.Now; | ||
self.SomeInt := 27; | self.SomeInt := 27; | ||
self.SomeString := self.SomeDateTime.ToString('yyyy-MM-dd') | self.SomeString := self.SomeDateTime.ToString('yyyy-MM-dd') | ||
In EAL we use := to assign but = to compare. | In EAL, we use ''':='''" to assign but "'''='''" to compare. | ||
In EAL we can also create new objects Thing.Create | In EAL, we can also create new objects Thing.Create | ||
Worth noting is that the expression separator “;” can only be used between statements. So writing this ‘a string’;0 is of type integer. But writing this ‘a string’;0; is of unknown type and hence wrong – the last statement that the parser | Worth noting is that the expression separator “''';'''” can only be used between statements. So writing this ‘a string’;0 is of type integer. But writing this ‘a string’;0; is of unknown type and hence wrong – the last statement that the parser expects after the last "''';'''" is not found. | ||
[[Category:EAL]] | [[Category:EAL]] |
Revision as of 07:06, 15 March 2023
In MDriven, we want to change data when appropriate – so we use the same syntax as OCL in something we call EAL – ExtendedActionLanguage.
We use EAL in MDriven here:
- Action execute expression
- Actions in ViewModel columns Execute expression
- Class method implementations
- StateMachine Effects
EAL Differences
When using EAL, one often wants to stack expressions one after the other. To allow for this, EAL has introduced an expression separator: The semicolon “;”. This means that you can build method bodies that do several things like this:
self.SomeDateTime := DateTime.Now; self.SomeInt := 27; self.SomeString := self.SomeDateTime.ToString('yyyy-MM-dd')
In EAL, we use :=" to assign but "=" to compare.
In EAL, we can also create new objects Thing.Create
Worth noting is that the expression separator “;” can only be used between statements. So writing this ‘a string’;0 is of type integer. But writing this ‘a string’;0; is of unknown type and hence wrong – the last statement that the parser expects after the last ";" is not found.