Публикации по теме 'yacc'


Введение в LEX и YACC
Первый шаг к созданию собственного компилятора Lex и YACC — популярные инструменты, используемые при создании компилятора. В этой статье мы обсудим инструменты и способы их использования с точки зрения начинающих. 1. Введение в ЛЕКС Lex (генератор лексического анализатора) — это инструмент, используемый для создания лексического анализа. Лексический анализ — это процесс преобразования входного потока в токены. Он берет набор регулярных выражений, заданный в качестве входных данных..

Вопросы по теме 'yacc'

Как лучше всего предотвратить утечку памяти в синтаксическом анализаторе на основе yacc?
Yacc не позволяет передавать предметы. Поскольку %union может содержать только типы POD, сложные объекты должны создаваться заново и передаваться по указателю. Если возникает синтаксическая ошибка, синтаксический анализатор yacc просто прекращает...
1354 просмотров
schedule 26.02.2023

Lex / Yacc для C #?
На самом деле, возможно, не полноценный Lex / Yacc. Я реализую интерфейс командного интерпретатора для администрирования веб-приложения. Я ищу что-то, что возьмет определение грамматики и превратит его в синтаксический анализатор, который напрямую...
33137 просмотров
schedule 16.11.2022

Строковый ввод для гибкого лексера
Я хочу создать цикл чтения-оценки-печати с помощью синтаксического анализатора flex/bison. Проблема в том, что лексер, сгенерированный flex, требует ввода типа FILE*, а я бы хотел, чтобы он был char*. Есть какой-либо способ сделать это? Одно из...
33738 просмотров
schedule 16.04.2023

Токенизация оставшихся данных с помощью lex/yacc
Простите меня, я совсем новичок в парсинге и lex/yacc, и я, вероятно, запутался, но тем не менее: Я пишу довольно простой калькулятор с PLY, но его ввод не всегда может быть уравнением, и мне нужно определить, так оно или нет при разборе. Крайними...
651 просмотров
schedule 27.02.2023

Как реализовать прямые ссылки в компиляторе?
Я создаю компилятор с Lex и YACC (на самом деле Flex и Bison). Язык допускает неограниченное количество прямых ссылок на любой символ (например, C#). Проблема в том, что невозможно разобрать язык, не зная, что такое идентификатор. Единственное...
927 просмотров

Как получить всю входную строку в Lex и Yacc?
Итак, вот в чем дело. На моем языке у меня есть несколько команд, скажем XYZ 3 5 GGB 8 9 HDH 8783 33 И в моем файле Lex XYZ { return XYZ; } GGB { return GGB; } HDH { return HDH; } [0-9]+ { yylval.ival = atoi(yytext); return NUMBER; }...
4454 просмотров
schedule 09.06.2022

Как построить массив с помощью Bison/Yacc и рекурсивного правила
С Bison я понял, как собрать все в одну длинную строку следующим образом: arg_list: WORD arg_list { strcat( $1, "IFS" ); $$ = strcat($1, $2); } | WORD ; и: WORD arg_list { printf("%s, %s\n", $1, $2); } Но проблема в том,...
7484 просмотров
schedule 16.12.2023

Эквивалент Yacc для Java
Я работаю над проектом компилятора на Java. Лексический анализ выполнен (с использованием jflex), и мне интересно, какой инструмент, подобный yacc, будет лучше всего (наиболее эффективен, прост в использовании и т. д.) для проведения синтаксического...
24583 просмотров
schedule 02.05.2023

Когда создается таблица символов для этой программы
Когда я запускаю 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...
876 просмотров
schedule 02.03.2022

йылвал и союз
Какова цель объединения в файле yacc? Это напрямую связано с yylval в файле flex? Если вы не используете yylval, то вам не нужно использовать союз?
40156 просмотров
schedule 15.04.2022

Использование Python Yacc\Lex в качестве анализатора формул
На данный момент я работаю над использованием реализации Yacc/Lex на python для создания анализатора формул для преобразования строк формул в набор операндов, определенных классом. До сих пор я был в основном успешным, но я пришел в тупик в...
3020 просмотров
schedule 15.07.2023

Как сделать так, чтобы YY_INPUT указывал на строку, а не на стандартный ввод в Lex & Yacc (Solaris)
Я хочу, чтобы мой yylex() анализировал строку, а не файл или стандартный ввод. Как это сделать с помощью Lex и Yacc, поставляемых с Solaris?
11050 просмотров
schedule 15.04.2022

Включить/отключить правила грамматики в Yacc/Bison
Как следует из названия, я хотел бы включить/отключить определенные правила грамматики в файле грамматики yacc или bison. Есть ли способ сделать это?
864 просмотров
schedule 11.10.2023

yacc сдвиг уменьшить проблему
у меня есть то, что я считаю простой частью моей грамматики, это ошибка от yacc. я знаю, что мне нужно где-то добавить %prec, но не совсем уверен, где. Assignment : Ref '=' Ref | Ref '=' Expression | Ref '=' Value...
1390 просмотров
schedule 31.05.2023

Проблемы с типами данных во flex
У меня проблема. Я пишу программу с flex и использую этот код: %union { int entero; char *cadena; TipoDato tipo; } Этот код для моих типов данных. Я хочу оценить следующую строку: выражение SUM выражение, где SUM — это...
4837 просмотров
schedule 15.08.2022

Фильтровать y.output от bison или yacc?
Я использую bison, и мне трудно понять конфликты, глядя на y.output. Есть ли инструмент для создания или фильтрации y.output, чтобы он был более полезным? Я хотел бы увидеть полный путь к состоянию с конфликтом, но мне бы хотелось чего-нибудь...
1030 просмотров
schedule 28.10.2022

Соответствующее использование yacc / byacc / bison и lex / flex
В большинстве сообщений, которые я читал, относящихся к этим утилитам, обычно предлагается использовать какой-либо другой метод для получения того же эффекта. Например, на вопросы, в которых обычно упоминаются эти инструменты, есть по крайней мере...
2445 просмотров
schedule 20.08.2022

Предоставляют ли lex и yacc оптимизированный код?
Предоставляют ли Lex и Yacc оптимизированный код или требуется, чтобы мы писали собственный код вручную для повышения производительности?
1705 просмотров
schedule 21.04.2023

Синтаксический анализ с помощью Flex/Bison, часть 2
Привет, Мне нужна помощь в программировании Lex/Yacc. Я написал компилятор для синтаксического анализа входных данных многих операторов. Теперь у меня особая проблема. В случае ввода компилятор выдает правильный вывод, какой оператор...
322 просмотров
schedule 16.07.2022

Попытка построить грамматику C # для bison / wisent
Я никогда раньше не работал над Bison или Wisent. с чего начать? Моя настоящая цель - создать рабочую грамматику Wisent / Semantic для C #, чтобы можно было редактировать C # в emacs с автозавершением кода и всем остальным CEDET вкусности. (Для...
1301 просмотров
schedule 10.08.2022