[
Skip Navigation
] [
CSUSB
] / [
CNS
] / [
Comp Sci Dept
] / [
R J Botting
] / [
Samples
] /
pascal.lexicon
[
Index
] [
Contents
] [
Source Text
] [
About
] [
Notation
] [
Copyright
] [
Comment/Contact
] [Search
]
Tue Sep 18 15:26:31 PDT 2007
Contents
The Lexical Elements of Pascal
Useful meta-linguistic Macros
Lexemes in Pascal
Syntax
The Lexical Elements of Pascal
Useful meta-linguistic Macros
L
::= (_) #(comma (_)).
N
::= (_) #( (_) ).
O
::= ( (_)|).
P
::= O( left L( (_) ) right).
R
::= (_) doubledot (_).
S
::= (_) #(semicolon (_)).
Lexemes in Pascal
adding_operator
::= "+" | "-" | "or",
apostrophe_image
::= "'""'",
array
::="array",
begin
::="begin",
caret
::="^",
case
::="case",
character_string
::= "'" string_element #(string_element) "'",
colon
::=":",
colon_equals
::=":=",
comma
::=",",
const
::="const",
digit
::= ("1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "0"),
digit_sequence
::= digit #(digit),
do
::="do",
dot
::=".",
doubledot
::="..",
downto
::="downto",
else
::="else",
end
::="end",
equals
::="=",
for
::="for",
fractional_part
::= digit_sequence,
function
::="function",
goto
::="goto",
identifier
::= letter #( letter | digit),
if
::="if",
label
::="label",
left
::="(",
left_br
::="[",
letter
::= ("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"),
multiplying_operator
::= "*" | "/" | "div" | "mod" | "and",
nil
::="nil",
not
::="not",
of
::="of",
of
::="of",
packed
::="packed",
packed
::="packed",
procedure
::="procedure",
program
::="program",
record
::="record",
relational_operator
::= "=" | "<>" | "<" | ">" | "<=" | ">=" | "in",
repeat
::="repeat",
right
::=")",
right_br
::="]",
scale_factor
::= signed_integer,
semicolon
::=";",
file
::="file",
set
::="set",
sign
::= "+" | "-",
signed_integer
::= O(sign) unsigned_integer,
string_character
::= one_of_a_set_of_implementation_defined_characters,
string_element
::= apostrophe_image | string_character,
then
::="then",
to
::="to",
type
::="type",
unsigned_integer
::= digit_sequence,
unsigned_real
::= unsigned_integer "." fractional_part #("e" scale_factor |) | unsigned_integer "e" scale_factor,
until
::="until",
var
::="var",
var
::="var",
while
::="while",
with
::="with",
Syntax
[
pascal.syntax.html
]
End