// ============================================================================
|
// ============================================================================
|
// __
|
// __
|
// \\__/ o\ (C) 2014 Robert Finch, Stratford
|
// \\__/ o\ (C) 2014 Robert Finch, Stratford
|
// \ __ / All rights reserved.
|
// \ __ / All rights reserved.
|
// \/_// robfinch<remove>@finitron.ca
|
// \/_// robfinch<remove>@finitron.ca
|
// ||
|
// ||
|
//
|
//
|
// A64 - Assembler
|
// A64 - Assembler
|
// - 64 bit CPU
|
// - 64 bit CPU
|
//
|
//
|
// This source file is free software: you can redistribute it and/or modify
|
// This source file is free software: you can redistribute it and/or modify
|
// it under the terms of the GNU Lesser General Public License as published
|
// it under the terms of the GNU Lesser General Public License as published
|
// by the Free Software Foundation, either version 3 of the License, or
|
// by the Free Software Foundation, either version 3 of the License, or
|
// (at your option) any later version.
|
// (at your option) any later version.
|
//
|
//
|
// This source file is distributed in the hope that it will be useful,
|
// This source file is distributed in the hope that it will be useful,
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
//
|
//
|
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
//
|
//
|
// ============================================================================
|
// ============================================================================
|
//
|
//
|
#ifndef SYMBOL_H
|
#ifndef SYMBOL_H
|
#define SYMBOL_H
|
#define SYMBOL_H
|
|
|
#include "Int128.h"
|
#include "Int128.h"
|
|
|
typedef struct {
|
typedef struct {
|
int ord; // ordinal
|
int ord; // ordinal
|
int name; // name table index
|
int name; // name table index
|
Int128 value;
|
Int128 value;
|
char segment;
|
char segment;
|
char defined;
|
char defined;
|
char isExtern;
|
char isExtern;
|
char phaserr;
|
char phaserr;
|
char scope; // P = public
|
char scope; // P = public
|
|
bool isMacro;
|
|
Macro *macro;
|
int bits;
|
int bits;
|
} SYM;
|
} SYM;
|
|
|
SYM *find_symbol(char *name);
|
SYM *find_symbol(char *name);
|
SYM *new_symbol(char *name);
|
SYM *new_symbol(char *name);
|
void DumpSymbols();
|
void DumpSymbols();
|
extern int numsym;
|
extern int numsym;
|
|
|
#endif
|
#endif
|
|
|