diff --git a/CMakeLists.txt b/CMakeLists.txt
index 51f640f4d38aefff35ae0c903b3c62e31fdda7a8..389bdf0e217738811da3e08daf8eaac4d5703f23 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,8 @@ if (${CMAKE_C_COMPILER_VERSION} VERSION_LESS 5.3)
 	#set_property(GLOBAL PROPERTY C_STANDARD 11)
 endif()
 
+set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3")
+
 # activate with cmake -DMACA_EXPORT=TRUE 
 # to use macaon in python/java (with swig)
 if(MACA_EXPORT)
diff --git a/maca_export/CMakeLists.txt b/maca_export/CMakeLists.txt
index 8ba50a4640cc14b73c305bb2c28270f9a1bb6cd8..8afb0b1aac07e64cf394c666fa848d67066a419e 100644
--- a/maca_export/CMakeLists.txt
+++ b/maca_export/CMakeLists.txt
@@ -94,6 +94,31 @@ if(MACA_EXPORT)
   else()
     message("swig >= 3.0 not installed on your system")
   endif()
+
+
+  
+
+  set(TESTSOURCES 
+	src/maca_lemmatizer_export.cc
+	src/maca_trans_parser_export.cc
+	src/maca_trans_tagger_export.cc
+  )
+
+#  #compiling library
+#  include_directories(src)
+#  add_library(swigtransparse ${TESOURCES})
+#target_link_libraries(transparse perceptron)
+
+
+
+   add_executable(testcxx ./src/test.cc ${TESTSOURCES})
+   target_link_libraries(testcxx perceptron)
+   target_link_libraries(testcxx transparse)
+   target_link_libraries(testcxx maca_common)
+#   install (TARGETS testcxx DESTINATION bin)
+
+
+
 endif()
 
 
diff --git a/maca_export/src/test.cc b/maca_export/src/test.cc
new file mode 100644
index 0000000000000000000000000000000000000000..f8208ee3595cc16e053d5c29059d17fa672290a5
--- /dev/null
+++ b/maca_export/src/test.cc
@@ -0,0 +1,39 @@
+#include <iostream>
+#include <fstream>
+
+#include "maca_lemmatizer_export.h"
+#include "maca_trans_parser_export.h"
+#include "maca_trans_tagger_export.h"
+
+// test programme to be able using valgrind on the exported part of macaon
+
+using namespace std ;
+
+int main(int argc, char *argv[]) {
+    if (argc < 4) {
+	cerr << "usage: " << argv[0] << " <langue> <mcd-file> <mcf-file>" << endl;
+	return 1;
+    }
+
+    //MacaonTransTagger *mt = new MacaonTransTagger(argv[1], argv[2]);
+    //MacaonTransLemmatizer *ml = new MacaonTransLemmatizer(argv[1], argv[2]);
+    MacaonTransParser *mp = new MacaonTransParser(argv[1], argv[2]);
+
+    ifstream ifp(argv[3]);
+    string text;
+    string line;
+    while (!ifp.eof()) {
+	getline(ifp, line);
+	text += line + "\n";
+    }
+
+    //const char *tags = mt->tagmcf(text.c_str());
+    //const char *lemmas = ml->lemmatizemcf(tags);
+    //const char *deps = mp->parsemcf(lemmas);
+    const char *deps = mp->parsemcf(text.c_str());
+
+    cout << deps << endl;
+    delete mp;
+    //delete ml;
+    //delete mt;
+}
diff --git a/maca_tokenizer/src/fr_tok_rules.l b/maca_tokenizer/src/fr_tok_rules.l
index 56b0026d4ad4fb1a94a98114eec3ed402c84592c..d0f391d2994acf6a9260da5047fd6d576f6cd241 100644
--- a/maca_tokenizer/src/fr_tok_rules.l
+++ b/maca_tokenizer/src/fr_tok_rules.l
@@ -22,8 +22,13 @@ extern int defait_amalgames;
 [ ]*:       printf("\n:");
 [ ]*;       printf("\n;");
 [ ]*…        printf("\n…");
+[ ]*\)        printf("\n)");
+[ ]*»        printf("\n»");
+\(        printf("(\n");
 '        printf("'\n");
 ’        printf("'\n");
+\"	printf("\"\n");
+«	printf("»\n");
 -je      printf("\n-je");
 -tu      printf("\n-tu");
 -on      printf("\n-on");