Вопросы по теме '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 просмотров
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 просмотров
schedule
20.11.2021
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 просмотров
schedule
17.09.2021
Как увеличить размер yytext в lex
Максимальное количество анализируемых символов - 1024. Я использую flex. Мне нужно иметь возможность анализировать большие строки в буфере. Я пытаюсь использовать
setupbuf(size)
int size;
{
yy_current_buffer = yy_create_buffer(yyin, size);
}...
161 просмотров
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