X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=symbol.h;h=f8391a02fa78a6f31cd34ac504088ef22b666985;hp=c726bdefe7054b24f71e5ca5634fefa5cfb5782d;hb=c59f7a33730dacf753e066a4002e2f749051a137;hpb=ff2052bcaa1428a33a202822a81a6f9b8e567ef4 diff --git a/symbol.h b/symbol.h index c726bde..f8391a0 100644 --- a/symbol.h +++ b/symbol.h @@ -1,7 +1,7 @@ // -// RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System +// RMAC - Reboot's Macro Assembler for all Atari computers // SYMBOL.H - Symbol Handling -// Copyright (C) 199x Landon Dyer, 2017 Reboot and Friends +// Copyright (C) 199x Landon Dyer, 2011-2019 Reboot and Friends // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986 // Source utilised with the kind permission of Landon Dyer // @@ -12,28 +12,30 @@ #include // Line lists -struct LineList +#define LLIST struct _llist +LLIST { - struct LineList * next; + LLIST * next; uint8_t * line; + int lineno; }; // Symbols #define SYM struct _sym SYM { - SYM * snext; // * -> Next symbol on hash-chain - SYM * sorder; // * -> Next sym in order of reference - SYM * sdecl; // * -> Next sym in order of declaration - uint8_t stype; // Symbol type - uint16_t sattr; // Attribute bits - uint32_t sattre; // Extended attribute bits - uint16_t senv; // Enviroment number - uint32_t svalue; // Symbol value - uint8_t * sname; // * -> Symbol's print-name - struct LineList * lineList; // * -> Macro's linked list of lines - struct LineList * last; // * -> end of macro linked list - uint32_t uid; // Symbol's unique ID + SYM * snext; // * -> Next symbol on hash-chain + SYM * sorder; // * -> Next sym in order of reference + SYM * sdecl; // * -> Next sym in order of declaration + uint8_t stype; // Symbol type + uint16_t sattr; // Attribute bits + uint32_t sattre; // Extended attribute bits + uint16_t senv; // Enviroment number + uint64_t svalue; // Symbol value (now 64-bit) + uint8_t * sname; // * -> Symbol's print-name + LLIST * lineList; // * -> Macro's linked list of lines + LLIST * last; // * -> end of macro linked list + uint32_t uid; // Symbol's unique ID }; // Exported variables @@ -49,6 +51,7 @@ void ForceUndefinedSymbolsGlobal(void); int symtable(void); uint32_t sy_assign(uint8_t *, uint8_t *(*)()); uint32_t sy_assign_ELF(uint8_t *, uint8_t *(*)()); +void DumpLODSymbols(void); uint8_t * GetSymbolNameByUID(uint32_t); #endif // __SYMBOL_H__