38 lines
858 B
C++
38 lines
858 B
C++
#pragma once
|
|
|
|
#include <sstream>
|
|
|
|
#include "cmd/cmd_base.hpp"
|
|
#include "fsh.hpp"
|
|
#include "ast/ast.hpp"
|
|
|
|
namespace fsh {
|
|
|
|
class CmdExit : public Command {
|
|
|
|
protected:
|
|
virtual void run(std::istream& in, std::ostream& out, ArgManager& args) override {
|
|
fsh::instance().environment["EXITING"] = "1";
|
|
}
|
|
};
|
|
|
|
class CmdPrintTree : public Command {
|
|
|
|
protected:
|
|
virtual void register_flags() override {
|
|
auto& factory = get_factory();
|
|
factory.add_input_rule();
|
|
}
|
|
|
|
virtual void run(std::istream& in, std::ostream& out, ArgManager& args) override {
|
|
std::string line;
|
|
std::getline(in, line);
|
|
|
|
auto tokens = Lexer::process(line);
|
|
auto ast = AstFactory::generate_ast(tokens);
|
|
|
|
ast->print(0);
|
|
}
|
|
};
|
|
|
|
} |