maude-0.6.1: src/Language/Maude/Syntax.hs
{-# LANGUAGE DeriveDataTypeable #-}
-----------------------------------------------------------------------------
-- |
-- Module : Language.Maude.Syntax
-- Copyright : (c) David Lazar, 2012
-- License : MIT
--
-- Maintainer : lazar6@illinois.edu
-- Stability : experimental
-- Portability : unknown
--
-- Types representing Maude syntax and terms
-----------------------------------------------------------------------------
module Language.Maude.Syntax
( Term(..)
) where
import Data.Data
-- TODO: handle kinds
data Term
= Term
{ termSort :: String
, termOp :: String
, termChildren :: [Term]
}
-- ^ Generic representation of terms in Maude
| IterTerm
{ termSort :: String
, termOp :: String
, termChildren :: [Term]
, iterations :: Integer
}
-- ^ Term constructed from an iterated (@iter@) operator,
-- for example, the @s_@ constructor for Nats
deriving (Eq, Ord, Show, Data, Typeable)