Описание тега lexical-analysis

Процесс преобразования последовательности символов в последовательность токенов.
1 ответ

Как установить приоритеты для правил?

Я написал правила, но я не понял, почему правила желаний не совпадают, потому что в документации сказано следующее: When the generated scanner is run, it analyzes its input looking for strings which match any of its patterns. If it finds more than o…
10 окт '13 в 10:38
2 ответа

Гибкий - нет точки входа

Я изучаю теорию компиляции и как работать с flex, и у меня есть несколько проблем. Я создал файл lex со следующими данными: %% "hello" printf("GOODBYE"); . ; %% Это самый простой, о котором я мог подумать. Если я правильно понимаю, он печатает GOODB…
10 апр '17 в 12:58
1 ответ

Повысить дух lex и ци. Интеграция пропускающего парсера

редактировать: я вырвал лексер, так как он не интегрируется с ци и просто запутывает грамматику (см. здесь). Я пытаюсь вырастить грамматику поверх основы духа lex. Когда я пытаюсь переместить анализатор пропуска в грамматику, я получаю ошибки. Итак,…
04 окт '13 в 15:18
1 ответ

Разработка лексического анализатора и парсера в C#

Я собираюсь разработать компилятор с помощью Gold Parse Builder (GPB) для разработки лексического анализатора и анализатора. У меня есть вход x1 = x3/(x2/x5); и нужно его вывод, как показано ниже: [ 1] Variable x1 at 1,1 [ 2] Equals = at 1,4 [ 3] Va…
22 мар '15 в 16:15
2 ответа

Ускорьте мой лексический алгоритм

Я делю потенциально большую строку (скажем, 20 МБ, хотя это совершенно произвольно) на токены, определенные списком регулярных выражений. Мой текущий алгоритм использует следующий подход: Все регулярные выражения оптимизированы, чтобы иметь утвержде…
20 ноя '11 в 07:58
1 ответ

Какая именно часть анализа должна выполняться лексическим анализатором?

Существует ли формальное определение цели или, при четкой наилучшей практике использования, лексического анализа (лексера) во время / перед синтаксическим анализом? Я знаю, что цель лексера - преобразовать поток символов в поток токенов, но не может…
13 сен '17 в 12:46
5 ответов

Какие конструкции Javascript делает JsLex неправильно lex?

JsLex - это лексер Javascript, который я написал на Python. Это делает хорошую работу для работы дня (или около того), но я уверен, что есть случаи, когда это получается неправильно. В частности, он ничего не понимает относительно вставки точек с з…
04 апр '11 в 02:09
0 ответов

Lucene 4.1: Как искать текст с помощью HunspellStemmer и получать предложения?

Я хочу проанализировать текстовые файлы с помощью lucene, используя HunspellStemmer для проверки орфографических ошибок. Я буду использовать словари Hunspell, поэтому я хочу использовать HunspellStemmer. На данный момент я не уверен, как я должен ра…
18 мар '13 в 18:23
1 ответ

Когда построена таблица символов для этой программы?

Когда я запускаю make на следующем Makefile, когда создается таблица символов, если она вообще есть? LEX = flex YACC = yacc CC = gcc calcu: y.tab.o lex.yy.o $(CC) -o calcu y.tab.o lex.yy.o -ly -lfl y.tab.c y.tab.h: parser.y $(YACC) -d parser.y y.tab…
16 ноя '09 в 07:05
2 ответа

Разделитель, Сравнение, Типы токенов оператора

Из "Принципы, методы и инструменты компиляторов, 2-е изд." ("Фиолетовая книга") Ахо, Лама, Сетхи и Уллмана: Рисунок 3.2: Примеры токенов Стр. 112 [Token] [Informal Description] [Sample Lexemes] if characters i, f if else characters e, l, s, e else c…
1 ответ

Как скопировать токен, найденный с помощью lex (yytext), в другую строку?

Всякий раз, когда я получаю токен, распознаваемый программой lex, например, "while" { printf("%s is a loop\n",yytext);} Я хочу собрать это имя токена (то есть, пока) в другой строке, которая объявлена ​​ранее, например, "while" { printf("%s is a loo…
04 мар '14 в 13:02
3 ответа

Подсчет атрибутов исходного кода Java для обнаружения

В настоящее время я работаю над проектом по обнаружению плагиата исходного кода и на самом деле использую различные аспекты атрибутов входных файлов (файлов исходного кода) для обнаружения плагиата среди студенческих заданий. Например, теперь я испо…
02 фев '12 в 07:23
2 ответа

Почему я получаю синтаксическую ошибку в моей программе, созданную с помощью flex и yacc?

Я сделал программу, которая должна распознавать простую грамматику. Когда я ввожу то, что я считаю правильным, я получаю сообщение об ошибке. В частности, если я наберу int a; int b; это не работает После того, как я наберу int a; программа повторяе…
17 ноя '09 в 11:56
4 ответа

Контекстно-бесплатная грамматика для языков с большим количеством символов, чем bs

Вопрос состоит в том, чтобы разработать контекстно-свободную грамматику для языка, содержащего все строки, имеющие большее число As, чем Bs. Я не могу придумать логического решения. Есть ли способ подойти к таким проблемам, что может помочь мне лучш…
01 апр '16 в 15:47
3 ответа

Синтаксические предикаты в правилах лексера ANTLR

Вступление Глядя на документацию, в ANTLR 2 использовалось нечто, называемое предикатным лексингом, с примерами, подобными этому (вдохновлено Паскалем): RANGE_OR_INT : ( INT ".." ) => INT { $setType(INT); } | ( INT '.' ) => REAL { $setType(RE…
3 ответа

Как я могу изменить текст токенов в CommonTokenStream с помощью ANTLR?

Я пытаюсь изучить ANTLR и одновременно использовать его для текущего проекта. Я дошел до того, что смог запустить лексер на куске кода и вывести его в CommonTokenStream. Это работает нормально, и я убедился, что исходный текст разбивается на соответ…
3 ответа

Как я могу иметь функцию, которая возвращает различные типы в F#?

Я сделал сканер в F#. В настоящее время он возвращает список групп кортежей с типом (Token, string). В идеале я хотел бы вернуть список кортежей, которые могут содержать разные типы. Например: (Token, string) //if it's an identifier (Token, float) /…
13 фев '11 в 19:50
1 ответ

Почему синтаксис параметра Scala By-Name не выполняется при удалении пробела между: и =>

У меня просто вопрос в отношении синтаксиса именованных параметров Scala. Я создал приведенный ниже фрагмент кода, и он работает нормально. Тем не менее, когда я удалил пространство между a: =>Int в a:=>Int, это не удается. Это работает без ка…
08 сен '18 в 14:05
1 ответ

Хорошие API для анализаторов области

Я работаю над некоторыми инструментами генерации кода, и большая сложность связана с проведением анализа области видимости. Я часто чувствую, что хочу знать такие вещи, как Каковы свободные переменные функции или блока? Где объявлен этот символ? Что…
1 ответ

Как написать простой парсер для операторов if и while?

Мне нужно написать простой парсер, который будет преобразовывать токены в дерево парсеров. Я уже написал LexicalAnalyzer, который возвращает токены. Теперь я хочу написать правила для операторов if и while (для начала), чтобы я мог передать эти прав…
03 сен '11 в 16:10