Лексический анализатор
Лексический анализатор – часть компилятора, которая читает литеры программы на исходном языке и строит из них слова – лексемы.
Конечный автомат задается пятеркой:
M=(Q, , ,q0,F), где:
Q - конечное множество состояний автомата;
- конечное множество допустимых входных символов;– множество функций перехода автомата;
q0 Q - начальное состояние автомата;
F Q - множество конечных состояний автомата.
Системное Программное Обеспечение
Лексический анализатор
Граф состояний лексического |
Граф состояний лексического |
анализатора без ключевых слов |
анализатора c ключевыми словами |
|
0, 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b, B |
|
, +, -, *, /, ;, ), <, >, = |
|
o, O |
|
r, R |
|
|
|
, |
( |
|
|
|
|
|
|
Е |
Е |
|
|
|
|
|
|
|
||||
|
|
|
|
I |
|
|
I |
|
|
|
E |
|
|
||
0, 1 |
|
|
|
f, F |
|
|
|
|
|
|
|
|
|||
|
|
|
|
s, S |
|
e, E |
|
|
, |
( |
|
|
|||
|
|
|
Е |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
E |
|
|
|
. |
|
, a..z, A..Z, 0, 1 |
|
|
I |
|
|
I |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
i, I |
f, F |
, |
; |
||
; |
|
|
Е |
|
l, L |
|
|
|
|
|
|
||||
= |
|
|
, a ..z, A..Z, 0, 1 , ( |
|
|
|
|
|
|
I |
I |
E |
|
||
: |
|
Е |
Е |
Е |
|
n, N |
|
d, D |
|
, |
., |
; |
|
|
|
|
|
|
|
I |
|
I |
|
|
I |
|
|
|
|||
Люб ые символы |
e, E |
|
|
|
|
|
|
|
|||||||
|
} |
|
|
|
o, O |
|
t, T |
|
|
|
, |
( |
|
|
|
|
|
Е |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
I |
|
|
I |
|
|
|
E |
|
|
|
{ |
|
|
|
n, N |
|
|
|
|
|
|
|
|
|||
|
, a ..z, A..Z, 0, 1 , ( |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
r, R |
|
, |
( |
|
|
|
|
|
|
||
+ |
|
|
Е |
o, O |
|
|
|
|
|
|
|
|
|||
|
, a ..z, A..Z, 0, 1 , ( |
|
I |
|
|
Е |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
- |
|
|
Е |
a, A |
|
n, N |
|
d, D |
|
|
, |
( |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
= |
|
, a ..z, A..Z, 0, 1 , ( |
p, P |
|
I |
|
|
I |
|
|
|
E |
|
|
|
|
|
|
Е |
|
r, R |
|
o, O |
|
|
g, G |
|
|
|
||
< |
|
, a ..z, A..Z, 0, 1 , ( |
|
|
|
|
|
|
|
|
|||||
|
|
|
I |
|
|
I |
|
|
|
I |
E |
|
|||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
Е |
b, B |
|
|
|
|
|
|
|
||||
> |
|
|
|
e, E |
g, G |
|
i, I |
|
|
n, N |
|
|
|||
|
, a ..z, A..Z, 0, 1 , (, |
|
|
|
|
|
|
|
|||||||
|
|
|
|
I |
|
I |
|
|
I |
|
I |
E |
|
||
( |
|
|
Е |
d, D |
|
|
|
|
|
|
|||||
|
|
|
|
o, O |
|
|
|
|
|
|
|
|
, ( |
||
) |
|
, a ..z, A..Z, 0, 1 , ( |
|
|
|
w, W |
n, N |
t, T |
o, O |
||||||
|
|
Е |
i, I |
|
I |
I |
|
||||||||
|
|
|
|
|
|
|
|
I |
I |
I |
E |
||||
* |
|
,a ..z, A..Z, 0, 1 , ), ;, <, >, =, +, - , *, / |
|
f, F |
|
, |
( |
|
|
||||||
|
|
|
|
|
|
|
|
|
|||||||
/ |
|
|
Е |
|
|
I |
|
|
Е |
|
|
|
|
|
|
|
|
|
t, T |
|
|
|
|
|
|
|
|
|
|||
|
,a ..z, A..Z, 0, 1 , ( |
|
h, H |
|
e, E |
|
|
|
n, N |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
Е |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
I |
|
|
I |
|
|
I |
E |
|
||
c, g, h, j..m, |
|
,a..z, A..Z, 0, 1 , ( |
|
|
|
|
|
|
|
||||||
q..s ,u..z, |
|
o, O |
, ( |
|
|
|
|
|
|
|
|
|
|||
|
|
Е |
|
|
|
|
|
|
|
|
|
||||
C, G, H , J..M, |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Q..S, U..Z |
|
,:, +, -, *, /, ;, ), <, >, = |
|
|
E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
Е |
|
|
|
|
|
|
|
|
|
|
|
|
|
a..z, A..Z, 0..9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Системное Программное Обеспечение
Лексический анализатор
Пример обработки текстового файла
Системное Программное Обеспечение