这是一个用于编译和运行c和cpp文件的编译器包,这个包设计用来可以以后添加任何其他的编译器。

安装: 19

依赖: 0

建议: 0

安全: 0

星标: 4

关注者: 2

分支: 3

开放问题: 1

类型:package

v1.4 2020-02-16 00:32 UTC

This package is auto-updated.

Last update: 2024-09-20 19:30:07 UTC


README

这是一个运行和编译你的c和c++文件的包,将编译器添加到配置文件中,你就可以开始使用了 💥 。

运行测试用例和覆盖率

  • 测试用例 composer run-script test
  • 代码覆盖率 composer run-script coverage

🍯 安装

你可以使用composer require aa-ahmed-aa/dorm来安装这个包

🔨 配置

首先,你需要安装编译器并在src/Core/Config.php中配置它们的路径

C++

  • 你可以在这里找到MinGW编译器
  • 下载编译器文件后,将MinGW文件夹复制到你的C://驱动器

Java

  • 安装jdk并在你的环境变量中配置路径,你可以在这里找到jdk

Python

  • 这里安装python
  • 如果你想让这个包同时处理python2.x和python3.x两个版本的python,这个包已经可以做到这一点,你可以查看这个问题来配置这两个版本

🔦 使用

首先,你需要在这个路径中设置setCompilationPath,这个包将会在这个路径创建代码文件并编译和运行你的代码
现在让我们编译和运行一些真实的代码

require ('vendor/autoload.php');
use Ahmedkhd\Dorm\Dorm;

$obj = new Executor('cpp');

//set compilation path
$obj->setCompilationPath( __DIR__ );
echo $obj->getCompilationPath();

现在让我们编译和运行一些真实的代码

C++

这里我们编译和运行c++代码并打印结果

$cpp_code = <<<'EOT'
	#include<iostream>
	using namespace std;

	int main()
	{
	    cout<<"hello, c plus plus";
	    return 0;
				}
EOT;
	
$comp = $obj->compile($cpp_code);
echo "Compilation : " . ( ! is_array($comp) ? "Success" : "Fail" )  . "\n";
echo "Running is : " . ( ! is_array($comp) ? $obj->run() : "Fail" ) . "\n";

Java

//java
$java_code = <<<'EOT'
	public class Main {
	public static void main(String[] args) {
        // Prints "Hello, World" to the terminal window.
        System.out.println("Hello, Java");
    }

}
EOT;

$obj = new Executor('java');
$comp = $obj->compile($java_code);
echo "Compilation : " . ( ! is_array($comp) ? "Success" : "Fail" )  . "\n";
echo "Running is : " . ( ! is_array($comp) ? $obj->run() : "Fail" ) . "\n";

Python

$python_code = <<<'EOT'
print "Hello, Python3.4"
EOT;

$obj = new Executor('python2');
$comp = $obj->compile( $python_code);
echo "Running : " . implode( $comp )  . "\n";

🔌 添加你的编译器

你可以查看这篇博客文章获取更多信息。

这个包设计用来处理项目中任何其他编译器的编译/运行。

	$compilers = [
		"__COMPILER_NAME__"=>[
			"path" => "__COMPILER_PATH__",
			"file_extension" =>'__CODE_FILE_EXTENSION_',
			"compile_func" => __NAME_FOR_YOUR_COMPILER_FUNCTION__,
			"run_func" => __NAME_FOR_YOUR_RUN_FUNCTION__
		]
	];
步骤
  • 添加你配置中使用的自定义密钥,以便以后在你的编译和运行函数中使用它,请参阅src/Core/Config.php
  • src/Strategy/文件夹中添加你的新StrategyTrait,包括你的运行和编译函数,你可以看到像JavaTraitCAndCPPStrategy这样的例子,然后在src/Core/Core.php类中添加你的StrategyTrait的使用
  • 测试并确认你的编译器在那里。

许可

MIT许可(MIT)。请参阅许可文件获取更多信息。