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