### Struct

# GLib ScannerConfig

since: 2.0

#### Description

    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;
    }

Specifies the `GScanner` parser configuration. Most settings can be changed during the parsing phase and will affect the lexical parsing of the next unpeeked token.

###### Structure members

`cset_skip_characters`

  Specifies which characters should be skipped by the scanner (the default is the whitespace characters: space, tab, carriage-return and line-feed).

`cset_identifier_first`

  Specifies the characters which can start identifiers (the default is %G_CSET_a_2_z, “_”, and `G_CSET_A_2_Z`).

`cset_identifier_nth`

  Specifies the characters which can be used in identifiers, after the first character (the default is %G_CSET_a_2_z, “_0123456789”, `G_CSET_A_2_Z`, `G_CSET_LATINS`, `G_CSET_LATINC`).

`cpair_comment_single`

  Specifies the characters at the start and end of single-line comments. The default is “#\n” which means that single-line comments start with a ‘#’ and continue until a ‘\n’ (end of line).

`case_sensitive`

  Specifies if symbols are case sensitive (the default is `FALSE`).

`skip_comment_multi`

  Specifies if multi-line comments are skipped and not returned as tokens (the default is `TRUE`).

`skip_comment_single`

  Specifies if single-line comments are skipped and not returned as tokens (the default is `TRUE`).

`scan_comment_multi`

  Specifies if multi-line comments are recognized (the default is `TRUE`).

`scan_identifier`

  Specifies if identifiers are recognized (the default is `TRUE`).

`scan_identifier_1char`

  Specifies if single-character identifiers are recognized (the default is `FALSE`).

`scan_identifier_NULL`

  Specifies if `NULL` is reported as `G_TOKEN_IDENTIFIER_NULL` (the default is `FALSE`).

`scan_symbols`

  Specifies if symbols are recognized (the default is `TRUE`).

`scan_binary`

  Specifies if binary numbers are recognized (the default is `FALSE`).

`scan_octal`

  Specifies if octal numbers are recognized (the default is `TRUE`).

`scan_float`

  Specifies if floating point numbers are recognized (the default is `TRUE`).

`scan_hex`

  Specifies if hexadecimal numbers are recognized (the default is `TRUE`).

`scan_hex_dollar`

  Specifies if ‘$’ is recognized as a prefix for hexadecimal numbers (the default is `FALSE`).

`scan_string_sq`

  Specifies if strings can be enclosed in single quotes (the default is `TRUE`).

`scan_string_dq`

  Specifies if strings can be enclosed in double quotes (the default is `TRUE`).

`numbers_2_int`

  Specifies if binary, octal and hexadecimal numbers are reported as `G_TOKEN_INT` (the default is `TRUE`).

`int_2_float`

  Specifies if all numbers are reported as `G_TOKEN_FLOAT` (the default is `FALSE`).

`identifier_2_string`

  Specifies if identifiers are reported as strings (the default is `FALSE`).

`char_2_token`

  Specifies if characters are reported by setting `token = ch` or as `G_TOKEN_CHAR` (the default is `TRUE`).

`symbol_2_token`

  Specifies if symbols are reported by setting `token = v_symbol` or as `G_TOKEN_SYMBOL` (the default is `FALSE`).

`scope_0_fallback`

  Specifies if a symbol is searched for in the default scope in addition to the current scope (the default is `FALSE`).

`store_int64`

  Use value.v_int64 rather than v_int.

Available since: 2.0