2011-05-23 16:19:47 +01:00
|
|
|
typedef enum TokenKinds {
|
|
|
|
Name_tok,
|
|
|
|
Number_tok,
|
|
|
|
Var_tok,
|
|
|
|
String_tok,
|
2015-07-06 12:01:55 +01:00
|
|
|
BQString_tok,
|
2011-05-23 16:19:47 +01:00
|
|
|
Ponctuation_tok,
|
|
|
|
Error_tok,
|
2013-11-22 15:18:03 +00:00
|
|
|
QuasiQuotes_tok,
|
2011-05-23 16:19:47 +01:00
|
|
|
eot_tok
|
|
|
|
} tkinds;
|
|
|
|
|
2015-10-20 08:13:09 +01:00
|
|
|
typedef struct TOKEN {
|
2011-05-23 16:19:47 +01:00
|
|
|
enum TokenKinds Tok;
|
|
|
|
Term TokInfo;
|
2018-01-05 16:57:38 +00:00
|
|
|
intptr_t TokPos, TokLine;
|
2011-05-23 16:19:47 +01:00
|
|
|
struct TOKEN *TokNext;
|
|
|
|
} TokEntry;
|
|
|
|
|
2015-10-20 08:13:09 +01:00
|
|
|
#define Ord(X) ((enum TokenKinds)(X))
|
2011-05-23 16:19:47 +01:00
|
|
|
|
2015-10-20 08:13:09 +01:00
|
|
|
#define NextToken GNextToken(PASS_REGS1)
|
2011-05-23 16:19:47 +01:00
|
|
|
|
2015-10-20 08:13:09 +01:00
|
|
|
typedef struct VARSTRUCT {
|
2011-05-23 16:19:47 +01:00
|
|
|
Term VarAdr;
|
|
|
|
CELL hv;
|
2013-11-18 12:57:09 +00:00
|
|
|
UInt refs;
|
2011-05-23 16:19:47 +01:00
|
|
|
struct VARSTRUCT *VarLeft, *VarRight;
|
2016-11-04 16:36:48 +00:00
|
|
|
Atom VarRep;
|
2011-05-23 16:19:47 +01:00
|
|
|
} VarEntry;
|