Публикации по теме '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 просмотров
schedule
25.04.2022
Как получить всю входную строку в 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