Алгоритм написания лексического анализатора строке 'select...from'
Чето не совсем могу сообразить как начать писать анализатор для строки "SELECT name, hj, FROM mytable GROUPBY agу HAVING age < 20;"(на джаве). А можно както без конечных автоматов, просто if...:confused:
1. Таблица «ключевых слов»:
SELECT, FROM, GROUPBY, HAVING
2. Таблица «служебные знаки»:
',', '<', ';'
3. Таблица «Другие лексемы»:
name, hj, mytable, age, 20
Лексический анализ заключается в том что каждая строка представляется ввиде комбинации двух цифр (номер таблицы и номер строки в таблице) для каждого элемента строки.
Приведу простой пример:
1 таблица
Номер Элемент
1 Program
2 integer
2 таблица
Номер Элемент
1 ,
2 ;
3 таблица
Номер Элемент
1 zuze1
2 zuze2
Количество строк в таблице сколько угодно
Вот я ввожу строку например такую
program zuze2;
Это строка после лексического анализа
(1,1) (3,2) (2,2)