Jump to: navigation, search

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

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

  1. In RBD a DataItem can only be used for primitive types.  In EDT it can be used for any type.
  2. See also Table 2: Function Parameters.
  3. Interfaces can be implemented by services and handlers (every kind of "logic part" which can be instantiated).
  4. There are no called programs. Use libraries for "local calls" and services for "remote calls".
  5. 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

  1. 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

  1. String(N) is a reference type in EDT.
  2. String is a reference type in EDT.
  3. 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.
  4. Decimal with no length or decimals is a reference type with an immutable value.
  5. Number is a reference type with an immutable value. Unlike in RBD, number variables can be declared anywhere a variable declaration is allowed.
  6. Byte(N) is a value type similar to RBD's hex. N indicates the number of bytes in the value.
  7. 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

  1. 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.
  2. EDT doesn't have called programs, but services and native programs can be called.
  3. EDT's foreach statement will support iterating over an array.
  4. 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