scyther/src/substitution.h
2006-01-02 21:06:08 +00:00

47 lines
1.4 KiB
C

#ifndef SUBSTITUTIONS
#define SUBSTITUTIONS
#include "termlist.h"
#include "knowledge.h"
#include "system.h"
//! substitution structure
struct substitution
{
Term from;
Term to;
};
typedef struct substitution *Substitution; //!< substitution structure
//! substitution list
struct substitutionlist
{
Substitution subst;
struct substitutionlist *next;
};
typedef struct substitutionlist *Substitutionlist; //!< substitution list structure
Substitution makeSubstitution (Term from, Term to);
void substitutionDelete (Substitution subs);
void substitutionDestroy (Substitution subs);
Term termSubstitute (Term term, Substitution subs);
Termlist termlistSubstitute (Termlist tl, Substitution subs);
void substitutionPrint (Term t, Substitution subs);
Term termSubstituteList (Term term, Substitutionlist sl);
Substitutionlist makeSubstitutionList (Substitution subs);
Substitutionlist substitutionlistAdd (Substitutionlist sl, Term from,
Term to);
void substitutionlistDestroy (Substitutionlist sl);
void substitutionlistAnnihilate (Substitutionlist sl);
Substitutionlist substitutionlistConcat (Substitutionlist sl1,
Substitutionlist sl2);
Termlist substitutionBatch (Termlist tl, Substitutionlist sl);
Roledef substitutionRoledef (Roledef rd, Substitutionlist sl);
Knowledge substitutionKnowledge (Knowledge know, Substitutionlist sl);
void substitutionlistPrint (Substitutionlist sl);
#endif