mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-14 16:40:40 +00:00
e382690f9c
This not only prints better formatted texts, it also takes a lot of script maintenance out of the code.
57 lines
1.5 KiB
C
57 lines
1.5 KiB
C
|
|
#ifndef BUILD_SCRIPTFILE_H_
|
|
#define BUILD_SCRIPTFILE_H_
|
|
|
|
#include "sc_man.h"
|
|
|
|
typedef struct {
|
|
char *textbuf;
|
|
uint32_t textlength;
|
|
char *ltextptr; // pointer to start of the last token fetched (use this for line numbers)
|
|
char *textptr;
|
|
char *eof;
|
|
char *filename;
|
|
int32_t linenum;
|
|
int32_t *lineoffs;
|
|
} scriptfile;
|
|
|
|
char *scriptfile_gettoken(scriptfile *sf);
|
|
int32_t scriptfile_getnumber(scriptfile *sf, int32_t *num);
|
|
int32_t scriptfile_getdouble(scriptfile *sf, double *num);
|
|
int32_t scriptfile_getstring(scriptfile *sf, FString *st);
|
|
int scriptfile_getsymbol(scriptfile *sf, int32_t *num);
|
|
int32_t scriptfile_getlinum(const scriptfile *sf, const char *ptr);
|
|
FScriptPosition scriptfile_getposition(const scriptfile *sf);
|
|
int32_t scriptfile_getbraces(scriptfile *sf, FScanner::SavedPos *braceend);
|
|
inline bool scriptfile_endofblock(scriptfile* sf, FScanner::SavedPos& braceend)
|
|
{
|
|
return sf->textptr >= braceend.SavedScriptPtr;
|
|
}
|
|
void scriptfile_setposition(scriptfile* sf, const FScanner::SavedPos& pos);
|
|
|
|
scriptfile *scriptfile_fromfile(const char *fn);
|
|
void scriptfile_close(scriptfile *sf);
|
|
int scriptfile_eof(scriptfile *sf);
|
|
|
|
int32_t scriptfile_getsymbolvalue(char const *name, int32_t *val);
|
|
int32_t scriptfile_addsymbolvalue(char const *name, int32_t val);
|
|
void scriptfile_clearsymbols(void);
|
|
|
|
typedef struct
|
|
{
|
|
const char *text;
|
|
int32_t tokenid;
|
|
}
|
|
tokenlist;
|
|
|
|
|
|
enum
|
|
{
|
|
T_EOF = -2,
|
|
T_ERROR = -1,
|
|
};
|
|
|
|
|
|
int32_t getatoken(scriptfile *sf, const tokenlist *tl, int32_t ntokens);
|
|
|
|
#endif
|