Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Lexer

Boost , Spirit 2.5.2 , Lexer Concepts

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
Description

Лексерявляется наиболее фундаментальным понятием. Lexer имеет функцию члена,собирают, которая принимает контейнер определения токена.Def, и к названию состояния лексера необходимо добавить токеновые определения лексера-компонента (струна). Он не возвращает ничего (тип возвратапустота). Каждый Лексер может представлять собой определенный шаблон или алгоритм, или это может быть более сложный лексерный компонент, сформированный как композиция другого Лексера. Кроме того, Lexer раскрывает участникаadd_actions, который принимает контейнер определения токенаОшибка, при этом ничего не возвращая (опять же, возвращаемый типнедействителен).

Notation

l

Лексер.

L

Лексертип.

Def

Тип контейнера определения токена.

State

Тип, используемый для представления названий Лексера.

Valid Expressions

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

Для любого Lexer должны быть действительны следующие выражения:

выражение

Семантика

Тип возврата

lсобирайте,

Добавить все определения токенов, предоставленные этим экземпляром Лексера, в состояние лексераконтейнера определения токеновdef. После сопоставления этого токена лексер должен быть переключен в состояниецелевое состояние(факультативно)

void

l.Add_actionsdef

Добавить все семантические действия, предоставленные этим экземпляром Lexer, в контейнер определения токенаdef

.

void

Type Expressions

выражение

Описание

::is_lexer<L>::тип

Метафункция, которая оценивает доmpl::true_, если определенный тип,Lявляется Lexer,mpl::false_в противном случаеMPL Boolean Constant

.
Postcondition

По возвращении изl.собратьследующие условия должно содержать:

  • По возвращениисодержит все определения токенов, определенные в Lexerl. Это включает в себя все Лексера содержится внутриl.

По возвращении изl.add_actionsдолжны соблюдаться следующие условия поста:

  • По возвращенииdefсодержит все семантические действия, правильно связанные с соответствующими определениями токенов, как определено в Lexer,l. Это включает в себя все семантические действия, определенные Лексером, содержащимися внутри.
Models

Все компоненты лексера вSpirit.Lexявляются моделями концепцииЛексера.


PrevUpHomeNext

Статья Lexer раздела Spirit 2.5.2 Lexer Concepts может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Lexer Concepts ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 03:34:45/0.0039658546447754/0