This is a package for running and compiling your c and c++ files add the compiler to the configurations file and you are ready to go π₯ .
- Test cases
composer run-script test
. - Code Cvoverage
composer run-script coverage
.
You can install the package using composer require aa-ahmed-aa/dorm
First you need to install compilers and configure their paths in src/Core/Config.php
- you can find the MinGW compiler Here
- after you download the compiler files copy the
MinGW
folder to yourC://
drive
- install jdk and configure the path in your environment variables you can find the judk Here
- install python from Here
- if you want this package to handle both versions of
python2.x
andpython3.x
the package already do this and you can look at This Question to cnfigure both of them on the command line
First you need to setCompilationPath
in this path the package will create files of the code and compile and run your code
so let's compile and run your first cpp code
require ('vendor/autoload.php');
use Ahmedkhd\Dorm\Dorm;
$obj = new Executor('cpp');
//set compilation path
$obj->setCompilationPath( __DIR__ );
echo $obj->getCompilationPath();
Now lets compile and run some real code
here we compile and run c++ code and print the result
$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_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_code = <<<'EOT'
print "Hello, Python3.4"
EOT;
$obj = new Executor('python2');
$comp = $obj->compile( $python_code);
echo "Running : " . implode( $comp ) . "\n";
You can check this blog post for more information.
This package is designed to handle compile/run of any other compilers in your project
$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__
]
];
- Add your customized key for your configuration to use it later in your compile and run function see
src/Core/Config.php
. - Add your new
StrategyTrait
insrc/Strategy/
folder with your run and compile funcion you can see examples like theJavaTrait
andCAndCPPStrategy
then add a use of yourStrategyTrait
in thesrc/Core/Core.php
class - Test and Bom your compiler is there.
The MIT License (MIT). Please see License File for more information.