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

Как передать 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

Проблемы со спецификацией lex
Я пытаюсь определить простой токенизатор для языка в lex. По сути, я хочу определить токены для скобок, запятой, операций сравнения, операций в / con / ncon и логических операций. И я хочу, чтобы любой другой токен соответствовал регулярному...
466 просмотров
lex
schedule 02.11.2021

ANTLR / Грамматика: язык калькулятора
Я пытаюсь создать логический язык выражения / грамматику для личного проекта. Пользователь сможет написать строку в синтаксисе, подобном Java, с предоставлением переменных, которые будут оцениваться позже, когда переменные будут инициализированы....
1547 просмотров
schedule 31.10.2021

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

Анализ yytext для числа с плавающей запятой дает ноль
Я использую следующий файл lex для преобразования чисел в токены. Однако программа не может правильно анализировать числа с плавающей запятой. Для отладки я добавил операторы printf, и они показывают, что функция strtof не может правильно...
3659 просмотров

lex | действие правила гибкости игнорируется
Все, В моем файле lex есть шаблон указанного типа: "#"[ \\t]*"ifdef".* { action_ifdef_manager(yytext);} если такой текст заключен в #ifdef GLOBALVAR , действие action_ifdef_manager не вызывается Спасибо за любую помощь.
95 просмотров
schedule 13.10.2021

read.bib выдает фатальную ошибку lex - пропущен конец буфера, пакет {bibtex}
Я пытаюсь создать сценарий, который будет распределять несколько PDF-файлов в дерево папок в соответствии с тегами. У меня есть метаданные файла (включая путь к файлу) в формате bibtex. Я пробовал несколько обходных путей для импорта метаданных, но...
541 просмотров
schedule 18.09.2021

Как найти определенное слово в lex с учетом входного файла?
Я новичок в Лексе. Я пытаюсь разработать синтаксический анализатор для поиска количества определенных слов в заданном входном файле ... Мой код %{ #include<stdio.h> #include<stdlib.h> #include<string.h> int...
4214 просмотров
lex
schedule 17.09.2021

Как увеличить размер yytext в lex
Максимальное количество анализируемых символов - 1024. Я использую flex. Мне нужно иметь возможность анализировать большие строки в буфере. Я пытаюсь использовать setupbuf(size) int size; { yy_current_buffer = yy_create_buffer(yyin, size); }...
161 просмотров
lex
schedule 16.09.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 / Flex - Разделить номер телефона вверх?
Я делаю программу, которая должна разделить телефонный номер на части, каждая часть была разделена дефисом (или пробелами, или '()' или пустым). Exp: Input: 0xx-xxxx-xxxx or 0xxxxxxxxxx or (0xx)xxxx-xxxx Output: code 1: 0xx code 2:...
230 просмотров
schedule 18.10.2021

Перевод if then else в грамматике компилятора
... IF LP assignment-expression RP marker statement { backpatch($3.tlist,$5.instr); $$.nextList = mergeList($3.flist,$6.nextList); } |IF LP assignment-expression RP marker statement ELSE Next statement { backpatch($3.tlist,$5.instr);...
595 просмотров
schedule 15.09.2021

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

Генератор анализатора flex / lex: минимизация DFA
Выполняет ли flex или lex минимизацию DFA? Если да, то у меня есть следующие вопросы: какой алгоритм используется? скажем, у нас есть спецификация, как показано ниже %{ #include <stdio.h> %} %% a printf("a\n"); b...
566 просмотров
schedule 14.09.2021

Директива Lexing и include с помощью ocamllex
Я делаю компилятор для C-подобного языка, который должен поддерживать директиву #include (только в начале файла) Простым, но неэлегантным подходом было бы создание подпрограммы, которая находит все вхождения директивы и заменяет соответствующий...
394 просмотров
schedule 31.10.2021

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

Можно ли использовать регулярное выражение для выражения всех требований к лексическому синтаксическому анализатору?
Недавно я изучаю принципы компиляторов. Я заметил, что все примеры из учебников описывают языковый лексический синтаксический анализатор, использующий «lex» или «flex» с регулярными выражениями, чтобы показать, как анализировать исходные файлы ввода....
31 просмотров
schedule 11.11.2021

выполнить php-скрипт без циклов или операторов ветвления в нем
Синтаксический анализатор PHP, который может вырезать все операторы цикла и операторы ветвления и выполнять другие Коды PHP, например: - ввод <?php if(1){ echo "hello"; } while(1){ echo "world"; } вывод <?php echo...
59 просмотров
schedule 08.10.2021

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