real.H
scope.C
scope.h
+stab.c
standards.h
statement.g
tmpvar.C
case 's': /* symmetric: MIN(INTEGER) = -MAX(INTEGER) */
case '3': /* strict 3rd edition Modula-2 */
case 'l': /* local additions enabled */
- case 'g': /* generate symbol table for debugger */
options[text[-1]]++;
break;
+ case 'g': /* generate symbol table for debugger */
+ options['g']++;
+ options['n']++; /* no register vars ??? */
+ break;
+
case 'w':
if (*text) {
while (*text) {
#include "debug.h"
#include <alloc.h>
-#include <em_arith.h>
-#include <em_label.h>
+#include <em.h>
+#include <stb.h>
#include "strict3rd.h"
#include "main.h"
priority(&(df->mod_priority))
';' import(0)*
block(&(df->mod_body)) IDENT
- { if (options['g']) stb_string(df, D_END);
+ { if (options['g']) {
+ if (state == PROGRAM) {
+ C_ms_stb_cst(df->df_idf->id_text,
+ N_MAIN,
+ 0,
+ (arith) 0);
+ }
+ stb_string(df, D_END);
+ }
close_scope(SC_CHKFORW|SC_CHKPROC|SC_REVERSE);
match_id(df->df_idf, dot.TOK_IDF);
}
}
}
else { /* local variable */
- stb_type(tp, 0);
+ stb_type(tp, 1); /* assign type num to avoid
+ difficult to parse string */
addc_db_str(';');
C_ms_stb_cst(db_str.base, N_LSYM, 0, df->var_off);
}