void device(string dev_type) { std.vector <string> params_ = new std.vector <string>(); require_token(m_tok_paren_left); string devname = get_identifier(); m_setup.log().debug.op("Parser: IC: {0}\n", devname); var tok = get_token(); while (tok.is_(m_tok_comma)) { tok = get_token(); if (/*tok.is_type(token_type::IDENTIFIER) ||*/ tok.is_type(parser_t_token_type.STRING)) { params_.push_back(tok.str()); tok = get_token(); } else { var value = stringify_expression(ref tok); params_.push_back(value); } } require_token(tok, m_tok_paren_right); std.vector <string> params_temp = new std.vector <string>(); params_temp.Add(devname); params_temp.AddRange(params_); m_setup.register_dev(dev_type, params_temp.ToArray()); //m_setup.register_dev(dev_type, devname, params); }
// name is first element so that __VA_ARGS__ always has one element //#define NET_REGISTER_DEVEXT(type, ...) \ // setup.register_dev(# type, { PSTRINGIFY_VA(__VA_ARGS__) }); public static void NET_REGISTER_DEVEXT(nlparse_t setup, string type, params string [] args) { setup.register_dev(type, args); }
// to be used to reference new library truthtable devices //#define NET_REGISTER_DEV(type, name) \ // setup.register_dev(# type, # name); public static void NET_REGISTER_DEV(nlparse_t setup, string type, string name) { setup.register_dev(type, name); }