#include <setjmp.h>
+// Make the scope character ('.') be a symbol, otherwise it's just
+// a ident character
+#define USE_SCOPE_CHAR 1
+
// === TYPES ===
typedef struct
{
// Lexer State
- char *BufStart;
- char *CurPos;
+ const char *BufStart;
+ const char *CurPos;
+
+ char *Filename;
int LastLine;
int LastToken, LastTokenLen;
- char *LastTokenStr;
+ const char *LastTokenStr;
int NextLine;
int NextToken, NextTokenLen;
- char *NextTokenStr;
+ const char *NextTokenStr;
int CurLine;
int Token, TokenLen;
- char *TokenStr;
+ const char *TokenStr;
jmp_buf JmpTarget;
+ int ErrorHit;
} tParser;
// === FUNCTIONS ===
TOK_RWD_DO,
TOK_RWD_WHILE,
TOK_RWD_FOR,
+ // - Value
+ TOK_RWD_NULL,
// - Types
TOK_RWD_VOID,
TOK_RWD_OBJECT,
"TOK_RWD_WHILE",
"TOK_RWD_FOR",
+ "TOK_RWD_NULL",
"TOK_RWD_VOID",
"TOK_RWD_OBJECT",
"TOK_RWD_OPAUQE",