1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #include <stdio.h>
- #include <stdlib.h>
- #define true 1
- #define false 0
- #define STR 0
- #define VAR 1
- #define MISC 2
- typedef struct token {
- char *str;
- char type;
- struct token *chain;
- } token;
- char *spec = "()[]!&^|<>~%?=+-";
- char *char_line;
- token *token_start = NULL;
- token *token_head = NULL;
- int get_str_size(char *str) {
- int size = 0;
- for (char *s = str; *s != '\0'; s++)
- size++;
- return size;
- }
- char *get_middle(char *str, int start, int end) {
- int size = end - start + 1;
- char *str2 = (char *)malloc(sizeof(char) * size + 1);
- if (!str2)
- return NULL;
- for (int i = 0; i < size; i++)
- str2[i] = str[start + i];
- str2[size] = 0;
- return str2;
- }
- int create_token_from_line(int start, int end) {
- char *str = get_middle(char_line, start, end);
- if (!str)
- return 1;
- token *t = (token *)malloc(sizeof(token));
- if (!t)
- return 2;
- if (!token_start)
- token_head = t;
- else if (!token_head)
- token_start->chain = token_head = t;
- else {
- token_head->chain = t;
- token_head = t;
- }
- return 0;
- }
- int Main(char *line) {
- int start = 0;
- char mode = MISC;
- for (int c = 0; c < get_str_size(line); c++) {
- }
- return 0;
- }
|