Ejemplo n.º 1
0
void funcbottom(Statement *stmt)
{ 
	Statement *s, *s1;
	dfs.printf("Enter funcbottom\n");
	nl();
    check_table(SYM::GetPtr(currentFn->lsyms.GetHead()));
    lc_auto = 0;
    lfs.printf("\n\n*** local symbol table ***\n\n");
    ListTable(&currentFn->lsyms,0);
	// Should recurse into all the compound statements
	if (stmt==NULL)
		dfs.printf("DIAG: null statement in funcbottom.\r\n");
	else {
		if (stmt->stype==st_compound)
			ListCompound(stmt);
	}
    lfs.printf("\n\n\n");
//    ReleaseLocalMemory();        // release local symbols
	isPascal = FALSE;
	isKernel = FALSE;
	isOscall = FALSE;
	isInterrupt = FALSE;
	isNocall = FALSE;
	dfs.printf("Leave funcbottom\n");
}
Ejemplo n.º 2
0
void ListCompound(Statement *stmt)
{
	Statement *s1;

	ListTable(&stmt->ssyms,0);
	for (s1 = stmt->s1; s1; s1 = s1->next) {
		if (s1->stype == st_compound)
			ListCompound(s1);
		if (s1->s1) {
			if (s1->s1->stype==st_compound)
				ListCompound(s1->s1);
		}
		if (s1->s2) {
			if (s1->s2->stype==st_compound)
				ListCompound(s1->s2);
		}
	}
}
Ejemplo n.º 3
0
void funcbottom(Statement *stmt)
{ 
	Statement *s, *s1;
	nl();
    check_table(lsyms.head);
    lc_auto = 0;
    fprintf(list,"\n\n*** local symbol table ***\n\n");
    ListTable(&lsyms,0);
	// Should recurse into all the compound statements
	if (stmt==NULL)
		printf("DIAG: null statement in funcbottom.\r\n");
	else {
		if (stmt->stype==st_compound)
			ListCompound(stmt);
	}
    fprintf(list,"\n\n\n");
    ReleaseLocalMemory();        /* release local symbols */
	isPascal = FALSE;
	isKernel = FALSE;
	isOscall = FALSE;
	isInterrupt = FALSE;
	isNocall = FALSE;
}