Formula.hs revision 306763c67bb99228487345b32ab8c5c6cd41f23c
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel HausmannModule : $Header$
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel HausmannCopyright : (c) Christian Maeder, Uni Bremen 2002-2004
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel HausmannLicence : similar to LGPL, see HetCATS/LICENCE.txt or LIZENZ.txt
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel HausmannMaintainer : hets@tzi.de
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel HausmannStability : provisional
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel HausmannPortability : portable
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann parse terms and formulae
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann http://www.cofi.info/Documents/CASL/Summary/
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann from 25 March 2001
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann C.2.1 Basic Specifications with Subsorts
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann when-else-TERMs are non-mixfix,
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann because when-else has lowest precedence.
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann C.3.1 Precedence
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann Sorted (or casted) terms are not directly recognized,
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann because "u v : s" may be "u (v:s)" or "(u v):s"
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann No term or formula may start with a parenthesized argument list that
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann includes commas.
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann The arguments of qualified ops or preds can only be given by a following
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann parenthesized argument list.
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann Braced or bracketed term-lists including commas stem from a possible
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann %list-annotation or (for brackets) from compound lists.
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann C.6.3 Literal syntax for lists
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann `%list b1__b2, c, f'.
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann b1 must contain at least one open brace or bracket ("{" or [")
6a4fa2d53294f484fa8788a75656eff4ad1fd703Daniel Hausmann and all brackets must be balanced in "b1 b2" (the empty list).
module CASL.Formula (term, formula, restrictedTerm, restrictedFormula
import Common.AnnoState
import Common.Id
import Common.Keywords
import Common.Lexer
import Common.Token
import CASL.AS_Basic_CASL
import Common.Lib.Parsec
<|> placeS <?> "id/literal" ))