|
|
|
|
@ -104,11 +104,6 @@ namespace Project {
|
|
|
|
|
#endif |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class LanguageProtocol : public virtual Base { |
|
|
|
|
public: |
|
|
|
|
virtual std::string get_language_id() = 0; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class Clang : public LLDB { |
|
|
|
|
public: |
|
|
|
|
Clang(std::unique_ptr<Build> &&build) : Base(std::move(build)) {} |
|
|
|
|
@ -126,22 +121,18 @@ namespace Project {
|
|
|
|
|
void compile_and_run(const boost::filesystem::path &file_path = {}) override; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class Python : public LanguageProtocol { |
|
|
|
|
class Python : public Base { |
|
|
|
|
public: |
|
|
|
|
Python(std::unique_ptr<Build> &&build) : Base(std::move(build)) {} |
|
|
|
|
|
|
|
|
|
void compile_and_run(const boost::filesystem::path &file_path = {}) override; |
|
|
|
|
|
|
|
|
|
std::string get_language_id() override { return "python"; } |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class JavaScript : public LanguageProtocol { |
|
|
|
|
class JavaScript : public Base { |
|
|
|
|
public: |
|
|
|
|
JavaScript(std::unique_ptr<Build> &&build) : Base(std::move(build)) {} |
|
|
|
|
|
|
|
|
|
void compile_and_run(const boost::filesystem::path &file_path = {}) override; |
|
|
|
|
|
|
|
|
|
std::string get_language_id() override { return "javascript"; } |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class HTML : public Base { |
|
|
|
|
@ -151,33 +142,27 @@ namespace Project {
|
|
|
|
|
void compile_and_run(const boost::filesystem::path &file_path = {}) override; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class Rust : public LLDB, public LanguageProtocol { |
|
|
|
|
class Rust : public LLDB { |
|
|
|
|
public: |
|
|
|
|
Rust(std::unique_ptr<Build> &&build) : Base(std::move(build)) {} |
|
|
|
|
|
|
|
|
|
std::pair<std::string, std::string> get_run_arguments() override; |
|
|
|
|
void compile() override; |
|
|
|
|
void compile_and_run(const boost::filesystem::path &file_path = {}) override; |
|
|
|
|
|
|
|
|
|
std::string get_language_id() override { return "rust"; } |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class Go : public LanguageProtocol { |
|
|
|
|
class Go : public Base { |
|
|
|
|
public: |
|
|
|
|
Go(std::unique_ptr<Build> &&build) : Base(std::move(build)) {} |
|
|
|
|
|
|
|
|
|
void compile_and_run(const boost::filesystem::path &file_path = {}) override; |
|
|
|
|
|
|
|
|
|
std::string get_language_id() override { return "go"; } |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class Julia : public LanguageProtocol { |
|
|
|
|
class Julia : public Base { |
|
|
|
|
public: |
|
|
|
|
Julia(std::unique_ptr<Build> &&build) : Base(std::move(build)) {} |
|
|
|
|
|
|
|
|
|
void compile_and_run(const boost::filesystem::path &file_path = {}) override; |
|
|
|
|
|
|
|
|
|
std::string get_language_id() override { return "julia"; } |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
std::shared_ptr<Base> create(const boost::filesystem::path &file_path = {}); |
|
|
|
|
|