/* This is the header file for the Statutes module. It is also included by
the Shyster module. */
/* structure type */
typedef struct {
void *dummy;
} statute_law_specification;
/* external functions */
extern statute_law_specification
Initialize_Statutes();
extern void
Statute_Law(
file log_stream,
statute_law_specification statute_law,
case_law_specification case_law,
boolean adjust,
boolean echo,
boolean inputable_latex,
boolean verbose,
cardinal hypothetical_reports,
cardinal hypothetical_changes,
string distances_filename,
string weights_filename,
string report_filename);
/* This is the implementation file for the Statutes module. */
#include <stdio.h>
#include "shyster.h"
#include "cases.h"
#include "statutes.h"
extern statute_law_specification
Initialize_Statutes()
/* Returns a pointer to a dummy structure. (If implemented, it would
initialize the rule-based system, by reading a statute law specification,
and return a pointer to SHYSTER's internal representation of that
specification.) */
{
statute_law_specification statute_law;
statute_law.dummy = NULL;
return statute_law;
}
extern void
Statute_Law(
file log_stream,
statute_law_specification statute_law,
case_law_specification case_law,
boolean adjust,
boolean echo,
boolean inputable_latex,
boolean verbose,
cardinal hypothetical_reports,
cardinal hypothetical_changes,
string distances_filename,
string weights_filename,
string report_filename)
/* Prompts the user for an identifier, then invokes the case-based system
seeking advice in the area corresponding to that identifier. The result
that the case-based system returns is written to log_stream. */
{
char area_identifier[Max_Identifier_Length];
string result_identifier;
/* prompt the user for a case law area identifier */
fprintf(stdout, "Case law area identifier: ");
gets(area_identifier);
fprintf(log_stream, "Case-based system called with area identifier \"%s\".\n\n",
area_identifier);
/* invoke the case-based system */
result_identifier = Case_Law(log_stream, case_law, area_identifier, adjust, echo,
inputable_latex, verbose, hypothetical_reports, hypothetical_changes, Top_Level,
distances_filename, weights_filename, report_filename);
/* write the result identifier to the log file */
if (result_identifier != NULL)
fprintf(log_stream,
"Case-based system returned result identifier \"%s\".\n\n",
result_identifier);
}
Other SHYSTER modules: Shyster, Cases, Tokenizer, Parser, Dumper, Checker, Scales, Adjuster, Consultant, Odometer and Reporter.