#1 Reserved Words
ALIAS
, AND
, ARGLIST
, ARRAY
, BEGIN
, BLUEPRINT
,
BY
,CASE
, CONST
, COPY
, DEFINITION
, DIV
, DO
,
ELSE
, ELSIF
, END
, EXIT
, FOR
, FROM
, IF
,
IMPLEMENTATION
, IMPORT
, IN
, LOOP
, MOD
, MODULE
,
NEW
, NONE
, NOT
, OF
, OPAQUE
, OR
, POINTER
,
PROCEDURE
, RECORD
, REFERENTIAL
, RELEASE
, REPEAT
,
RETAIN
, RETURN
, SET
, THEN
, TO
, TYPE
, UNTIL
,
VAR
, WHILE
, YIELD
#2 Dual-Use Identifiers
(Schrödinger's Tokens)
ABS
, ADDRESS
, APPEND
, CAST
, COUNT
, COROUTINE
,
EXISTS
, INSERT
, LENGTH
, OCTET
, READ
, READNEW
,
REMOVE
, SEEK
, STORE
, SUBSET
, SXF
, TDYN
,
TFLAGS
, TLIMIT
, TLITERAL
, TMAX
, TMIN
, TORDERED
,
TREFC
, TSCALAR
, TSORTED
, UNSAFE
, VAL
, VALUE
,
WRITE
, WRITEF
#3 Special Symbols
.
,
:
;
|
^
~
..
:=
++
--
::
+
-
*
/
\
=
#
>
>=
<
<=
==
&
->
<>
><
+/-
(
)
[
]
{
}
#3.1 Quoted Text Delimiters
'
"
<<
>>
#3.2 Comment Delimiters
!
(*
*)
#3.3 Pragma Punctuation and Delimiters
?
<*
*>
#3.4 Template Language Symbols
##
<#
#>
@@
//
/*
*/
#3.5 Reserved Symbols
`
for use as a token by Objective Modula-2
@
for use as a lead character in identifiers and reserved words by language supersets
%
for use as a character in identifiers and reserved words by implementations targeting OpenVMS
#4 Identifier EBNF
#4.1 Standard Library Identifier EBNF
#4.2 Letter Or Digit EBNF
#4.3 Foreign Identifier Character EBNF
#4.4 Identifier Tail Character EBNF
#5 Number Literal EBNF
#5.1 Decimal Number Tail EBNF
#5.2 Real Number Tail EBNF
#5.3 Digit Sequence EBNF
#5.4 Base-16 Digit Sequence EBNF
#5.5 Base-2 Digit Sequence EBNF
#5.6 Digit EBNF
#5.7 Base-16 Digit EBNF
#5.8 Base-2 Digit EBNF
#6 String Literal EBNF
#6.1 Single Quoted String EBNF
#6.2 Double Quoted String EBNF
#6.3 Quotable Character EBNF
#6.4 Letter EBNF
#6.5 Space EBNF
CONST Space = CHR(32);
#6.6 Non-Alphanumeric Quotable EBNF
#6.7 Escaped Character EBNF
#7 Chevron Text EBNF