/* Author: Jeff Dalton <J.Dalton@ed.ac.uk>
 * Updated: Tue May 29 00:45:57 2001 by Jeff Dalton
 * Copyright: (c) 2000, AIAI, University of Edinburgh
 */

package ix.icore.domain;

import ix.util.lisp.Symbol;

/**
 * Defines constants that are useful when processing schemas.
 * It can be extended by interfaces that add constants for
 * use when processing schemas as they appear in files.
 */

public interface SchemaSymbols extends EffectSymbols {
    static final Symbol
        S_PROCESS        = Symbol.intern("process"),
        S_ACTION         = Symbol.intern("action"),
//	S_TYPE           = Symbol.intern("type"),
//	S_PATTERN        = Symbol.intern("pattern"),
	S_NODES          = Symbol.intern("nodes"),
	S_ORDERINGS      = Symbol.intern("orderings"),
	S_PROPERTIES     = Symbol.intern("properties"),
	S_EFFECTS        = Symbol.intern("effects"),
	Q_COA            = Symbol.intern("?coa"),
	K_ALL            = Symbol.intern(":all");
}

// Issues:
// * Does SchemaSymbols also have constants for intermediate forms
//   that might be produced by parsers?  It would make sense only
//   for a standard intermediate form.
// * Should they all be keywords?  Should none be?
// * Should there be one big interface for all Symbols?
