Contents
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",
End