[/] [trunk/] [src/] [cmdlang/] [cmd_env.sig] - Rev 55

(* $Id: cmd_env.sig 55 2008-07-25 01:42:07Z tbourke $ *)

signature CMD_ENV = sig

  datatype direction = datatype Expression.direction

  type symbol = Atom.atom
  type symbolset = AtomSet.set

  datatype value = Template   of ParsedNta.template 
                 | Symbols    of AtomSet.set
                 | SymbolMap  of symbol AtomMap.map
                 | Actions    of ActionSet.set
                 | ActionMap  of (symbol * direction) ActionMap.map
                 | Fail       of string
                 | Success

  type t

  val fromNta       : ParsedNta.nta -> t
  val toNta         : t -> ParsedNta.nta

  val insert        : (symbol * value) * t -> t
  val remove        : t * symbol -> t * value
  val getValue      : t -> symbol -> value option

  val isFail        : value -> bool

  val listTemplates : t -> ParsedNta.template list
  val listItems     : t -> (symbol * value) list

  val toString      : value -> string

  val globalDecl    : t -> Environment.env

  val symbolsToActions : AtomSet.set -> ActionSet.set
end