This reference manual is organized as follows. Section 2 overviews the general features of Prop. Section 3 describes the lexer and parser specification formalisms. Section 4 describes the algebraic datatypes and pattern matching features. Section 6 describes the tree rewriting mechanism. Finally, section 9 describes the process of running the Prop translator.
We'll use the following extended BNF notation to specify the syntax
of the language. Terminals are typeset in typewriter font,
while non-terminals are typeset in itallics font.
Given a syntactic class S, we use S, , S to denote one
or more occurrences of S separated by commas. Similarly,
S;
; S denotes one or more occurrences of S separated by
semi-colons. Slanted brackets are used to denote an optional occurrence
of a syntactic class. We'll combined the two forms when we
want to denote zero or more occurrences of some term.
For example, [ S,
, S ] denotes
zero or more occurrences of S.