A Modula3 programozási nyelv

Nyelvi elemek

Jelkészlet

Alapszabályok:

Az azonosítók betűvel kezdődnek, betűket és számjegyeket tartalmazhatnak, de aláhúzásjel nem lehet bennük. A kis- és nagybetűket megkülönbözteti a nyelv. A kulcsszavakat és foglalt szavakat csupa nagybetűvel kell írni, ezeket nem lehet felüldefiniálni.

Azonosítók

Az azonosítókat típusokhoz, eljárásokhoz konstansokhoz, stb. rendeljük hozzá. Állhat egy betűből, de követheti még egy vagy több betű, szám és aláhúzás jel is. Modula-3 érzékeny a kis- és nagy betűkre, ezért, ha két azonosító ugyanazon betű sorozatból áll, de viszont legalább egy betű nagyságban különböznek, akkor már a két azonosító nem egyezik meg.

Betű { Betű | Szám | "_" ... }

Literálok

Literal egy konstans érték, mely lehet egy szám, egy karakter vagy egy string.

Number | CharLiteral | TextLiteral

Számliterálok (Number)

A számok előjeles és előjel nélküli egész és valós számok lehetnek. Egész számok esetén 10-estől eltérő számrendszert is meg lehet adni (2 és 16 között), alap_szám alakban. Például: 2_1010 (2-es alapú) = 8_12 (8-as alapú) = 10 (10-es alapú) = 16_A (16-os alapú). A lebegőpontos számokat megadhatjuk a megszokott alakban:

Szám { Szám ... } "." Szám { Szám ... } [ Exponent ] ahol
Exponent = "E" | "D" | "X" [ "+" | "-" ] Szám { Szám ... }

Karakterliterálok (CharLiteral)

Egy karakter literál egy darab ASCII karaktert reprezentál (CHAR típus). Például: 'A', '\n', '\015'

"'" (PrintingChar | Escape | ") "'"

PrintingChar lehet egy betű, egy szám, egy írásjel vagy egy ISO-Latin-1 kód [ 160..255 ] között. Az Escape karakterek a következők lehetnek:
"\n" új sor karakter
"\t" tabulátor karakter
"\r" kocsi vissza karakter
"\f" a formfeed character
"\\" \ karakter
"\"" " karakter
"\'" ' karakter
"\" Oktális szám Oktális szám Oktális szám egy CHAR értéket specifikál, ahol az Oktálisszám egy [0..7] közötti szám. Például: \015 (13 -as karakter)

Szövegliterálok (TextLiteral)

A Text literál egy szöveg (string) típusú értéket reprezentál. Például: "Hello.\n"

" { PrintingChar | Escape | "'" ... } "

PrintingChar és az Escape jelentése ugyanaz mint fent.

Megjegyzések

A megjegyzések a szokott "(* megjegyzés *)" formátumúak, és több sort is átölelhetnek.

Foglalt szavak

Kulcsszavak
AND       DO          FROM        NOT         REPEAT     UNTIL
ANY       ELSE        GENERIC     OBJECT      RETURN     UNTRACED
ARRAY     ELSIF       IF          OF          REVEAL     VALUE
AS        END         IMPORT      OR          ROOT       VAR
BEGIN     EVAL        IN          OVERRIDES   SET        WHILE
BITS      EXCEPT      INTERFACE   PROCEDURE   THEN       WITH
BRANDED   EXCEPTION   LOCK        RAISE       TO
BY        EXIT        LOOP        RAISES      TRY
CASE      EXPORTS     METHODS     READONLY    TYPE
CONST     FINALLY     MOD         RECORD      TYPECASE
DIV       FOR         MODULE      REF         UNSAFE
Foglalt szavak
ABS       BYTESIZE   EXTENDED  INTEGER    MIN     NUMBER    TEXT
ADDRESS   CARDINAL   FALSE     ISTYPE     MUTEX   ORD       TRUE
ADR       CEILING    FIRST     LAST       NARROW  REAL      TRUNC
ADRSIZE   CHAR       FLOAT     LONGREAL   NEW     REFANY    TYPECODE
BITSIZE   DEC        FLOOR     LOOPHOLE   NIL     ROUND     VAL
BOOLEAN   DISPOSE    INC       MAX        NULL    SUBARRAY