summaryrefslogtreecommitdiff
path: root/src/iconc/ctrans.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/iconc/ctrans.c')
-rw-r--r--src/iconc/ctrans.c184
1 files changed, 0 insertions, 184 deletions
diff --git a/src/iconc/ctrans.c b/src/iconc/ctrans.c
deleted file mode 100644
index 7d33ac5..0000000
--- a/src/iconc/ctrans.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * ctrans.c - main control of the translation process.
- */
-#include "../h/gsupport.h"
-#include "cglobals.h"
-#include "ctrans.h"
-#include "csym.h"
-#include "ctree.h"
-#include "ctoken.h"
-#include "ccode.h"
-#include "cproto.h"
-
-/*
- * Prototypes.
- */
-static void trans1 (char *filename);
-
-/*
- * Variables.
- */
-int tfatals = 0; /* total number of fatal errors */
-int twarns = 0; /* total number of warnings */
-int nocode; /* set by lexer; unused in compiler */
-int in_line; /* current input line number */
-int incol; /* current input column number */
-int peekc; /* one-character look ahead */
-struct srcfile *srclst = NULL; /* list of source files to translate */
-
-static char *lpath; /* LPATH value */
-
-/*
- * translate a number of files, returning an error count
- */
-int trans()
- {
- register struct pentry *proc;
- struct srcfile *sf;
-
- lpath = getenv("LPATH"); /* remains null if unspecified */
-
- for (sf = srclst; sf != NULL; sf = sf->next)
- trans1(sf->name); /* translate each file in turn */
-
- if (!pponly) {
- /*
- * Resolve undeclared references.
- */
- for (proc = proc_lst; proc != NULL; proc = proc->next)
- resolve(proc);
-
-#ifdef DeBug
- symdump();
-#endif /* DeBug */
-
- if (tfatals == 0) {
- chkstrinv(); /* see what needs be available for string invocation */
- chkinv(); /* perform "naive" optimizations */
- }
-
- if (tfatals == 0)
- typeinfer(); /* perform type inference */
-
- if (just_type_trace)
- return tfatals; /* stop without generating code */
-
- if (tfatals == 0) {
- var_dcls(); /* output declarations for globals and statics */
- const_blks(); /* output blocks for cset and real literals */
- for (proc = proc_lst; proc != NULL; proc = proc->next)
- proccode(proc); /* output code for a procedure */
- recconstr(rec_lst); /* output code for record constructors */
-/* ANTHONY */
-/*
- print_ghash();
-*/
- }
- }
-
- /*
- * Report information about errors and warnings and be correct about it.
- */
- if (tfatals == 1)
- fprintf(stderr, "1 error; ");
- else if (tfatals > 1)
- fprintf(stderr, "%d errors; ", tfatals);
- else if (verbose > 0)
- fprintf(stderr, "No errors; ");
-
- if (twarns == 1)
- fprintf(stderr, "1 warning\n");
- else if (twarns > 1)
- fprintf(stderr, "%d warnings\n", twarns);
- else if (verbose > 0)
- fprintf(stderr, "no warnings\n");
- else if (tfatals > 0)
- fprintf(stderr, "\n");
-
-#ifdef TranStats
- tokdump();
-#endif /* TranStats */
-
- return tfatals;
- }
-
-/*
- * translate one file.
- */
-static void trans1(filename)
-char *filename;
- {
- in_line = 1; /* start with line 1, column 0 */
- incol = 0;
- peekc = 0; /* clear character lookahead */
-
- if (!ppinit(filename,lpath?lpath:".",m4pre)) {
- tfatal(filename, "cannot open source file");
- return;
- }
- if (!largeints) /* undefine predef symbol if no -l option */
- ppdef("_LARGE_INTEGERS", (char *)NULL);
- ppdef("_MULTITASKING", (char *)NULL); /* never defined in compiler */
- ppdef("_EVENT_MONITOR", (char *)NULL);
- ppdef("_MEMORY_MONITOR", (char *)NULL);
- ppdef("_VISUALIZATION", (char *)NULL);
-
- if (strcmp(filename,"-") == 0)
- filename = "stdin";
- if (verbose > 0)
- fprintf(stderr, "%s:\n",filename);
-
- tok_loc.n_file = filename;
- in_line = 1;
-
- if (pponly)
- ppecho(); /* preprocess only */
- else
- yyparse(); /* Parse the input */
- }
-
-/*
- * writecheck - check the return code from a stdio output operation
- */
-void writecheck(rc)
- int rc;
-
- {
- if (rc < 0)
- quit("unable to write to icode file");
- }
-
-/*
- * lnkdcl - find file locally or on LPATH and add to source list.
- */
-void lnkdcl(name)
-char *name;
-{
- struct srcfile **pp;
- struct srcfile *p;
- char buf[MaxPath];
-
- if (pathfind(buf, lpath, name, SourceSuffix))
- src_file(buf);
- else
- tfatal("cannot resolve reference to file name", name);
- }
-
-/*
- * src_file - add the file name to the list of source files to be translated,
- * if it is not already on the list.
- */
-void src_file(name)
-char *name;
- {
- struct srcfile **pp;
- struct srcfile *p;
-
- for (pp = &srclst; *pp != NULL; pp = &(*pp)->next)
- if (strcmp((*pp)->name, name) == 0)
- return;
- p = NewStruct(srcfile);
- p->name = salloc(name);
- p->next = NULL;
- *pp = p;
-}