- Literal
- A literal is a constant value that can be either a number, a character,
or a string.
Number | CharLiteral | TextLiteral
- Identifier
- Identifiers are names given to types, procedures, constants, etc. They
consist of a letter followed by one or more letters, digits, and underscores.
Modula-3 is case sensitive, so identifiers with the same letters in different
cases are different identifiers. Example: test, a_5
Letter { Letter | Digit | "_" ... }
- CharLiteral
- A character literal represents a single ASCII character (type CHAR).
Example: 'A', '\n', '\015'
"'" (PrintingChar | Escape | ") "'"
A PrintingChar is a letter, digit, punctuation mark,
or any ISO-Latin-1 code in [ 160..255 ]. An Escape is
one of the following:
- \n a newline character
- \t a tab character
- \r a carriage return character
- \f a formfeed character
- \\ a backslash character
- \" a double-quote character
- \' a single-quote character
- \" OctalDigit OctalDigit OctalDigit:
a specific CHAR value, where OctalDigit is a digit
in the range [0..7]. Example: \015 (character
no. 13)
- TextLiteral
- A text literal represents a value of type TEXT (a string).
Example: "Hello.\n"
" { PrintingChar | Escape | "'" ... } "
PrintingChar and Escape have the same
meanings as given above.
- Number
- A number is an integer or floating point number. Integers can be expressed
in any base [2..16] by writing the base followed by "_"
and the number in that base. Example: 2_1010 (base 2) = 8_12
(base 8) = 10 (base 10) = 16_A (base 16). Floating point
numbers can be expressed in the conventional scientific notation as follows:
Digit { Digit ... } "." Digit { Digit ... } [ Exponent ]
where
Exponent = "E" | "D" | "X" [ "+" | "-" ] Digit { Digit ... }