Синтаксический анализатор

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

Собираем парсер математических выражений

 Согласно формальной грамматике у нас должно получится следующие файлы:
  • Нетерминалы
    • 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 PS1
Вот так у меня настроено приглашение в 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 (для новичков) заключаются в следующем:
  • Графическая установка
  • Выбор языка установки и раскладки клавиатуры
  • Указание имени компьютера
  • Выбор часового пояса
  • Разметка диска
  • Настройка учетных записей
  • Добавление дополнительных дисков с пакетами программного обеспечения
  • Выбор устанавливаемого программного обеспечения
  • Установка системного загрузчика
  • Настройка переключения раскладки клавиатуры
  • Перезагрузка