结构

GLibScannerConfig

描述 [src]

struct GScannerConfig {
  gchar* cset_skip_characters;
  gchar* cset_identifier_first;
  gchar* cset_identifier_nth;
  gchar* cpair_comment_single;
  guint case_sensitive : 1;
  guint skip_comment_multi : 1;
  guint skip_comment_single : 1;
  guint scan_comment_multi : 1;
  guint scan_identifier : 1;
  guint scan_identifier_1char : 1;
  guint scan_identifier_NULL : 1;
  guint scan_symbols : 1;
  guint scan_binary : 1;
  guint scan_octal : 1;
  guint scan_float : 1;
  guint scan_hex : 1;
  guint scan_hex_dollar : 1;
  guint scan_string_sq : 1;
  guint scan_string_dq : 1;
  guint numbers_2_int : 1;
  guint int_2_float : 1;
  guint identifier_2_string : 1;
  guint char_2_token : 1;
  guint symbol_2_token : 1;
  guint scope_0_fallback : 1;
  guint store_int64 : 1;
}

指定 GScanner 解析器配置。大多数设置可在解析阶段进行更改,并影响下一非窥视令牌的词法解析。

结构成员
cset_skip_characters

指定扫描器应当跳过的字符(默认值为空白字符:空格、制表符、回车符和换行符)。

cset_identifier_first

指定标识符开头可以有的字符(默认值为 %G_CSET_a_2_z、"_" 和 G_CSET_A_2_Z)。

cset_identifier_nth

指定可在标识符中使用的字符(首个字符之后)(默认值为 %G_CSET_a_2_z、"_0123456789"、G_CSET_A_2_ZG_CSET_LATINSG_CSET_LATINC)。

cpair_comment_single

指定单行注释的开头和结尾的字符。默认值为“#\n”,这意味着单行注释以“#”开头,直到“\n”(行尾)。

case_sensitive

指定符号是否区分大小写(默认值为 FALSE)。

skip_comment_multi

指定是否跳过多行注释,不将其作为令牌返回(默认值为 TRUE)。

skip_comment_single

指定是否跳过单行注释,不将其作为令牌返回(默认值为 TRUE)。

scan_comment_multi

指定是否识别多行注释(默认值为 TRUE)。

scan_identifier

指定是否识别标识符(默认值为 TRUE)。

scan_identifier_1char

指定是否识别单字符标识符(默认值为 FALSE)。

scan_identifier_NULL

指定是否将 NULL 报告为 G_TOKEN_IDENTIFIER_NULL(默认值为 FALSE)。

scan_symbols

指定是否识别符号(默认值为 TRUE)。

scan_binary

指定是否识别二进制数(默认值为 FALSE)。

scan_octal

指定是否识别八进制数(默认值为 TRUE)。

scan_float

指定是否识别浮点数(默认值为 TRUE)。

scan_hex

指定是否识别十六进制数(默认值为 TRUE)。

scan_hex_dollar

指定是否识别“$”作为十六进制数的前缀(默认值为 FALSE)。

scan_string_sq

指定字符串是否可以用单引号括起来(默认值为 TRUE)。

scan_string_dq

指定字符串是否可以用双引号括起来(默认值为 TRUE)。

numbers_2_int

指定是否将二进制数、八进制数和十六进制数报告为 G_TOKEN_INT(默认值为 TRUE)。

int_2_float

指定是否将所有数字报告为 G_TOKEN_FLOAT(默认值为 FALSE)。

identifier_2_string

指定是否将标识符报告为字符串(默认值为 FALSE)。

char_2_token

指定是否通过设置 token = ch 报告字符,还是报告为 G_TOKEN_CHAR(默认值为 TRUE)。

symbol_2_token

指定是否通过设置 token = v_symbol 报告符号,还是报告为 G_TOKEN_SYMBOL(默认值为 FALSE)。

scope_0_fallback

指定除了在当前的作用域内,是否还要在默认的作用域中搜索符号(默认值为 FALSE)。

store_int64

使用 value.v_int64 而不是 v_int。