コード例 #1
0
ファイル: p2_error.c プロジェクト: joshsh/archive
P2_error P2_error_init()
{
    P2_error_type = P2_register_type(P2_ERROR_NAME, NULL, NULL, NULL, NULL);    

    registered_errors_ = array__new(30, 2.0);
    error_dictionary_ = hash_table__new(60, 2.0, 2.0, STRING_DEFAULTS);

    P2_SUCCESS = NULL;

    // Bad token syntax
    INVALID_TOKEN = P2_register_error("INVALID_TOKEN");
    INVALID_IDENTIFIER = P2_register_error("INVALID_IDENTIFIER");
    INVALID_COMMAND_NAME = P2_register_error("INVALID_COMMAND_NAME");

    // Item not found
    UNKNOWN_COMMAND = P2_register_error("UNKNOWN_COMMAND");
    UNKNOWN_SYMBOL = P2_register_error("UNKNOWN_SYMBOL");
    UNKNOWN_VARIABLE = P2_register_error("UNKNOWN_VARIABLE");
    UNKNOWN_DATASET = P2_register_error("UNKNOWN_DATASET");

    // Bad command call
    BAD_ARGUMENT = P2_register_error("BAD_ARGUMENT");
    TOO_FEW_ARGUMENTS = P2_register_error("TOO_FEW_ARGUMENTS");
    TOO_MANY_ARGUMENTS = P2_register_error("TOO_MANY_ARGUMENTS");

    REDUX_FAILURE = P2_register_error("REDUX_FAILURE");
    
    // Program-level errors
    DUPLICATE_COMMAND_NAME = P2_register_error("DUPLICATE_COMMAND_NAME");
    BAD_REGEX = P2_register_error("BAD_REGEX");
    UNEXPECTED_VALUE = P2_register_error("UNEXPECTED_VALUE");
    
    return P2_SUCCESS;
}
コード例 #2
0
ファイル: map.c プロジェクト: tylerneylon/ccache
Map map__new(map__Hash hash, map__Eq eq) {
  Map map = malloc(sizeof(MapStruct));
  map->count = 0;

  map->buckets = array__new(MIN_BUCKETS, sizeof(void *));
  map->buckets->releaser = release_bucket;
  array__add_zeroed_items(map->buckets, MIN_BUCKETS);

  map->hash = hash;
  map->eq = eq;
  map->key_releaser = NULL;
  map->value_releaser = NULL;
  map->pair_alloc = malloc;
  return map;
}