Я хочу написать минималистичный синтаксический анализатор XML для моего приложения для составления расписания. Я не хочу использовать какие-либо библиотеки или синтаксические анализаторы, которые будут поддерживать синтаксический анализ XML, потому что они менее эффективны для моего использования (поскольку мне нужно распознавать только несколько тегов). Поэтому я решил написать парсер, используя lex и yacc. Есть ли способ, которым я могу использовать функции в файле .h, созданном lex и yacc, в моем коде напрямую, а не писать код приложения в самом yacc.
используя функции в коде, сгенерированном lex и yacc
Ответы (1)
Функции, экспортируемые вашими программами, сгенерированными lex и yacc, минимальны. Анализатор вызывается вызовом yyparse
. Он вызывает yylex
в лексере. Все остальное может быть снаружи.
Удобно и принято иметь некоторые подпрограммы поддержки синтаксического анализа в самих файлах lex и yacc (хелперы, которые вызываются действиями лексирования и синтаксического анализа, а не чем-либо еще). Но не логика приложения. (За исключением очень тривиальных примеров из учебника для Yacc.)
person
Kaz
schedule
17.05.2012