25526054ddd436ee3f24865bb5984e336b6a52bb
6 #include "global_vars.h"
7 #include "print_helper.h"
11 /* It looks silly to check for each characters but for debugging, it's just the way to go */
12 static bool isAlphaNum() {
13 if (c
== L
'a' || c
== L
'b' || c
== L
'c' || c
== L
'd' || c
== L
'e' || c
== L
'f' || c
== L
'g' || \
14 c
== L
'h' || c
== L
'i' || c
== L
'j' || c
== L
'k' || c
== L
'l' || c
== L
'm' || c
== L
'n' || \
15 c
== L
'o' || c
== L
'p' || c
== L
'q' || c
== L
'r' || c
== L
's' || c
== L
't' || c
== L
'u' || \
16 c
== L
'v' || c
== L
'w' || c
== L
'x' || c
== L
'y' || c
== L
'z' || \
17 c
== L
'A' || c
== L
'B' || c
== L
'C' || c
== L
'D' || c
== L
'E' || c
== L
'F' || c
== L
'G' || \
18 c
== L
'H' || c
== L
'I' || c
== L
'J' || c
== L
'K' || c
== L
'L' || c
== L
'M' || c
== L
'N' || \
19 c
== L
'O' || c
== L
'P' || c
== L
'Q' || c
== L
'R' || c
== L
'S' || c
== L
'T' || c
== L
'U' || \
20 c
== L
'V' || c
== L
'W' || c
== L
'X' || c
== L
'Y' || c
== L
'Z' || \
21 c
== L
'.' || c
== L
'?' || c
== L
'!' || c
== L
',' || c
== L
';' || c
== L
':' || c
== L
'-' || \
22 c
== L
'\''|| c
== L
'#' || \
23 c
== L
'0' || c
== L
'1' || c
== L
'2' || c
== L
'3' || c
== L
'4' || c
== L
'5' || c
== L
'6' || \
24 c
== L
'7' || c
== L
'8' || c
== L
'9' || \
25 // FIXME: Accentued characters (aka multibytes characters) support is still buggy
26 c
== L
'à' || c
== L
'â' || c
== L
'ç' || c
== L
'è' || c
== L
'é' || c
== L
'î' || c
== L
'ô' || \
27 c
== L
'ù' || c
== L
'û' || \
28 c
== L
'À' || c
== L
'Â' || c
== L
'Ç' || c
== L
'È' || c
== L
'É' || c
== L
'Î' || c
== L
'Ô' || \
29 c
== L
'Ù' || c
== L
'Û') {
35 static bool isSeparator() {
36 if (c
== L
'\t' || c
== L
' ' || c
== L
'\n') {
54 if (c
== L
' ' || c
== L
'\t') {
71 token
[tokenFound
].value
[i
] = c
;
82 if (c
== L
'A' && !wcscmp(fgetws(m
, 6, source
), L
"uteur")) {
83 wcscpy((wchar_t*)token
[tokenFound
].value
, L
">Auteur");
87 if (c
== L
'T' && !wcscmp(fgetws(m
, 5, source
), L
"itre")) {
88 wcscpy((wchar_t*)token
[tokenFound
].value
, L
">Titre");
99 if (isSeparator() || isEOF()) {
105 if (isSeparator() || isEOF()) {
115 tokenType
= SSECTION
;
120 token
[tokenFound
].value
[i
] = c
;
125 if (isSeparator() || isEOF()) {
131 if (c
== L
' ' || c
== L
'\t') {
140 token
[tokenFound
].value
[i
] = c
;
188 if (isSeparator() || isEOF()) {
202 if (tokenType
== MOT
|| tokenType
== MOTCLE
) {
203 fwprintf(stderr
, L
"%s error with token type: %s and value: %ls\n",
205 tokenTypestr
[tokenType
],
206 token
[tokenFound
].value
);
208 fwprintf(stderr
, L
"%s error with token type: %s\n",
210 tokenTypestr
[tokenType
]);