void VLocalizationTransUnitHandler::CheckPlatformTag( const VString& inTags, bool inIncludeIfTag, bool *ioExcluded)
{
	VectorOfVString tags;
	inTags.GetSubStrings( ' ', tags, false /*inReturnEmptyStrings*/, true /*inTrimSpaces*/);

	// same tags as in VContextualMenu::_AddDefaultTags
	bool mac = std::find( tags.begin(), tags.end(), CVSTR("mac")) != tags.end();
	bool win = std::find( tags.begin(), tags.end(), CVSTR("win")) != tags.end();
	bool lin = std::find( tags.begin(), tags.end(), CVSTR("linux")) != tags.end();

	if (mac || win || lin)
	{
		bool ok;
#if VERSIONMAC
		ok = mac;
#elif VERSIONWIN
		ok = win;
#elif VERSION_LINUX
		ok = lin;
#endif
		if (inIncludeIfTag && !ok)
			*ioExcluded = true;
		else if (!inIncludeIfTag && ok)
			*ioExcluded = true;
	}
}
Esempio n. 2
0
VError VJSONWriter::StringifyArray( const VJSONArray *inArray, VString& outString)
{
	VError err = VE_OK;
	
	if (inArray == NULL)
	{
		outString = VJSONValue::sUndefinedString;
	}
	else if (inArray->IsEmpty())
	{
		outString = "[]";
	}
	else
	{
		IncrementLevel();

		VectorOfVString array;
		size_t count = inArray->GetCount();

		try
		{
			array.resize( count);
		}
		catch(...)
		{
			err = vThrowError( VE_MEMORY_FULL);
		}

		VectorOfVString::iterator j = array.begin();
		for( size_t i = 0 ; (i < count) && (err == VE_OK) ; ++i, ++j)
		{
			err = StringifyValue( (*inArray)[i], *j);
			InsertIndentString( *j);
		}

		DecrementLevel();

		if (err == VE_OK)
		{
			array.front().Insert( '[', 1);
			AppendIndentString( array.back());
			array.back().AppendUniChar( ']');
			err = outString.Join( array, ',') ? VE_OK : vThrowError( VE_STRING_ALLOC_FAILED);
		}
	}
		
	return err;
}
Esempio n. 3
0
VError VJSONArray::GetString( VString& outString) const
{
    VError err = VE_OK;

    if (fVector.empty())
    {
        outString.Clear();
    }
    else
    {
        VectorOfVString array;
        array.resize( fVector.size());
        VectorOfVString::iterator j = array.begin();
        for( VectorType::const_iterator i = fVector.begin() ; (i != fVector.end()) && (err == VE_OK) ; ++i, ++j)
        {
            err = i->GetString( *j);
        }
        err = outString.Join( array, ',') ? VE_OK : vThrowError( VE_STRING_ALLOC_FAILED);
    }
    return err;
}
void VJSLanguageSyntaxTester::_Tokenize( XBOX::VJSParms_callStaticFunction &ioParams, void * )
{
	// We are expecting 2 JavaScript parameters:
	// - source code to tokenize
	// - extension of the fake file

	VString sourceCode, extension;

	if (ioParams.CountParams() == 2)
	{
		if (!ioParams.GetStringParam( 1, sourceCode ))	return;
		if (!ioParams.GetStringParam( 2, extension ))	return;
	}
	else
		return;

	CLanguageSyntaxComponent *languageSyntax = (CLanguageSyntaxComponent *)VComponentManager::RetainComponent( (CType)CLanguageSyntaxComponent::Component_Type );
	if (languageSyntax)
	{
		ISyntaxInterface *syntaxEngine = languageSyntax->GetSyntaxByExtension( extension );

		if (syntaxEngine)
		{
			VectorOfVString	tokens;

			syntaxEngine->GetTokensForTesting(sourceCode, tokens);

			VJSArray result( ioParams.GetContextRef() );
			VJSValue jsval(ioParams.GetContextRef());

			for (VectorOfVString::const_iterator it = tokens.begin(); it != tokens.end(); ++it)
			{
				jsval.SetString(*it);
				result.PushValue(jsval);
			}
			ioParams.ReturnValue(result);
 		}
		languageSyntax->Release();
	}
}
Esempio n. 5
0
VError VJSONWriter::StringifyObject( const VJSONObject *inObject, VString& outString)
{
    if (inObject == NULL)
    {
        outString = VJSONValue::sUndefinedString;
        return VE_OK;
    }

    if (std::find( fStack.begin(), fStack.end(), inObject) != fStack.end())
    {
        return vThrowError( VE_JSON_STRINGIFY_CIRCULAR);
    }

    VError err = VE_OK;

    fStack.push_back( inObject);

    if (!inObject->DoStringify( outString, *this, &err))
    {
        if (inObject->fMap.empty())
        {
            outString = "{}";
        }
        else
        {
            IncrementLevel();

            VectorOfVString array;
            array.resize( inObject->fMap.size());

            VectorOfVString::iterator j = array.begin();
            for( VJSONPropertyConstIterator i( inObject) ; i.IsValid() && (err == VE_OK) ; ++i, ++j)
            {
                err = i.GetName().GetJSONString( *j, GetOptions());
                if (err == VE_OK)
                {
                    InsertIndentString( *j);

                    VString value;
                    err = StringifyValue( i.GetValue(), value);
                    if (err == VE_OK)
                    {
                        j->AppendUniChar( ':');
                        j->AppendString( value);
                    }
                }

            }

            DecrementLevel();

            if (err == VE_OK)
            {
                array.front().Insert( '{', 1);
                AppendIndentString( array.back());
                array.back().AppendUniChar( '}');
                err = outString.Join( array, ',') ? VE_OK : vThrowError( VE_STRING_ALLOC_FAILED);
            }
        }
    }

    fStack.pop_back();

    return err;
}