eglx.lang defines
the primary language types in Eclipse IDE for EGL Developers.
Table 1. Types
Any and EAny types |
AnyDelegate type |
AnyEnumeration type |
AnyException type |
/*******************************************************************
* The supertype of every Record type. *
*******************************************************************/
externalType AnyRecord extends AnyStruct type ClassType {isAbstract=yes} end
|
/*******************************************************************
* The supertype of every Struct type. For future use with Record. *
*******************************************************************/
externalType AnyStruct extends AnyValue type ClassType {isAbstract=yes} end
|
/*******************************************************************
* The supertype of every type that represents a set of characters. *
*******************************************************************/
externalType AnyText extends AnyValue type ClassType {isAbstract=yes} end
|
/********************************************************************
* The supertype of every value type, not reference type *
********************************************************************/
externalType AnyValue extends EAny type ClassType {isAbstract=yes} end
|
BasicProgram stereotype |
Bigint and EBigint types |
Boolean and EBoolean types |
Constants library |
/*********************************************************************
* Marks a type that must be available in content assist. *
**********************************************************************/
Record ContentAssist type Annotation
{
targets = [ ElementKind.ExternalTypePart ]
}
end
|
DateTimeLib external type |
/*********************************************************************
* The supertype of all other types; can reference any type of value. *
*********************************************************************/
externalType EAny type ClassType
/* {@Operation ==} compares two values of type any. */
static function $EQ(lvalue EAny in, rvalue EAny in)
returns(EBoolean) {@Operation{"=="}};
/* {@Operation !=} compares two values of type any. */
static function $NEQ(lvalue EAny in, rvalue EAny in)
returns(EBoolean) {@Operation{"!="}};
/* {@Operation widen} Converts to an any, as used in boxing */
static function asAny(value EAny in)
returns(EAny) {@Operation{"widen"}};
end
|
EGLProperty |
EventListener annotation |
/*******************************************************************
* The stereotype for all exceptions. *
*******************************************************************/
Record Exception type Annotation
{
targets = [ElementKind.recordPart],
@Stereotype { defaultSuperType = AnyException }
}
end
|
Exception Record types in eglx.lang |
/*******************************************************************
* Identifies an alias for the name of a field or function in an *
* external type. You must use this if the name is not a valid *
* EGL identifier. *
*******************************************************************/
Record ExternalName type Annotation
{
targets = [
ElementKind.FieldMbr,
ElementKind.FunctionMbr
]
}
value String;
end
|
Float and EFloat types |
Int and EInt types |
List and EList types |
MathLib external type |
Record NativeType type Annotation {
targets = [ElementKind.ExternalTypePart],
@Stereotype { memberAnnotations = [EventListener] }}
end
|
Property annotation |
Number and ENumber type |
Resource annotation |
Smallfloat and ESmallfloat types |
Smallint and ESmallint types |
String and EString types |
StringLib external type |
SysLib system library |
Table 2. Compatibility
Target |
Issue |
Java |
See type-specific topics. |
JavaScript |
See type-specific topics.
|