2023-09-13 14:40:48 -04:00
|
|
|
#ifndef _ZX_BASIC_H
|
|
|
|
#define _ZX_BASIC_H
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <inttypes.h>
|
|
|
|
|
2023-09-13 17:10:53 -04:00
|
|
|
#define ZX81_BASIC_STATE_SIZE 116
|
|
|
|
#define ZX81_BASIC_LINE_LAST 0x7676
|
2023-09-13 14:40:48 -04:00
|
|
|
|
|
|
|
extern char *zx81_basic_tokens_low[3];
|
|
|
|
|
|
|
|
extern char *zx81_basic_tokens[64];
|
|
|
|
|
|
|
|
typedef struct _zx_basic_line {
|
|
|
|
uint16_t num, len;
|
|
|
|
} zx_basic_line;
|
|
|
|
|
|
|
|
enum zx_basic_token_type {
|
2023-09-13 17:10:53 -04:00
|
|
|
ZX81_BASIC_TOKEN_UNKNOWN,
|
|
|
|
ZX81_BASIC_TOKEN_ALNUM,
|
|
|
|
ZX81_BASIC_TOKEN_PAREN_OPEN,
|
|
|
|
ZX81_BASIC_TOKEN_PAREN_CLOSE,
|
|
|
|
ZX81_BASIC_TOKEN_QUOTE,
|
|
|
|
ZX81_BASIC_TOKEN_SYMBOL,
|
|
|
|
ZX81_BASIC_TOKEN_WORD,
|
2023-09-13 17:35:16 -04:00
|
|
|
ZX81_BASIC_TOKEN_INTEGRAL,
|
|
|
|
ZX81_BASIC_TOKEN_FLOAT,
|
2023-09-13 22:30:14 -04:00
|
|
|
ZX81_BASIC_TOKEN_NEWLINE,
|
2023-09-13 14:40:48 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
ssize_t zx81_basic_dump(int fd, FILE *stream);
|
|
|
|
|
|
|
|
#endif /* _ZX_BASIC_H */
|