Slide 23
Slide 23 text
CLI
Parsing
- Lexer
Lexer
t
o
k
e
n
s = l
e
x
e
r
(
'
x = 2 + 2
'
)
>
>
> s
t
a
t
e
m
e
n
t = '
x = 2 + 2
'
>
>
> s
t
r
I
O = i
o
.
S
t
r
i
n
g
I
O
(
s
t
a
t
e
m
e
n
t
)
.
r
e
a
d
l
i
n
e
>
>
> t
o
k
e
n
s = t
o
k
e
n
i
z
e
.
g
e
n
e
r
a
t
e
_
t
o
k
e
n
s
(
s
t
r
I
O
)
>
>
> p
p
(
l
i
s
t
(
t
o
k
e
n
i
z
e
.
g
e
n
e
r
a
t
e
_
t
o
k
e
n
s
(
t
o
k
e
n
s
)
)
)
[
T
o
k
e
n
I
n
f
o
(
t
y
p
e
=
N
A
M
E
, s
t
r
i
n
g
=
'
x
'
)
,
T
o
k
e
n
I
n
f
o
(
t
y
p
e
=
O
P
, s
t
r
i
n
g
=
'
=
'
)
,
T
o
k
e
n
I
n
f
o
(
t
y
p
e
=
N
U
M
B
E
R
, s
t
r
i
n
g
=
'
2
'
)
,
T
o
k
e
n
I
n
f
o
(
t
y
p
e
=
O
P
, s
t
r
i
n
g
=
'
+
'
)
,
T
o
k
e
n
I
n
f
o
(
t
y
p
e
=
N
U
M
B
E
R
, s
t
r
i
n
g
=
'
2
'
)
,
T
o
k
e
n
I
n
f
o
(
t
y
p
e
=
E
N
D
M
A
R
K
E
R
, s
t
r
i
n
g
=
'
'
)
,
]
in P
a
r
s
e
r
/
t
o
k
e
n
i
z
e
r
.
c
-> P
y
T
o
k
e
n
i
z
e
r
_
F
r
o
m
S
t
r
i
n
g
in P
a
r
s
e
r
/
p
a
r
s
e
t
o
k
.
c
-> p
a
r
s
e
t
o
k
in L
i
b
/
t
o
k
e
n
i
z
e
.
p
y
22 / 49