Формат файла LEX — описание, как открыть?
Файл формата LEX открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ.
Чем открыть файл в формате LEX
Тип файла: Adobe Linguistic Library Data File Разработчик: Adobe Systems Категория: Файлы данных
Файл данных словарного запаса, создаваемый Linguistic Library — набором инструментальных средств разработки Adobe, применяемым для добавления лингвистических сервисов, таких как проверка произношения и грамматики, в продукты Adobe. Содержит общую лексику, или слова и их синтаксис, для языка. Применяется для хранения данных определения языка для данных утверждения документов в продуктах Adobe.
Файлы LEX можно использовать среди различных продуктов Adobe, включая Acrobat, Photoshop, InDesign и Illustrator.
Чем открыть файл в формате LEX (Adobe Linguistic Library Data File)
Источник: www.azfiles.ru
Implementation by LEX Program
Лексический анализ
Существует целый ряд инструментов для создания лексических анализаторов; большинство этих инструментов основывается на регулярных выражениях. Одним из традиционных средств подобного рода является Lex , состоящий из Lex -языка и Lex -компилятора. На самом деле запись спецификаций на языке Lex полезна даже тогда, когда Lex компилятор не доступен, поскольку эти спецификации могут быть без особого труда преобразованы в программу вручную. На данный момент, компиляторы Lex существуют на многих платформах и, несомненно, в ближайшее время появятся и на платформе . NET .
Процесс использования Lex ‘а выглядит следующим образом: cпецификации лексического анализатора на языке Lex подготавливаются в виде программы lex .l. Затем этот файл обрабатывается Lex компилятором, в результате чего создается программа на языке программирования. Большинство существующих реализаций генерируют программы на С и потому в дальнейшем рассмотрении средства Lex мы будем подразумевать использование С, хотя с тем же успехом можно было бы использовать и любой другой язык, например, C#.
Сгенерированная программа состоит из табличного представления диаграмм переходов, построенных по регулярным выражениям, и стандартных подпрограмм, которые используют эти таблицы для разбора лексем. Действия, связанные с реакцией на встреченные регулярные выражения, пишутся непосредственно на С и обычно помещаются сразу же за самими правилами. Затем эта программа обрабатывается компилятором С, в результате чего создается объектная программа , которая и является лексическим анализатором.
Структура Lex-программы
Lex — программа состоит из трех частей: описаний, правил трансляции и процедур. Каждая часть отделяется от следующей строкой, содержащей два символа %% .
Секция описаний включает описания переменных, констант и регулярных определений. Раздел описаний содержит определения макросимволов (метасимволов) в виде:
LEX: LEX Specification, Generation of Lexical Analyzer by LEX
ИМЯ ВЫРАЖЕНИЕ
Если в последующем тексте в регулярном выражении встречается , то оно заменяется на ВЫРАЖЕНИЕ . Если строка описаний начинается с пробелов или заключена в скобки %< . >% , то она просто копируется в выходной файл .
Регулярные определения — это последовательность определений вида
d1 r1 … dn rn,
где каждое di — некоторое имя, а каждое ri — регулярное выражение над алфавитом
Правила трансляции — это операторы вида
p1 1> … pnn>
где pi — регулярное выражение , actioni — фрагмент программы, описывающий, какие действия должен выполнять лексический анализатор для лексемы, определяемой pi.
Третья секция содержит процедуры, выполняемые при разборе. В частности, здесь описывается функция yywrap() , которая определяет, что делать при достижении автоматом конца входного файла. Ненулевое возвращаемое значение приводит к завершению разбора, нулевое — к продолжению (перед продолжением, естественно, надо открыть какой-нибудь файл как yyin ). Вообще говоря, эти процедуры могут быть скомпилированы отдельно.
Способы записи регулярных выражений в Lex-программе
Рассмотрим способы записи регулярных выражений во входном языке Lex ‘а. Символ из входного алфавита, естественно, представляет регулярное выражение из одного символа. Специальные символы (в том числе +-*?()[]<>|/^$.<> ) записываются после префикса . Символы и цепочки можно брать в кавычки, например допустимы следующие три способа кодирования символа а: а , «а» и а .
Имеется возможность задания класса символов :
[0-9] или [0123456789] — любая цифра [A-Za-z] — любая буква [^0-7] — любая литера, кроме цифр от 0 до 7 . — любая литера, кроме n
Грамматика для записи регулярных выражений (в порядке убывания приоритета):
* — повторение 0 или более раз + — повторение 1 или более раз ? — необязательный фрагмент — конкатенация — повторение от m до n раз — повторение m раз — повторение m или более раз ^ — фрагмент в начале строки $ — фрагмент в конце строки | — любое из выражений / — первое выражение, если за ним следует второе (р) — скобки, используются для группировки
Пример. Регулярное выражение ^[^aeiou]*$ означает любую строку, не содержащую букв a, e, i, o .
Источник: intuit.ru
Русские Блоги
Это видео о lex / yacc на youtube. Оно супер хорошо. Я уверен в выполнении задачи 1 CS143. Эта статья представляет собой краткое изложение и запись видео, приведенного выше.Я стараюсь писать его подробно, но настоятельно рекомендую.
Если вы мне скажете, что через стену не перебраться, то я могу только сказать, какие бывают отечественные поисковики! На станции B есть абонент UP по имени LEX, не ищите ли вы сначала имя? Однако основная причина заключается в том, что поисковые системы не работают, и компьютерные приложения в нижней части компьютера не используются в домашних условиях. Поэтому я рекомендую вам попробовать поискать в Интернете по-научному.
Тогда это касается linux / unix, волны двойных систем.
Другая необходимость заключается в том, что это не только полезно для принципов компиляции, но и программа для оценки файлов конфигурации SQL, например, в видео, довольно красива.
Краткое введение в лексический анализ
Что такое LEX?
lex is a scanner generator.
- Вход: регулярные выражения и связанные с ними действия, написанные на языке C (действия)
- Выход: табличный сканер (имя файла по умолчанию — lex.yy.c)
Flex — это реализация инструмента lex с открытым исходным кодом в исходной UNIX.
lex состоит из трех компонентов:
ЧАСТЬ FRIST // необязательно %% действие шаблона // действие шаблона . %% ТРЕТЬЯ ЧАСТЬ // необязательно
Как работает LEX?
Пример lex (имя файла ex1.l, легендарный привет, мир):
%% «hello world» printf («GOODBYE n»); // найдет соответствие «hello world» и выполнит printf .; // соответствовать любому символу, игнорировать другие условия %%
Проверьте приведенный выше код:
% lex ex1.l // Обработка ex1.l для генерации lex.yy.c % cc lex.yy.c -ll // компилировать lex.yy.c, -ll вытеснять основную функцию % ./a.out // Выходной исполняемый файл gcc / cc по умолчанию — a.out hello world GOODBYE %
общие регулярные выражения lex
Как lex обрабатывает текстовые файлы конфигурации и интегрирует их в язык Си?
Если у нас есть файл конфигурации (config.in):
db_type : myset db_name : testdate db_table_prefix : test_ db_port : 1099
Сначала определите scanner.h Используется для маркировки каждого токена
#define TYPE 1 #define NAME 2 #define TABLE_PREFIX 3 #define PORT 4 #define COLON 5 // двоеточие #define IDENTIFIER 6 #define INTEGER 7
Затем определите scanner.l , Здесь яма, % < %>Не пиши это %< >% 。
% < #include «scanner.h» %>%% : return COLON; «db_type» return TYPE; «db_name» return NAME; «db_table_prefix» return TABLE_PREFIX; «db_port» return PORT; [a-zA-Z][_a-zA-Z0-9]* return IDENTIFIER; [1-9][0-9]* return INTEGER; [ tn] ; . printf(«unexpected charactern»); %% /* Обратите внимание, что этот абзац должен включать функцию yywrap (). У Lex есть набор доступных функций и переменных. Один из них — yywrap. Эта функция вызывается в конце файла (или ввода). Если возвращаемое значение функции равно 1, прекратить синтаксический анализ. */ int yywrap(void)
тогда lex scanner.l генерировать lex.yy.c файл
Затем написать scanner.c
#include #include «scanner.h» extern int yylex(); // Эта функция запускает анализ. Он автоматически генерируется Лексом. extern int yylineno; // Предоставляем информацию о текущем номере строки. (Лексер может не поддерживать это.) extern char* yytext; // Текст совпадающего шаблона сохраняется в этой переменной (char *). char *names[] = NULL,»db_type»,»db_name»,»db_table_prefix»,»db_port»>; int main(void) int ntoken, vtoken; // name while(ntoken) // возвращаем 0 в конце printf(«%dn»,ntoken); if(yylex() != COLON) // Следующая не точка с запятой printf(«Syntax error in line %d, Except a ‘:’ but found %sn»,yylineno,yytext); return 1; > vtoken = yylex(); switch(vtoken) case TYPE: case NAME: case TABLE_PREFIX: if(vtoken != IDENTIFIER) printf(«Syntax error in line %d, Except an identifier but found %sn»,yylineno,yytext); return 1; > printf(«%s is set to %sn»,names[ntoken],yytext); break; case PORT: if(vtoken != INTEGER) printf(«Syntax error in line %d, Except an identifier but found %sn»,yylineno,yytext); return 1; > printf(«%s is set to %sn»,names[ntoken],yytext); break; default: printf(«Syntax error in line %dn»,yylineno); > ntoken = yylex(); > return 0; >
тогда gcc scanner.c lex.yy.c -o scanner
Выполнить код ./scanner < config.in
1 db_type is set to myset 2 db_name is set to testdate 3 db_table_prefix is set to test_ 4 db_port is set to 1099
Источник: russianblogs.com
Lex что это за программа
Характеристики
2018-10-26 16:43:18
Совместимость
Windows 2000, Windows XP, Windows 2003, Windows Vista
Разработчик
www.lexsema.com
Описание
Lex! — это обучающая программа является лексическим тренажером, обеспечивающим изучение и запоминание иностранных слов во время работы за компьютером. Программа периодически активизируется и предлагает переводить слова, поддерживает транскрипцию, работу с произвольным количеством словарей, имеет полностью настраиваемые режимы работы. Возможно создание и удаление словарей, добавление и редактирование лексики, изменения временных параметров работы, уровней интенсивности обучения.
Версии
x32/x64 (0.53 МБ)
Нет официального представителя разработчика на сайте
Стать представителем
Рейтинг
Нажмите, для быстрой оценки
Оставить отзыв
Отзывы
8 лет назад
супер, пользуюсь много лет. но: не могу сохранить файл словаря и поэтому вбиваю каждый раз заново. есть идеи, как мне сохранять и возобновлять файл? инстр читала, не выходит
14 лет назад
Только сегодня увидел на тренинге по конфликтологии сильно понравилось простотой и доступностью вспомним школу 80-х.
18 лет назад
Класная программа, это именно то, что мне надо было. Для пополнения словаря здорово. Спасибо разработчикам. :))))
18 лет назад
Класная программа, это именно то, что мне надо было. Для пополнения словаря здорово. Спасибо разработчикам. :))))
18 лет назад
Класная программа, это именно то, что мне надо было. Для пополнения словаря здорово. Спасибо разработчикам. :))))
Источник: freesoft.ru