![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
The Token TypeBoost , ,
IntroductionТип токена вВолнаявляется основным носителем информации. Он возвращается путем отнесения итераторов, выставленных лексирующим компонентом, и итератора, выставленного препроцессорным компонентом. Токены первоначально генерируются лексером ("Сущность, которая лексически преобразует субъекта разбора в последовательность объектов (так называемых токенов), более подходящих для последующего разбора."). Библиотека Wave содержит два разных, взаимозаменяемых лексера C++, которые могут быть использованы в качестве отправной точки при разработке собственного приложения. Токены, генерируемые лексером, преобразуются движком предварительной обработки (макрорасширение, включение обработки файлов и т.д.) и после этого возвращаются пользователю. Библиотека. Вы можете использовать произвольные типы токенов в сочетании с вашим лексером, если они реализуют необходимый интерфейс. Требуемый интерфейс типа токена описан ниже и реализован шаблономwave::cpplexer::lex_token, требуемый интерфейс лексера описанздесь. В следующем описан тип токена, предварительно заданный внутри. Волноваябиблиотека, которая используется в сочетании с двумя предопределенными лексерами C++, содержащимися вБиблиотека. Если вам нужно использовать свой собственный тип токена, необходимо реализовать интерафс, описанный ниже. Header wave/cpplexer/cpp_lex_token.hpp synopsisnamespace boost { namespace wave { namespace cpplexer { template <typename Position> class lex_token { public: typedef std::basic_string Template parametersПредопределенный тип токена использует параметр шаблонаПоложение, который позволяет указать тип, который будет использоваться для переноса информации о положении файла, содержащейся внутри генерируемых токенов. Ваш собственный тип токена не должен принимать этотПоложениепараметр шаблона, но обратите внимание, что тип токена в любом случае должен иметь встроенное определение типаположение_тип(см. ниже). Public TypedefsТип токена должен определять два встроенных типа:string_typeиposition_type.string_typeдолжен быть типом, совместимым сstd::basic_string<>классом. Этот тип должен содержать по меньшей мере имя файла, номер строки и номер столбца позиции, где был распознан токен. Для предопределенного типа токена он по умолчанию относится к простому классу шаблонов file_position, описанному здесь. Обратите внимание, что ваш собственныйposition_typeдолжен следовать интерфейсу, описанному для шаблона file_position. Member functionslex_token(); lex_token(token_id id, string_t const &value, PositionT const &pos);
Accessor functionsoperator token_id() const;
string_type const &get_value() const;
Position const &get_position() const;
void set_token_id(token_id id);
void set_value(string_type const &newval);
void set_position(Position const &newpos);
Copyright © 2003-2011 Hartmut Kaiser Last updated: Sunday, October 12, 2008 20:15 Статья The Token Type раздела может быть полезна для разработчиков на c++ и boost. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: ::
|
|||||||||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |