DataLife Engine / Реализовал ядро парсера SQL-запросов

Реализовал ядро парсера SQL-запросов

 

Итак, продолжаем работы по переделыванию и усовершенствованию всей программы. Задержимся месяца на три. Мне к этому не привыкать. Так я уже работаю лет пятнадцать. Вчера мне постить в общем-то было нечего, потому что заготовка классов и определение методов для команд в главной модели-представлении - это прозаическая работа. Определился я с главным функционалом программы. Всё ненужное выкинул и добавил то, что наверняка нужно. Не первый раз, конечно. Это у меня в очередной, уже в который сотый, раз. Ну что ж, долог и ещё раз долог путь к идеалу.

Вот на скриншоте вы видите фрагмент кода функции-ядра парсера. В общем-то мне вам в ближайший месяц будет нечего показывать кроме C#-кода, потому как к оформлению интерфейса я перейду ещё не очень скоро. 

Ну а парсер, конечно, я сделал лучше того, что был в уже прошлой версии программы. Тут я сделал более надёжный, посимвольный парсинг. То есть разбил строку на массив символов. И каждый символ в цикле обрабатываю. Это позволяет осуществлять более точный контроль и разбор синтаксиса чем мой прошлой, пословный парсинг, где пробелами или запятыми разбивалась строка на слова и эти слова обрабатывались в цикле. Теперь разбивка на структуру синтаксиса SQL будет более корректной, чем то, что было в прошлой версии программы. И ещё важно то, что полученную структуру (список ключевых слов и выражений) будет разобрать в последующем уже специализированном под конкретный SQL-запрос парсинге, будет уже намного проще.  

Так что вот так. На этом я пока и остановлюсь. А продолжу работу над программой только аж где-то в пятницу следующей недели. Потому что я буду иметь удовольствие съездить в свою любимую деревню в новгородской области и насладиться там отдыхом. Мне нужен маленький отпуск, и я его сделаю. Так что продолжим работать не очень скоро. Ну и на этом я заканчиваю свой сегодняшний рабочий день. Ну и теперь до конца следующей недели. До новых постов, до новых свершений. 

9-09-2023, 16:15
Вернуться назад