Open topic with navigation
WTSupported in traditional Synergy on Windows
WNSupported in Synergy .NET on Windows
USupported on UNIX
VSupported on OpenVMS
[access] ENUM name member_def [, value] . . . ENDENUM
(optional) One of the following access modifiers:
Access is not restricted. This is the most accessible option. (default for Synergy .NET)
Access is limited to the containing class or types derived from the containing class. (traditional Synergy only)
Access is limited to the containing type. This is the least accessible option. (default) (traditional Synergy only)
Access is limited to the current assembly. (Synergy .NET only)
The name of the enumeration to define.
The name of the member. You can specify as many member definitions as you want, although you must specify at least one.
(optional) The value of the member.
The ENUM statement enables you to declare one or more enumerations globally or within a class or namespace. You can declare one or more enumeration values within an enumeration by declaring a unique identifier for each value. If the identifier is not unique within the enumeration, a “Symbol already uniquely defined” error (TOKUDF) is generated.
If the starting enumeration value does not have an explicit integer value, the compiler assumes the integer value to be 0. For any subsequent field without an explicit integer value, the compiler assumes its integer value to be one more than the previous enumeration value’s integer value.
f0 ;Assumed to be 0 f1 ;Assumed to be 1 f2 ,7 f3 ;Assumed to be 8 f4 ;Assumed to be 9 f5 ,3 f6 ;Assumed to be 4
Specifying duplicate integer values within an enumeration is valid. For example, the following is allowed:
enum SystemState off ,0
If an enumeration inside a namespace or class hides a global enumeration, a level 4 “Enum_name enumeration hides global enumeration of same name” warning is generated, where enum_name is the name of the enumeration.
If member_def is one of the following reserved keywords, a comma is required after member_def whether value is specified or not: end, endclass, endenum, endexternal, endfunc, endfunction, endglobal, endliteral, endmain, endname, endnamespace, endparams, endrecord, endsub, endsubroutine, global, main, proc, start, record, common, literal. For example:
enum myenum value1 ,10 main , start ,10 record ,
import System.Collections enum SearchMode All, 1 Selected, 2 endenum
main EnumTest record
Results, @ArrayList endrecord
SearchForSomething(SearchMode.All,,Results) stop endmain
required in SearchType ,SearchMode optional in Filter ,a required out Results ,@ArrayList endparams proc using SearchType select (SearchMode.All), . ;Code to return ALL in Results goes here . .
(SearchMode.Selected), . ;Code to return SELECTED in Results goes here . . nop endusing xreturn endsubroutine