polserver/pol-core/bscript/compiler/codegen/CodeEmitter.h
Eric Swanson d22a9af254
Add code emitter and data emitter (#209)
* Add codegen/ DataEmitter

* Add codegen/ CodeEmitter
2020-08-11 20:50:16 +02:00

31 lines
619 B
C++

#ifndef POLSERVER_CODEEMITTER_H
#define POLSERVER_CODEEMITTER_H
#include "compiler/representation/CompiledScript.h"
namespace Pol::Bscript
{
class StoredToken;
}
namespace Pol::Bscript::Compiler
{
class CodeEmitter
{
public:
explicit CodeEmitter( CodeSection& code );
CodeEmitter( const CodeEmitter& ) = delete;
CodeEmitter& operator=( const CodeEmitter& ) = delete;
unsigned append( const StoredToken& );
void update_offset( unsigned index, unsigned offset );
unsigned next_address() const;
private:
CodeSection& code;
};
} // namespace Pol::Bscript::Compiler
#endif // POLSERVER_CODEEMITTER_H