eglx.lang package

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.