#pragma once
#include "BKToken.h"

#define DEBUG_LABEL_MANAGER 0

namespace LabelManager
{
	bool AddLocalLabel(CBKToken *token, const int value, const uint32_t lt);
	bool AddGlobalLabel(CBKToken *token, const int value, const uint32_t lt);
	bool AddLabelReference(CBKToken *token, const int value, const uint32_t lt);
	// поиск метки в таблицах
	bool SearchLabelInTables(const CBKToken *token, int &value, uint32_t &lt);

	void ProcLocLabels();
	void LabelLinking();

#if (_DEBUG && DEBUG_LABEL_MANAGER)
	// /-----------------------debug---------------------------
	extern FILE *dbgF;
	void DebugInit();
	// /-----------------------debug---------------------------
#endif
}
