lex и буфер
Почему сразу "странную"?
Кстати, есть погнутная библиотека, где FILE представляет собой буфер памяти.
Правда, это может быть уже частью glibc.
---
...Я работаю антинаучным аферистом...
Кстати, есть погнутная библиотека, где FILE представляет собой буфер памяти.
Правда, это может быть уже частью glibc.
---
...Я работаю антинаучным аферистом...
Да, похоже такая процедура - единственное решение.
Временный файл ещё можно создать 

то что он просит по одному символу это наверно особенность конкретной грамматики.
хм. а yy_scan_string yy_scan_bytes и yy_scan_buffer для чего?
Он иногда просит по одному символу 

и что с того, если он будет их брать пачками это ничего не ускорит - просто буфферизация будет где-то у него, ну не к чему этому автомату куча символов за раз.
гнутые open_memstream\fmemopen пожалуй простейшее решение
гнутые open_memstream\fmemopen пожалуй простейшее решение

+1 за yy_scan_string
а что за проблема с посимвольным чтением? буфер char * в памяти уже лежит...
а что за проблема с посимвольным чтением? буфер char * в памяти уже лежит...
Оставить комментарий
sergey_m
Неужели lexом удобно парсить только потоки типа FILE *? Не могу найти способа брать входные данные из статического буфера типа char *. К стандартным приёмам переопределения входных данных относится только переопределение yyin, в другой FILE *. Менее стандартный способ - переопределить YY_INPUT. Однако он пытается читать по одному символу. Придётся писать странную процедуру, которая будет возвращать по одному символу из буфера.