#include "picoc.h" /* initialise everything */ void Initialise() { HeapInit(); TableInit(); VariableInit(); LexInit(); TypeInit(); LibraryInit(&GlobalTable, "c library", &CLibrary); CLibraryInit(); PlatformLibraryInit(); LibraryInit(&GlobalTable, "platform library", &PlatformLibrary); } /* free memory */ void Cleanup() { PlatformCleanup(); ParseCleanup(); LexCleanup(); VariableCleanup(); TypeCleanup(); TableStrFree(); } /* platform-dependent code for running programs is in this file */ #ifdef UNIX_HOST int main(int argc, char **argv) { if (argc < 2) { printf("Format: picoc - run a program\n picoc -i - interactive mode\n"); exit(1); } Initialise(); if (strcmp(argv[1], "-i") == 0) ParseInteractive(); else { if (PlatformSetExitPoint()) { Cleanup(); return 1; } PlatformScanFile(argv[1]); } Cleanup(); return 0; } #else # ifdef SURVEYOR_HOST int picoc(char *SourceStr) { int ix; Initialise(); if (SourceStr) { for (ix=0; ix