Author: jani
Date: Sun Feb 10 12:40:27 2013
New Revision: 1444535

URL: http://svn.apache.org/r1444535
Log:
test that extraction content match (.src)

Modified:
    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/gL10nMem.cxx

Modified: openoffice/branches/l10n/main/l10ntools/source/gConSrc.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConSrc.cxx?rev=1444535&r1=1444534&r2=1444535&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConSrc.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConSrc.cxx Sun Feb 10 
12:40:27 2013
@@ -48,7 +48,8 @@ void convert_src::insert()  {mcpImpl->in
 
 /**********************   I M P L E M E N T A T I O N   **********************/
 convert_src_impl::convert_src_impl(const std::string& srSourceFile, l10nMem& 
crMemory, bool brVerbose)
-                                  : convert_gen(srSourceFile, crMemory, 
brVerbose)
+                                  : convert_gen(srSourceFile, crMemory, 
brVerbose),
+                                                                   
mbNoKey(false)
 {
 }
 

Modified: openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx?rev=1444535&r1=1444534&r2=1444535&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx Sun Feb 10 
12:40:27 2013
@@ -51,6 +51,7 @@ class convert_src_impl : public convert_
   private:
     std::vector<std::string> mcStack;
     std::string         msCollector;
+       bool                mbNoKey;
 
     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=1444535&r1=1444534&r2=1444535&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx Sun Feb 10 
12:40:27 2013
@@ -67,6 +67,7 @@ void convert_src_impl::pushKey(std::stri
   sKey = sText.substr(nL, nE - nL);
 
   mcStack.push_back(sKey);
+  mbNoKey = false;
 }
 
 
@@ -82,6 +83,7 @@ void convert_src_impl::popKey(std::strin
   // check for correct node/prop relations
   if (mcStack.size())
     mcStack.pop_back();
+  mbNoKey = false;
 }
 
 
@@ -93,6 +95,8 @@ void convert_src_impl::pushNoKey(std::st
   if (mbMergeMode)
     writeSourceFile(msCollector + sText);
   msCollector.clear();
+  mbNoKey = true;
+  mcStack.push_back("dummy");
 }
 
 
@@ -108,11 +112,19 @@ void convert_src_impl::registerKey(std::
     writeSourceFile(msCollector + sText);
   msCollector.clear();
 
+  // do we expect a delayed key
+  if (!mbNoKey)
+       return;
+  mbNoKey = false;
+
   // 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);
+
+  // put key on stack instead of dummy
+  mcStack.pop_back();
   mcStack.push_back(sKey);
 }
 
@@ -135,7 +147,8 @@ void convert_src_impl::saveData(std::str
 
   // locate key and extract it
   for (nL = 0; nL < (int)mcStack.size(); ++nL)
-       sKey += (nL > 0 ? "." : "") + mcStack[nL];
+       if (mcStack[nL] != "dummy")
+         sKey += (nL > 0 ? "." : "") + mcStack[nL];
 
   // locate id
   for (nL = 0; sText[nL] != '\"' && nL < (int)sText.size(); ++nL) ;

Modified: openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l
URL: 
http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l?rev=1444535&r1=1444534&r2=1444535&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l Sun Feb 10 
12:40:27 2013
@@ -59,52 +59,74 @@
 /*******************   R U L E S   D E F I N I T I O N S   *******************/
 %%
 
-[tT][aA][bB][dD][iI][aA][lL][oO][gG][^\{]* {
+[bB][iI][tT][mM][aA][pP][ ]+[a-zA-Z]+[^\{]*                          |
+[bB][uU][tT][tT][oO][nN][iI][mM][aA][gG][eE][ ]+[a-zA-Z]+[^\{]*      |
+[eE][dD][iI][tT][ ]+[a-zA-Z]+[^\{]*                                  |
+[cC][aA][nN][cC][eE][lL][bB][uU][tT][tT][oO][nN][ ]+[a-zA-Z]+[^\{]*  |
+[cC][oO][nN][tT][rR][oO][lL][ ]+[a-zA-Z]+[^\{]*                      |
+[eE][rR][rR][oO][rR][bB][oO][xX][ ]+[a-zA-Z]+[^\{]*                  |
+[fF][iI][xX][eE][dD][tT][eE][xX][tT][ ]+[a-zA-Z]+[^\{]*              |
+[iI][mM][aA][gG][eE][ ]+[a-zA-Z]+[^\{]*                              |
+[iI][mM][aA][gG][eE][bB][uU][tT][tT][oO][nN][ ]+[a-zA-Z]+[^\{]*      |
+[iI][tT][eE][mM][lL][iI][sS][tT][ ]+[a-zA-Z]+[^\{]*                  |
+[hH][eE][lL][pP][bB][uU][tT][oO][mM][ ]+[a-zA-Z]+[^\{]*              |
+[mM][eE][nN][uU][ ]+[a-zA-Z]+[^\{]*                                  |
+[mM][eE][nN][uU][iI][tT][eE][mM][ ]+[a-zA-Z]+[^\{]*                  |
+[mM][oO][dD][aA][lL][dD][iI][aA][lL][oO][gG][ ]+[a-zA-Z]+[^\{]*      |
+[mM][uU][lL][tT][iI][lL][iI][nN][eE][dD][iI][tT][ ]+[a-zA-Z]+[^\{]*  |
+[pP][aA][gG][eE][iI][tT][eE][mM][ ]+[a-zA-Z]+[^\{]*                  |
+[pP][aA][gG][eE][lL][iI][sS][tT][ ]+[a-zA-Z]+[^\{]*                  |
+[pP][uU][sS][hH][bB][uU][tT][tT][oO][nN][ ]+[a-zA-Z]+[^\{]*          |
+[sS][tT][rR][iI][nN][gG][ ]+[a-zA-Z]+[^\{]*                          |
+[tT][aA][bB][cC][oO][nN][tT][rR][oO][lL][ ]+[a-zA-Z]+[^\{]*          |
+[tT][aA][bB][dD][iI][aA][lL][oO][gG][ ]+[a-zA-Z]+[^\{]*              |
+[tT][aA][bB][pP][aA][gG][eE][ ]+[a-zA-Z]+[^\{]*                      {
   std::string text(yytext);
   convert_src::mcpImpl->pushKey(text);
 }
 
-[tT][aA][bB][cC][oO][nN][tT][rR][oO][lL][^\{]* {
-  std::string text(yytext);
-  convert_src::mcpImpl->pushKey(text);
-}
-
-[tT][aA][bB][pP][aA][gG][eE][^\{]* {
-  std::string text(yytext);
-  convert_src::mcpImpl->pushKey(text);
-}
-
-[fF][iI][xX][eE][dD][tT][eE][xX][tT][^\{]* {
-  std::string text(yytext);
-  convert_src::mcpImpl->pushKey(text);
-}
 
-[sS][tT][rR][iI][nN][gG][^\{]* {
-  std::string text(yytext);
-  convert_src::mcpImpl->pushKey(text);
-}
-
-[pP][aA][gG][eE][lL][iI][sS][tT][^\{]* {
-  std::string text(yytext);
-  convert_src::mcpImpl->pushNoKey(text);
-}
 
-[pP][aA][gG][eE][iI][tT][eE][mM][^\{]* {
+[bB][iI][tT][mM][aA][pP][ \t\n]+"{"                          |
+[bB][uU][tT][tT][oO][nN][iI][mM][aA][gG][eE][ \t\n]+"{"      |
+[eE][dD][iI][tT][ \t\n]+"{"                                  |
+[cC][aA][nN][cC][eE][lL][bB][uU][tT][tT][oO][nN][ \t\n]"{"   |
+[cC][oO][nN][tT][rR][oO][lL][ \t\n]+"{"                      |
+[eE][rR][rR][oO][rR][bB][oO][xX][ \t\n]+"{"                  |
+[fF][iI][xX][eE][dD][tT][eE][xX][tT][ \t\n]+"{"              |
+[iI][mM][aA][gG][eE][ \t\n]+"{"                              |
+[iI][mM][aA][gG][eE][bB][uU][tT][tT][oO][nN][ \t\n]+"{"      |
+[iI][tT][eE][mM][lL][iI][sS][tT][ \t\n=]+"{"                  |
+[hH][eE][lL][pP][bB][uU][tT][oO][mM][ \t\n]+"{"              |
+[mM][eE][nN][uU][ \t\n]+"{"                                  |
+[mM][eE][nN][uU][iI][tT][eE][mM][ \t\n]+"{"                  |
+[mM][oO][dD][aA][lL][dD][iI][aA][lL][oO][gG][ \t\n]+"{"      |
+[mM][uU][lL][tT][iI][lL][iI][nN][eE][dD][iI][tT][ \t\n]+"{"  |
+[pP][aA][gG][eE][iI][tT][eE][mM][ \t\n]+"{"                  |
+[pP][aA][gG][eE][lL][iI][sS][tT][ \t\n]+"{"                  |
+[pP][uU][sS][hH][bB][uU][tT][tT][oO][nN][ \t\n]+"{"          |
+[sS][tT][rR][iI][nN][gG][ \t\n]+"{"                          |
+[tT][aA][bB][cC][oO][nN][tT][rR][oO][lL][ \t\n]+"{"          |
+[tT][aA][bB][dD][iI][aA][lL][oO][gG][ \t\n]+"{"              |
+[tT][aA][bB][pP][aA][gG][eE][ \t\n]+"{"                      {
   std::string text(yytext);
   convert_src::mcpImpl->pushNoKey(text);
 }
 
-[iI][dD][eE][nN][tT][iI][fF][iI][eE][rR][^;]* {
+[hH][eE][lL][pP][iI][dD][ \t]+'='[ \t]+[a-zA-Z]+[^;]*                 |
+[iI][dD][eE][nN][tT][iI][fF][iI][eE][rR][ \t]*"="[ \t]*[a-zA-Z]+[^;]* {
   std::string text(yytext);
   convert_src::mcpImpl->registerKey(text);
 }
 
-[tT][eE][xX][tT][^\n]* {
+[mM][eE][sS][sS][aA][gG][eE][ \t]*"["[ \t]*"en-US"[ \t]*"]"[ \t]+"="[^\n]*     
                    |
+[qQ][uU][iI][cC][kK][hH][eE][lL][pP][tT][eE][xX][tT][ \t]*"["[ \t]*"en-US"[ 
\t]*"]"[ \t]+"="[^\n]* |
+[tT][eE][xX][tT][ \t]*"["[ \t]*"en-US"[ \t]*"]"[ \t]+"="[^\n]*                 
                    {
   std::string text(yytext);
   convert_src::mcpImpl->saveData(text);
 }
 
-"};" {
+"}"[ ]*";" {
   std::string text(yytext);
   convert_src::mcpImpl->popKey(text);
 }

Modified: openoffice/branches/l10n/main/l10ntools/source/gL10nMem.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gL10nMem.cxx?rev=1444535&r1=1444534&r2=1444535&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gL10nMem.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gL10nMem.cxx Sun Feb 10 
12:40:27 2013
@@ -54,10 +54,6 @@ l10nMem_entry::~l10nMem_entry()
 /**********************   I M P L E M E N T A T I O N   **********************/
 l10nMem::l10nMem()
 {
-  mcMemory.push_back(l10nMem_entry("file1", "module1",
-                                   "key", "da", "hovsa"));
-  mcMemory.push_back(l10nMem_entry("file1", "module1",
-                                   "key", "ja", "hovsa"));
 }
 
 
@@ -73,14 +69,15 @@ l10nMem::~l10nMem()
 void l10nMem::save(const std::string& srTargetFile)
 {
   int           i;
-  std::ofstream outputFile(srTargetFile.c_str(), std::ios::binary);
+  std::string   sFile = srTargetFile + ".cnv";
+  std::ofstream outputFile(sFile.c_str(), std::ios::binary);
 
   if (!outputFile.is_open())
     throw std::string("Could not open ")+srTargetFile;
 
        
   for (i = 0; i < (int)mcMemory.size(); ++i)
-       outputFile << msCurrentModuleName << "\t" << msCurrentSourceFileName << 
"\t"
+       outputFile << mcMemory[i].msModuleName << "\t" << 
mcMemory[i].msSourceFile << "\t"
                   << mcMemory[i].msKey   << "\t" << mcMemory[i].msLanguage  << 
"\t"
                << mcMemory[i].msText  << std::endl;
   // JIX


Reply via email to