2009-03-07 9 views
1

Я пытаюсь написать анализатор конфигурационных файлов для использования в нестандартной среде C. В частности, я не могу полагаться на утилиты, предоставляемые <stdio.h>.Использование токенизаторов Lex во встроенную систему

Я ищу использовать Flex, но мне нужно использовать собственные структуры ввода, а не <stdio.h>.

ответ

2

вы можете определить свой собственный метод ввода путем определения метода YY_INPUT:

%{ 
    #define YY_INPUT(buf,result,max_size) \ 
     { \ 
     int c = getchar(); \ 
     result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \ 
     } 
    %} 
+0

Спасибо, что выглядит именно то, что я ищу. –

1

Ragel является обобщенным компилятором конечных автоматов, в котором вы можете использовать сгенерированный код внутри функции C. Он имеет специальную поддержку для создания токенизаторов.

 Смежные вопросы

  • Нет связанных вопросов^_^