/*
 *							Copyright 1997 IC-Parc
 * ECLiPSe LIBRARY MODULE
 *
 * $Id: eg_c_main.c,v 1.2 1998/02/25 18:31:42 js10 Exp $
 *
 *
 * IDENTIFICATION:	minimain.c
 *
 * AUTHOR:		Joachim Schimpf
 * AUTHOR:		Stefano Novello
 *
 * CONTENTS:		name/arity
 *
 * DESCRIPTION:
 *	Example of minimal main useing external embed interface.
 */

#include	"eclipse.h"


main(argc, argv)
int             argc;
char          **argv;
{
    char 	*s;
    dident	writeln,read,garbage_collect;
    ec_ref Vars,X;
    pword ans;
    
    ec_init();

    Vars = ec_ref_create(ec_nil());
    ec_exec_string("writeln(\"hello world: \"),read(X)",Vars);
    if (PSUCCEED == ec_var_lookup(Vars,"X",&ans) &&
    	PSUCCEED == ec_get_string(ans,&s))
	printf("Answer was %s\n",s);

    ec_ref_destroy(Vars);

    writeln = ec_did("writeln",1);
    read = ec_did("read",1);
    garbage_collect = ec_did("garbage_collect",0);

    X = ec_ref_create_newvar();

    /* writeln("hello again: ") */
    ec_post_goal(ec_term(writeln, ec_string("hello again: ")));
    /* read(X) */
    ec_post_goal(ec_term(read, ec_ref_get(X)));
    /* garbage_collect */
    ec_post_goal(ec_atom(garbage_collect));

    ec_resume1(0); /* pwords not in ec_ref are lost here */

    /* writeln(X) */
    ec_post_goal(ec_term(writeln, ec_ref_get(X)));
    ec_resume1(0);

    ec_ref_destroy(X);

    ec_cleanup();
    exit(0);
}