«Синтаксический анализ (парсинг) — это процесс сопоставления линейной последовательности лексем языка с его формальной грамматикой. Результатом обычно является дерево разбора (синтаксическое дерево)»
Формальная грамматика состоит из таких компонентов как:
Собираем парсер математических выражений
Согласно формальной грамматике у нас должно получится следующие файлы:

- Нетерминалы
- SummaValue.java — сложение / вычитание, будет в дальнейшем использоваться как начальный нетерминал
- MultipleValue.java — умножение / деление
- CValue.java — число / скобки / унарный минус
- Лексемы
- SummaOperatorToken.java — плюс / минус
- MultipleOperatorToken.java — множить / делить
- OpenBraceToken.java — открытая скобка
- CloseBraceToken.java — закрытая скобка
- NumberToken.java — число
- WhiteSpaceToken.java — пробел
- TokensParser.java — Лексический анализатор
- SyntaxParser.java — Базовый класс для нетерминалов
- TokenParser.java — Интерфейс лексического анализатора
- Operator.java — Перечисление математический операторов
- Token.java — Базовый класс лексемы
- Value.java — Интерфейс математического выражения
Обзор ANTLR
ANTLR (от англ. Another Tool For Language Recognition — «ещё одно средство распознавания языков») — генератор парсеров, позволяющий автоматически создавать программу-парсер (как и лексический анализатор) на одном из целевых языков программирования (C++, Java, C#, Python, Ruby) по описанию LL(*)-грамматики на языке, близком к РБНФ. Позволяет конструировать компиляторы, интерпретаторы, трансляторы с различных формальных языков. Предоставляет удобные средства для восстановления после ошибок и сообщения о них. ANTLR — продолжение PCCTS (Purdue Compiler Construction Tool Set), который был разработан в 1989 г.
Настройка Bash
Вот так у меня настроено приглашение в BASH. Для того что бы сделать такое же необходимо: Указать в файле ~/.bashrc строку
PS1='\[\033[02;32m\]\D{%H.%M.%S}\033[00m:\033[0;34m\u@\h\[\033[00m\]:\w\n> '
Лексический анализатор
Лексический анализ заключается в анализе символов и выделение из них осмысленных единиц — лексем.
Например лексемой может являться число, математические оператор (плюс, минус, …), скобки, идентификатор переменной, комментарий и т. д.
Например лексемой может являться число, математические оператор (плюс, минус, …), скобки, идентификатор переменной, комментарий и т. д.
Простой парсер
Автор: Камнев Георгий Павлович
Парсер — это сленговое слово от английского parse (сущ. анализ, разбор, производить структурный анализ). Так называют программы/библиотеки которые производят соответствующие действие, применяются во многих областях ИТ, в той или иной форме.
Эта статья предлагает рассмотрение общих принципов работы компиляторов и как они пишутся. Будет рассмотрен простой синтаксический анализ методом рекурсивного спуска — калькулятор математических выражений.
Базовая установка DEBIAN LINUX
Основные шаги по установке DEBIAN LINUX (для новичков) заключаются в следующем:
- Графическая установка
- Выбор языка установки и раскладки клавиатуры
- Указание имени компьютера
- Выбор часового пояса
- Разметка диска
- Настройка учетных записей
- Добавление дополнительных дисков с пакетами программного обеспечения
- Выбор устанавливаемого программного обеспечения
- Установка системного загрузчика
- Настройка переключения раскладки клавиатуры
- Перезагрузка
Подписаться на:
Сообщения (Atom)