lexer.c 920 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "bool.h"
  2. #include "bitwise.h"
  3. #include "elif.h"
  4. #include "token.h"
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #define MISC 0
  8. #define STR 1
  9. #define CHAR 2
  10. #define NUM 3
  11. int cursor_pos = 0;
  12. char *spec = "()[]!&^|<>~%?=+-";
  13. char *char_line = NULL;
  14. char get_next_char(BOOL skip_spaces) {
  15. if (skip_spaces) {
  16. while (char_line[cursor_pos] != 0 & char_line[cursor_pos] <= 32)
  17. cursor_pos++;
  18. }
  19. char buffer = char_line[cursor_pos];
  20. cursor_pos++;
  21. return buffer;
  22. }
  23. int Main(char *line) {
  24. int cursor_buffer = 0;
  25. char mode = MISC;
  26. char current_char;
  27. while (true) {
  28. current_char = get_next_char(mode == MISC);
  29. if (current_char == '\"') {
  30. if (mode != STR) {
  31. mode = STR;
  32. cursor_buffer = cursor_pos;
  33. }
  34. elif (mode == STR) {
  35. mode = MISC;
  36. // create_token_from_line(cursor_buffer, cursor_pos, false);
  37. }
  38. }
  39. // elif ('')
  40. }
  41. return 0;
  42. }