You are on page 1of 4

Main()

X
1
X
10
X
7
X
4

Y
8
Z
9

static scope

H()
G()
R()

Z
5

Y
6

F()
8

Main()
H()
G()
R()

X
1
X
10
X
7
X
4

Y
8
Z
5

Z
3

Y
6

F()
dynamic scope

7
print nothing, n = 0
print 1
8
address(a[j][k]) = 1000 + (j 1)*4*200 + k*4
1000 800 + 800j + 4k
200 + 800j + 4k
9
<tuple>
add rule <mlist> <tuple>

<mlist>

<id>

<mlist>
<tuple>

<mlist>
<id> <mlist>
<id>
B
,
C

10
<tuple> -> '(' <mlist> ')'
<tuple>.idcount = <mlist>.idcount

<mlist> -> <id>


<mlist>.idcount = 1

<mlist>[1] -> <id> ',' <mlist>[2]


<mlist>[1].idcount = <mlist>[2].idcount + 1
11
bool mlist()
{
if(!id()) return FALSE;
while(lookAhead() == ',')
{
readNext();
// read the ,
if(!id()) return FALSE;
}
return TRUE;
}
12
{a}
{b, c}
{b}
{c}
{c}
{c}
13
FAIL
14
A
A

# left assoc
@ right assoc
$ left assoc
# lower @
# lower $
@ lower $
15
n =
n =
n =
n =

1
1
1
1

f()
f()
f()
f()

=
=
=
=

2
2
2
2

{10, 20, 30}


{2, 20, 30}
{10, 2, 30}
{2, 20, 30}

17
S
a

S
a

aaSbS

a
b

b
S

You might also like