Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Option.h 640 B
#ifndef _CLI_OPTION_H_
#define _CLI_OPTION_H_

#include <ast/Ast.h>
#include <ast/statements/SingleStatement.h>
#include <ast/statements/ContainerStatement.h>
#include <ast/statements/ContainerFileStatement.h>
#include <ast/statements/FileStatement.h>

namespace cli {

class Option {
public:
	virtual ~Option ( ) noexcept {
	}

	virtual void eval ( SingleStatement & statement ) const = 0;
	virtual void eval ( ContainerStatement & statement ) const = 0;
	virtual void eval ( ContainerFileStatement & statement ) const = 0;
	virtual void eval ( FileStatement & statement ) const = 0;
};

} /* namespace cli */

#endif /* _CLI_OPTION_H_ */