Читайте также: |
|
Аннотация
В данной пояснительной записке содержится описание курсового проекта по дисциплине «Системное ПО». Цель выполнения данного курсового проекта – написание текстового редактора с подсветкой синтаксиса. Конструции языка и стили для них загружаются из XML файла. Для проверки загружаемого XML файла на корректность применяется XML Schema.
Для построения графического интерфейса пользователя используется библиотека FLTK 1.3, для работы с XML – библиотека LibXML2.
В приложении 1 приведён текст XML файла config.xml, использующегося для хранения данных о подсветке синтаксиса, в приложении 2 приведён текст XML Schema файла schema.xml, приложение 3 содержит исходный код разработанной программы.
Аннотация................................................................................................ 1
Введение.................................................................................................... 3
1. Файл конфигурации.................................................................... 4
1.1 Формат файла конфигурации............................................................. 4
1.2 Формат файла проверки....................................................................... 5
2. Разработка программы................................................................ 7
2.1 Загрузка файла конфигурации........................................................... 7
2.2 Разбор текста и применение к нему стилей..................................... 11
3. Тестовый пример........................................................................... 13
Заключение........................................................................................... 14
Список литературы.......................................................................... 15
Приложение 1........................................................................................ 16
Приложение 2........................................................................................ 19
Приложение 3........................................................................................ 21
Введение
Данная программа является текстовым редактором с подсветкой синтаксиса языков программирования. Настройки для подсветки синтаксиса и некоторые конструкции языка загружаются из XML файла. Это обеспечивает простоту конфигурирования под другие языки программирования. Изначально, программна сконфигуривана под С++.
Для контроля ошибок в XML файле конфигурации используется XML Schema. Для работы с XML используется библиотека LibXML2, она же осуществляет контроль файла настроек при помощи схемы.
Для разбора вводимого текста используется параллельный буфер, в одном хранится форматированный текст, в другом изменённые данные. Поиск конструкций языка в буфере осуществляется стандартным набором функций С++.
Файл конфигурации
Формат файла конфигурации
Файл конфигурации представлет собой XML – файл, в котором хранятся данные, необходимые для подсветки синтаксиса. Файл состоит из корневого элемента language, который в свою очередь содержит 3 дочерних элемента: style, keywords и types.
Элемент style содержит 7 пустых дочерних элементов entry вида
<entry name="entry_name" color="FL_COLOR" font="FL_FONT"/> и имеет 3 аттрибута: name, color и font. Один элемент enty описывает одно правило подсветки синтаксиса. Например, элемент вида <entry name="Line Comments" color="FL_DARK_GREEN" font="FL_HELVETICA_ITALIC"/> описывает правило для подсветки строковых комментариев, для которых будет использоваться тёмно-зелёный цвет шрифта и шрифт HELVETICA в курсивном начертании.
Аттрибут name элемента entry используется для задания имени правилу подсветки. По этому аттрибуту данные для подсветки синтаксиса загружаются в текстовый редактор. Он может принимать следующие значения: Plain (обычный текст), Line Comments (строковые комментарии), Block Comments (многостроковые комментарии), Strings (строки), Directives (директивы), Types (типы), Keywords (ключевые слова).
Аттрибут color задаёт цвет, которым будут раскрашены конструкции языка, подходящие под данное правило. Может принимать следующие значения: FL_BLACK, FL_GREEN, FL_DARK_GREEN, FL_BLUE, FL_DARK_BLUE, FL_RED, FL_DARK_RED, FL_MAGENTA, FL_DARK_MAGENTA, FL_CYAN, FL_DARK_CYAN, FL_YELLOW, FL_DARK_YELLOW.
Аттрибут font задаёт шрифт, который будет использоваться для конструкций языка, подходящих под данное правило. Может принимать следующие значения: FL_COURIER, FL_COURIER_BOLD, FL_COURIER_ITALIC, FL_COURIER_BOLD_ITALIC, FL_HELVETICA, FL_HELVETICA_BOLD, FL_HELVETICA_ITALIC, FL_HELVETICA_BOLD_ITALIC, FL_TIMES, FL_TIMES_BOLD, FL_TIMES_ITALIC, FL_TIMES_BOLD_ITALIC, FL_SCREEN, FL_SCREEN_BOLD.
Элемент keywords содержит дочерние элементы вида <keyword>keyword_name</keyword>, описывающие ключевые слова языка.
Элемент types содержит дочерние элементы вида <type>type_name</type>, описывающие типы, используемые в языке.
Дата добавления: 2015-11-04; просмотров: 52 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
НА ПУТИ К НОРМАЛЬНОЙ НАУКЕ | | | Формат файла проверки |