Author: jani Date: Wed Feb 6 22:41:39 2013 New Revision: 1443252 URL: http://svn.apache.org/viewvc?rev=1443252&view=rev Log: final conversion, ready for test
Modified: openoffice/branches/l10n/main/l10ntools/source/gConHrc.cxx openoffice/branches/l10n/main/l10ntools/source/gConHrc.hxx openoffice/branches/l10n/main/l10ntools/source/gConHrcWrap.cxx openoffice/branches/l10n/main/l10ntools/source/gConHrclex.l openoffice/branches/l10n/main/l10ntools/source/gConSrc.cxx openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l openoffice/branches/l10n/main/l10ntools/source/gConXcu.cxx openoffice/branches/l10n/main/l10ntools/source/gConXcu.hxx openoffice/branches/l10n/main/l10ntools/source/gConXcuWrap.cxx Modified: openoffice/branches/l10n/main/l10ntools/source/gConHrc.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConHrc.cxx?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConHrc.cxx (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConHrc.cxx Wed Feb 6 22:41:39 2013 @@ -49,9 +49,7 @@ void convert_hrc::insert() {mcpImpl->in /********************** I M P L E M E N T A T I O N **********************/ convert_hrc_impl::convert_hrc_impl(const string& srSourceFile, l10nMem& crMemory) - : convert_gen(srSourceFile, crMemory), - mbCollectingData(false) - + : convert_gen(srSourceFile, crMemory) { } @@ -67,10 +65,10 @@ convert_hrc_impl::~convert_hrc_impl() /********************** I M P L E M E N T A T I O N **********************/ void convert_hrc_impl::extract() { + mbMergeMode = false; + // run lex parser and build token tree runLex(); - - //JIX } @@ -78,5 +76,8 @@ void convert_hrc_impl::extract() /********************** I M P L E M E N T A T I O N **********************/ void convert_hrc_impl::insert() { - //JIX + mbMergeMode = true; + + // run lex parser and build token tree + runLex(); } Modified: openoffice/branches/l10n/main/l10ntools/source/gConHrc.hxx URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConHrc.hxx?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConHrc.hxx (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConHrc.hxx Wed Feb 6 22:41:39 2013 @@ -32,53 +32,27 @@ -/***************** T E M P L A T E D E F I N I T I O N *****************/ -#if 0 -template<typename T> - void RemoveChars(std::basic_string<T> & Str, const T *CharsToRemove) - { - std::basic_string<T>::size_type pos = 0; - while ( (pos = Str.find_first_of(CharsToRemove, pos)) != std::basic_string<T>::npos) - Str.erase(pos, 1); - } -#endif - - - /******************** C L A S S D E F I N I T I O N ********************/ class convert_hrc_impl : public convert_gen { public: - typedef enum - { - IGNORED = 400, - COMMEND, DEFINEDRES, ANYTOKEN, UNKNOWNTOKEN, UNKNOWNCONSTRUCTION, UNKNOWNCHAR, - FILTER_LEVEL = 500, - CONDITION, EMPTYLINE, RESSOURCE, RESSOURCEEXPR, SMALRESSOURCE, TEXTLINE, - LONGTEXTLINE, TEXT, LEVELUP, LEVELDOWN, APPFONTMAPPING, ASSIGNMENT, - LISTASSIGNMENT, LISTTEXT, RSCDEFINE, RSCDEFINELEND, NEWTEXTINRES, UIENTRIES, - PRAGMA, _LISTTEXT, TEXTREFID, LISTRESID, _LISTRESID, NORMDEFINE - } LEX_TOKENS; - convert_hrc_impl(const string& srSourceFile, l10nMem& crMemory); ~convert_hrc_impl(); - void addTokenToSet(LEX_TOKENS nToken, string srYYtext); - void addCommentToSet(LEX_TOKENS nToken, string srYYtext); + void setKey(string &sText); + void saveData(string& sText); + void copyData(string& sText); private: - class tokenStorageEntry - { - public: - tokenStorageEntry(LEX_TOKENS nToken, string& sYYtext): mnToken(nToken), msYYtext(sYYtext){}; - LEX_TOKENS mnToken; - string msYYtext; - }; + vector<string> mcStack; + string msCollector; + string msKey; + - void runLex(); void extract(); void insert(); - bool mbCollectingData; + void runLex(); + friend class convert_hrc; }; #endif Modified: openoffice/branches/l10n/main/l10ntools/source/gConHrcWrap.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConHrcWrap.cxx?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConHrcWrap.cxx (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConHrcWrap.cxx Wed Feb 6 22:41:39 2013 @@ -43,63 +43,77 @@ namespace HrcWrap /********************** I M P L E M E N T A T I O N **********************/ -void convert_hrc_impl::addTokenToSet(LEX_TOKENS nToken, string srYYtext) +void convert_hrc_impl::runLex() { -//JIX -#if 0 - tokenStorage newToken; + HrcWrap::genHrc_lex(); +} + - newToken.mnToken = nToken; - newToken.msYYtext = srYYtext; - mcTokenSet.push_back(newToken); -#endif +/********************** I M P L E M E N T A T I O N **********************/ +void convert_hrc_impl::setKey(string &sText) +{ + int nL, nE; + + // write text for merge + if (mbMergeMode) + writeSourceFile(msCollector + sText); + msCollector.clear(); + + // locate id + for (nL = 0; sText[nL] != ' ' && sText[nL] != '\t' && sText[nL] != '\n'; ++nL) ; + for (; sText[nL] == ' ' || sText[nL] == '\t'; ++nL) ; + for (nE = nL; sText[nE] != ' ' && sText[nE] != '\t' && sText[nE] != '\n'; ++nE) ; + msKey = sText.substr(nL, nE - nL); } /********************** I M P L E M E N T A T I O N **********************/ -void convert_hrc_impl::addCommentToSet(LEX_TOKENS nToken, string srYYtext) +void convert_hrc_impl::saveData(string &sText) { - char buf[2]; - bool check_comment_terminate; + int nL, nE; + string sUseText; + // write text for merge + if (mbMergeMode) + writeSourceFile(msCollector + sText); + msCollector.clear(); + + // locate id + for (nL = 0; sText[nL] != '=' && sText[nL] != '\n'; ++nL) ; + for (; sText[nL] != '\"'; ++nL) ; + for (nE = nL+1; sText[nE] != '\"'; ++nE) ; + sUseText = sText.substr(nL+1, nE - nL -1); - // loop and collect whole comment - for (check_comment_terminate = false, buf[1] = '\0';;) + if (mbMergeMode) { - buf[0] = HrcWrap::yyinput(); - - // end of file ? - if (!buf[0]) - break; + // get all languages (includes en-US) + vector<l10nMem_entry *>& cExtraLangauges = mcMemory.getLanguagesForKey(msKey); + string sNewLine; + int nL = cExtraLangauges.size(); - // remember byte - srYYtext.append(buf); - - // did we receive ยด*' ? - if (check_comment_terminate) + for (int i = 0; i < nL; ++i) { - // end of comment ? - if (buf[0] == '/') - break; - - // it was not the end of comment - check_comment_terminate = false; + sNewLine = "<value xml:lang=\"" + cExtraLangauges[i]->msLanguage + "\">" + + cExtraLangauges[i]->msText + "</value>"; + writeSourceFile(sNewLine); } - else - // Start on end of comment ? - if (buf[0] == '*') - check_comment_terminate = true; } - - addTokenToSet(COMMEND, srYYtext); + else + mcMemory.setEnUsKey(msKey, sUseText); } /********************** I M P L E M E N T A T I O N **********************/ -void convert_hrc_impl::runLex() +void convert_hrc_impl::copyData(string &sText) { - HrcWrap::genHrc_lex(); + msCollector += sText; + if (sText == "\n") + { + if (mbMergeMode) + writeSourceFile(msCollector); + msCollector.clear(); + } } Modified: openoffice/branches/l10n/main/l10ntools/source/gConHrclex.l URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConHrclex.l?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConHrclex.l (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConHrclex.l Wed Feb 6 22:41:39 2013 @@ -59,96 +59,29 @@ /******************* R U L E S D E F I N I T I O N S *******************/ %% -^[\t ]*"#pragma".* { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::PRAGMA, string(yytext)); } - -^[ \t]*\n { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::EMPTYLINE, string(yytext)); } - -[\t ]+ | -^[\t ]*"#include".* | -^[\t ]*"#undef".* | -"//".* | -";" | -"<" | -">" | -\n { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::IGNORED, string(yytext)); } - -"/*" { - convert_hrc::mcpImpl->addCommentToSet(convert_hrc_impl::COMMEND, string(yytext)); } - -^[\t ]*"#ifndef".+$ | -^[\t ]*"#ifdef".+$ | -^[\t ]*"#if".+$ | -^[\t ]*"#elif".+$ | -^[\t ]*"#else".+$ | -^[\t ]*"#endif".+$ { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::CONDITION, string(yytext)); } - -[a-zA-Z]+[\t ]+[^={\n]+[\t ] { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::DEFINEDRES, string(yytext)); /* defined Res */ } - -[a-zA-Z]+[ \t]+[^={;\n]+\n[ \t]*"#".*\n[ \t]*"{" | -[a-zA-Z]+[ \t]+[^={;\n]+\n?([ \t]*"//".*\n)*[ \t]*"{" { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::RESSOURCE, string(yytext)); /* RESSOURCE // String TTT_XX ... */ } - -^[\t ]*[a-zA-Z_]+[\t ]*"\\"?[\t ]*\n?[ \t]*"{"[\t ]*"\\"? { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::SMALRESSOURCE, string(yytext)); /* SMALRESSOURCE // String ... */ } - -[\t ]*[a-zA-Z0-9_]+[ \t]*("["[ \t]*[a-zA-Z0-9_\-]+[ \t]*"]"[ \t]*)?=[ \t]*L?\".*\".*\n? { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::TEXTLINE, string(yytext)); /* TEXTLINE // TextTyp = "A Text" */ } - -[\t ]*[a-zA-Z0-9_]+[ \t]*("["[ \t]*[a-zA-Z0-9_\-]+[ \t]*"]"[ \t]*)?(\n[ \t]*)?=([ \t]*\n)?(([a-zA-Z0-9_]+)|(\".*\")|([ \t\n]*))*\".*\"(([a-zA-Z0-9_]+)|(\".*\")|([ \t\n]*))*; { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::LONGTEXTLINE, string(yytext)); /* LONGTEXTLINE // TextTyp = "A Text" HHH_XXX "A Text" ZZZ_TTT ... */ } - -\".*\" { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::TEXT, string(yytext)); /* TEXT // "A Text" */ } - -"{"[ \t]*\\? { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::LEVELUP, string(yytext)); /* LEVELUP */ } - -"}"[ \t]*;([ \t]*\\)? { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::LEVELDOWN, string(yytext)); /* LEVELDOWN */ } - -[a-zA-Z0-9_]+[ \t]*"="[ \t]*"MAP_APPFONT"[ \t]*"(".+")".* { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::APPFONTMAPPING, string(yytext)); /* APPFONTMAPPING Typ = MAP_APPFONT( ... ) */ } - -[ \t]*[a-zA-Z0-9_]+[ \t]*=[ \t]*[0123456789]{1,5}[ \t]*";"?\\? { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::TEXTREFID, string(yytext)); /* TEXTREFID // TextTyp = 12345 */ } - -[a-zA-Z0-9_]+[ \t]*"=".* | -[a-zA-Z0-9_]+[ \t]*"="[\t ]*([ \t]*"//".*\n)*.* { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::ASSIGNMENT, string(yytext)); /* ASSIGNMENT Typ = ... */ } - -[a-zA-Z0-9_]+[ \t]*("["[ \t]*[a-zA-Z0-9_\-]+[ \t]*"]"[ \t]*)?"="[ \t]*(\\[ \t]*)?\n?[ \t]*"{"[ \t]*(\\[ \t]*)?\n?[ \t]*"<" { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::LISTASSIGNMENT, string(yytext)); /* LISTASSIGNMENT Typ [ ... ] = ... */ } - -"StringList"+[ \t]*("["[ \t]*[a-zA-Z0-9_\-]+[ \t]*"]"[ \t]*)?"="[ \t]*(\\[ \t]*)?\n?[ \t]*"{"[ \t]*(\\[ \t]*)?\n?[ \t]* { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::LISTASSIGNMENT, string(yytext)); /* LISTASSIGNMENT Typ [ ... ] = ... */ } - -"UIEntries"[ \t]*("["[ \t]*[a-zA-Z0-9_\-]+[ \t]*"]"[ \t]*)?"="[ \t]*(\\[ \t]*)?\n?[ \t]*"{" { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::UIENTRIES, string(yytext)); /* UIENTRIES */ } - -"<"?[ \t]*L?\".*\".*">" { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::LISTTEXT, string(yytext)); /* LISTTEXT */ } - -[ \t]*"#define"[ \t]+[a-zA-Z0-9_]+.*"\\" { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::RSCDEFINE, string(yytext)); /* RSCDEFINE #define ... */ } - -[ \t]*"#define"[ \t]+[a-zA-Z0-9_]+.+ { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::NORMDEFINE, string(yytext)); /* #define ... */ } - -"\\" { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::RSCDEFINELEND, string(yytext)); /* RSCDEFINELEND */ } - -[a-zA-Z0-9_]+[ \t]*; { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::ANYTOKEN, string(yytext)); /* allowed other tokens like "49 ;" or "SFX_... ;" */ } - -. { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::UNKNOWNCHAR, string(yytext)); /* YYWarning( "Unknown Char" ); */ } - -"{"?[ \t]*\".*\"[ \t]*";"[ \t]*"}" { - convert_hrc::mcpImpl->addTokenToSet(convert_hrc_impl::_LISTTEXT, string(yytext)); /* _LISTTEXT */ } +[fF][iI][xX][eE][dD][lL][iI][nN][eE][^\{]* { + string text(yytext); + convert_hrc::mcpImpl->setKey(text); +} + +[rR][aA][dD][iI][oO][bB][uU][tT][tT][oO][nM][^\{]* { + string text(yytext); + convert_hrc::mcpImpl->setKey(text); +} + +[cC][hH][eE][cC][kK][bB][oO][xX][^\{]* { + string text(yytext); + convert_hrc::mcpImpl->setKey(text); +} + +[tT][eE][xX][tT][^\"]*"\""[^\"]*"\";" { + string text(yytext); + convert_hrc::mcpImpl->saveData(text); +} + +.|\n { + string text(yytext); + convert_hrc::mcpImpl->copyData(text); +} %% Modified: openoffice/branches/l10n/main/l10ntools/source/gConSrc.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConSrc.cxx?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConSrc.cxx (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConSrc.cxx Wed Feb 6 22:41:39 2013 @@ -48,25 +48,8 @@ void convert_src::insert() {mcpImpl->in /********************** I M P L E M E N T A T I O N **********************/ -src_stack_entry::src_stack_entry(string& sName) - : msName (sName) -{ -} - - - -/********************** I M P L E M E N T A T I O N **********************/ -src_stack_entry::~src_stack_entry() -{ -} - - - -/********************** I M P L E M E N T A T I O N **********************/ convert_src_impl::convert_src_impl(const string& srSourceFile, l10nMem& crMemory) - : convert_gen(srSourceFile, crMemory), - mbCollectingData(false) - + : convert_gen(srSourceFile, crMemory) { } Modified: openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx Wed Feb 6 22:41:39 2013 @@ -21,7 +21,7 @@ #ifndef GCONSRCHXX #define GCONSRCHXX #include "gLang.hxx" -#include <stack> +#include <vector> @@ -34,19 +34,6 @@ /******************** C L A S S D E F I N I T I O N ********************/ -class src_stack_entry -{ - public: - src_stack_entry(string& sName); - ~src_stack_entry(); - - string msName; -}; - - - - -/******************** C L A S S D E F I N I T I O N ********************/ class convert_src_impl : public convert_gen { public: @@ -56,16 +43,14 @@ class convert_src_impl : public convert_ void pushKey(string &sText); void popKey (string &sText); void pushNoKey(string &sText); - void registerPushKey(string &sText); - void pushRegistredKey(string &sText); + void registerKey(string &sText); - void saveData(string& sCollectedText); - void copyData(string& sCollectedText); + void saveData(string& sText); + void copyData(string& sText); private: - stack<src_stack_entry> mcStack; - bool mbCollectingData; - string msCollector; + vector<string> mcStack; + string msCollector; void extract(); void insert(); Modified: openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx Wed Feb 6 22:41:39 2013 @@ -53,10 +53,21 @@ void convert_src_impl::runLex() /********************** I M P L E M E N T A T I O N **********************/ void convert_src_impl::pushKey(string &sText) { + string sKey; + int nL, nE; + // write text for merge if (mbMergeMode) writeSourceFile(msCollector + sText); msCollector.clear(); + + // locate id + for (nL = 0; sText[nL] != ' ' && sText[nL] != '\t' && sText[nL] != '\n'; ++nL) ; + for (; sText[nL] == ' ' || sText[nL] == '\t'; ++nL) ; + for (nE = nL; sText[nE] != ' ' && sText[nE] != '\t' && sText[nE] != '\n'; ++nE) ; + sKey = sText.substr(nL, nE - nL); + + mcStack.push_back(sKey); } @@ -68,6 +79,10 @@ void convert_src_impl::popKey(string &sT if (mbMergeMode) writeSourceFile(msCollector + sText); msCollector.clear(); + + // check for correct node/prop relations + if (mcStack.size()) + mcStack.pop_back(); } @@ -84,34 +99,63 @@ void convert_src_impl::pushNoKey(string /********************** I M P L E M E N T A T I O N **********************/ -void convert_src_impl::registerPushKey(string &sText) +void convert_src_impl::registerKey(string &sText) { + string sKey; + int nL, nE; + // write text for merge if (mbMergeMode) writeSourceFile(msCollector + sText); msCollector.clear(); + + // locate id + for (nL = 0; sText[nL] != '=' && sText[nL] != '\n'; ++nL) ; + for (++nL; sText[nL] == ' ' || sText[nL] == '\t'; ++nL) ; + for (nE = nL; sText[nE] != ' ' && sText[nE] != '\t' && sText[nE] != '\n' && nE < (int)sText.size(); ++nE) ; + sKey = sText.substr(nL, nE - nL); + mcStack.push_back(sKey); } /********************** I M P L E M E N T A T I O N **********************/ -void convert_src_impl::pushRegistredKey(string &sText) +void convert_src_impl::saveData(string &sText) { + int nL, nE; + string sKey, sUseText; + // write text for merge if (mbMergeMode) writeSourceFile(msCollector + sText); msCollector.clear(); -} + // locate key and extract it + for (nL = 0; nL < (int)mcStack.size(); ++nL) + sKey += (nL > 0 ? "." : "") + mcStack[nL]; + // locate id + for (nL = 0; sText[nL] != '=' && sText[nL] != '\n'; ++nL) ; + for (; sText[nL] != '\"'; ++nL) ; + for (nE = nL+1; sText[nE] != '\"'; ++nE) ; + sUseText = sText.substr(nL+1, nE - nL -1); -/********************** I M P L E M E N T A T I O N **********************/ -void convert_src_impl::saveData(string &sText) -{ - // write text for merge if (mbMergeMode) - writeSourceFile(msCollector + sText); - msCollector.clear(); + { + // get all languages (includes en-US) + vector<l10nMem_entry *>& cExtraLangauges = mcMemory.getLanguagesForKey(sKey); + string sNewLine; + int nL = cExtraLangauges.size(); + + for (int i = 0; i < nL; ++i) + { + sNewLine = "<value xml:lang=\"" + cExtraLangauges[i]->msLanguage + "\">" + + cExtraLangauges[i]->msText + "</value>"; + writeSourceFile(sNewLine); + } + } + else + mcMemory.setEnUsKey(sKey, sUseText); } Modified: openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l Wed Feb 6 22:41:39 2013 @@ -59,47 +59,47 @@ /******************* R U L E S D E F I N I T I O N S *******************/ %% -"TabDialog "[^\{]* { +[tT][aA][bB][dD][iI][aA][lL][oO][gG][^\{]* { string text(yytext); convert_src::mcpImpl->pushKey(text); } -"TabControl "[^\{]* { +[tT][aA][bB][cC][oO][nN][tT][rR][oO][lL][^\{]* { string text(yytext); convert_src::mcpImpl->pushKey(text); } -"TabPage "[^\{]* { +[tT][aA][bB][pP][aA][gG][eE][^\{]* { string text(yytext); convert_src::mcpImpl->pushKey(text); } -"FixedText "[^\{]* { +[fF][iI][xX][eE][dD][tT][eE][xX][tT][^\{]* { string text(yytext); convert_src::mcpImpl->pushKey(text); } -"String "[^\{]* { +[sS][tT][rR][iI][nN][gG][^\{]* { string text(yytext); convert_src::mcpImpl->pushKey(text); } -"PageList "[^\{]* { +[pP][aA][gG][eE][lL][iI][sS][tT][^\{]* { string text(yytext); convert_src::mcpImpl->pushNoKey(text); } -"PageItem "[^\{]* { +[pP][aA][gG][eE][iI][tT][eE][mM][^\{]* { string text(yytext); - convert_src::mcpImpl->registerPushKey(text); + convert_src::mcpImpl->pushNoKey(text); } -"Identifier "[^;]* { +[iI][dD][eE][nN][tT][iI][fF][iI][eE][rR][^;]* { string text(yytext); - convert_src::mcpImpl->pushRegistredKey(text); + convert_src::mcpImpl->registerKey(text); } -"Text "[^\"]*[^\"]*"\";" { +[tT][eE][xX][tT][^\"]*"\""[^\"]*"\";" { string text(yytext); convert_src::mcpImpl->saveData(text); } Modified: openoffice/branches/l10n/main/l10ntools/source/gConXcu.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXcu.cxx?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConXcu.cxx (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConXcu.cxx Wed Feb 6 22:41:39 2013 @@ -47,22 +47,6 @@ void convert_xcu::insert() {mcpImpl->in /********************** I M P L E M E N T A T I O N **********************/ -xcu_stack_entry::xcu_stack_entry(TAG_TYPE sIsNode, string& sName) - : mbIsNode (sIsNode), - msName (sName) -{ -} - - - -/********************** I M P L E M E N T A T I O N **********************/ -xcu_stack_entry::~xcu_stack_entry() -{ -} - - - -/********************** I M P L E M E N T A T I O N **********************/ convert_xcu_impl::convert_xcu_impl(const string& srSourceFile, l10nMem& crMemory) : convert_gen (srSourceFile, crMemory), mbCollectingData(false) Modified: openoffice/branches/l10n/main/l10ntools/source/gConXcu.hxx URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXcu.hxx?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConXcu.hxx (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConXcu.hxx Wed Feb 6 22:41:39 2013 @@ -21,7 +21,7 @@ #ifndef GCONXCU_HXX #define GCONXCU_HXX #include "gLang.hxx" -#include <stack> +#include <vector> @@ -35,20 +35,6 @@ typedef enum {TAG_COMPONENT, TAG_PROP, T /******************** C L A S S D E F I N I T I O N ********************/ -class xcu_stack_entry -{ - public: - xcu_stack_entry(TAG_TYPE sIsNode, string& sName); - ~xcu_stack_entry(); - - TAG_TYPE mbIsNode; - string msName; -}; - - - - -/******************** C L A S S D E F I N I T I O N ********************/ class xcu_stack_entry; class convert_xcu_impl : public convert_gen { @@ -64,9 +50,9 @@ class convert_xcu_impl : public convert_ void collectData(string& sCollectedText); private: - stack<xcu_stack_entry> mcStack; - bool mbCollectingData; - string msCollector; + vector<string> mcStack; + bool mbCollectingData; + string msCollector; void extract(); void insert(); Modified: openoffice/branches/l10n/main/l10ntools/source/gConXcuWrap.cxx URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXcuWrap.cxx?rev=1443252&r1=1443251&r2=1443252&view=diff ============================================================================== --- openoffice/branches/l10n/main/l10ntools/source/gConXcuWrap.cxx (original) +++ openoffice/branches/l10n/main/l10ntools/source/gConXcuWrap.cxx Wed Feb 6 22:41:39 2013 @@ -71,9 +71,7 @@ void convert_xcu_impl::pushKeyPart(TAG_T return; sKey = sTag.substr(nL, nE - nL); - xcu_stack_entry newTag(bIsNode, sKey); - - mcStack.push(newTag); + mcStack.push_back(sKey); } @@ -88,7 +86,7 @@ void convert_xcu_impl::popKeyPart(TAG_TY // check for correct node/prop relations if (mcStack.size()) - mcStack.pop(); + mcStack.pop_back(); } @@ -108,6 +106,7 @@ void convert_xcu_impl::startCollectData( /********************** I M P L E M E N T A T I O N **********************/ void convert_xcu_impl::stopCollectData(string& sCollectedText) { + int nL; string useKey; // time to do something ? @@ -116,12 +115,8 @@ void convert_xcu_impl::stopCollectData(s mbCollectingData = false; // locate key and extract it - while (mcStack.size()) - { - xcu_stack_entry nowEntry = mcStack.top(); - mcStack.pop(); - useKey = nowEntry.msName + "." + useKey; - } + for (nL = 0; nL < (int)mcStack.size(); ++nL) + useKey += (nL > 0 ? "." : "") + mcStack[nL]; if (mbMergeMode) {