Files
micro-pascal/include/micropascal-lexer/token.h
T
2026-10-06 22:12:02 +00:00

61 lines
1.0 KiB
C

#ifndef MICROPASCAL_LEXER_TOKEN_H
#define MICROPASCAL_LEXER_TOKEN_H
#include <stddef.h>
typedef enum TokenKind {
TOKEN_EOF,
TOKEN_IDENTIFICADOR,
TOKEN_INTEIRO_LITERAL,
TOKEN_REAL_LITERAL,
TOKEN_CHAR_LITERAL,
TOKEN_MENOR,
TOKEN_MAIOR,
TOKEN_MENOR_IGUAL,
TOKEN_MAIOR_IGUAL,
TOKEN_IGUAL,
TOKEN_DIFERENTE,
TOKEN_MAIS,
TOKEN_MENOS,
TOKEN_MULTIPLICACAO,
TOKEN_DIVISAO,
TOKEN_DIV,
TOKEN_AND,
TOKEN_OR,
TOKEN_NOT,
TOKEN_ATRIBUICAO,
TOKEN_ABRE_PARENTESES,
TOKEN_FECHA_PARENTESES,
TOKEN_VIRGULA,
TOKEN_PONTO_VIRGULA,
TOKEN_PONTO,
TOKEN_DOIS_PONTOS,
TOKEN_PROGRAM,
TOKEN_IF,
TOKEN_THEN,
TOKEN_ELSE,
TOKEN_WHILE,
TOKEN_DO,
TOKEN_REPEAT,
TOKEN_UNTIL,
TOKEN_INTEGER,
TOKEN_REAL,
TOKEN_CHAR,
TOKEN_BEGIN,
TOKEN_END,
TOKEN_WRITE,
TOKEN_VAR,
TOKEN_ERRO
} TokenKind;
typedef struct Token {
TokenKind kind;
char* lexema;
int linha;
int coluna;
} Token;
const char* tokenKindNome(TokenKind kind);
#endif