This is simple.c in view mode; [Download] [Up]
/* This is a simple demo that just loads a file and exits. */ #include "config.h" #include <stdio.h> #include <slang.h> /* Here are two intrinsics that the S-lang code can call. */ /* An intrinsic function to set error */ static void c_error (char *s) { if (SLang_Error == 0) SLang_Error = INTRINSIC_ERROR; fprintf (stderr, "Error: %s\n", s); } /* Function to quit */ static void c_quit (void) { exit (0); } /* Create the Table that S-Lang requires */ SLang_Name_Type Demo_Intrinsics[] = { MAKE_INTRINSIC(".error", c_error, VOID_TYPE, 1), MAKE_INTRINSIC(".quit", c_quit, VOID_TYPE, 0), SLANG_END_TABLE }; int main (int argc, char **argv) { char *file; /* parse command line arguments */ if (argc != 2) { fprintf (stderr, "Usage: %s FILENAME\n", argv[0]); exit (-1); } file = argv[1]; /* Initialize the library. This is always needed. */ if (!init_SLang() /* basic interpreter functions */ || !init_SLmath() /* sin, cos, etc... */ #ifdef unix || !init_SLunix() /* unix system calls */ #endif || !init_SLfiles() /* file i/o */ /* Now add intrinsics for this application */ || !SLang_add_table(Demo_Intrinsics, "Demo")) { fprintf(stderr, "Unable to initialize S-Lang.\n"); exit(-1); } /* Turn on debugging */ SLang_Traceback = 1; /* Now load an initialization file and exit */ SLang_load_file (file); return (SLang_Error); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.