ritualka-plang/source/command.h
2023-07-17 23:04:51 +03:00

102 lines
2.1 KiB
C++

#ifndef COMMAND_H
#define COMMAND_H
#include "stack.h"
#include "vector"
#include <iostream>
using std::vector;
using std::byte;
/*class Command
{
public:
// Command();
virtual ~Command () {
delete this->virtualStack;
}
virtual bool checkCorrectSyntax ();
virtual void exec ();
private:
vector<byte> bytes;
Stack* virtualStack;
}; */
class VOID_HEADER {
public:
// From all command
VOID_HEADER (vector<byte> bytes, Stack globalStack);
virtual bool checkCorrectSyntax ();
virtual void exec ();
Stack globalStack;
Stack localStack;
private:
// From all command
vector<byte> bytes;
};
class VOID_ENDER {
public:
// From all command
VOID_ENDER (vector<byte> bytes, Stack globalStack);
virtual bool checkCorrectSyntax ();
virtual void exec ();
Stack globalStack;
Stack localStack;
private:
// From all command
vector<byte> bytes;
};
class STACK_PUSH {
public:
// From all command
STACK_PUSH (vector<byte> bytes, Stack globalStack);
virtual bool checkCorrectSyntax ();
virtual void exec ();
Stack globalStack;
Stack localStack;
private:
// From all comand
vector<byte> bytes;
};
/*class STACK_EDIT {
public:
STACK_EDIT (vector<byte> bytes, Stack globalStack);
virtual bool checkCorrectSyntax ();
virtual void exec ();
Stack globalStack;
Stack localStack;
private:
// From all comand
vector<byte> bytes;
};*/
class STDOUT {
public:
// From all command
STDOUT (vector<byte> bytes, Stack globalStack);
virtual bool checkCorrectSyntax ();
virtual void exec ();
Stack globalStack;
Stack localStack;
private:
// From all comand
vector<byte> bytes;
byte mode;
};
class STDIN {
public:
STDIN (vector<byte> bytes, Stack globalStack);
virtual bool checkCorrectSyntax ();
virtual void exec ();
Stack globalStack;
Stack localStack;
private:
// From all comand
vector<byte> bytes;
};
#endif // COMMAND_H