2011-09-09 14 views
1

Lexical Scanner GScannerを使用しているときに、自分のシンボルを追加してスキャンしたいと思っています。情報を探しているときは、APIのドキュメントとGimpのような他の人のソースコードしか見つかりませんでした。私が何か明白なことを逃していない限り、スコープに関する説明はどこにありません。g_scanner_scope_add_symbolのscope_idパラメータは何を表していますか?

g_scanner_add_symbolを使用して問題を無視することはできますが、g_scanner_add_symbolは廃止され、残っているのはg_scanner_scope_add_symbolだけです。この関数を使ってカスタムスキャナにシンボルを追加する方法を理解していますが、scope_idパラメータが何のために使用されているかはまだ分かりません。毎回ゼロに設定し、心配する必要はありません。問題は私が謎を好きではなく、scope_idが非常に役に立つと感じていることです。私はどのように役に立つのか知りたい。

GScannerのscope_idは何を表し、どのように活用できますか?

答えて

1

スコープを使用して、異なるシンボルセットを使用できると思います。このようなもの:

... 
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 

私はそれについて完全にはわかりませんが、それは私がスコープと考えていたものです。あなたはそれを簡単にテストすることができます。

+0

はい、私は最後にGScannerを試してからしばらくしています。私はすでにそれを試みている可能性がありますが、私はそれを試してみましょう。ありがとう。 –

関連する問題