Что представляет параметр scope_id в g_scanner_scope_add_symbol? - PullRequest
1 голос
/ 09 сентября 2011

При использовании Lexical Scanner GScanner я хочу добавить свои собственные символы для сканирования.При поиске информации я нахожу только документацию по API и исходный код других людей, например Gimp.Нет никакого объяснения тому, что делает область действия, если только я не пропустил что-то очевидное.

Я мог бы использовать g_scanner_add_symbol и игнорировать проблему, но g_scanner_add_symbol устарела, и остается только использовать g_scanner_scope_add_symbol.Я понимаю, как добавить символы в свой пользовательский сканер, используя эту функцию, но я до сих пор не знаю, для чего используется параметр scope_id.Я мог бы просто установить его на ноль каждый раз и не беспокоиться об этом.Проблема в том, что я не люблю загадки и чувствую, что scope_id может быть очень полезным.Я хочу знать, насколько это полезно.

Что представляет собой scope_id в GScanner и как его использовать?

1 Ответ

1 голос
/ 12 ноября 2011

Полагаю, вы можете использовать области, чтобы иметь разные наборы символов.Примерно так:

...
g_scanner_set_scope (scanner, first_scope);
g_scanner_scope_add_symbol (scanner, first_scope, "ONE", GINT_TO_POINTER(1));
...
g_scanner_set_scope (scanner, second_scope);
g_scanner_scope_add_symbol (scanner, second_scope, "TWO", GINT_TO_POINTER(2));
// The scanner wont find the symbol "ONE" now

Я не совсем уверен в этом, но я думал, что это то, что нужно было сделать.Вы можете легко проверить это, хотя.

...