1 #pragma once
2 #include "Commands/CAssemblerCommand.h"
3 #include "Core/Expression.h"
4 
5 class CDirectiveArea: public CAssemblerCommand
6 {
7 public:
8 	CDirectiveArea(Expression& size);
9 	virtual bool Validate();
10 	virtual void Encode() const;
11 	virtual void writeTempData(TempData& tempData) const;
12 	virtual void writeSymData(SymbolData& symData) const;
13 	void setFillExpression(Expression& exp);
setContent(std::unique_ptr<CAssemblerCommand> content)14 	void setContent(std::unique_ptr<CAssemblerCommand> content) { this->content = std::move(content); }
15 private:
16 	int64_t position;
17 	Expression sizeExpression;
18 	int64_t areaSize;
19 	int64_t contentSize;
20 	Expression fillExpression;
21 	int8_t fillValue;
22 	std::unique_ptr<CAssemblerCommand> content;
23 };
24