Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Результат возвращаемого значения грамматики boost::spirit.
|
|||
|---|---|---|---|
|
#18+
Читаю главу в доках про возаращаемое грамматикой значение при парсинге через qi::parse(). Пишут, что если я парсю череду значений, типа Код: plaintext 1. То возвращаемое значение должно быть tuple<A,B> - подобного типа, то есть std::pair<double,char> например. Или boost::fusion-аналог. Я вот чё хочу понять - как оно там внутри, во время матчинга грамматики, возвращает результат? Оно смотрит на плоскую память, и ходит по ней указателем, шагая на разное количество байт, в зависимости от различных типов? То есть, например std::pair<double,char> - это что-то типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Я предполагаю, что spirit берёт указатель на экземпляр S. Продвигаясь по грамматике, он записывает очередное заматченное значение, используя указатель нужного типа и шагает на sizeof(TYPE) дальше, а дальше уже оперирует типом следующего терминала. Как-то так? Как-то так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2013, 20:15 |
|
||
|
Результат возвращаемого значения грамматики boost::spirit.
|
|||
|---|---|---|---|
|
#18+
Понятия не имею как это сделано в бусте, но все системы разбора грамматик делают это на основе деревьев. Берешь токен - создаешь объект-описатель. Нашел второй токен - создал второй объект. Увидел что два этих объекта должны идти в паре - создал третий объект "пара", поместил туда указатели на первые объекты и забыл эти указатели - в дальнейшем работаешь только с указателем на объект "пара". Размер объектов не имеет значения, каждый опознанный токен может быть как самостоятельным объектом, так и элементом составного объекта. А составные объекты могут быть переменной длины (например список). Поэтому размер как таковой только мешаться будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2013, 23:05 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38436239&tid=2019912]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 288ms |
| total: | 555ms |

| 0 / 0 |
