Erwerb funktionaler, räumlicher und kausaler Beziehungen von ...

ai.cs.uni.dortmund.de

Erwerb funktionaler, räumlicher und kausaler Beziehungen von ...

Anhang 94

}

int main(int arg_num, char* arg_list[])

{

printf("doctofac -- 1997 -- Mark Siebert\n\n\n");

pred_def_list *definition;

factset* fact_list; /* Zeiger auf die Liste aller Fakten */

definition = (pred_def_list *) new_mem(sizeof(pred_def_list),1); /*Zeiger auf

die Lister alle Definitionen der Konfigurationsdatei */

init_pred_def_list(definition);

fact_list = new_factset();

if (arg_num < 2) /* Test, ob eine Kofigurationsdatei vorhanden ist */

exit_on_error("No configfile");

read_pred_def(arg_list[1],definition); /* Einlesen der Konfigurationsdatei */

build_facts(fact_list,definition); /* Erzeugen von Fakten */

write_facts(fact_list,definition); /* Schreiben der Fakten in Ausgabedatei */

print_information(fact_list,definition); /* Ausgabe von Informationen am Bildschirm */

return 0;

}

11.1.2 MOBTODB

/* lib.cpp entält Funktionen, die von doctofac und mobtodb gemeinsam verwendet werden */

#include "lib.cpp"

/* def entält die Definition eines Feldes der Ausgabedatei. Die Definitionen werden

in einer Liste angeordnet. Für die Definition existieren die Möglichkeit

MOBAL_CLASS, PREDICATE_NAME, ARGUMENT, die in der Variablen type angelegt werden.

var_type enthält die Information 'STRING' oder 'NUMBER'. Für den Fall, das type gleich

ARGUMENT ist, enthalten start_position und end_position die Definition, aus welchem

Intervall das Argument gebildet werden soll. */

struct def

{

string type; /* enthält entweder MOBAL_CLASS, PREDICATE_NAME oder ARGUMENT */

string var_type; /* enthält entweder STRING oder NUMBER */

int start_position; /* Arg2 von ARGUMENT */

int end_position; /* Arg2 von ARGUMENT */

def *next; /* Verweis auf den nächsten Listeneintrag */

};

/* def_list enthält Liste aller Definitionen von Feldern, die in der Konfigurationsdatei

vorgenommen wurden, sowie die Namen der Eingabedatei und der Ausgabedatei */

struct def_list

{

string input;

string output;

def *first;

def *last;

};

/* Ininitalisierung einer leeren def_list */

def_list * new_def_list()

Weitere Magazine dieses Users
Ähnliche Magazine