Как правило, это делается с помощью структуры, подобной стеку: каждый «лексический уровень» открывается в стеке при запуске, и дополнительные уровни добавляются по мере их появления.
Например:
int i,j,k;
while (i) {
int q, r, s;
...
}
Когда вы анализируете это, вы сначала определите i
j
и k
и добавите их. Затем вы нажмете на оператор while и «нажмите» определения для q
r
и s
. При выходе из области оператора while вы можете «выдавить» q
r
, s
и т. Д.