Enumerated Type - Pascal and Syntactically Similar Languages

Pascal and Syntactically Similar Languages

In Pascal, an enumerated type can be implicitly declared by listing the values in a parenthesised list:

var suit: (clubs, diamonds, hearts, spades);

The declaration will often appear in a type synonym declaration, such that it can be used for multiple variables:

type cardsuit = (clubs, diamonds, hearts, spades); card = record suit: cardsuit; value: 1 .. 13; end; var hand: array of card; trump: cardsuit;

The order in which the enumeration values are given matters. An enumerated type is an ordinal type, and the pred and succ functions will give the prior or next value of the enumeration, and ord can convert enumeration values to their integer representation. Standard Pascal does not offer a conversion from arithmetic types to enumerations, however. Extended Pascal offers this functionality via an extended succ function. Some other Pascal dialects allow it via type-casts. Some modern descendants of Pascal, such as Modula-3, provide a special conversion syntax using a method called VAL; Modula-3 also treats BOOLEAN and CHAR as special pre-defined enumerated types and uses ORD and VAL for standard ASCII decoding and encoding.

Pascal style languages also allow for enumeration to be used as array index

var suitcount: array of integer;

Read more about this topic:  Enumerated Type

Famous quotes containing the words pascal, similar and/or languages:

    It is not through space that I must seek my dignity, but through the management of my thought. I shall have no more if I possess worlds.
    —Blaise Pascal (1623–1662)

    Swear words and profanities are mere abbreviations of speech, similar to the abbreviations in writing.
    Franz Grillparzer (1791–1872)

    No doubt, to a man of sense, travel offers advantages. As many languages as he has, as many friends, as many arts and trades, so many times is he a man. A foreign country is a point of comparison, wherefrom to judge his own.
    Ralph Waldo Emerson (1803–1882)