コード例 #1
0
ファイル: WP3Parser.cpp プロジェクト: Distrotech/libpwd
void WP3Parser::parseSubDocument(librevenge::RVNGTextInterface *textInterface)
{
	std::list<WPXPageSpan> pageList;
	WPXTableList tableList;
	std::vector<WP3SubDocument *> subDocuments;

	librevenge::RVNGInputStream *input = getInput();

	try
	{
		WP3StylesListener stylesListener(pageList, tableList, subDocuments);
		stylesListener.startSubDocument();
		parseDocument(input, 0, &stylesListener);
		stylesListener.endSubDocument();

		input->seek(0, librevenge::RVNG_SEEK_SET);

		WP3ContentListener listener(pageList, subDocuments, textInterface);
		listener.startSubDocument();
		parseDocument(input, 0, &listener);
		listener.endSubDocument();

		for (std::vector<WP3SubDocument *>::iterator iterSubDoc = subDocuments.begin(); iterSubDoc != subDocuments.end(); ++iterSubDoc)
			if (*iterSubDoc)
				delete *iterSubDoc;
	}
	catch (FileException)
	{
		WPD_DEBUG_MSG(("WordPerfect: File Exception. Parse terminated prematurely."));
		for (std::vector<WP3SubDocument *>::iterator iterSubDoc = subDocuments.begin(); iterSubDoc != subDocuments.end(); ++iterSubDoc)
			if (*iterSubDoc)
				delete *iterSubDoc;
		throw FileException();
	}
}
コード例 #2
0
/*!
  Loads non-context sensitive objects.
 */
HsMenuViewBuilder::HsMenuViewBuilder():
    ALL_APPS_ACTION_NAME("allAppsAction"),
    ALL_COLLECTIONS_ACTION_NAME("allCollectionsAction"),
    SEARCH_ACTION_NAME("searchAction"),
    OVI_STORE_ACTION_NAME("oviStoreAction"),
    OPERATOR_ACTION_NAME("operatorAction"),
    mToolBar(new HbToolBar),
    mToolBarExtension(new HbToolBarExtension),
    mStateContext(HsAllAppsContext),
    mOperationalContext(HsItemViewContext)
{
    mCommonObjectsLoader = parseDocument(COMMON_OBJECTS_DOCUMENT_BASE_NAME);

    mToolBar->addAction(allAppsAction());
    mToolBar->addAction(allCollectionsAction());
    mToolBar->addAction(searchAction());
    mToolBarExtensionAction = mToolBar->addExtension(mToolBarExtension);
    mToolBarExtensionAction->setIcon(HbIcon("qtg_mono_store"));
    mToolBarExtensionAction->setVisible(false);

    mToolBarActionGroup = new QActionGroup(allAppsAction());

    allAppsAction()->setActionGroup(mToolBarActionGroup);
    allCollectionsAction()->setActionGroup(mToolBarActionGroup);
}
コード例 #3
0
ファイル: TgTypeParser.cpp プロジェクト: flode/tgbot-cpp
string TgTypeParser::parseMessage(const Message::Ptr& object) const {
	if (!object) {
		return "";
	}
	string result;
	result += '{';
	appendToJson(result, "message_id", object->messageId);
	appendToJson(result, "from", parseUser(object->from));
	appendToJson(result, "date", object->date);
	appendToJson(result, "chat", parseChat(object->chat));
	appendToJson(result, "forward_from", parseUser(object->forwardFrom));
	appendToJson(result, "forward_date", object->forwardDate);
	appendToJson(result, "reply_to_message", parseMessage(object->replyToMessage));
	appendToJson(result, "text", object->text);
	appendToJson(result, "audio", parseAudio(object->audio));
	appendToJson(result, "document", parseDocument(object->document));
	appendToJson(result, "photo", parseArray(&TgTypeParser::parsePhotoSize, object->photo));
	appendToJson(result, "sticker", parseSticker(object->sticker));
	appendToJson(result, "video", parseVideo(object->video));
	appendToJson(result, "contact", parseContact(object->contact));
	appendToJson(result, "location", parseLocation(object->location));
	appendToJson(result, "new_chat_participant", parseUser(object->newChatParticipant));
	appendToJson(result, "left_chat_participant", parseUser(object->leftChatParticipant));
	appendToJson(result, "new_chat_title", object->newChatTitle);
	appendToJson(result, "new_chat_photo", parseArray(&TgTypeParser::parsePhotoSize, object->newChatPhoto));
	appendToJson(result, "delete_chat_photo", object->deleteChatPhoto);
	appendToJson(result, "group_chat_created", object->groupChatCreated);
	appendToJson(result, "caption", object->caption);
	result.erase(result.length() - 1);
	result += '}';
	return result;
}
コード例 #4
0
ファイル: PmlReader.cpp プロジェクト: ALEXGUOQ/FBReader
bool PmlReader::readDocument(ZLInputStream& stream) {
	myStreamBuffer = new char[pmlStreamBufferSize];
	
	myIsInterrupted = false;

	myState.Italic = false;
	myState.Bold = false;
	myState.Underlined = false;
	myState.SmallCaps = false;
	myState.Subscript = false;
    myState.Superscript = false;
	myState.Alignment = ALIGN_UNDEFINED;
	myState.FontSize = NORMAL;
	myState.Indent = 0;
	myState.IndentBlockOn = false;
	myState.BoldBlockOn = false;
	myState.FootnoteLinkOn = false;
	myState.InternalLinkOn = false;
	myState.InvisibleText = false;
	
	bool code = parseDocument(stream);

	delete[] myStreamBuffer;
	
	return code;
}
コード例 #5
0
ファイル: BsonTreeModel.cpp プロジェクト: davidau/robomongo
    BsonTreeModel::BsonTreeModel(const std::vector<MongoDocumentPtr> &documents, QObject *parent) :
        BaseClass(parent),
        _root(new BsonTreeItem(this))
    {
        for (int i = 0; i < documents.size(); ++i) {
            MongoDocumentPtr doc = documents[i]; 
            BsonTreeItem *child = new BsonTreeItem(doc->bsonObj(), _root);
            parseDocument(child, doc->bsonObj(), doc->bsonObj().isArray());

            QString idValue;
            BsonTreeItem *idItem = child->childByKey("_id");
            if (idItem) {
                idValue = idItem->value();
            }

            child->setKey(QString("(%1) %2").arg(i + 1).arg(idValue));

            int count = BsonUtils::elementsCount(doc->bsonObj());

            if (doc->bsonObj().isArray()) {
                child->setValue(arrayValue(count));
                child->setType(mongo::Array);
            } else {
                child->setValue(objectValue(count));
                child->setType(mongo::Object);
            }
            _root->addChild(child);
        }
    }
コード例 #6
0
bool RtfReader::readDocument(const std::string &fileName) {
    myFileName = fileName;
    myStream = ZLFile(fileName).inputStream();
    if (!myStream || !myStream->open()) {
        return false;
    }

    fillKeywordMap();

    myStreamBuffer = new char[rtfStreamBufferSize];

    myIsInterrupted = false;

    mySpecialMode = false;

    myState.Alignment = ALIGN_UNDEFINED;
    myState.Italic = false;
    myState.Bold = false;
    myState.Underlined = false;
    myState.Destination = RtfReader::DESTINATION_NONE;
    myState.ReadDataAsHex = false;

    bool code = parseDocument();

    while (!myStateStack.empty()) {
        myStateStack.pop();
    }

    delete[] myStreamBuffer;
    myStream->close();

    return code;
}
コード例 #7
0
/*!
    \fn cs8ModbusConfigFile::restoreConfig(QSettings settings)
 */
bool cs8ModbusConfigFile::restoreConfig(QSettings & settings)
{
	QString xml=settings.value("modbus/xml", QString()).toString();
	QDomDocument doc;
	doc.setContent(xml);
	parseDocument(doc);
}
コード例 #8
0
ファイル: LiteHTMLReader.cpp プロジェクト: cdfmr/deebook
/**
 * CLiteHTMLReader::Read
 * This method is similar to the Read(LPCTSTR) method, 
 * except that, it accepts a file HANDLE instead of 
 * an in-memory string buffer containing HTML text.
 *
 * @param hFile - file handle
 *
 * @return number of TCHARs successfully parsed
 * @since 1.0
 * @author Gurmeet S. Kochar
 */
UINT CLiteHTMLReader::ReadFile(HANDLE hFile)
{
	ASSERT(hFile != INVALID_HANDLE_VALUE);
	ASSERT(::GetFileType(hFile) == FILE_TYPE_DISK);

	HANDLE	hFileMap;
	LPCTSTR	lpsz;
	UINT	nRetVal;

	// determine file size
	m_dwBufLen = ::GetFileSize(hFile, NULL);
	if (m_dwBufLen == INVALID_FILE_SIZE)
	{
		TRACE1("(Error) CLiteHTMLReader::Read:"
				" GetFileSize() failed;"
				" GetLastError() returns 0x%08x.\n", ::GetLastError());
		goto LError;
	}

	// calculate length, in TCHARs, of the buffer
	m_dwBufLen /= sizeof(TCHAR);
	if (!m_dwBufLen)
		return (0U);

	// create a file-mapping object for the file
	hFileMap = ::CreateFileMapping(hFile, NULL, PAGE_READONLY, 0L, 0L, NULL);
	if (hFileMap == NULL)
	{
		TRACE1("(Error) CLiteHTMLReader::Read:"
				" CreateFileMapping() failed;"
				" GetLastError() returns 0x%08x.\n", ::GetLastError());
		goto LError;
	}

	// map the entire file into the address-space of the application
	lpsz = (LPCTSTR)::MapViewOfFile(hFileMap, FILE_MAP_READ, 0L, 0L, 0L);
	if (lpsz == NULL)
	{
		TRACE1("(Error) CLiteHTMLReader::Read:"
				" MapViewOfFile() failed;"
				" GetLastError() returns 0x%08x.\n", ::GetLastError());
		goto LError;
	}

	m_lpszBuffer = lpsz;
	nRetVal = parseDocument();
	goto LCleanExit;

LError:
	nRetVal = 0U;
	m_dwBufLen = 0L;

LCleanExit:
	if (lpsz != NULL)
		VERIFY(::UnmapViewOfFile(lpsz));
	if (hFileMap)
		VERIFY(::CloseHandle(hFileMap));
	return (nRetVal);
}
コード例 #9
0
TEST_F(ParserIdentifierTests, identifier)
{
    ASSERT_FALSE( parseDocument(
        "identifier") );

    ASSERT_EQ(1U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 1, 11, compil::Message::p_expectStatementName));
}
コード例 #10
0
TEST_F(ParserIdentifierTests, identifierNameOpen)
{
    ASSERT_FALSE( parseDocument(
        "identifier name {") );

    ASSERT_EQ(1U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 1, 18, compil::Message::p_unexpectEOFInStatementBody));
}
コード例 #11
0
TEST_F(ParserFactoryTests, factoryName)
{
    ASSERT_FALSE( parseDocument(
        "hierarchy factory name") );

    ASSERT_EQ(2U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 1, 19, compil::Message::p_expectType));
}
コード例 #12
0
TEST_F(ParserFactoryTests, hierarchyFactoryTypeNameCommentOpenFilter)
{
    ASSERT_FALSE( parseDocument(
        "hierarchy factory<integer> name { filter") );

    ASSERT_EQ(1U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 1, 35, compil::Message::p_filterInNonObjectFactory));
}
コード例 #13
0
TEST_F(ParserFactoryTests, factoryTypeNameOpen)
{
    ASSERT_FALSE( parseDocument(
        "hierarchy factory<integer> name {") );

    ASSERT_EQ(1U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 1, 34, compil::Message::p_unexpectEOFInStatementBody));
}
コード例 #14
0
TEST_F(ParserFactoryTests, factoryTypeNameCommentOpenFilterWithNoStructureType)
{
    ASSERT_FALSE( parseDocument(
        "object factory<integer> name { filter") );

    ASSERT_EQ(1U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 1, 32, compil::Message::p_filterInFactoryForNonStructure));
}
コード例 #15
0
TEST_F(ParserFactoryTests, factoryTypeNameCommentOpen)
{
    ASSERT_FALSE( parseDocument(
        "hierarchy factory<integer> name /* */ {") );

    ASSERT_EQ(2U, mpParser->messages().size());
    EXPECT_TRUE(checkWarningMessage(0, 1, 33, compil::Message::p_misplacedComment));
    EXPECT_TRUE(checkErrorMessage(1, 1, 40, compil::Message::p_unexpectEOFInStatementBody));
}
コード例 #16
0
TEST_F(ParserIdentifierTests, identifierNameCommentOpen)
{
    ASSERT_FALSE( parseDocument(
        "identifier name /* */ {") );

    ASSERT_EQ(2U, mpParser->messages().size());
    EXPECT_TRUE(checkWarningMessage(0, 1, 17, compil::Message::p_misplacedComment));
    EXPECT_TRUE(checkErrorMessage(1, 1, 24, compil::Message::p_unexpectEOFInStatementBody));
}
コード例 #17
0
TEST_F(ParserFactoryTests, factoryCommentBaseTypeOpenType)
{
    ASSERT_FALSE( parseDocument(
        "hierarchy factory < /* */ integer") );

    ASSERT_EQ(2U, mpParser->messages().size());
    EXPECT_TRUE(checkWarningMessage(0, 1, 21, compil::Message::p_misplacedComment));
    EXPECT_TRUE(checkErrorMessage(1, 1, 34, compil::Message::p_expectClosingAngleBracket));
}
コード例 #18
0
TEST_F(ParserFactoryTests, factoryCommentBaseTypeOpen)
{
    ASSERT_FALSE( parseDocument(
        "hierarchy factory /* */ <") );

    ASSERT_EQ(2U, mpParser->messages().size());
    EXPECT_TRUE(checkWarningMessage(0, 1, 19, compil::Message::p_misplacedComment));
    EXPECT_TRUE(checkErrorMessage(1, 1, 26, compil::Message::p_expectType));
}
コード例 #19
0
TEST_F(ParserFactoryTests, factoryTypeNameCommentOpenFilterFieldWithMethodSemicolon)
{
    ASSERT_FALSE( parseDocument(
        "structure sname { integer i; }\n"
        "object factory<sname> name { filter i with blah;") );

    ASSERT_EQ(1U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 2, 49, compil::Message::p_unexpectEOFInStatementBody));
}
コード例 #20
0
TEST_F(ParserFactoryTests, factoryTypeCommentName)
{
    ASSERT_FALSE( parseDocument(
        "hierarchy factory<integer> /* */ name") );

    ASSERT_EQ(2U, mpParser->messages().size());
    EXPECT_TRUE(checkWarningMessage(0, 1, 28, compil::Message::p_misplacedComment));
    EXPECT_TRUE(checkErrorMessage(1, 1, 38, compil::Message::p_expectStatementBody));
}
コード例 #21
0
TEST_F(ParserIdentifierTests, identifierCommentBaseTypeOpenType)
{
    ASSERT_FALSE( parseDocument(
        "identifier < /* */ integer") );

    ASSERT_EQ(2U, mpParser->messages().size());
    EXPECT_TRUE(checkWarningMessage(0, 1, 14, compil::Message::p_misplacedComment));
    EXPECT_TRUE(checkErrorMessage(1, 1, 27, compil::Message::p_expectClosingAngleBracket));
}
コード例 #22
0
TEST_F(ParserIdentifierTests, strongIdentifierNameCommentOpenClose)
{
    ASSERT_TRUE( parseDocument(
        "strong identifier name {}") );

    EXPECT_EQ(1U, mDocument->objects().size());
    checkIdentifier(0, 1, 1, "name");
    checkIdentifierCast(0, compil::CastableType::ECast::strong());
}
コード例 #23
0
TEST_F(ParserIdentifierTests, identifierNameWrongBaseOpenClose)
{
    ASSERT_FALSE( parseDocument(
        "identifier<real32> name {}") );

    ASSERT_EQ(1U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 1, 1, compil::Message::v_unacceptableParameterType,
                compil::Message::Options("small, short, integer, long, byte, word, dword or qword")));
}
コード例 #24
0
TEST_F(ParserIdentifierTests, identifierNameMissingBaseOpenClose)
{
    ASSERT_FALSE( parseDocument(
        "identifier<blah> name {}") );

    ASSERT_EQ(1U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 1, 12, compil::Message::p_unknownClassifierType,
                  compil::Message::Type("blah")));
}
コード例 #25
0
TEST_F(ParserIdentifierTests, identifierComment)
{
    ASSERT_FALSE( parseDocument(
        "identifier //") );

    ASSERT_EQ(2U, mpParser->messages().size());
    EXPECT_TRUE(checkWarningMessage(0, 1, 12, compil::Message::p_misplacedComment));
    EXPECT_TRUE(checkErrorMessage(1, 1, 14, compil::Message::p_expectStatementName));
}
コード例 #26
0
TEST_F(ParserIdentifierTests, identifierCommentBaseTypeOpen)
{
    ASSERT_FALSE( parseDocument(
        "identifier /* */ <") );

    ASSERT_EQ(2U, mpParser->messages().size());
    EXPECT_TRUE(checkWarningMessage(0, 1, 12, compil::Message::p_misplacedComment));
    EXPECT_TRUE(checkErrorMessage(1, 1, 19, compil::Message::p_expectType));
}
コード例 #27
0
TEST_F(ParserFactoryTests, factoryMissingParameterTypeNameOpenClose)
{
    ASSERT_FALSE( parseDocument(
        "hierarchy factory<blah> name {}") );

    ASSERT_EQ(1U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 1, 19, compil::Message::p_unknownClassifierType,
                  compil::Message::Type("blah")));
}
コード例 #28
0
TEST_F(ParserFactoryTests, objectFactoryTypeNameOpenClose)
{
    ASSERT_TRUE( parseDocument(
        "object factory<integer> name {}") );

    EXPECT_EQ(1U, mDocument->objects().size());
    EXPECT_TRUE(checkFactory(0, 1, 1, "name", compil::Factory::EType::object()));
    EXPECT_TRUE(checkFactoryParameterType(0, "integer"));
}
コード例 #29
0
ファイル: BsonTableModel.cpp プロジェクト: wildone/robomongo
 BsonTableModel::BsonTableModel(const std::vector<MongoDocumentPtr> &documents, QObject *parent) 
     : BaseClass(parent) ,
     _root(new BsonTableItem(this))
 {
     for (std::vector<MongoDocumentPtr>::const_iterator it = documents.begin(); it!=documents.end(); ++it)
     {
         MongoDocumentPtr doc = (*it);
         parseDocument(_root,doc->bsonObj());
     }
 }
コード例 #30
0
TEST_F(ParserFactoryTests, noTypeFactory)
{
    ASSERT_FALSE( parseDocument(
        "factory") );

    ASSERT_EQ(1U, mpParser->messages().size());
    EXPECT_TRUE(checkErrorMessage(0, 1, 8, compil::Message::p_expectAppropriateType,
                                  compil::Message::Classifier("factory"),
                                  compil::Message::Options("hierarchy, object or plugin")));
}