Полагаю, вы можете использовать области, чтобы иметь разные наборы символов.Примерно так:
...
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
Я не совсем уверен в этом, но я думал, что это то, что нужно было сделать.Вы можете легко проверить это, хотя.