/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ /* $Id$ */ /* To determine the minimum scope of a local variable, all (braced) scopes are numbered consecutively. Next we maintain an array which maps the nesting depth (level) onto the scope number; we record the scope number of the first application of a local variable in its definition. Each further application requires that the level of the variable be at least large enough to comprise both the present scope and that of its first application. That level number is determined by searching the array and is then recorded in the definition (beacuse it is always equal to or smaller than the level already there). The array is implemented as a linked list of struct brace. */ struct brace { struct brace *next; int br_count; int br_level; }; /* ALLOCDEF "brace" 10 */