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 5: | Line 5: | ||
*"N/S" means Not Supported. | *"N/S" means Not Supported. | ||
*Anything that exists in RBD but isn't mentioned here is not included in EDT.<br> | *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> | + | *The work in the Core category includes the parser, model, and validation.<br> |
+ | *'''Developers:''' include a link to Bugzilla for features not done yet, and mark items "Done" when you're finished.<br> | ||
== Table 1: Part Types == | == Table 1: Part Types == | ||
Line 23: | Line 24: | ||
| <br> | | <br> | ||
|- | |- | ||
− | | bgcolor="#cccccc" | ''Function<sup>2</sup>'' | + | | bgcolor="#cccccc" | ''Function<sup>2, 5</sup>'' |
| <br> | | <br> | ||
| <br> | | <br> | ||
Line 29: | Line 30: | ||
| <br> | | <br> | ||
|- | |- | ||
− | | bgcolor="#cccccc" | ''Top-level function<sup>2</sup>'' | + | | bgcolor="#cccccc" | ''Top-level function<sup>2, 5</sup>'' |
| <br> | | <br> | ||
| <br> | | <br> | ||
Line 48: | Line 49: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Structed Record''<br> | | bgcolor="#cccccc" | ''Structed Record''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 108: | Line 109: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''DataTable''<br> | | bgcolor="#cccccc" | ''DataTable''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 114: | Line 115: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Form''<br> | | bgcolor="#cccccc" | ''Form''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 125: | Line 126: | ||
#See also Table 2: Function Parameters.<br> | #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> | #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> | + | #There are no called programs. Use libraries for "local calls" and services for "remote calls".<br> |
+ | #We intend to support function overloading in all implementations, even JavaScript.<br> | ||
== Table 2: Function Parameters == | == Table 2: Function Parameters == | ||
Line 168: | Line 170: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Field''<br> | | bgcolor="#cccccc" | ''Field''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 174: | Line 176: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''SqlNullable''<br> | | bgcolor="#cccccc" | ''SqlNullable''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 309: | Line 311: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Arraydictionary''<br> | | bgcolor="#cccccc" | ''Arraydictionary''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 315: | Line 317: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Char''<br> | | bgcolor="#cccccc" | ''Char''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 321: | Line 323: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Dbchar''<br> | | bgcolor="#cccccc" | ''Dbchar''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 327: | Line 329: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Mbchar''<br> | | bgcolor="#cccccc" | ''Mbchar''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 333: | Line 335: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Unicode''<br> | | bgcolor="#cccccc" | ''Unicode''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 339: | Line 341: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Hex<sup>6</sup>''<br> | | bgcolor="#cccccc" | ''Hex<sup>6</sup>''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 345: | Line 347: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Date<sup>3</sup>''<br> | | bgcolor="#cccccc" | ''Date<sup>3</sup>''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 351: | Line 353: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Time<sup>3</sup>''<br> | | bgcolor="#cccccc" | ''Time<sup>3</sup>''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 357: | Line 359: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Interval<sup>3</sup>''<br> | | bgcolor="#cccccc" | ''Interval<sup>3</sup>''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 363: | Line 365: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Bin''<br> | | bgcolor="#cccccc" | ''Bin''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 369: | Line 371: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Num''<br> | | bgcolor="#cccccc" | ''Num''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 375: | Line 377: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Numc''<br> | | bgcolor="#cccccc" | ''Numc''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 381: | Line 383: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Pacf''<br> | | bgcolor="#cccccc" | ''Pacf''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 387: | Line 389: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Money''<br> | | bgcolor="#cccccc" | ''Money''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 582: | Line 584: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Goto''<br> | | bgcolor="#cccccc" | ''Goto''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 588: | Line 590: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Set''<br> | | bgcolor="#cccccc" | ''Set''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 594: | Line 596: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Converse''<br> | | bgcolor="#cccccc" | ''Converse''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 600: | Line 602: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Display''<br> | | bgcolor="#cccccc" | ''Display''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 606: | Line 608: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Print''<br> | | bgcolor="#cccccc" | ''Print''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 612: | Line 614: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Forward''<br> | | bgcolor="#cccccc" | ''Forward''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 618: | Line 620: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''Show''<br> | | bgcolor="#cccccc" | ''Show''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S | ||
Line 624: | Line 626: | ||
|- | |- | ||
| bgcolor="#cccccc" | ''OpenUI''<br> | | bgcolor="#cccccc" | ''OpenUI''<br> | ||
− | | | + | | <br> |
| N/S | | N/S | ||
| N/S | | N/S |
Revision as of 12:55, 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.
- Developers: include a link to Bugzilla for features not done yet, and mark items "Done" when you're finished.
Table 1: Part Types
Part Types | Core | JavaScript | Java | Debug |
DataItem1 | |
|
|
|
Function2, 5 | |
|
|
|
Top-level function2, 5 | |
|
|
|
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".
- We intend to support function overloading in all implementations, even JavaScript.
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