!File: nostrict.h
-#undef NOSTRICT 1 /* define when STRICT warnings disabled
+#define NOSTRICT 1 /* define when STRICT warnings disabled
(yet another squeezing method)
*/
register t_type *tpl;
assert(expp->nd_class == Arrsel);
- assert(expp->nd_symb == '[');
+ assert(expp->nd_symb == '[' || expp->nd_symb == ',');
expp->nd_type = error_type;
break;
case Arrsel:
- assert(nd->nd_symb == '[');
+ assert(nd->nd_symb == '[' || nd->nd_symb == ',');
CodeDesig(nd->nd_left, ds);
CodeAddress(ds);
STATIC t_def *DoImport();
ImportEffects(idef, scope, flag)
- t_def *idef;
+ register t_def *idef;
t_scope *scope;
{
/* Handle side effects of an import:
/* Also import all enumeration literals
*/
for (df = tp->enm_enums; df; df = df->enm_next) {
+ df->df_flags |= D_QEXPORTED;
if (! DoImport(df, scope, flag|D_USED)) assert(0);
/* don't complain when not used ... */
}
{
/* Definition "df" is imported to scope "scope".
*/
- t_def *idef = define(df->df_idf, scope, D_IMPORT);
+ register t_def *idef = define(df->df_idf, scope, D_IMPORT);
idef->imp_def = df;
idef->df_flags |= flag;
We could also end up here for not found DEFINITION MODULES.
Create a declaration and a scope for this module.
*/
- t_scopelist *vis;
+ register t_scopelist *vis;
if (df->df_scope != GlobalScope) {
df->df_scope = enclosing(CurrVis)->sc_scope;
{
/* Import the list Idlist from the module indicated by Fromdef.
*/
- register t_scope *sc;
+ t_scope *sc;
register t_def *df;
char *module_name = FromDef->df_idf->id_text;
]*
;
-selector(t_node **pnd;):
+selector(register t_node **pnd;):
'.' { *pnd = dot2node(Link,*pnd,NULLNODE); }
IDENT { (*pnd)->nd_IDF = dot.TOK_IDF; }
;
}
;
-expression(t_node **pnd;)
+expression(register t_node **pnd;)
{
} :
SimpleExpression(pnd)
;
*/
-SimpleExpression(t_node **pnd;)
+SimpleExpression(register t_node **pnd;)
{
register t_node *nd = 0;
} :
factor(register t_node **p;)
{
- t_node *nd;
+ register t_node *nd;
+ t_node *nd1;
} :
qualident(p)
[
|
]
|
- bare_set(&nd)
- { nd->nd_left = *p; *p = nd; }
+ bare_set(&nd1)
+ { nd = nd1; nd->nd_left = *p; *p = nd; }
]
|
bare_set(p)
'(' ExpList(pnd)? ')'
;
-element(register t_node *nd;)
-{
- t_node *nd1;
-} :
- expression(&nd1)
+element(register t_node *nd;) :
+ expression(&(nd->nd_right))
[
UPTO
- { nd1 = dot2node(Link, nd1, NULLNODE);}
- expression(&(nd1->nd_right))
+ { nd->nd_right = dot2node(Link, nd->nd_right, NULLNODE);}
+ expression(&(nd->nd_right->nd_right))
|
]
- { nd->nd_right = dot2node(Link, nd1, NULLNODE);
+ { nd->nd_right = dot2node(Link, nd, NULLNODE);
nd->nd_right->nd_symb = ',';
}
;
designator_tail(pnd)
;
-designator_tail(t_node **pnd;):
+designator_tail(register t_node **pnd;):
visible_designator_tail(pnd)
[ %persistent
%default
{
register t_node *nd = *pnd;
}:
-[
'[' { nd = dot2node(Arrsel, nd, NULLNODE); }
expression(&(nd->nd_right))
[
','
{ nd = dot2node(Arrsel, nd, NULLNODE);
- nd->nd_symb = '[';
}
expression(&(nd->nd_right))
]*
']'
-|
- '^' { nd = dot2node(Arrow, NULLNODE, nd); }
-]
{ *pnd = nd; }
+|
+ '^' { *pnd = dot2node(Arrow, NULLNODE, nd); }
;
int DefinitionModule;
char *ProgName;
char **DEFPATH;
-int nDEF, mDEF;
-int pass_1;
+int nDEF = 1, mDEF = 10;
+int pass_1 = 1;
t_def *Defined;
extern int err_occurred;
extern int fp_used; /* set if floating point used */
register char **Nargv = &argv[0];
ProgName = *argv++;
- warning_classes = W_INITIAL;
- DEFPATH = (char **) Malloc(10 * sizeof(char *));
- mDEF = 10;
- nDEF = 1;
+ DEFPATH = (char **) Malloc(mDEF * sizeof(char *));
while (--argc > 0) {
if (**argv == '-')
C_magic();
C_ms_emx(word_size, pointer_size);
CheckForLineDirective();
- pass_1 = 1;
CompUnit();
C_ms_src((int)LineNumber - 1, FileName);
if (!err_occurred) {
df = Enter("TRUE", D_ENUM, bool_type, 0);
df->enm_val = 1;
df->enm_next = Enter("FALSE", D_ENUM, bool_type, 0);
- df = df->enm_next;
- df->enm_val = 0;
- df->enm_next = 0;
+ assert(df->enm_next->enm_val == 0 && df->enm_next->enm_next == 0);
}
do_SYSTEM()
extern int idfsize;
static int ndirs = 1;
-int warning_classes;
+int warning_classes = W_INITIAL;
DoOption(text)
register char *text;