Repository URL to install this package:
Version:
3.0.0 ▾
|
// included by glib2.pas
{$IFDEF read_forward_definitions}
{$ENDIF read_forward_definitions}
//------------------------------------------------------------------------------
{$IFDEF read_interface_types}
PGTokenType = ^TGTokenType;
TGTokenType = gint;
PGScanner = ^TGScanner;
PGScannerConfig = ^TGScannerConfig;
PGTokenValue = ^TGTokenValue;
TGTokenValue = record
case longint of
0 : ( v_symbol : gpointer );
1 : ( v_identifier : Pgchar );
2 : ( v_binary : gulong );
3 : ( v_octal : gulong );
4 : ( v_int : gulong );
5 : ( v_float : gdouble );
6 : ( v_hex : gulong );
7 : ( v_string : Pgchar );
8 : ( v_comment : Pgchar );
9 : ( v_char : guchar );
10 : ( v_error : guint );
end;
TGScannerMsgFunc = procedure (scanner:PGScanner; message:Pgchar; error:gboolean);cdecl;
TGScanner = record
user_data : gpointer; { unused fields }
max_parse_errors : guint;
parse_errors : guint; { g_scanner_error() increments this field }
input_name : Pgchar; { name of input stream, featured by
the default message handler }
qdata : PGData; { quarked data }
config : PGScannerConfig; { link into the scanner configuration }
token : TGTokenType; { fields filled in after g_scanner_get_next_token() }
value : TGTokenValue;
line : guint;
position : guint;
next_token : TGTokenType; { fields filled in after g_scanner_peek_next_token() }
next_value : TGTokenValue;
next_line : guint;
next_position : guint;
symbol_table : PGHashTable; { to be considered private }
input_fd : gint;
text : Pgchar;
text_end : Pgchar;
buffer : Pgchar;
scope_id : guint;
msg_handler : TGScannerMsgFunc; { handler function for _warn and _error }
end;
TGScannerConfig = record
{ Character sets }
cset_skip_characters : Pgchar; { default: " \t\n" }
cset_identifier_first : Pgchar;
cset_identifier_nth : Pgchar;
cpair_comment_single : Pgchar; { default: "#\n" }
flag0 : longint; { Boolean values to be adjusted "on the fly"
to configure scanning behaviour. }
padding_dummy : guint;
end;
{$ENDIF read_interface_types}
//------------------------------------------------------------------------------
{$IFDEF read_interface_rest}
const
G_TOKEN_LEFT_PAREN = 40; // ASCII Code of '('
G_TOKEN_RIGHT_PAREN = 41; // ASCII Code of ')'
G_TOKEN_LEFT_CURLY = 123; // ASCII Code of '{'
G_TOKEN_RIGHT_CURLY = 125; // ASCII Code of '}'
G_TOKEN_LEFT_BRACE = 91; // ASCII Code of '['
G_TOKEN_RIGHT_BRACE = 93; // ASCII Code of ']'
G_TOKEN_EQUAL_SIGN = 61; // ASCII Code of '='
G_TOKEN_COMMA = 44; // ASCII Code of ','
G_TOKEN_NONE = 256;
G_TOKEN_ERROR = 257;
G_TOKEN_CHAR = 258;
G_TOKEN_OCTAL = 260;
G_TOKEN_INT = 261;
G_TOKEN_HEX = 262;
G_TOKEN_FLOAT = 263;
G_TOKEN_STRING = 264;
G_TOKEN_SYMBOL = 265;
G_TOKEN_IDENTIFIER = 266;
G_TOKEN_IDENTIFIER_NULL = 267;
G_TOKEN_COMMENT_SINGLE = 268;
G_TOKEN_COMMENT_MULTI = 269;
G_TOKEN_LAST = 270;
{ Character sets }
const
G_CSET_A_2_Z_UCASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; // NOTE: renamed
G_CSET_a_2_z_lcase = 'abcdefghijklmnopqrstuvwxyz'; // dito
G_CSET_DIGITS = '0123456789';
{
How to express an escape sequenced string in pascal???
G_CSET_LATINC = #300 + #301 + #302 + #303 + #304 + #305 + #306 + #307 + #310 + #311 +
#312 + #313 + #314 + #315 + #316 + #317 + #320 + #321 + #322 + #323 +
#324 + #325 + #326 + #330 + #331 + #332 + #333 + #334 + #335 + #336;
G_CSET_LATINS = #337#340#341#342#343#344#345#346#347#350#351#352#353#354#355#356#357#360
#361#362#363#364#365#366#370#371#372#373#374#375#376#377;
This is the original version:
#define G_CSET_LATINC "\300\301\302\303\304\305\306"\
"\307\310\311\312\313\314\315\316\317\320"\
"\321\322\323\324\325\326"\
"\330\331\332\333\334\335\336"
#define G_CSET_LATINS "\337\340\341\342\343\344\345\346"\
"\347\350\351\352\353\354\355\356\357\360"\
"\361\362\363\364\365\366"\
"\370\371\372\373\374\375\376\377"
}
const
bm_TGScannerConfig_case_sensitive = $1;
bp_TGScannerConfig_case_sensitive = 0;
bm_TGScannerConfig_skip_comment_multi = $2;
bp_TGScannerConfig_skip_comment_multi = 1;
bm_TGScannerConfig_skip_comment_single = $4;
bp_TGScannerConfig_skip_comment_single = 2;
bm_TGScannerConfig_scan_comment_multi = $8;
bp_TGScannerConfig_scan_comment_multi = 3;
bm_TGScannerConfig_scan_identifier = $10;
bp_TGScannerConfig_scan_identifier = 4;
bm_TGScannerConfig_scan_identifier_1char = $20;
bp_TGScannerConfig_scan_identifier_1char = 5;
bm_TGScannerConfig_scan_identifier_NULL = $40;
bp_TGScannerConfig_scan_identifier_NULL = 6;
bm_TGScannerConfig_scan_symbols = $80;
bp_TGScannerConfig_scan_symbols = 7;
bm_TGScannerConfig_scan_binary = $100;
bp_TGScannerConfig_scan_binary = 8;
bm_TGScannerConfig_scan_octal = $200;
bp_TGScannerConfig_scan_octal = 9;
bm_TGScannerConfig_scan_float = $400;
bp_TGScannerConfig_scan_float = 10;
bm_TGScannerConfig_scan_hex = $800;
bp_TGScannerConfig_scan_hex = 11;
bm_TGScannerConfig_scan_hex_dollar = $1000;
bp_TGScannerConfig_scan_hex_dollar = 12;
bm_TGScannerConfig_scan_string_sq = $2000;
bp_TGScannerConfig_scan_string_sq = 13;
bm_TGScannerConfig_scan_string_dq = $4000;
bp_TGScannerConfig_scan_string_dq = 14;
bm_TGScannerConfig_numbers_2_int = $8000;
bp_TGScannerConfig_numbers_2_int = 15;
bm_TGScannerConfig_int_2_float = $10000;
bp_TGScannerConfig_int_2_float = 16;
bm_TGScannerConfig_identifier_2_string = $20000;
bp_TGScannerConfig_identifier_2_string = 17;
bm_TGScannerConfig_char_2_token = $40000;
bp_TGScannerConfig_char_2_token = 18;
bm_TGScannerConfig_symbol_2_token = $80000;
bp_TGScannerConfig_symbol_2_token = 19;
bm_TGScannerConfig_scope_0_fallback = $100000;
bp_TGScannerConfig_scope_0_fallback = 20;
{ Should symbol lookup work case sensitive? }
function TGScannerConfig_case_sensitive(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_case_sensitive(var a : TGScannerConfig; __case_sensitive : guint);
{ C-like comment }
function TGScannerConfig_skip_comment_multi(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_skip_comment_multi(var a : TGScannerConfig; __skip_comment_multi : guint);
{ single line comment }
function TGScannerConfig_skip_comment_single(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_skip_comment_single(var a : TGScannerConfig; __skip_comment_single : guint);
{ scan multi line comments? }
function TGScannerConfig_scan_comment_multi(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_comment_multi(var a : TGScannerConfig; __scan_comment_multi : guint);
function TGScannerConfig_scan_identifier(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_identifier(var a : TGScannerConfig; __scan_identifier : guint);
function TGScannerConfig_scan_identifier_1char(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_identifier_1char(var a : TGScannerConfig; __scan_identifier_1char : guint);
function TGScannerConfig_scan_identifier_NULL(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_identifier_NULL(var a : TGScannerConfig; __scan_identifier_NULL : guint);
function TGScannerConfig_scan_symbols(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_symbols(var a : TGScannerConfig; __scan_symbols : guint);
function TGScannerConfig_scan_binary(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_binary(var a : TGScannerConfig; __scan_binary : guint);
function TGScannerConfig_scan_octal(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_octal(var a : TGScannerConfig; __scan_octal : guint);
function TGScannerConfig_scan_float(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_float(var a : TGScannerConfig; __scan_float : guint);
{ `0x0ff0' }
function TGScannerConfig_scan_hex(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_hex(var a : TGScannerConfig; __scan_hex : guint);
{ `$0ff0' }
function TGScannerConfig_scan_hex_dollar(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_hex_dollar(var a : TGScannerConfig; __scan_hex_dollar : guint);
{ string: 'anything' }
function TGScannerConfig_scan_string_sq(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_string_sq(var a : TGScannerConfig; __scan_string_sq : guint);
{ string: "\\-escapes!\n" }
function TGScannerConfig_scan_string_dq(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scan_string_dq(var a : TGScannerConfig; __scan_string_dq : guint);
{ bin, octal, hex => int }
function TGScannerConfig_numbers_2_int(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_numbers_2_int(var a : TGScannerConfig; __numbers_2_int : guint);
{ int => G_TOKEN_FLOAT? }
function TGScannerConfig_int_2_float(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_int_2_float(var a : TGScannerConfig; __int_2_float : guint);
function TGScannerConfig_identifier_2_string(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_identifier_2_string(var a : TGScannerConfig; __identifier_2_string : guint);
{ return G_TOKEN_CHAR? }
function TGScannerConfig_char_2_token(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_char_2_token(var a : TGScannerConfig; __char_2_token : guint);
function TGScannerConfig_symbol_2_token(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_symbol_2_token(var a : TGScannerConfig; __symbol_2_token : guint);
{ try scope 0 on lookups? }
function TGScannerConfig_scope_0_fallback(var a : TGScannerConfig) : guint;
procedure TGScannerConfig_set_scope_0_fallback(var a : TGScannerConfig; __scope_0_fallback : guint);
function g_scanner_new(config_templ:PGScannerConfig):PGScanner;cdecl;external gliblib name 'g_scanner_new';
procedure g_scanner_destroy(scanner:PGScanner);cdecl;external gliblib name 'g_scanner_destroy';
procedure g_scanner_input_file(scanner:PGScanner; input_fd:gint);cdecl;external gliblib name 'g_scanner_input_file';
procedure g_scanner_sync_file_offset(scanner:PGScanner);cdecl;external gliblib name 'g_scanner_sync_file_offset';
procedure g_scanner_input_text(scanner:PGScanner; text:Pgchar; text_len:guint);cdecl;external gliblib name 'g_scanner_input_text';
function g_scanner_get_next_token(scanner:PGScanner):TGTokenType;cdecl;external gliblib name 'g_scanner_get_next_token';
function g_scanner_peek_next_token(scanner:PGScanner):TGTokenType;cdecl;external gliblib name 'g_scanner_peek_next_token';
function g_scanner_cur_token(scanner:PGScanner):TGTokenType;cdecl;external gliblib name 'g_scanner_cur_token';
function g_scanner_cur_value(scanner:PGScanner):TGTokenValue;cdecl;external gliblib name 'g_scanner_cur_value';
function g_scanner_cur_line(scanner:PGScanner):guint;cdecl;external gliblib name 'g_scanner_cur_line';
function g_scanner_cur_position(scanner:PGScanner):guint;cdecl;external gliblib name 'g_scanner_cur_position';
function g_scanner_eof(scanner:PGScanner):gboolean;cdecl;external gliblib name 'g_scanner_eof';
function g_scanner_set_scope(scanner:PGScanner; scope_id:guint):guint;cdecl;external gliblib name 'g_scanner_set_scope';
procedure g_scanner_scope_add_symbol(scanner:PGScanner; scope_id:guint; symbol:Pgchar; value:gpointer);cdecl;external gliblib name 'g_scanner_scope_add_symbol';
procedure g_scanner_scope_remove_symbol(scanner:PGScanner; scope_id:guint; symbol:Pgchar);cdecl;external gliblib name 'g_scanner_scope_remove_symbol';
function g_scanner_scope_lookup_symbol(scanner:PGScanner; scope_id:guint; symbol:Pgchar):gpointer;cdecl;external gliblib name 'g_scanner_scope_lookup_symbol';
procedure g_scanner_scope_foreach_symbol(scanner:PGScanner; scope_id:guint; func:TGHFunc; user_data:gpointer);cdecl;external gliblib name 'g_scanner_scope_foreach_symbol';
function g_scanner_lookup_symbol(scanner:PGScanner; symbol:Pgchar):gpointer;cdecl;external gliblib name 'g_scanner_lookup_symbol';
procedure g_scanner_unexp_token(scanner:PGScanner; expected_token:TGTokenType; identifier_spec:Pgchar; symbol_spec:Pgchar; symbol_name:Pgchar;
_message:Pgchar; is_error:gint);cdecl;external gliblib name 'g_scanner_unexp_token';
{$IFNDEF KYLIX}
procedure g_scanner_error(scanner:PGScanner; format:Pgchar; args:array of const);cdecl;overload;external gliblib name 'g_scanner_error';
procedure g_scanner_error(scanner:PGScanner; format:Pgchar);cdecl;overload;varargs;external gliblib name 'g_scanner_error';
procedure g_scanner_warn(scanner:PGScanner; format:Pgchar; args:array of const);cdecl;overload;external gliblib name 'g_scanner_warn';
procedure g_scanner_warn(scanner:PGScanner; format:Pgchar);cdecl;overload;varargs;external gliblib name 'g_scanner_warn';
{$ELSE}
procedure g_scanner_error(scanner:PGScanner; format:Pgchar);varargs;cdecl;external gliblib name 'g_scanner_error';
procedure g_scanner_warn(scanner:PGScanner; format:Pgchar);varargs;cdecl;external gliblib name 'g_scanner_warn';
{$ENDIF}
{$ifndef G_DISABLE_DEPRECATED}
procedure g_scanner_freeze_symbol_table(scanner : PGScanner);
procedure g_scanner_thaw_symbol_table(scanner : PGScanner);
{$endif} { G_DISABLE_DEPRECATED }
{$ENDIF read_interface_rest}
// included by glib2.pas