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.
EDT:EGL Language
Revision as of 12:51, 20 June 2011 by Mheitz.us.ibm.com (Talk | contribs)
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