Add C, C++, C#
This commit is contained in:
parent
9a5258d91d
commit
139ec7b012
10 changed files with 87 additions and 0 deletions
12
README.md
12
README.md
|
@ -69,6 +69,9 @@ One of the following languages is set in `lang`.
|
|||
- `pas` Pascal (FPC 3.0.4)
|
||||
- `go` Go (Go 1.12)
|
||||
- `fs` F# (FSharp 4.5)
|
||||
- `c` C (GCC 8.2.0)
|
||||
- `cpp` C++ (G++ 8.2.0)
|
||||
- `cs` C# (Mono 5.18.0)
|
||||
|
||||
## Options
|
||||
|
||||
|
@ -92,3 +95,12 @@ For Go:
|
|||
|
||||
For F#:
|
||||
- None
|
||||
|
||||
For C:
|
||||
- None
|
||||
|
||||
For C++:
|
||||
- None
|
||||
|
||||
For C#:
|
||||
- `e` evaluates a single expression instead of a module
|
||||
|
|
8
docker/c/Dockerfile
Normal file
8
docker/c/Dockerfile
Normal file
|
@ -0,0 +1,8 @@
|
|||
FROM alpine
|
||||
LABEL author="1Computer1"
|
||||
|
||||
RUN apk update
|
||||
RUN apk add gcc libc-dev
|
||||
|
||||
COPY run.sh /var/run/
|
||||
WORKDIR /var/ws
|
2
docker/c/run.sh
Normal file
2
docker/c/run.sh
Normal file
|
@ -0,0 +1,2 @@
|
|||
echo "$1" > program.c
|
||||
gcc program.c -o program && ./program
|
8
docker/cpp/Dockerfile
Normal file
8
docker/cpp/Dockerfile
Normal file
|
@ -0,0 +1,8 @@
|
|||
FROM alpine
|
||||
LABEL author="1Computer1"
|
||||
|
||||
RUN apk update
|
||||
RUN apk add g++
|
||||
|
||||
COPY run.sh /var/run/
|
||||
WORKDIR /var/ws
|
2
docker/cpp/run.sh
Normal file
2
docker/cpp/run.sh
Normal file
|
@ -0,0 +1,2 @@
|
|||
echo "$1" > program.cpp
|
||||
g++ program.cpp -o program && ./program
|
5
docker/csharp/Dockerfile
Normal file
5
docker/csharp/Dockerfile
Normal file
|
@ -0,0 +1,5 @@
|
|||
FROM mono
|
||||
LABEL author="1Computer1"
|
||||
|
||||
COPY run.sh /var/run/
|
||||
WORKDIR /var/ws
|
6
docker/csharp/run.sh
Normal file
6
docker/csharp/run.sh
Normal file
|
@ -0,0 +1,6 @@
|
|||
if [ "$EVAL_EXPR" = "true" ]; then
|
||||
csharp -e "$1"
|
||||
else
|
||||
echo "$1" > program.cs
|
||||
csc program.cs >/dev/null && mono program.exe
|
||||
fi
|
11
src/languages/c.js
Normal file
11
src/languages/c.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
const Language = require('../struct/Language');
|
||||
|
||||
class C extends Language {
|
||||
constructor() {
|
||||
super('c', {
|
||||
aliases: ['c']
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = C;
|
11
src/languages/cpp.js
Normal file
11
src/languages/cpp.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
const Language = require('../struct/Language');
|
||||
|
||||
class CPP extends Language {
|
||||
constructor() {
|
||||
super('cpp', {
|
||||
aliases: ['cpp', 'c++']
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = CPP;
|
22
src/languages/csharp.js
Normal file
22
src/languages/csharp.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
const Language = require('../struct/Language');
|
||||
|
||||
class CSharp extends Language {
|
||||
constructor() {
|
||||
super('csharp', {
|
||||
aliases: ['csharp', 'cs'],
|
||||
options: {
|
||||
e: () => ''
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
runWith(options) {
|
||||
if (options.has('e')) {
|
||||
return { id: this.id, env: { EVAL_EXPR: 'true' } };
|
||||
}
|
||||
|
||||
return super.runWith(options);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = CSharp;
|
Loading…
Reference in a new issue