Esempio n. 1
0
int
main(int argc, char **argv)
{
	Jim_Interp *interp;

	interp = NULL;

	/* Create Jim instance */
	interp = Jim_CreateInterp();
	assert(interp != NULL && "couldn't create interpreter!");

	/* We register base commands, so that we actually implement Tcl. */
	Jim_RegisterCoreCommands(interp);

	/* And initialise any static extensions */
	Jim_InitStaticExtensions(interp);


	/* Print a string to standard output */
	Jim_Eval(interp, "puts {Hello world!}");

	/* Free the interpreter */
	Jim_FreeInterp(interp);
	return (EXIT_SUCCESS);
}
Esempio n. 2
0
/*
 * Now we try to write big enough code to duplication our array in Jim's
 * list implementation. Later, we try to load a sample script in Tcl that
 * could print our list.
 */
int
main(int argc, char **argv)
{
	Jim_Interp *interp;
	int error;

	/* Create an interpreter. */
	interp = Jim_CreateInterp();
	assert(interp != NULL && "couldn't create interpreter");

	/* We register base commands, so that we actually implement Tcl. */
	Jim_RegisterCoreCommands(interp);

	/* And initialise any static extensions */
	Jim_InitStaticExtensions(interp);

	/* Register our Jim commands. */
	Jim_CreateCommand(interp, "MySampleCommand", MySampleCommandFunc,
	    NULL, NULL);

	/* Run a script. */
	error = Jim_Eval(interp, JIM_PROGRAM);
	if (error == JIM_ERR) {
		Jim_MakeErrorMessage(interp);
		fprintf(stderr, "%s\n", Jim_GetString(Jim_GetResult(interp), NULL));
		Jim_FreeInterp(interp);
		exit(EXIT_FAILURE);
	}

	Jim_FreeInterp(interp);
	return (EXIT_SUCCESS);
}
Esempio n. 3
0
es_Status es_eval_tcl(es_Interp *interp, const char *script) {
  int error = Jim_Eval(interp, script);
  if (error == JIM_ERR) {
    Jim_MakeErrorMessage(interp);
    LOG_ERROR(Tcl,"%s\n", Jim_GetString(Jim_GetResult(interp), NULL));
  }
  return error;
}
Esempio n. 4
0
int main(int argc, char **argv)
{
	int i, retval;
	char arg[MAX_ARGSIZE];
	char arglist[MAX_ARGSIZE]; 

	Jim_Interp *interp;

	interp = NULL;
	arglist[0] = '\0';

	for (i=1; i<argc; i++) {
		if (strlen(argv[i]) > MAX_ARGSIZE-4) {
			printf("Argument #%d extends maximum size, skip it\n", i);
			continue;
		}
		if ( (strlen(arglist) + strlen(argv[i])) > MAX_ARGSIZE-4) {
			printf("Argument #%d would extend maximum list size, skip it\n", i);
			continue;
		}
		sprintf(arg,"{%s} ",argv[i]);
		strncat(arglist,arg,MAX_ARGSIZE-1);
	}

	char code[sizeof(RAW) + sizeof(arglist) + 28];
	sprintf(code, "set argv {%s}\nset argc %d\n", arglist, argc-1);
	strncat(code, RAW, sizeof(RAW));

	/* Create Jim instance */
	interp = Jim_CreateInterp();
	assert(interp != NULL && "Could not create interpreter!");

	/* Register base commands, actually implementing Tcl */
	Jim_RegisterCoreCommands(interp);

	/* Initialize any static extensions */
	Jim_InitStaticExtensions(interp);

	/* Evaluate the script that's now in "code" */
	retval = Jim_Eval(interp, code);
	if (retval < 0)
		printf("Evaluation returned error %d\n", retval);

	/* Free the interpreter */
	Jim_FreeInterp(interp);
	return (EXIT_SUCCESS);
}