value *defParm,
ast * actParm,
int *parmNumber, // unused, although updated
- bool rightmost) // double checked?
+ bool rightmost)
{
/* if none of them exist */
if (!defParm && !actParm)
if (processParms (tree->left,
FUNC_ARGS(tree->left->ftype),
- tree->right, &parmNumber, TRUE))
+ tree->right, &parmNumber, TRUE)) {
+ //fprintf (stderr, "jwk: error in processParms()\n");
goto errorTreeReturn;
+ }
if (options.stackAuto || IFFUNC_ISREENT (LTYPE (tree)))
{
- //IFFUNC_ARGS(tree->left->ftype) =
- //reverseVal (IFFUNC_ARGS(tree->left->ftype));
+ //FUNC_ARGS(tree->left->ftype) =
+ //reverseVal (FUNC_ARGS(tree->left->ftype));
reverseParms (tree->right);
}
body = resolveSymbols (body); /* resolve the symbols */
body = decorateType (body); /* propagateType & do semantic checks */
- ex = newAst_VALUE (symbolVal (name)); /* create name */
+ ex = newAst_VALUE (symbolVal (name)); /* create name */
ex = newNode (FUNCTION, ex, body);
ex->values.args = FUNC_ARGS(name->type);
ex->decorated=1;
if (arg) {
fprintf (outfile, ", ");
}
- printTypeChain (args->type, outfile);
+ printTypeChain (args ? args->type : NULL, outfile);
arg++;
- args=args->next;
+ args= args ? args->next : NULL;
} while (args);
fprintf(outfile,")\n");
ast_print(tree->left,outfile,indent);
ast_print(tree->right,outfile,indent+4);
return;
case PARAM:
- fprintf(outfile,"PARM ");
+ fprintf(outfile,"PARMS\n");
ast_print(tree->left,outfile,indent+4);
if (tree->right && !IS_AST_PARAM(tree->right)) {
- fprintf(outfile,"PARM ");
ast_print(tree->right,outfile,indent+4);
}
return ;