Пример #1
0
gulong
xg_scanner_get_next_token_int (GScanner *scanner)
{
    g_scanner_get_next_token (scanner);
    if (scanner->token != G_TOKEN_INT)
    {
        g_scanner_critical (__func__, G_TOKEN_INT, scanner->token);
        return 0;
    }
    return g_scanner_cur_value (scanner).v_int;
}
Пример #2
0
gchar *
xg_scanner_get_next_token_identifier (GScanner *scanner)
{
    g_scanner_get_next_token (scanner);
    if (scanner->token != G_TOKEN_IDENTIFIER)
    {
        g_scanner_critical (__func__, G_TOKEN_IDENTIFIER, scanner->token);
        return NULL;
    }
    return g_scanner_cur_value (scanner).v_identifier;
}
Пример #3
0
gdouble
xg_scanner_get_next_token_float (GScanner *scanner)
{
    g_scanner_get_next_token (scanner);
    if (scanner->token != G_TOKEN_FLOAT)
    {
        g_scanner_critical (__func__, G_TOKEN_FLOAT, scanner->token);
        return 0;
    }
    return g_scanner_cur_value (scanner).v_float;
}
Пример #4
0
/* print the token in a friendly form */
void print_token(GScanner * scan, GTokenType tok)
{
	if (tok < G_TOKEN_NONE)
		d3_printf("tok: %c\n", tok);
	else {
		if (tok == G_TOKEN_STRING)
			d3_printf("tok: string val: %s\n",
				  g_scanner_cur_value(scan).v_string);
		else if (tok == G_TOKEN_IDENTIFIER)
			d3_printf("tok: ident val: %s\n",
				  g_scanner_cur_value(scan).v_string);
		else if (tok == G_TOKEN_SYMBOL)
			d3_printf("tok: symbol [%s] val: %d\n",
				  symname[g_scanner_cur_value(scan).v_int],
				  (int)g_scanner_cur_value(scan).v_int);
		else if (tok == G_TOKEN_INT)
			d3_printf("tok: int val: %d\n",
				  (int)g_scanner_cur_value(scan).v_int);
		else if (tok == G_TOKEN_FLOAT)
			d3_printf("tok: float val: %f\n",
				  g_scanner_cur_value(scan).v_float);
		else
			d3_printf("tok: %d\n", tok);
	}
}
Пример #5
0
static guint
theme_parse_int(GScanner *scanner,
                GTokenType wanted_token,
                guint *retval)
{
  guint token;
  
  token = g_scanner_get_next_token(scanner);
  if (token != wanted_token)
    return wanted_token;

  token = g_scanner_get_next_token(scanner);
  if (token != G_TOKEN_EQUAL_SIGN)
    return wanted_token;
  
  token = g_scanner_get_next_token(scanner);
  if (token != G_TOKEN_INT)
    return G_TOKEN_INT;
  
  *retval = g_scanner_cur_value(scanner).v_int;

  return G_TOKEN_NONE;
}