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