From 210e58e82d4c8bff038f7d3d3679ee1b66790987 Mon Sep 17 00:00:00 2001
From: Bielefeld Robot Companion <biron@elise.(none)>
Date: Mon, 24 Jun 2013 13:22:55 +0200
Subject: [PATCH] got the seldom replacement bug

---
 .../nbproject/configurations.xml              | 26 +++++++++----------
 .../nbproject/private/Default.properties      |  4 +--
 .../src/PocketSphinxWrapper.cpp               |  7 ++++-
 3 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/pocketsphinxAdapter/nbproject/configurations.xml b/pocketsphinxAdapter/nbproject/configurations.xml
index e8063c31..9f014f9f 100644
--- a/pocketsphinxAdapter/nbproject/configurations.xml
+++ b/pocketsphinxAdapter/nbproject/configurations.xml
@@ -281,7 +281,7 @@
           <buildCommandWorkingDir>build</buildCommandWorkingDir>
           <buildCommand>${MAKE} -j8 -f Makefile</buildCommand>
           <cleanCommand>${MAKE} -f Makefile clean</cleanCommand>
-          <executablePath>src/pocketsphinxAdapter</executablePath>
+          <executablePath>build/src/pocketsphinxAdapter</executablePath>
         </makeTool>
       </makefileType>
       <item path="/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed/limits.h"
@@ -669,22 +669,14 @@
       <item path="src/PocketSphinxWrapper.cpp" ex="false" tool="1" flavor2="4">
         <ccTool>
           <incDir>
-            <pElem>.</pElem>
+            <pElem>build</pElem>
             <pElem>/usr/include/qt4</pElem>
             <pElem>/usr/include/qt4/QtGui</pElem>
             <pElem>/usr/include/qt4/QtCore</pElem>
-            <pElem>/usr/include/sphinxbase</pElem>
-            <pElem>/usr/include/pocketsphinx</pElem>
-            <pElem>/usr/include/alsa</pElem>
-            <pElem>/usr/include/boost-1_49</pElem>
-            <pElem>/usr/include/rsb0.9</pElem>
-            <pElem>/usr/include/rsc0.9</pElem>
-            <pElem>/usr/include/rsc0.9/3rdparty/boost.uuid</pElem>
-            <pElem>/usr/include/rst0.9/stable</pElem>
-            <pElem>build</pElem>
             <pElem>/vol/robocup/2013/include</pElem>
             <pElem>/vol/robocup/2013/include/sphinxbase</pElem>
             <pElem>/vol/robocup/2013/include/pocketsphinx</pElem>
+            <pElem>/usr/include/alsa</pElem>
             <pElem>/vol/robocup/2013/include/rsb0.9</pElem>
             <pElem>/vol/robocup/2013/include/rsc0.9</pElem>
             <pElem>/vol/robocup/2013/include/rsc0.9/3rdparty/boost.uuid</pElem>
@@ -702,14 +694,22 @@
       <item path="src/PocketsphinxAdapter.cpp" ex="false" tool="1" flavor2="4">
         <ccTool>
           <incDir>
-            <pElem>build</pElem>
+            <pElem>.</pElem>
             <pElem>/usr/include/qt4</pElem>
             <pElem>/usr/include/qt4/QtGui</pElem>
             <pElem>/usr/include/qt4/QtCore</pElem>
+            <pElem>/usr/include/sphinxbase</pElem>
+            <pElem>/usr/include/pocketsphinx</pElem>
+            <pElem>/usr/include/alsa</pElem>
+            <pElem>/usr/include/boost-1_49</pElem>
+            <pElem>/usr/include/rsb0.9</pElem>
+            <pElem>/usr/include/rsc0.9</pElem>
+            <pElem>/usr/include/rsc0.9/3rdparty/boost.uuid</pElem>
+            <pElem>/usr/include/rst0.9/stable</pElem>
+            <pElem>build</pElem>
             <pElem>/vol/robocup/2013/include</pElem>
             <pElem>/vol/robocup/2013/include/sphinxbase</pElem>
             <pElem>/vol/robocup/2013/include/pocketsphinx</pElem>
-            <pElem>/usr/include/alsa</pElem>
             <pElem>/vol/robocup/2013/include/rsb0.9</pElem>
             <pElem>/vol/robocup/2013/include/rsc0.9</pElem>
             <pElem>/vol/robocup/2013/include/rsc0.9/3rdparty/boost.uuid</pElem>
diff --git a/pocketsphinxAdapter/nbproject/private/Default.properties b/pocketsphinxAdapter/nbproject/private/Default.properties
index ff9d5d62..37050938 100644
--- a/pocketsphinxAdapter/nbproject/private/Default.properties
+++ b/pocketsphinxAdapter/nbproject/private/Default.properties
@@ -1,2 +1,2 @@
-/home/biron/git/robocup-speechrec/pocketsphinxAdapter/src/PocketsphinxAdapter.cpp=/home/biron/git/robocup-speechrec/pocketsphinxAdapter/build/src#-DRST_EXPORT= -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/home/biron/git/robocup-speechrec/pocketsphinxAdapter/build -I/usr/include/qt4 -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/vol/robocup/2013/include -I/vol/robocup/2013/include/sphinxbase -I/vol/robocup/2013/include/pocketsphinx -I/usr/include/alsa -I/vol/robocup/2013/share/rsb0.9/../../include/rsb0.9 -I/vol/robocup/2013/share/rsc0.9/../../include/rsc0.9 -I/vol/robocup/2013/share/rsc0.9/../../include/rsc0.9/3rdparty/boost.uuid -I/vol/robocup/2013/share/rst0.9/../../include/rst0.9/stable -I/usr/include/libxml2 -o CMakeFiles/pocketsphinxAdapter.dir/PocketsphinxAdapter.cpp.o -c /home/biron/git/robocup-speechrec/pocketsphinxAdapter/src/PocketsphinxAdapter.cpp
-/vol/robocup/2013/lib/librsb.so.0.9=/home/biron/git/robocup-speechrec/pocketsphinxAdapter/build/src#CMakeFiles/pocketsphinxAdapter.dir/PocketsphinxAdapter.cpp.o CMakeFiles/pocketsphinxAdapter.dir/PocketSphinxWrapper.cpp.o CMakeFiles/pocketsphinxAdapter.dir/PocketSphinxWidget.cpp.o CMakeFiles/pocketsphinxAdapter.dir/SimpleDoubleThresholdSegmenter.cpp.o CMakeFiles/pocketsphinxAdapter.dir/SimpleTextAddField.cpp.o CMakeFiles/pocketsphinxAdapter.dir/AlsaMicGrabber.cpp.o CMakeFiles/pocketsphinxAdapter.dir/EqualizerColorWidget.cpp.o CMakeFiles/pocketsphinxAdapter.dir/JsgfParser.cpp.o CMakeFiles/pocketsphinxAdapter.dir/publishRsb.cpp.o CMakeFiles/pocketsphinxAdapter.dir/rsbRemoteReceiver.cpp.o CMakeFiles/pocketsphinxAdapter.dir/dataRingBuffer.cpp.o CMakeFiles/pocketsphinxAdapter.dir/configFileParser.cpp.o CMakeFiles/pocketsphinxAdapter.dir/moc_PocketsphinxAdapter.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_PocketSphinxWidget.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_SimpleDoubleThresholdSegmenter.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_SimpleTextAddField.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_PocketSphinxWrapper.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_AlsaMicGrabber.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_EqualizerColorWidget.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_publishRsb.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_rsbRemoteReceiver.cxx.o -o pocketsphinxAdapter -rdynamic -L/vol/robocup/2013/lib -lpocketsphinx -lsphinxbase -lsphinxad -lpulse -lpulse-simple -lpthread -lm -lblas -llapack -lsndfile -lasound -lQtGui -lQtCore /vol/robocup/2013/lib/librsb.so.0.9 /vol/robocup/2013/lib/librst.so.0.9 /vol/robocup/2013/lib/librsbxml.so.0.9 -lboost_thread-mt -lboost_system-mt /vol/robocup/2013/lib/librsb.so.0.9 /vol/robocup/2013/lib/libspread.so -lboost_date_time-mt /vol/robocup/2013/lib/librst.so.0.9 -lprotobuf /vol/robocup/2013/lib/librsc0.9.so.0.9 -lboost_thread-mt -lboost_filesystem-mt -lboost_signals-mt -lboost_regex-mt -lboost_program_options-mt -lpthread -lboost_system-mt -ldl -lxmltio -lxqilla -lxerces-c -lpthread -llog4cxx -Wl,-rpath,/vol/robocup/2013/lib:::::::::::::::
+/home/biron/git/robocup-speechrec/pocketsphinxAdapter/src/PocketSphinxWrapper.cpp=/home/biron/git/robocup-speechrec/pocketsphinxAdapter/build/src#-DRST_EXPORT= -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/home/biron/git/robocup-speechrec/pocketsphinxAdapter/build -I/usr/include/qt4 -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/vol/robocup/2013/include -I/vol/robocup/2013/include/sphinxbase -I/vol/robocup/2013/include/pocketsphinx -I/usr/include/alsa -I/vol/robocup/2013/share/rsb0.9/../../include/rsb0.9 -I/vol/robocup/2013/share/rsc0.9/../../include/rsc0.9 -I/vol/robocup/2013/share/rsc0.9/../../include/rsc0.9/3rdparty/boost.uuid -I/vol/robocup/2013/share/rst0.9/../../include/rst0.9/stable -I/usr/include/libxml2 -o CMakeFiles/pocketsphinxAdapter.dir/PocketSphinxWrapper.cpp.o -c /home/biron/git/robocup-speechrec/pocketsphinxAdapter/src/PocketSphinxWrapper.cpp
+/vol/robocup/2013/lib/librsb.so.0.9=/home/biron/git/robocup-speechrec/pocketsphinxAdapter/build/src#CMakeFiles/pocketsphinxAdapter.dir/PocketsphinxAdapter.cpp.o CMakeFiles/pocketsphinxAdapter.dir/PocketSphinxWrapper.cpp.o CMakeFiles/pocketsphinxAdapter.dir/PocketSphinxWidget.cpp.o CMakeFiles/pocketsphinxAdapter.dir/SimpleDoubleThresholdSegmenter.cpp.o CMakeFiles/pocketsphinxAdapter.dir/SimpleTextAddField.cpp.o CMakeFiles/pocketsphinxAdapter.dir/AlsaMicGrabber.cpp.o CMakeFiles/pocketsphinxAdapter.dir/EqualizerColorWidget.cpp.o CMakeFiles/pocketsphinxAdapter.dir/JsgfParser.cpp.o CMakeFiles/pocketsphinxAdapter.dir/publishRsb.cpp.o CMakeFiles/pocketsphinxAdapter.dir/rsbRemoteReceiver.cpp.o CMakeFiles/pocketsphinxAdapter.dir/dataRingBuffer.cpp.o CMakeFiles/pocketsphinxAdapter.dir/configFileParser.cpp.o CMakeFiles/pocketsphinxAdapter.dir/moc_PocketsphinxAdapter.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_PocketSphinxWidget.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_SimpleDoubleThresholdSegmenter.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_SimpleTextAddField.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_PocketSphinxWrapper.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_AlsaMicGrabber.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_EqualizerColorWidget.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_publishRsb.cxx.o CMakeFiles/pocketsphinxAdapter.dir/moc_rsbRemoteReceiver.cxx.o -o pocketsphinxAdapter -rdynamic -L/vol/robocup/2013/lib -lpocketsphinx -lsphinxbase -lsphinxad -lpulse -lpulse-simple -lpthread -lm -lblas -llapack -lsndfile -lasound -lQtGui -lQtCore /vol/robocup/2013/lib/librsb.so.0.9 /vol/robocup/2013/lib/librst.so.0.9 /vol/robocup/2013/lib/librsbxml.so.0.9 -lboost_thread-mt -lboost_system-mt /vol/robocup/2013/lib/librsb.so.0.9 /vol/robocup/2013/lib/libspread.so -lboost_date_time-mt /vol/robocup/2013/lib/librst.so.0.9 -lprotobuf /vol/robocup/2013/lib/librsc0.9.so.0.9 -lboost_thread-mt -lboost_filesystem-mt -lboost_signals-mt -lboost_regex-mt -lboost_program_options-mt -lpthread -lboost_system-mt -ldl -lxmltio -lxqilla -lxerces-c -lpthread -llog4cxx -Wl,-rpath,/vol/robocup/2013/lib::::::::::::::::::::::
diff --git a/pocketsphinxAdapter/src/PocketSphinxWrapper.cpp b/pocketsphinxAdapter/src/PocketSphinxWrapper.cpp
index 541213a5..df8f4ab2 100644
--- a/pocketsphinxAdapter/src/PocketSphinxWrapper.cpp
+++ b/pocketsphinxAdapter/src/PocketSphinxWrapper.cpp
@@ -169,13 +169,18 @@ std::string
 PocketSphinxWrapper::ReplaceTerminalWithId (const std::string &xmlString, unsigned int &startid) {
     std::string result = xmlString;
     std::string terminal = ExtractTerminalFromGrammar(xmlString);
+    std::cout << "DEBUG xmlString  " << xmlString << std::endl;
+    std::cout << "DEBUG terminal = " << terminal << std::endl;
     std::string replaceMe = ">";
     replaceMe.append(terminal);
     replaceMe.append("<");
+    std::cout << "DEBUG replaceme = " << replaceMe << std::endl;
     size_t n = 1 + std::count(terminal.begin(), terminal.end(), ' ');
     std::stringstream s;
+    s << ">";
     for (size_t i=0; i < n; i++)
-        s << "><terminal refid=\"" << startid++ <<"\"/><";
+        s << "<terminal refid=\"" << startid++ <<"\"/>";
+    s << "<";
     boost::replace_first(result, replaceMe,s.str());
     return result;
 }
-- 
GitLab