Internally in the metacircular evaluator (after
parsing), every Pico program that meets the concrete
grammar will be represented by a parse-tree. The rules that tell us which
trees are valid parse trees and which trees are not, are called the abstract
syntax used by this particular Pico implementation. The following lines are
'rules' that tell us how trees are to be composed in order to be valid abstract
syntax trees. The actual composition of the trees is accomplished by the reader.
The reader therefore uses the 'tree ADT' defined by the actual constructors for
the trees (these are defined in Grammar.pco
).
Hence, the code in the file Grammar.pco
is merely a collection of constructors and accessors for the abstract rules given
in this file.