1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kinegratii-Lexer

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Лексер

Обзор

Демонстрационный проект лексического анализатора на языке C, написанного с использованием Java Swing.

Лексический анализ — это первый этап процесса компиляции, который является основой для компиляции. На этом этапе задача состоит в том, чтобы считывать исходную программу слева направо, символ за символом, и затем распознавать слова (также называемые символами слов или просто символами) в соответствии с правилами формирования слов.

Входные данные: строка исходной программы.

Процесс: формирование лексем в соответствии со структурой лексического анализа языка C.

Выходные данные: 1) последовательность лексических единиц, каждая из которых соответствует одной лексеме; 2) таблица символов, содержащая идентификаторы и определения числовых констант.

Алгоритм проекта в основном основан на коде C++, приведённом в приложении книги Дракона, но с добавлением слоя GUI с помощью Swing.

Код был написан в апреле 2012 года и был довольно плохим, но недавно я потратил несколько дней на его рефакторинг и разместил код на Git@OSC.

Особенности проекта

  • Поддержка распознавания различных типов лексем, таких как десятичные числа, восьмеричные числа, идентификаторы, ключевые слова, разделители и операторы.
  • Поддержка двух способов ввода: импорт файла и написание кода.
  • Алгоритм и пользовательский интерфейс реализованы с использованием Analyzer.LexerAnalysisProccessCallback для обеспечения слабой связи между ними.

Структура проекта

Пакет com.kinegratii.lexer

  • Lexer.java — класс запуска проекта.
  • MainFrame.java — основной интерфейс.
  • SoftwareInfo.java — определение постоянных данных программного обеспечения.

Пакет лексического анализа com.kinegratii.lexer.core

  • Analyser.java — анализатор.
  • LexerAnalysisProccessCallback.java — интерфейс обратного вызова.

Пакет структуры данных com.kinegratii.lexer.token

  • Определяет ряд распознаваемых классов лексем.

Пакет утилит com.kinegratii.lexer.utils

  • BareBonesBrowserLaunch.java — доступ к браузеру.

Об авторе

Блог проекта: http://my.oschina.net/kinegratii/blog/322944

Автор: Kinegratii

Личная страница: http://my.oschina.net/kinegratii

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/kinegratii-Lexer.git
git@api.gitlife.ru:oschina-mirror/kinegratii-Lexer.git
oschina-mirror
kinegratii-Lexer
kinegratii-Lexer
master