Advertisement
Guest User

Untitled

a guest
May 19th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.36 KB | None | 0 0
  1. enum TokenType
  2. {
  3.     WORD, INT, NEWLINE, EOF
  4. }
  5.  
  6. // Токен -- это одно из трёх: слово, число или новая строка.
  7. // Тип токена задан в token_type.
  8. // Если это WORD, то value можно приводить к char* и читать как строку оканчивающуюся на \0.
  9. // Если это INT, то value можно приводить к int* и это указатель на число (это не массив).
  10. // Если это NEWLINE или EOF, то value == NULL.
  11. struct Token
  12. {
  13.     TokenType token_type;
  14.     void* value;
  15. }
  16.  
  17. Token TOKEN_NEWLINE { .token_type = NEWLINE, .value = NULL };
  18. Token TOKEN_EOF { .token_type = EOF, .value = NULL };
  19.  
  20. void freeToken(Token* token)
  21. {
  22.     free(token->value);
  23. }
  24.  
  25. int skipSpaces(FILE* file)
  26. {
  27.  
  28. }
  29.  
  30. Token nextToken(FILE* file)
  31. {
  32.  
  33. }
  34.  
  35. // Массив чисел
  36. struct IntArray
  37. {
  38.     size_t size;
  39.     int* values;   
  40. };
  41.  
  42. IntArray initIntArray()
  43. {
  44.     return IntArray { .size = 0, .values = NULL };
  45. }
  46.  
  47. void deinitIntArray(IntArray* array)
  48. {
  49.     free(array->values);
  50. }
  51.  
  52. // Добавить в конец
  53. void push(IntArray* array, int value)
  54. {
  55.  
  56. }
  57.  
  58. Node* readLine(FILE* file)
  59. {
  60.  
  61. }
  62.  
  63. int main()
  64. {
  65.     FILE* file = ...;
  66.     List* list = ...;
  67.  
  68.     Node* node;
  69.     while ((node = readLine(file)) != nullptr)
  70.     {
  71.         insertBack(list, node);
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement