Esempio n. 1
0
TokenType token_type(const string &str)
{
  if (is_valid_operator(str))
    return operator_symbol;

  if (is_valid_operator_as_function(str))
    return op_function;

  if (is_valid_identifier(str))
    return plain_identifier;

  if (is_valid_symbol(str))
    return symbol;

  if (is_valid_label(str))
    return label;

  if (is_valid_number(str))
    return number;

  if (is_valid_type_name(str))
    return type_id;

  if (is_valid_type_var(str))
    return type_var;

  if (is_valid_builtin(str))
    return builtin;

  if (is_valid_string_lit(str))
    return string_lit;
    
  return invalid;
}
Esempio n. 2
0
// =========
symbol_t Tape::get_position_symbol () const
{
  assert (position_ < tape_.size());

symbol_t ret_symbol = tape_[position_];
  assert (is_valid_symbol(ret_symbol));
  return ret_symbol;
}
Esempio n. 3
0
/* Initializes a position on the options table. This is intended to be used at
 * initialization to make a table of valid options and its default values. */
static int option_init(const char *name, enum option_type type)
{
	unsigned int h=hash(name);
	int pos=find_free(h);
	
	assert (strlen(name) < OPTION_NAME_MAX);
	assert (is_valid_symbol (name));
	assert(pos>=0);
	
	strcpy (options[pos].name, name);
	options[pos].hash=h;
	options[pos].type = type;
	options[pos].ignore_in_config = 0;
	options[pos].set_in_config = 0;
	options[pos].check = option_check_true;
	options[pos].count = 0;
	options[pos].constraints = NULL;

	options_num++;
	return pos;
}
Esempio n. 4
0
bool asset_symbol_eq_lit_predicate::validate()const
{
   return is_valid_symbol( symbol );
}
Esempio n. 5
0
void eobj_save(t_gobj* x, t_binbuf *b)
{
    int i, state;
    int      argc = 0;
    t_atom*  argv    = NULL;
    t_binbuf* d;
    t_object* z = (t_object *)x;
    t_ebox*   y = (t_ebox *)z;
    t_eclass* c = eobj_getclass(x);
    char buffer[MAXPDSTRING];
    if(x && b)
    {
        if(eobj_isbox(x))
        {
            
            if(c && b)
            {
                state = canvas_suspend_dsp();
                binbuf_addv(b, (char *)"ssiis", &s__X, s_cream_obj, (t_int)z->te_xpix, (t_int)z->te_ypix, eobj_getclassname(x));
                for(i = 0; i < c->c_nattr; i++)
                {
                    if(c->c_attr[i] && c->c_attr[i]->save && c->c_attr[i]->name)
                    {
                        eobj_attr_getvalueof(x, c->c_attr[i]->name, &argc, &argv);
                        if(argc && argv)
                        {
                            if(!(argc == 1 && atom_gettype(argv) == A_SYMBOL && !is_valid_symbol(atom_getsymbol(argv))))
                            {
                                snprintf(buffer, MAXPDSTRING, "@%s", c->c_attr[i]->name->s_name);
                                binbuf_append_attribute(b, gensym(buffer), argc, argv);
                            }
                            argc = 0;
                            free(argv);
                            argv = NULL;
                        }
                    }
                }
                argv = (t_atom *)malloc(3 * sizeof(t_atom));
                if(argv)
                {
                    for(i = 0; i < y->b_nparams; i++)
                    {
                        if(y->b_params[i])
                        {
                            snprintf(buffer, MAXPDSTRING, "@param%i", i);
                            atom_setsym(argv, y->b_params[i]->p_name);
                            atom_setsym(argv+1, y->b_params[i]->p_label);
                            atom_setfloat(argv+2, y->b_params[i]->p_index);
                            binbuf_append_attribute(b, gensym(buffer), 3, argv);
                        }
                    }
                }
                
                if(c->c_widget.w_save != NULL)
                {
                    c->c_widget.w_save(x, b);
                }
                
                binbuf_addv(b, (char *)";");
                canvas_resume_dsp(state);
            }
        }
        else
        {
            binbuf_addv(b, (char *)"ssii", &s__X, s_cream_obj, (t_int)z->te_xpix, (t_int)z->te_ypix);
            d = z->te_binbuf;
            if(d)
            {
                binbuf_addbinbuf(b, d);
            }
            if(c->c_widget.w_save != NULL)
            {
                c->c_widget.w_save(x, b);
            }
            binbuf_addv(b, (char *)";");
        }
    }
}
Esempio n. 6
0
// =========
void Tape::set_position_symbol (const symbol_t& symbol_i)
{
  assert (position_ < tape_.size());
  assert (is_valid_symbol(symbol_i));
  tape_[position_] = symbol_i;
}