The grammar rules for a language determine only the syntax. The semantics are
determined by the semantic values associated with various tokens and
groupings, and by the actions taken when various groupings are recognized.

For example, the calculator calculates properly because the value associated
with each expression is the proper number; it adds properly because the action
for the grouping `x + y' is to add the numbers associated with x and y.

In this section defining the semantics of a language is addressed, covering
the following topics:
    itemization(
    it() link(Specifying one data type for all semantic values)(SEMANTICTYPES);
    it() link(Specifying several alternative data types)(MORETYPES);
    it() link(Using Polymorphism to specify several data types)(POLYMORPHIC);
    it() link(Specifying  Actions)(ACTIONS) (an action is the semantic
        definition of a grammar rule);
    it() link(Specifying data types for actions to operate on)(ACTIONTYPES);
    it() link(Specifying when and how to put actions in the middle of a
rule)(MIDACTIONS) (most actions go at the end of a rule. In some situations it
may be desirable to put an action in in the middle of a rule).
    )
