Вопросы по теме 'flex-lexer'

Есть ли альтернатива для flex / bison, которую можно использовать на 8-битных встроенных системах?
Я пишу небольшой интерпретатор для простого языка, подобного BASIC, в качестве упражнения на микроконтроллере AVR на C с использованием инструментальной цепочки avr-gcc. Однако мне интересно, есть ли какие-нибудь инструменты с открытым исходным...
69790 просмотров
schedule 12.04.2022

Возможны ли обратные ссылки во flex (лексический анализатор)?
Я привык играть с регулярными выражениями в языках, где я могу использовать круглые скобки для захвата ссылок. Единственное, что я вижу во flex, это переменная yytext. Но его содержимое представляет собой полное согласованное регулярное выражение, а...
752 просмотров

Разделение памяти между файлами YACC, Lex и C
У меня есть грамматика YACC (Bison), токенизатор Lex (Flex) и программа на C, среди которых мне нужно разделить struct (или любую переменную). В настоящее время я объявляю фактический объект в файле грамматики и extern его везде, где он мне нужен...
1948 просмотров
schedule 23.08.2022

Как сгенерировать различные функции yyparse из lex/yacc для использования в одной и той же программе?
Я хочу сгенерировать две отдельные функции синтаксического анализа из lex/yacc. Обычно yacc дает вам функцию yyparse(), которую вы можете вызвать, когда вам нужно выполнить какой-то анализ, но мне нужно иметь несколько разных yyparse, каждый из...
2248 просмотров
schedule 10.06.2023

Путаница с включением Yacc и Lex
Мне интересно, как правильно скомпилировать программу с Makefile, в котором есть вызовы yyparse? Это то чем я занимаюсь: У меня есть Makefile, который компилирует все мои обычные файлы, и они не связаны с y.tab.c или lex.yy.c (они должны быть у...
3287 просмотров
schedule 26.07.2022

Bison: необязательные токены в одном правиле
Я использую GNU Bison 2.4.2 для написания грамматики для нового языка, над которым я работаю, и у меня есть вопрос. Когда я указываю правило, скажем: statement : T_CLASS T_IDENT '{' T_CLASS_MEMBERS '}' { // create a node for the...
9424 просмотров
schedule 19.06.2022

Реализация функций eval и load внутри обработчика сценариев с помощью Flex и Bison.
Привет, ребята, я разрабатываю скриптовый движок с помощью flex и bison, и теперь я реализую функции eval и load для этого языка. Просто чтобы дать вам пример, синтаксис выглядит так: import std.*; load( "some_script.hy" ); eval( "foo = 123;"...
500 просмотров
schedule 08.06.2022

yy_top_state(), похоже, не работает с flex
Итак, я пишу этот реентерабельный сканер с помощью flex и использую параметр стека для отслеживания состояния. Согласно документации, кажется, что yy_push_state(SCRIPT, yyscanner); //now yy_top_state(yyscanner) == SCRIPT; should eval true...
1066 просмотров
schedule 17.03.2024

Почему многострочные комментарии в flex/bison так уклончивы?
Я пытаюсь проанализировать многострочные комментарии в стиле C в моем файле flex (.l): %s ML_COMMENT %% ... <INITIAL>"/*" BEGIN(ML_COMMENT); <ML_COMMENT>"*/" BEGIN(INITIAL); <ML_COMMENT>[.\n]+...
7984 просмотров
schedule 23.02.2023

Разделение зарезервированных идентификаторов во flex
У меня есть язык, для которого я делаю парсер, содержащий вызовы функций. Несколько имен функций зарезервированы, и я хотел бы обрабатывать их по-другому в своем грамматике. В EBNF это будет выглядеть так FunctionCall ::= FunctionName '(' ')'...
663 просмотров
schedule 21.08.2023

Неизвестная ошибка правила при использовании lex
1 %{ 2 #include<stdio.h> 3 #include<ctype.h> 4 %} 5 %option noyywrap 6 %% 7 [a-z] { putchar(yytext[0]); } 8 9 "/*" 10 { 11 char ch; 12 while((ch = input()) != '*') 13...
2213 просмотров
schedule 20.04.2023

Получить результат действия Flex/Bison
Я использую Flex/Bison/C++ для вычисления выражения Вот пример файла bison string res; yy_scan_string(expression.c_str()); yyparse(); cout<<"Result:"<<res<<"\n"; .... expr: expr PLUS expr {...
1327 просмотров
schedule 14.01.2023

флекс я запутался
вход в лексер abc gef4 44jdjd ghghg x ererete xyzzz 55k hello wold 33 мои правила rule1 [0-9]+[a-zA-Z]+ rule2 [x-z] rule3 .* {rule1} { printf("%s \n", yytext); } {rule2} { printf("%s \n", yytext); } {rule3} { // ничего не...
97 просмотров
schedule 27.07.2022

Регулярное выражение для строк в Bibtex
Я пытаюсь написать парсер Bibtex с помощью flex/bison. Вот правила для строк в bibtex: Строки могут быть заключены в двойные кавычки "..." или фигурные скобки {...} В строке фигурные скобки могут быть вложены Внутри строки фигурные скобки...
170 просмотров
schedule 16.11.2022

Гибкий скрипт, который соответствует пустым вводам?
Можно ли написать сценарий lex или flex , содержащий набор правил, в которых шаг сопоставления с максимальным значением всегда будет соответствовать строке нулевой длины? Я спрашиваю об этом, потому что математическое определение регулярных...
2363 просмотров
schedule 13.06.2022

Как использовать REJECT во flex?
Давайте проясним, что я говорю об инструменте лексического анализа. Для следующего ввода: aa bb cc dd Мне нужно, чтобы синтаксический анализатор соответствовал следующим подстрокам: aa bb bb cc cc dd У меня есть это...
1358 просмотров
schedule 11.07.2022

LookAhead не работает в JFlex
Я пытаюсь использовать JFlex для создания синтаксического анализатора, но сталкиваюсь с очень простой проблемой. Я хочу иметь этот токен [A-Za-z]+_N$ { System.out.println("Noun"); } и пусть он распознает «car_N» как «существительное», а НЕ...
1125 просмотров
schedule 27.07.2023

используйте bison для создания исполняемого файла, но с ошибкой
Я следил за руководством по Flex и Bison , чтобы изучить flex и bison, но я застрял. Когда я компилирую с помощью «g ++ snazzle.tab.c lex.yy.c -lfl -o snazzle», я получаю следующие сообщения об ошибках: snazzle.tab.c: In function ‘int...
1393 просмотров
schedule 09.06.2023

как включить импорт в flex/bison
Я делаю конвертер языков программирования, и у него есть импорт и включение. Например: import com.nanana.MyClassFile include "myfile.any" Я новичок, что означает, что я потерялся в том, как я могу это сделать. Мне интересно, возможно ли...
988 просмотров
schedule 09.11.2022

Почему гибкий сканер работает медленно при сопоставлении символов NUL?
У меня есть лексер, написанный кем-то другим, который сгенерировал его с помощью flex. Это работает, но в примере, который содержит строковый литерал и много символов NUL, сканирование выполняется очень медленно. После некоторого поиска в Google я...
200 просмотров
schedule 05.07.2023