next up previous contents
Next: Syntax of top level Up: Summary of syntax Previous: Summary of syntax

Syntax of atomic sentences

 

<atomic sentence> :: (AND <literal>+) | <literal>
<literal> :: <positive literal> | <negative literal>
<negative literal> :: (NOT <positive literal>)
<positive literal> :: (<relconst> <term>+)

<term> :: <objconst> | (<funconst> <term>+)

<relconst>, <objconst>, <funconst> :: <symbol>

<var> :: Symbol beginning with '?'

<symbol> :: A sequence of characters satisfying the Common Lisp symbol
datatype.

<boolean> :: TRUE | FALSE

The set of ;SPMlt;funconst;SPMgt; is a subset of ;SPMlt;relconst;SPMgt;.

In addition, any ;SPMlt;literal;SPMgt; may be named. This is purely a convenience for certain implementations (it is useful for generating explanations). The syntax for a named literal is (:name <symbol> <literal>). CML does not place any restrictions on the names or their scopes, although implementations that make use of them may.

 

<dimension expression> :: 
          <objconst>
        | (* <dimension expression> <dimension expression>+ )
        | (/ <dimension expression> <dimension expression> )
        | (EXPT <dimension expression> <number>)

<quantity expression> ::
          <quantity>
        | <constant>
        | (<math function> <quantity expression>+ )

<constant> :: <objconst> | <number>

<number> ::  A member of the Common Lisp number datatype.
This includes reals, integers, rationals, floating point, and complex
numbers.

<string> :: The sequence of characters contained in the string,
preceded and followed by a " (double quote) character, as defined by
the Common Lisp string datatype.


Tom Mostek
Wed Jan 21 13:00:43 CST 1998