Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EDT:EGL Language"
Line 1: | Line 1: | ||
− | + | == General Notes == | |
− | * | + | *<blockquote></blockquote><u>'''This document is not finished yet!'''</u> |
− | * Language compliance test | + | |
+ | *"N/S" means Not Supported. | ||
+ | *Anything that exists in RBD but isn't mentioned here is not included in EDT.<br> | ||
+ | *The work in the Core category includes the parser, model, and validation.<br> | ||
+ | |||
+ | == Table 1: Part Types == | ||
+ | |||
+ | {| width="400" cellspacing="1" cellpadding="1" border="1" style="" | ||
+ | |- | ||
+ | | bgcolor="#999999" align="center" | '''''Part Types''''' | ||
+ | | bgcolor="#999999" align="center" | '''Core''' | ||
+ | | bgcolor="#999999" align="center" | '''JavaScript''' | ||
+ | | bgcolor="#999999" align="center" | '''Java''' | ||
+ | | bgcolor="#999999" align="center" | '''Debug''' | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''DataItem<sup>1</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Function<sup>2</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Top-level function<sup>2</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Delegate<sup>2</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Record''<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Structed Record''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''ExternalType''<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Handler''<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Library''<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Service''<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Interface<sup>3</sup>''<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Enumeration''<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Program<sup>4</sup>''<br> | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Array''<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Nullability''<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''DataTable''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Form''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |} | ||
+ | |||
+ | '''Notes on Table 1'''<br> | ||
+ | |||
+ | #In RBD a DataItem can only be used for primitive types. In EDT it can be used for any type. | ||
+ | #See also Table 2: Function Parameters.<br> | ||
+ | #Interfaces can be implemented by services and handlers (every kind of "logic part" which can be instantiated).<br> | ||
+ | #There are no called programs. Use libraries for "local calls" and services for "remote calls".<br> | ||
+ | |||
+ | == Table 2: Function Parameters == | ||
+ | |||
+ | {| width="400" cellspacing="1" cellpadding="1" border="1" style="" | ||
+ | |- | ||
+ | | bgcolor="#999999" align="center" | '''''Function Parameters''''' | ||
+ | | bgcolor="#999999" align="center" | '''Core''' | ||
+ | | bgcolor="#999999" align="center" | '''JavaScript''' | ||
+ | | bgcolor="#999999" align="center" | '''Java''' | ||
+ | | bgcolor="#999999" align="center" | '''Debug''' | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''In<sup>1</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Out'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Inout<sup>1</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Ellipsis'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Const'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Field''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''SqlNullable''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |} | ||
+ | |||
+ | '''Notes on Table 2'''<br> | ||
+ | |||
+ | #The default parameter modifier is In for references and Inout for values.<br> | ||
+ | |||
+ | == Table 3: Primitive Types == | ||
+ | |||
+ | {| width="400" cellspacing="1" cellpadding="1" border="1" style="" | ||
+ | |- | ||
+ | | bgcolor="#999999" align="center" | '''''Primitive Types''''' | ||
+ | | bgcolor="#999999" align="center" | '''Core''' | ||
+ | | bgcolor="#999999" align="center" | '''JavaScript''' | ||
+ | | bgcolor="#999999" align="center" | '''Java''' | ||
+ | | bgcolor="#999999" align="center" | '''Debug''' | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Any'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Boolean'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Dictionary'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''String(N)<sup>1</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''String<sup>2</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Timestamp<sup>3</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Blob'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Clob'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Smallint'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Int'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Bigint'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Decimal(N,M)'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Decimal(N)'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Decimal<sup>4</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Float'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Smallfloat'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Number<sup>5</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Byte(N)<sup>6</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Byte<sup>7</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Arraydictionary''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Char''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Dbchar''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Mbchar''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Unicode''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Hex<sup>6</sup>''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Date<sup>3</sup>''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Time<sup>3</sup>''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Interval<sup>3</sup>''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Bin''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Num''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Numc''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Pacf''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Money''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |} | ||
+ | |||
+ | '''Notes on Table 3'''<br> | ||
+ | |||
+ | #String(N) is a reference type in EDT.<br> | ||
+ | #String is a reference type in EDT.<br> | ||
+ | #Timestamp is the only supported date/time type. Use it in place of RBD's date, time, and interval. Date/time math produces timestamps or numbers.<br> | ||
+ | #Decimal with no length or decimals is a reference type with an immutable value.<br> | ||
+ | #Number is a reference type with an immutable value. Unlike in RBD, number variables can be declared anywhere a variable declaration is allowed.<br> | ||
+ | #Byte(N) is a value type similar to RBD's hex. N indicates the number of bytes in the value.<br> | ||
+ | #Byte with no length is a reference type with an immutable value of any length.<br> | ||
+ | |||
+ | == Table 4: Statements == | ||
+ | |||
+ | {| width="400" cellspacing="1" cellpadding="1" border="1" style="" | ||
+ | |- | ||
+ | | bgcolor="#999999" align="center" | '''''Statements''''' | ||
+ | | bgcolor="#999999" align="center" | '''Core''' | ||
+ | | bgcolor="#999999" align="center" | '''JavaScript''' | ||
+ | | bgcolor="#999999" align="center" | '''Java''' | ||
+ | | bgcolor="#999999" align="center" | '''Debug''' | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Variable declaration'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Const declaration'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Assignment'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Move<sup>1</sup>'' | ||
+ | | <br> | ||
+ | | <br> N/S | ||
+ | | <br> N/S | ||
+ | | <br> N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Return'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Function invocation'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Call<sup>2</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Label'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Transfer'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Throw'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Try'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Case'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''If'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''While'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''For'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Foreach<sup>3</sup>'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Exit'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Continue'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Empty statement (a semicolon)'' | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Add'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Close'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Delete'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Get'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Replace'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Execute<sup>4</sup>'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Prepare<sup>4</sup>'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Open<sup>4</sup>'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''FreeSQL<sup>4</sup>'' | ||
+ | | <br> | ||
+ | | N/S<br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Goto''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Set''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Converse''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Display''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Print''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Forward''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''Show''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | ''OpenUI''<br> | ||
+ | | | ||
+ | | N/S | ||
+ | | N/S | ||
+ | | N/S | ||
+ | |} | ||
+ | |||
+ | '''Notes on Table 4'''<br> | ||
+ | |||
+ | #In RBD, a move statement between two references does a deep copy. Reference types should include a deep copy function to provide the same functionality in EDT.<br> | ||
+ | #EDT doesn't have called programs, but services and native programs can be called.<br> | ||
+ | #EDT's foreach statement will support iterating over an array.<br> | ||
+ | #Support for these statements is tentative, pending the design for JPA in EDT.<br> | ||
+ | |||
+ | == What's left...<br> == | ||
+ | |||
+ | *Operators and expressions | ||
+ | *Conversions | ||
+ | *Stereotypes | ||
+ | *Annotations | ||
+ | *Language compliance test | ||
+ | |||
+ | <br> |
Revision as of 12:51, 20 June 2011
Contents
General Notes
- This document is not finished yet!
- "N/S" means Not Supported.
- Anything that exists in RBD but isn't mentioned here is not included in EDT.
- The work in the Core category includes the parser, model, and validation.
Table 1: Part Types
Part Types | Core | JavaScript | Java | Debug |
DataItem1 | |
|
|
|
Function2 | |
|
|
|
Top-level function2 | |
|
|
|
Delegate2 | |
|
|
|
Record |
|
|
|
|
Structed Record |
N/S | N/S | N/S | |
ExternalType |
|
|
|
|
Handler |
|
|
|
|
Library |
|
|
|
|
Service |
|
|
|
|
Interface3 |
|
|
|
|
Enumeration |
|
|
|
|
Program4 |
|
N/S |
|
|
Array |
|
|
|
|
Nullability |
|
|
|
|
DataTable |
N/S | N/S | N/S | |
Form |
N/S | N/S | N/S |
Notes on Table 1
- In RBD a DataItem can only be used for primitive types. In EDT it can be used for any type.
- See also Table 2: Function Parameters.
- Interfaces can be implemented by services and handlers (every kind of "logic part" which can be instantiated).
- There are no called programs. Use libraries for "local calls" and services for "remote calls".
Table 2: Function Parameters
Function Parameters | Core | JavaScript | Java | Debug |
In1 | |
|
|
|
Out | |
|
|
|
Inout1 | |
|
|
|
Ellipsis | |
|
|
|
Const | |
|
|
|
Field |
N/S | N/S | N/S | |
SqlNullable |
N/S | N/S | N/S |
Notes on Table 2
- The default parameter modifier is In for references and Inout for values.
Table 3: Primitive Types
Primitive Types | Core | JavaScript | Java | Debug |
Any | |
|
|
|
Boolean | |
|
|
|
Dictionary | |
|
|
|
String(N)1 | |
|
|
|
String2 | |
|
|
|
Timestamp3 | |
|
|
|
Blob | |
N/S |
|
|
Clob | |
N/S |
|
|
Smallint | |
|
|
|
Int | |
|
|
|
Bigint | |
|
|
|
Decimal(N,M) | |
|
|
|
Decimal(N) | |
|
|
|
Decimal4 | |
|
|
|
Float | |
|
|
|
Smallfloat | |
|
|
|
Number5 | |
|
|
|
Byte(N)6 | |
|
|
|
Byte7 | |
|
|
|
Arraydictionary |
N/S | N/S | N/S | |
Char |
N/S | N/S | N/S | |
Dbchar |
N/S | N/S | N/S | |
Mbchar |
N/S | N/S | N/S | |
Unicode |
N/S | N/S | N/S | |
Hex6 |
N/S | N/S | N/S | |
Date3 |
N/S | N/S | N/S | |
Time3 |
N/S | N/S | N/S | |
Interval3 |
N/S | N/S | N/S | |
Bin |
N/S | N/S | N/S | |
Num |
N/S | N/S | N/S | |
Numc |
N/S | N/S | N/S | |
Pacf |
N/S | N/S | N/S | |
Money |
N/S | N/S | N/S |
Notes on Table 3
- String(N) is a reference type in EDT.
- String is a reference type in EDT.
- Timestamp is the only supported date/time type. Use it in place of RBD's date, time, and interval. Date/time math produces timestamps or numbers.
- Decimal with no length or decimals is a reference type with an immutable value.
- Number is a reference type with an immutable value. Unlike in RBD, number variables can be declared anywhere a variable declaration is allowed.
- Byte(N) is a value type similar to RBD's hex. N indicates the number of bytes in the value.
- Byte with no length is a reference type with an immutable value of any length.
Table 4: Statements
Statements | Core | JavaScript | Java | Debug |
Variable declaration | |
|
|
|
Const declaration | |
|
|
|
Assignment | |
|
|
|
Move1 | |
N/S |
N/S |
N/S |
Return | |
|
|
|
Function invocation | |
|
|
|
Call2 | |
|
|
|
Label | |
|
|
|
Transfer | |
N/S |
|
|
Throw | |
|
|
|
Try | |
|
|
|
Case | |
|
|
|
If | |
|
|
|
While | |
|
|
|
For | |
|
|
|
Foreach3 | |
|
|
|
Exit | |
|
|
|
Continue | |
|
|
|
Empty statement (a semicolon) | |
|
|
|
Add | |
N/S |
|
|
Close | |
N/S |
|
|
Delete | |
N/S |
|
|
Get | |
N/S |
|
|
Replace | |
N/S |
|
|
Execute4 | |
N/S |
|
|
Prepare4 | |
N/S |
|
|
Open4 | |
N/S |
|
|
FreeSQL4 | |
N/S |
|
|
Goto |
N/S | N/S | N/S | |
Set |
N/S | N/S | N/S | |
Converse |
N/S | N/S | N/S | |
Display |
N/S | N/S | N/S | |
Print |
N/S | N/S | N/S | |
Forward |
N/S | N/S | N/S | |
Show |
N/S | N/S | N/S | |
OpenUI |
N/S | N/S | N/S |
Notes on Table 4
- In RBD, a move statement between two references does a deep copy. Reference types should include a deep copy function to provide the same functionality in EDT.
- EDT doesn't have called programs, but services and native programs can be called.
- EDT's foreach statement will support iterating over an array.
- Support for these statements is tentative, pending the design for JPA in EDT.
What's left...
- Operators and expressions
- Conversions
- Stereotypes
- Annotations
- Language compliance test