Makefile: allow to override the build type variable.
[TP_AL_C.git] / lexer / lexical_analyzer.c
index 0d6a7284abb35cb064fd40885d980bfb8c9a74f0..39c82e075169b69eb50ce895bc283227a45f72cc 100644 (file)
@@ -5,6 +5,7 @@
 
 #include "global_vars.h"
 #include "print_helper.h"
+#include "lexical_analyzer.h"
 
 wint_t c;
 
@@ -46,7 +47,7 @@ static bool isEOF() {
     return false;
 }
 
-int scanner() {
+int scanner(void) {
     tokenValue[0] = 0;
     unsigned int i = 0;
     wchar_t m[6];
@@ -69,7 +70,6 @@ init:
         goto S1SS1;
     }
     if (isAlphaNum()) {
-        token[tokenFound].value[i] = c;
         tokenValue[i] = c;
         i++;
         c = fgetwc(source);
@@ -82,13 +82,11 @@ init:
 
 MC1:
     if (c == L'A' && !wcscmp(fgetws(m, 6, source), L"uteur")) {
-        wcscpy((wchar_t*)token[tokenFound].value, L">Auteur");
         wcscpy((wchar_t*)tokenValue, L">Auteur");
         c = fgetwc(source);
         goto MC2;
     }
     if (c == L'T' && !wcscmp(fgetws(m, 5, source), L"itre")) {
-        wcscpy((wchar_t*)token[tokenFound].value, L">Titre");
         wcscpy((wchar_t*)tokenValue, L">Titre");
         c = fgetwc(source);
         goto MC2;
@@ -121,7 +119,6 @@ SSECTION:
 
 M1:
     if (isAlphaNum()) {
-        token[tokenFound].value[i] = c;
         tokenValue[i] = c;
         i++;
         c = fgetwc(source);
@@ -142,7 +139,6 @@ initLV1:
         goto initLV1LV2;
     }
     if (isAlphaNum()) {
-        token[tokenFound].value[i] = c;
         tokenValue[i] = c;
         i++;
         c = fgetwc(source);
@@ -187,9 +183,9 @@ NPARA:
     return EXIT_SUCCESS;
 
 MOT:
-    token[tokenFound].value[i] = 0;
-    tokenValue[i] = 0;
     tokenType = MOT;
+    tokenValue[i] = 0;
+    wcscpy((wchar_t*)token[tokenFound].value, (wchar_t*)tokenValue);
     return EXIT_SUCCESS;
 
 MC2:
@@ -200,6 +196,7 @@ MC2:
 
 MOTCLE:
     tokenType = MOTCLE;
+    wcscpy((wchar_t*)token[tokenFound].value, (wchar_t*)tokenValue);
     return EXIT_SUCCESS;
 
 FIN:
@@ -211,7 +208,7 @@ error:
         fwprintf(stderr, L"%s error with token type: %s and value: %ls\n",
                  __func__,
                  tokenTypestr[tokenType],
-                 token[tokenFound].value);
+                 tokenValue);
     } else {
         fwprintf(stderr, L"%s error with token type: %s\n",
                  __func__,