GraphicCharacter = Letter | Digit | SpecialCharacter | Space
Letter = SmallLetter | CapitalLetter
SmallLetter = "a" |"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"|"k"|"l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"|"u"|"v"|"w"|"x"|"y"|"z"
CapitalLetter = "A"|"B"|"C"|"D"|"E"|"F"|"G"|"H"|"I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|"Q"|"R"|"S"|"T"|"U"|"V"|"W"|"X"|"Y"|"Z"
Digit = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
SpecialCharacter = "!"|"""|"#"|"$"|"%"|"&"|"'"|"("|")"|"*"|"+"|","|"-"|"."|"/"|":"|";"|"<"|"="|">"|"?"|"@"|"["|"\"|"]"|"^"|"_"|"`"|"{"|"|"|"}"|"~"
Space = " "
Token = WordToken | SpecialToken | Name | Numeral | GraphicToken | ControlToken | StringToken
WordToken = "agent" | "and" | "array" | "begin" | "const" | "div" | "do" | "else" | "end" | "if" | "mod" | "nil" | "not" | "of" | "or" |
"ord" | "poll" | " record" | "then" | "type" | "var" | "while"
SpecialToken = "(" | ")"|"*"|"+"|","|"-"|"."|"/"|":"|";"|"<"|"="|">"|"["|""|"]"|"!"|"?"|"&"|"|"|". ."|":="|"<="|"<>"|">="|"->"
Numeral = SimpleNumeral | RealNumeral
A szavakban a nagy és a kis betűk azonosaknak tekintendők.
Separator = Space | NewLine | Comment
Comment = "{" CommentText "}"
CommentText = { GraphicCraracter | NewLine | Comment }
Az összes programsor egy új sor karakterrel végződik. A szavak között
kell lennie legalább egy szeparátornak.
Példa:
Name = Letter { Letter | Digit }
A foglalt szavakat nem lehet neveknek használni. A nevekben lévő nagybetűk egyenértékűek a kis betűkkel.
Példa: