Spaces:
Runtime error
Runtime error
filename=$1 | |
debug=0 | |
cpp_version="c++17" | |
if [[ $filename == *.c ]]; then | |
extension=".c" | |
compiler="gcc" | |
language="c" | |
elif [[ $filename == *.cpp ]]; then | |
extension=".cpp" | |
compiler="g++" | |
language="c++" | |
elif [[ $filename == *.java ]]; then | |
extension=".java" | |
compiler="javac" | |
language="java" | |
elif [[ $filename == *.go ]]; then | |
extension=".go" | |
compiler="go run" | |
language="go" | |
elif [[ $filename == *.cs ]]; then | |
extension=".cs" | |
compiler="csc" | |
language="csharp" | |
elif [[ $filename == *.swift ]]; then | |
extension=".swift" | |
compiler="swift" | |
language="swift" | |
# add for python | |
elif [[ $filename == *.py ]]; then | |
extension=".py" | |
compiler="python3" | |
language="python" | |
elif [[ $filename == *.js ]]; then | |
extension=".js" | |
compiler="node" | |
language="javascript" | |
elif [[ $filename == *.rs ]]; then | |
extension=".rs" | |
compiler="rustc" | |
language="rust" | |
else | |
echo "Error: Unsupported file type" | |
exit 1 | |
fi | |
if [ $language == "c++" ]; then | |
if [[ $3 == c++* ]]; then | |
version=${3#c++} | |
if [[ $version == 17 || $version == 14 || $version == 11 || $version == 0x ]]; then | |
cpp_version="c++$version" | |
fi | |
fi | |
fi | |
if [[ $2 == "--debug" ]]; then | |
debug=1 | |
fi | |
if [ $debug -eq 1 ]; then | |
if [ $language == "c++" ]; then | |
echo "Compiling $filename with $compiler (C++ $cpp_version)..." | |
else | |
echo "Compiling $filename with $compiler..." | |
fi | |
fi | |
if [ $language == "c" ]; then | |
$compiler $filename -o ${filename%.*} | |
elif [ $language == "c++" ]; then | |
$compiler $filename -std=$cpp_version -o ${filename%.*} | |
elif [ $language == "java" ]; then | |
$compiler $filename | |
elif [ $language == "go" ]; then | |
$compiler $filename | |
elif [ $language == "csharp" ]; then | |
$compiler /out:${filename%.*}.exe $filename | |
elif [ $language == "swift" ]; then | |
$compiler $filename | |
elif [ $language == "python" ]; then | |
$compiler $filename | |
elif [ $language == "javascript" ]; then | |
$compiler $filename | |
elif [ $language == "rust" ]; then | |
$compiler $filename | |
else | |
echo "Error: Unsupported file type" | |
exit 1 | |
fi | |
if [ $? -ne 0 ]; then | |
echo "Compilation failed" | |
exit 1 | |
fi | |
if [ $debug -eq 1 ]; then | |
echo "Running ${filename%.*}..." | |
fi | |
if [ $language == "java" ]; then | |
java ${filename%.*} | |
elif [ $language == "go" ]; then | |
$compiler $filename | |
else | |
./${filename%.*} | |
fi | |
if [ $debug -eq 1 ]; then | |
echo "Finished running ${filename%.*}" | |
fi | |