mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
31 lines
619 B
C++
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
|