Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum TokenType
- {
- WORD, INT, NEWLINE, EOF
- }
- // Токен -- это одно из трёх: слово, число или новая строка.
- // Тип токена задан в token_type.
- // Если это WORD, то value можно приводить к char* и читать как строку оканчивающуюся на \0.
- // Если это INT, то value можно приводить к int* и это указатель на число (это не массив).
- // Если это NEWLINE или EOF, то value == NULL.
- struct Token
- {
- TokenType token_type;
- void* value;
- }
- Token TOKEN_NEWLINE { .token_type = NEWLINE, .value = NULL };
- Token TOKEN_EOF { .token_type = EOF, .value = NULL };
- void freeToken(Token* token)
- {
- free(token->value);
- }
- int skipSpaces(FILE* file)
- {
- }
- Token nextToken(FILE* file)
- {
- }
- // Массив чисел
- struct IntArray
- {
- size_t size;
- int* values;
- };
- IntArray initIntArray()
- {
- return IntArray { .size = 0, .values = NULL };
- }
- void deinitIntArray(IntArray* array)
- {
- free(array->values);
- }
- // Добавить в конец
- void push(IntArray* array, int value)
- {
- }
- Node* readLine(FILE* file)
- {
- }
- int main()
- {
- FILE* file = ...;
- List* list = ...;
- Node* node;
- while ((node = readLine(file)) != nullptr)
- {
- insertBack(list, node);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement