Exemplo n.º 1
0
struct value *
value_from_string (lex_string_t *s, enum value_tp tp)
{
  struct value *val = emalloc (sizeof(struct value));
  val->type = tp;
  val->cont.string = get_lex_string (s);
  return val;
}
Exemplo n.º 2
0
struct pair *
build_pair (lex_string_t * fieldname, struct value * val)
{
  struct pair *res = emalloc (sizeof(struct pair));
  res->key = get_lex_string (fieldname);
  res->value = val;
  return res;
}
Exemplo n.º 3
0
struct value *
build_rec_from_value (lex_string_t *tag, struct value *val)
{
  struct gen_record *rec = emalloc (sizeof(struct gen_record));
  struct value *res = emalloc (sizeof(struct value));

  rec->id = get_lex_string (tag);
  rec->singleton = 1;
  rec->cont.value = val;

  res->type = VAL_TP_RECORD;
  res->cont.record = rec;

  return res;
}
Exemplo n.º 4
0
struct value *
build_rec_from_pairlist (lex_string_t *tag, struct pair_lst *plst)
{
  struct gen_record *rec = emalloc (sizeof(struct gen_record));
  struct value *val = emalloc (sizeof(struct value));

  rec->id = get_lex_string (tag);
  rec->singleton = 0;
  rec->cont.list = plst;

  val->type = VAL_TP_RECORD;
  val->cont.record = rec;

  return val;
}
Exemplo n.º 5
0
int
setup_use_directive (struct symtab *symtab, 
		     lex_string_t *id, lex_string_t *val)
{
  int status = 0;
  str_ptr neo = get_lex_string (val);

  if (neo == NULL)
    return 1;

  if (LEX_STRING_EQUAL(id, "stack"))
    str_copy (symtab->directives->stack, neo);
  else if (LEX_STRING_EQUAL(id, "strategy"))
    str_copy (symtab->directives->strategy, neo);
  else if (LEX_STRING_EQUAL(id, "multi_fit"))
    str_copy (symtab->directives->multi_fit, neo);
  else
    status = 1;

  STR_PTR_FREE(neo);

  return status;
}