Allow the checking of definition modules
This commit is contained in:
parent
9dfa2f6979
commit
a7cdd16125
|
@ -1 +1 @@
|
||||||
static char Version[] = "ACK Modula-2 compiler Version 0.30";
|
static char Version[] = "ACK Modula-2 compiler Version 0.31";
|
||||||
|
|
|
@ -71,7 +71,7 @@ DoOption(text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else warning_classes = 0;
|
else warning_classes = W_ALWAYS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'W':
|
case 'W':
|
||||||
|
@ -94,7 +94,7 @@ DoOption(text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else warning_classes = W_OLDFASHIONED|W_STRICT|W_ORDINARY;
|
else warning_classes = W_ALL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'M': { /* maximum identifier length */
|
case 'M': { /* maximum identifier length */
|
||||||
|
|
|
@ -137,7 +137,7 @@ DefinitionModule
|
||||||
df->df_flags |= ForeignFlag;
|
df->df_flags |= ForeignFlag;
|
||||||
if (!Defined) Defined = df;
|
if (!Defined) Defined = df;
|
||||||
CurrentScope->sc_definedby = df;
|
CurrentScope->sc_definedby = df;
|
||||||
if (df->df_idf != DefId) {
|
if (DefId && df->df_idf != DefId) {
|
||||||
error("DEFINITION MODULE name is \"%s\", not \"%s\"",
|
error("DEFINITION MODULE name is \"%s\", not \"%s\"",
|
||||||
df->df_idf->id_text, DefId->id_text);
|
df->df_idf->id_text, DefId->id_text);
|
||||||
}
|
}
|
||||||
|
@ -239,8 +239,12 @@ ProgramModule
|
||||||
;
|
;
|
||||||
|
|
||||||
Module:
|
Module:
|
||||||
DEFINITION
|
{ error("Compiling a definition module");
|
||||||
{ fatal("Compiling a definition module"); }
|
open_scope(CLOSEDSCOPE);
|
||||||
|
state = DEFINITION;
|
||||||
|
}
|
||||||
|
DefinitionModule
|
||||||
|
{ close_scope(SC_CHKFORW); }
|
||||||
| %default
|
| %default
|
||||||
[
|
[
|
||||||
IMPLEMENTATION { state = IMPLEMENTATION; }
|
IMPLEMENTATION { state = IMPLEMENTATION; }
|
||||||
|
|
|
@ -20,10 +20,11 @@
|
||||||
#define W_ORDINARY 1
|
#define W_ORDINARY 1
|
||||||
#define W_STRICT 2
|
#define W_STRICT 2
|
||||||
#define W_OLDFASHIONED 4
|
#define W_OLDFASHIONED 4
|
||||||
|
#define W_ALWAYS 010 /* always given */
|
||||||
|
|
||||||
#define W_ALL (W_ORDINARY|W_STRICT|W_OLDFASHIONED)
|
#define W_ALL (W_ORDINARY|W_STRICT|W_OLDFASHIONED|W_ALWAYS)
|
||||||
|
|
||||||
#define W_INITIAL (W_ORDINARY | W_OLDFASHIONED)
|
#define W_INITIAL (W_ORDINARY | W_OLDFASHIONED | W_ALWAYS)
|
||||||
|
|
||||||
/* The bit mask itself: */
|
/* The bit mask itself: */
|
||||||
extern int warning_classes;
|
extern int warning_classes;
|
||||||
|
|
Loading…
Reference in a new issue