S
Sergiy80
Гость
Я довольно много и долго использовал связку lex/yacc/c и lex/c.
Для простых задач в общем то вполне достаточно и этого. Но я задумпл перейти на создание более крупных проектов, которые предусматривают анализ и генерацию нескольких различных конфигурационных файлов в различных форматах и на смешаных языках. Тут практично было бы использовать по нескольку экземпляров одного лексического анализатора, не говоря уже о всех переймуществах STL.
Но при переходе на C++ возник ряд провлем одна из которых связана с наследованием.
В общем мне необходимо в классе yyFlexLexer определить не статические переменные и ряд виртуальных функций, которые можно будет добавить в его потомках.
Как вариант получить такое наследование FlexLexer->(мой промежуточный клас)->yyFlexLexer. Вопрос в том как это можно сделать? Подскажите возможные варианты с использованием #define #undef #include typedef namespace , которые бы позволили бы мне получить такой еффект.
Второй вариант это получить это описание непосредственно в yyFlexLexer. В документации об этом ничего нет.
Часть из своих наработок планирую публиковать в исходных кодах, так что менять заголовочные файлы недопустимо, так же как и править полученый C++ код вручную, всё должно собиратся одной командой.
Вот такая вот задачка....
Для простых задач в общем то вполне достаточно и этого. Но я задумпл перейти на создание более крупных проектов, которые предусматривают анализ и генерацию нескольких различных конфигурационных файлов в различных форматах и на смешаных языках. Тут практично было бы использовать по нескольку экземпляров одного лексического анализатора, не говоря уже о всех переймуществах STL.
Но при переходе на C++ возник ряд провлем одна из которых связана с наследованием.
В общем мне необходимо в классе yyFlexLexer определить не статические переменные и ряд виртуальных функций, которые можно будет добавить в его потомках.
Как вариант получить такое наследование FlexLexer->(мой промежуточный клас)->yyFlexLexer. Вопрос в том как это можно сделать? Подскажите возможные варианты с использованием #define #undef #include typedef namespace , которые бы позволили бы мне получить такой еффект.
Второй вариант это получить это описание непосредственно в yyFlexLexer. В документации об этом ничего нет.
Часть из своих наработок планирую публиковать в исходных кодах, так что менять заголовочные файлы недопустимо, так же как и править полученый C++ код вручную, всё должно собиратся одной командой.
Вот такая вот задачка....