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

Программа, которую я сделал с помощью flex / yacc, не всегда распознает идентификаторы
Я сделал программу, которая должна распознавать простую грамматику. Когда я ввожу то, что, по моему мнению, должно быть действительным утверждением, я получаю сообщение об ошибке. В частности, если я начинаю с идентификатора, я автоматически получаю...
1181 просмотров
schedule 07.10.2021

Как передать yytext из файла lex в yacc?
Пожалуйста, я столкнулся с простой проблемой ... вот проблема. В моем файле lex есть что-то похожее на: char *ptr_String; "name = " { BEGIN sName; } <sName>.+ { ptr_String = (char *)calloc(strlen(yytext)+1, sizeof(char));...
14499 просмотров
schedule 28.11.2021

Могу ли я выбрать собственные значения токенов?
Когда я создаю файл грамматики и выполняю для него команду yacc -d, я получаю выходной файл y.tab.h. Есть ли способ передать значения токенов, которые я хочу, в yacc вместо того, чтобы выбирать значения? Например, %token FIRST_NAME %token...
102 просмотров
schedule 15.09.2021

Как получить ожидаемый токен в GLR-парсере bison / yacc?
Как получить ожидаемый токен в GLR-парсере bison / yacc? Hi, В проекте, над которым я работаю, есть несколько двусмысленных грамматик. Итак, я пытаюсь использовать% glr-parser для решения конфликтов сдвига / уменьшения. Когда я использовал...
781 просмотров
schedule 23.11.2021

% left и% right в yacc
{% #include<stdio.h> #include<stdlib.h> %} %token ID NUM IF THEN LE GE EQ NE OR AND ELSE %right '=' %left AND OR %left '<' '>' LE GE EQ NE %left '+''-' %left '*''/' %right UMINUS %left '!' %% Упомянутое выше является частью...
21275 просмотров

Создание файла Bison для простой грамматики
У меня такая простая грамматика: E -> T | ^ v . E T -> F T1 T1 -> F T1 | epsilon F -> ( E ) | v Я новичок в Bison, поэтому я надеялся, что кто-нибудь может помочь мне показать, как написать это в таком формате. Все, что у меня...
162 просмотров

Можно ли вызвать один синтаксический анализатор yacc из другого для анализа определенного подпотока токена?
Предположим, у меня уже есть полная грамматика YACC. Пусть это будет, например, грамматика C. Теперь я хочу создать отдельный синтаксический анализатор для предметно-ориентированного языка с простой грамматикой, за исключением того, что ему все еще...
363 просмотров
schedule 08.11.2021

Генерация компилятора из грамматики lex и yacc
Я пытаюсь создать компилятор, чтобы потом передать ему файл .c. Я загрузил грамматики YACC и LEX с http://www.quut.com/c/ANSI-C-grammar-y.html и назвали их clexyacc.l и clexyacc.y При генерации на терминале я сделал: yacc -d clexyacc.y lex...
14164 просмотров
schedule 03.10.2021

Ошибка сегментации Lex и Yacc
Я пытаюсь написать парсер для mini-c, используя lex и yacc. В случае однолинейных входов он работает довольно хорошо, в случае многострочных входов это вызывает ошибку сегментации. Запуск GDB не помог. c.l файл alpha [a-zA-Z] digit [0-9] %{...
940 просмотров
schedule 14.09.2021

Что означает yytext [0]?
Что означает yytext [0]? А зачем использовать в программе lex и yacc? Я учусь, так что не возражайте, если это будет глупый вопрос.
21049 просмотров
schedule 27.09.2021

flex / bison: как переключить два лексера в одном входном файле
Как я могу передать открытый файл, например читать другим сканером в следующий сканер - и отдавать парсеру?
669 просмотров
schedule 12.09.2021

Правило Yacc, которое я хотел, не уменьшает
У меня проблема, когда мое правило не может быть сокращено. Во-первых, я хочу написать правило Yacc для обнаружения оператора: STUDENT_T* pSearch=pHead; Итак, я написал правило, как показано ниже: struct_initialize: IDENTIFIER '*'...
87 просмотров
schedule 04.10.2021

Конфликт сдвига / уменьшения в yacc-Flex
У меня следующая грамматика в yacc, но я получаю 1 конфликт сдвига / уменьшения: %union { char* integer; char* string; char* boolean; char* date; }; %token <integer> INTEGER %token <string> STRING %token...
71 просмотров
schedule 15.09.2021

Как использовать модуль PLY для реализации двухстрочного синтаксического анализа 1 + 1 \ n 2 + 2, выход 2 и 4 соответственно
С помощью PLY для достижения анализа результатов "1 + 1 \ n 2 + 2" я думаю, что это два несущественных утверждения, но PLY сократил их, как сделать их неактуальными def p_statement_expr (p): '' 'statement: expression print p [1] def...
39 просмотров
schedule 24.10.2021

Решение Shift / Reduce
Итак, я пытался создать несколько простой компилятор. На данный момент у меня есть 2 конфликта сдвига / понижения, которые я не могу понять, как решить. У меня пока есть это: (DECR и INCR - это в основном - и ++, а ID - это в основном...
62 просмотров
schedule 10.09.2021

Получить парсер clang / llvm от парсера yacc
Пытаюсь построить парсер для Промелы в llvm. У меня есть парсер, который использует SPIN, который построен с использованием yacc, включая входные данные, которые поступают в yacc. Есть ли способ использовать парсер yacc для быстрого и...
310 просмотров
schedule 16.11.2021

Python PLY Yacc - Разбор деления комплексных чисел
Я реализую калькулятор на Python, чтобы иметь возможность вычислять как действительные, так и комплексные числа. У меня есть лексер / парсер, использующий PLY, и я создаю свой собственный класс для комплексных чисел, добровольно игнорируя тот факт,...
427 просмотров
schedule 19.10.2021

сдвиг / уменьшение конфликта в грамматике с необязательной точкой с запятой
Образец репозитория Я бы хотел сделать что-то вроде этого: // match used as a statement, semicolon is optional match (1) {} // match used as an expression, semicolon is required 1 + match (2) {}; statement :...
87 просмотров
schedule 12.10.2021

yacc: конфликты: 1 уменьшить / уменьшить
Чтобы изучить Lex / Yacc, я пишу парсер CSV, следуя грамматике, указанной на странице 3 RFC 4180 . Я столкнулся с конфликтом «уменьшить / уменьшить», и я не уверен, как продвигаться вперед. Кажется, это противоречие между Правилами 1 и 3 моей...
45 просмотров
schedule 21.11.2021

Как выполнить замену переменных с помощью Flex/Lex и Yacc/Bison
Определение интерполяции из Википедии Я только изучаю flex/bison и пишу моя собственная оболочка с ним. Я пытаюсь найти хороший способ интерполяции переменных. Мой первоначальный подход к этому заключался в том, чтобы выполнить гибкое...
3652 просмотров
schedule 21.02.2022