Определение синтаксиса лексем
Определение автоматных грамматик, описывающих синтаксис лексем, будем выполнять в следующем порядке:
· Разбить литеры, с помощью которых записываются программы на входном языке, на классы. В один класс помещаются литеры, которые одинаковым образом используются для образования лексем. Примерами классов литер являются: латинская буква, двоичная цифра, десятичная цифра, символ «=».
· Составить автоматные грамматики, описывающие синтаксис лексем, при условии, что терминальными символами грамматики являются классы литер, а начальным символом грамматики – символ S.
Разобьем литеры на классы:
- Латинская буква
- Цифра
- Однолитерные разделители
- Двухлитерные и однолитерные разделителитили
И составим автоматные грамматики:
1) Идентификатор id
ε1 – любой символ, кроме букв и цифр.
S буква id
id буква id
id цифра id
S ε1
2) Целое без знака number
ε2 – любой символ, кроме цифр.
S цифра number
number цифра number
number ε2
3) Вещественное vesh
ε2 – любой символ, кроме цифр.
S цифра vesh
vesh.T
vesh цифра
vesh E+T
vesh E-T
T цифра T
T ε2
4) Однолитерные разделители 1–Liter {+, -, *, /, >, <, =,!, {, }, [, ],:,;,,.,?, ~ }
ε – любой символ.
S 1–Liter L
L ε3
5) Двулитерные разделители 2–Liter = {++, --, +=, -=, *=, /=, >=, <=, ==,!= }
ε3 – любой символ.
1. S + N
N +
N ε3
2. S - N
N -
N ε3
3. S + N
N =
N ε3
4. S - N
N =
N ε3
5. S * N
N =
N ε3
6. S / N
N =
N ε3
7. S > N
N =
N ε3
8. S < N
N =
N ε3
9. S = N
N =
N ε3
10. S! N
N =
N ε3
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Поиск по сайту:
|