2019-01-06 12:30:07 +01:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
undefined,
|
|
|
|
|
number,
|
|
|
|
|
symbol,
|
|
|
|
|
parenthesis
|
2019-01-06 21:13:13 +01:00
|
|
|
|
} tokenType;
|
2019-01-06 12:30:07 +01:00
|
|
|
|
|
|
|
|
|
typedef struct _Token
|
|
|
|
|
{
|
|
|
|
|
tokenType type;
|
|
|
|
|
char *lexeme;
|
|
|
|
|
struct _Token *next;
|
|
|
|
|
} token;
|
|
|
|
|
|
|
|
|
|
token *lexLine(char *input);
|
2019-01-06 21:13:13 +01:00
|
|
|
|
/* као аргумент добија ред са стандардног улаза, а као излаз
|
|
|
|
|
враћа лексичке елементе у повезаној листи */
|
|
|
|
|
void freeLexedLine(token *list);
|
|
|
|
|
/* ослобађа меморију коју је заузела листа токена узета из корисничког улаза */
|