Ejemplo n.º 1
0
SQInteger SQFuncState::GetOuterVariable(const SQObject &name)
{
	SQInteger outers = _outervalues.size();
	for(SQInteger i = 0; i<outers; i++) {
		if(_string(_outervalues[i]._name) == _string(name))
			return i;
	}
	SQInteger pos=-1;
	if(_parent) { 
		pos = _parent->GetLocalVariable(name);
		if(pos == -1) {
			pos = _parent->GetOuterVariable(name);
			if(pos != -1) {
				_outervalues.push_back(SQOuterVar(name,SQObjectPtr(SQInteger(pos)),otOUTER)); //local
				return _outervalues.size() - 1;	
			}
		}
		else {
			_parent->MarkLocalAsOuter(pos);
			_outervalues.push_back(SQOuterVar(name,SQObjectPtr(SQInteger(pos)),otLOCAL)); //local
			return _outervalues.size() - 1;
			
			
		}
	}
	return -1;
}
Ejemplo n.º 2
0
int main()
{
	int a[] = {1, 2, 3, 4, 5, 6};
	const int alen = sizeof(a) / sizeof(a[0]);
	GamePlayer gp;
	std::cout << gp << "Author:" << author << " authorName" << authorName << std::endl;
	std::vector<int> vi(a, a + alen);
	std::vector<int>::iterator iter = vi.begin();
	std::vector<int>::const_iterator citer = vi.begin();
	citer++;
	//citer = 10;

	*iter = 20;
	std::cout << *iter << std::endl;

	std::cout << "max:" << Max(2, 3) << std::endl;

	std::cout << "_string(test1) * _string(test2) :" 
		<< _string("test1") * _string("test2") << std::endl;

	const _string t("test3="); 
	_string f("what");
	f[0] = 'f';
	std::cout << t.getv() << std::endl;
	std::cout << t.getcount() << std::endl;
	std::cout << "f[0]:" << f[0] << std::endl; 
	return 0;
}
Ejemplo n.º 3
0
SQInteger SQFuncState::GetOuterVariable(const SQObject &name)
{
	SQInteger outers = _outervalues.size();
	for(SQInteger i = 0; i<outers; i++) {
		if(_string(_outervalues[i]._name) == _string(name))
			return i;
	}
	return -1;
}
Ejemplo n.º 4
0
SQInteger SQFuncState::GetLocalVariable(const SQObject &name)
{
	SQInteger locals=_vlocals.size();
	while(locals>=1){
		if(type(_vlocals[locals-1]._name)==OT_STRING && _string(_vlocals[locals-1]._name)==_string(name)){
			return locals-1;
		}
		locals--;
	}
	return -1;
}
Ejemplo n.º 5
0
static
Value *
eval(const Ast *expr) {
	switch(expr->class) {
	case N_CALL:
		return call(expr);
	case N_ASSIGNMENT:
		return assignment(expr);
	case N_IDENTIFIER:
		return identifier(expr);
	case N_NEG:
		return _neg(expr);
	case N_NOT:
		return _not(expr);
	case N_EQ:
		return _eq(expr);
	case N_NEQ:
		return _neq(expr);
	case N_AND:
		return _and(expr);
	case N_IOR:
		return _ior(expr);
	case N_XOR:
		return _neq(expr); // alias
	case N_LT:
		return _lt(expr);
	case N_LE:
		return _le(expr);
	case N_GE:
		return _ge(expr);
	case N_GT:
		return _gt(expr);
	case N_ADD:
		return _add(expr);
	case N_SUB:
		return _sub(expr);
	case N_MUL:
		return _mul(expr);
	case N_DIV:
		return _div(expr);
	case N_POW:
		return _pow(expr);
	case N_MOD:
		return _mod(expr);
	case N_BOOLEAN:
		return _bool(expr);
	case N_INTEGER:
		return _int(expr);
	case N_FLOAT:
		return _float(expr);
	case N_STRING:
		return _string(expr);
	case N_SET:
		return _set(expr);
	case N_R:
		return _relation(expr);
	}
printf("EVALFAIL %d ", expr->class); pn(expr);
	assert(false && "should not be reached");
}
Ejemplo n.º 6
0
static int symbol_to_string(vm_thread_t *thread, obj_t *sym)
{
	SAFE_ASSERT(IS_SYMBOL(*sym));
	char *str = SYMBOL(*sym);

	RETURN_OBJ(_string(&thread->heap.allocator, str, 0));
}
Ejemplo n.º 7
0
void Parser::literalString(MethodGenerationContext* mgenc) {
    StdString s = _string();

    VMString* str = GetUniverse()->NewString(s);
    mgenc->AddLiteralIfAbsent(str);

    bcGen->EmitPUSHCONSTANT(mgenc, str);
}
Ejemplo n.º 8
0
int main () {
//	_stack();
//	_regex();
//	_tree();
//	_search();
//	_problem();
	_string();
}
Ejemplo n.º 9
0
 SQRESULT at(HSQUIRRELVM vm) {
     SQObjectPtr self = vm->GetAt(vm->_top-2);
     
     if (type(self) == OT_STRING) {
         SQString *selfString = _string(self);
         SQInteger index = selfString->_len;
         
         sq_getinteger(vm, -1, &index);
         
         auto begin = selfString->_val;
         auto end = begin+selfString->_len;
         
         try {
             SQChar *from = NULL;
             
             
             if (index >= 0) {
                 from = begin; utf8::advance(from, index, end);
                 
             }
             else {
                 from = end;
                 
                 for (auto i = index; i < 0; ++i) {
                     utf8::prior(from, begin);
                 }
             }
             
             auto to = from; utf8::advance(to, 1, end);
             
             SQInteger resultLen = to-from;
             assert((resultLen >= 0) && "Length of the resulting string should not be negative");
             
             if (resultLen < 0) {
                 sq_pushnull(vm);
                 return 1;
             }
             
             SQChar *resultSequence = vm->_sharedstate->GetScratchPad(resultLen+1);
             
             memset(resultSequence, 0, (resultLen+1)*sizeof(SQChar));
             memcpy(resultSequence, from, resultLen*sizeof(SQChar));
             
             SQString *result = SQString::Create(vm->_sharedstate, resultSequence);
             
             vm->Push(result);
         } catch (...) {
             sq_pushnull(vm);
         }
     }
     else {
         vm->Raise_Error("string::at - Invalid receiver of type %s", GetTypeName(self));
         return SQ_ERROR;
     }
     
     return 1;
 }
Ejemplo n.º 10
0
bool WriteObject( HSQUIRRELVM v, SQUserPointer up, SQWRITEFUNC write, SQObjectPtr &o ) {
	_CHECK_IO( SafeWrite( v, write, up, &type( o ), sizeof( SQObjectType ) ) );
	switch ( type( o ) ) {
	case OT_STRING:
		_CHECK_IO( SafeWrite( v, write, up, &_string( o )->_len, sizeof( SQInteger ) ) );
		_CHECK_IO( SafeWrite( v, write, up, _stringval( o ), rsl( _string( o )->_len ) ) );
		break;
	case OT_INTEGER:
		_CHECK_IO( SafeWrite( v, write, up, &_integer( o ), sizeof( SQInteger ) ) );break;
	case OT_FLOAT:
		_CHECK_IO( SafeWrite( v, write, up, &_float( o ), sizeof( SQFloat ) ) );break;
	case OT_NULL:
		break;
	default:
		v->Raise_Error( _SC( "cannot serialize a %s" ), GetTypeName( o ) );
		return false;
	}
	return true;
}
Ejemplo n.º 11
0
void
drawwin(int i)
{
	draw(screen, win[i].r, lightblue, nil, ZP);
	_string(screen, addpt(win[i].r.min, Pt(2,0)), display->black, ZP,
		font, win[i].label, nil, strlen(win[i].label), 
		win[i].r, nil, ZP, SoverD);
	border(screen, win[i].r, 1, display->black, ZP);	
	win[i].dirty = 0;
}
Ejemplo n.º 12
0
bool excel::AnalyzeLine( _lpctstr pstrLine, int nSize )
{
	if( !pstrLine || nSize == 0)	return false;
	int i = 0;

	int n = 0;
	do
	{
		ASSERT( i < nSize );
		if( i > nSize )
			return false;

		ASSERT( n < sizeof( m_szUnit ) );
		if( n >= sizeof( m_szUnit ) )	
			return false;

		switch( pstrLine[i] )
		{
			case 0:
			case _T('\t'):
			case _T('\n'):
			{
				if( !m_bReadString && i > 0 )
				{
					m_szUnit[m_nCP] = 0;
					m_nCP = 0;
					AddElement( m_nLineMax, m_nCurCol++, _string( m_szUnit ) );
				}
				else
				{
					m_szUnit[m_nCP++] = pstrLine[i];
				}
			}
			break;
			case _T('"'):
			{
				m_bReadString = !m_bReadString;
			}
			break;
			default:
			{
				m_szUnit[m_nCP++] = pstrLine[i];
			}
		}
	}while( pstrLine[i++] != 0 );
	// 该行结束的时候,如果不是在读取字符串状态,开始新的一条记录。
	if( !m_bReadString && m_nCurCol != 0 )
	{
		m_nLineMax++;
		m_nCurCol = 0;
	}
	return true;
}
Ejemplo n.º 13
0
Archivo: kbmap.c Proyecto: aahud/harvey
void
drawmap(int i)
{
	if(map[i].current)
		draw(screen, map[i].r, justblue, nil, ZP);
	else
		draw(screen, map[i].r, lightblue, nil, ZP);

	_string(screen, addpt(map[i].r.min, Pt(2,0)), display->black, ZP,
		font, map[i].name, nil, strlen(map[i].name), 
		map[i].r, nil, ZP, SoverD);
	border(screen, map[i].r, 1, display->black, ZP);	
}
Ejemplo n.º 14
0
//STRING DEFAULT DELEGATE//////////////////////////
static SQInteger string_slice(HSQUIRRELVM v)
{
	SQInteger sidx,eidx;
	SQObjectPtr o;
	if(SQ_FAILED(get_slice_params(v,sidx,eidx,o)))return -1;
	SQInteger slen = _string(o)->_len;
	if(sidx < 0)sidx = slen + sidx;
	if(eidx < 0)eidx = slen + eidx;
	if(eidx < sidx)	return sq_throwerror(v,_SC("wrong indexes"));
	if(eidx > slen)	return sq_throwerror(v,_SC("slice out of range"));
	v->Push(SQString::Create(_ss(v),&_stringval(o)[sidx],eidx-sidx));
	return 1;
}
Ejemplo n.º 15
0
void Parser::literalSymbol(MethodGenerationContext* mgenc) {
    VMSymbol* symb;
    expect(Pound);
    if(sym == STString) {
        StdString s = _string();
        symb = GetUniverse()->SymbolFor(s);

    } else
    symb = selector();
    mgenc->AddLiteralIfAbsent(symb);

    bcGen->EmitPUSHCONSTANT(mgenc, symb);
}
Ejemplo n.º 16
0
        void init()
        {
            static int ball_num = 0;
            ball_num++;

			char name[16];
			sprintf(name, "ball%d", ball_num);
            m_node = getGameSceneMgr()->createObject(_string(name), _string("ttball.obj"));
            if (m_node == NULL)
            {
                return;
            }
            
            m_node->addAnimator(this);
            
            SPosOnTable pos;
			pos.high = 0.2f;
			pos.rightHand = false;
			pos.sideB = false;
			pos.tableEnd = -0.3f;
			pos.tableSide = 0.3f;
			
			setTablePos(pos);
        }
Ejemplo n.º 17
0
SQString *SQVM::PrintObjVal(const SQObject &o)
{
	char buf[NUMBER_MAX_CHAR+1];
	switch(type(o)) {
	case OT_STRING: return _string(o);
	case OT_INTEGER:
		seprintf(buf, lastof(buf), OTTD_PRINTF64, _integer(o));
		return SQString::Create(_ss(this), buf);
	case OT_FLOAT:
		seprintf(buf, lastof(buf), "%.14g", _float(o));
		return SQString::Create(_ss(this), buf);
	default:
		return SQString::Create(_ss(this), GetTypeName(o));
	}
}
Ejemplo n.º 18
0
SQString *SQVM::PrintObjVal(const SQObject &o)
{
	switch(type(o)) {
	case OT_STRING: return _string(o);
	case OT_INTEGER:
		scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%d"), _integer(o));
		return SQString::Create(_ss(this), _spval);
		break;
	case OT_FLOAT:
		scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%.14g"), _float(o));
		return SQString::Create(_ss(this), _spval);
		break;
	default:
		return SQString::Create(_ss(this), GetTypeName(o));
	}
}
Ejemplo n.º 19
0
uint
drawtext(char *s, Image *m, Image *clipr, Point o)
{
    char *t, *nt, *e;
    uint dy;

    if(s == nil)
        s = "???";

    dy = 0;
    for(t=s; t&&*t; t=nt) {
        if(nt = strchr(t, '\n')) {
            e = nt;
            nt++;
        } else
            e = t+strlen(t);

        _string(m, Pt(o.x, o.y+dy), display->black, ZP, display->defaultfont,
                t, nil, e-t, clipr->clipr, nil, ZP, SoverD);
        dy += display->defaultfont->height;
    }
    return dy;
}
Ejemplo n.º 20
0
SQString *SQVM::PrintObjVal(const SQObject &o)
{
	switch(type(o)) {
	case OT_STRING: return _string(o);
	case OT_INTEGER:
		// C::B patch: Support for Windows 64 bit
		#if defined(_WIN64)
		scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%I64d"), _integer(o));
		// C::B patch: Support for Linux 64 bit
		#elif defined(_SQ64)
		scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%ld"), _integer(o));
		#else
		scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%d"), _integer(o));
		#endif
		return SQString::Create(_ss(this), _spval);
		break;
	case OT_FLOAT:
		scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%.14g"), _float(o));
		return SQString::Create(_ss(this), _spval);
		break;
	default:
		return SQString::Create(_ss(this), GetTypeName(o));
	}
}
Ejemplo n.º 21
0
std::string Ty::string () const
{
	Pretty pr;
	_string(pr);
	return pr.ss.str();
}
Ejemplo n.º 22
0
Point
runestringnop(Image *dst, Point pt, Image *src, Point sp, Font *f, Rune *r, int len, Drawop op)
{
	return _string(dst, pt, src, sp, f, nil, r, len, dst->clipr, nil, ZP, op);
}
Ejemplo n.º 23
0
static void
nc_master(struct test_params *p)
{
    struct sockaddr_storage slave, my_addr;
    struct addrinfo *ai, *addrs, hints;
    char *host = (char *)NULL;
    int i;
    int err = 0;
    int test_tcp = true;
    int test_udp = true;
    int test_slave_loads = true;
    int test_master_loads = true;

    for (i = 1;  i < p->argc;  i++) {
        if (p->argv[i][0] == '-') {
            switch (p->argv[i][1]) {
            case 't':
                test_tcp = false;
                break;
            case 'u':
                test_udp = false;
                break;
            case 's':
                test_slave_loads = false;
                break;
            case 'm':
                test_master_loads = false;
                break;
            default:
                test_printf("... invalid switch '%s'\n", p->argv[i]);
                err++;
            }
        } else {
            if (host != (char *)NULL) {
                test_printf("... ignoring argument '%s'\n", p->argv[i]);
                err++;
            } else {
                host = p->argv[i];
            }
        }
    }
    if ((err != 0) || (p->argc < 2) || (host == (char *)NULL)) {
        test_printf("usage: 'master <host> [-t] [-u] [-s] [-m]'\n");
        test_printf("   -t - suppress TCP tests\n");
        test_printf("   -u - suppress UDP tests\n");
        test_printf("   -s - suppress slave load tests\n");
        test_printf("   -m - suppress master load tests\n");
        return;
    }
    bzero(&hints, sizeof(hints));
    hints.ai_family = PF_UNSPEC;
    hints.ai_socktype = SOCK_DGRAM;
    hints.ai_flags = AI_PASSIVE;
    if ((err = getaddrinfo(p->argv[1], _string(NC_SLAVE_PORT), &hints, &addrs)) != EAI_NONE) {
        test_printf("<ERROR> can't getaddrinfo(): %s\n", gai_strerror(err));
        pexit("getaddrinfo");
    }
    // Prepare a socket for each connection type
    ai = addrs;
    while (ai) {
        nc_master_test(ai->ai_addr, test_tcp, test_udp, test_slave_loads, test_master_loads);
        ai = ai->ai_next;
    }
}
Ejemplo n.º 24
0
Point
string(Image *dst, Point pt, Image *src, Point sp, Font *f, char *s)
{
	return _string(dst, pt, src, sp, f, s, nil, 1<<24, dst->clipr, nil, ZP, SoverD);
}
Ejemplo n.º 25
0
Point
stringbg(Image *dst, Point pt, Image *src, Point sp, Font *f, char *s, Image *bg, Point bgp)
{
	return _string(dst, pt, src, sp, f, s, nil, 1<<24, dst->clipr, bg, bgp, SoverD);
}
Ejemplo n.º 26
0
Point
stringnbgop(Image *dst, Point pt, Image *src, Point sp, Font *f, char *s, int len, Image *bg, Point bgp, int op)
{
	return _string(dst, pt, src, sp, f, s, nil, len, dst->clipr, bg, bgp, op);
}
Ejemplo n.º 27
0
Point
runestringbg(Image *dst, Point pt, Image *src, Point sp, Font *f, Rune *r, Image *bg, Point bgp)
{
	return _string(dst, pt, src, sp, f, nil, r, 1<<24, dst->clipr, bg, bgp, SoverD);
}
Ejemplo n.º 28
0
		friend const _string operator*(const _string & lhs, const _string &rhs) {
			return _string(lhs.v + rhs.v);
		}
Ejemplo n.º 29
0
Point
runestringnbgop(Image *dst, Point pt, Image *src, Point sp, Font *f, Rune *r, int len, Image *bg, Point bgp, int op)
{
	return _string(dst, pt, src, sp, f, nil, r, len, dst->clipr, bg, bgp, op);
}
Ejemplo n.º 30
0
Point
runestringn(Image *dst, Point pt, Image *src, Point sp, Font *f, Rune *r, int len)
{
	return _string(dst, pt, src, sp, f, nil, r, len, dst->clipr, nil, ZP, SoverD);
}