2 // RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System
3 // SYMBOL.H - Symbol Handling
4 // Copyright (C) 199x Landon Dyer, 2017 Reboot and Friends
5 // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
6 // Source utilised with the kind permission of Landon Dyer
17 struct LineList * next;
22 #define SYM struct _sym
25 SYM * snext; // * -> Next symbol on hash-chain
26 SYM * sorder; // * -> Next sym in order of reference
27 SYM * sdecl; // * -> Next sym in order of declaration
28 uint8_t stype; // Symbol type
29 uint16_t sattr; // Attribute bits
30 uint32_t sattre; // Extended attribute bits
31 uint16_t senv; // Enviroment number
32 uint32_t svalue; // Symbol value
33 uint8_t * sname; // * -> Symbol's print-name
34 struct LineList * lineList; // * -> Macro's linked list of lines
35 struct LineList * last; // * -> end of macro linked list
36 uint32_t uid; // Symbol's unique ID
41 extern uint32_t firstglobal;// Index of the fist global symbol in an ELF object.
44 SYM * lookup(uint8_t *, int, int);
45 void InitSymbolTable(void);
46 SYM * NewSymbol(uint8_t *, int, int);
47 void AddToSymbolDeclarationList(SYM *);
48 void ForceUndefinedSymbolsGlobal(void);
50 uint32_t sy_assign(uint8_t *, uint8_t *(*)());
51 uint32_t sy_assign_ELF(uint8_t *, uint8_t *(*)());
52 uint8_t * GetSymbolNameByUID(uint32_t);
54 #endif // __SYMBOL_H__