From afa2533f51e60993e78a768dbdd8ef46b805b42e Mon Sep 17 00:00:00 2001 From: SpaceEEC Date: Wed, 13 Mar 2019 05:37:28 +0100 Subject: [PATCH] Add Pascal --- README.md | 7 +++++++ docker/pascal/Dockerfile | 5 +++++ docker/pascal/run.sh | 11 +++++++++++ src/languages/pascal.js | 12 ++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 docker/pascal/Dockerfile create mode 100644 docker/pascal/run.sh create mode 100644 src/languages/pascal.js diff --git a/README.md b/README.md index 93c21d6..08289df 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ One of the following languages is set in `lang`. - `js` JavaScript (Node 10.14.2) - `py` Python (CPython 3.6.8) - `hs` Haskell (GHC 8.4.3) +- `pas` Pascal (FPC 3.0.4) ## Options @@ -76,6 +77,9 @@ For Python: For Haskell: - None +For Pascal: +- None + ## Packages Apart from the standard libraries, some other libraries come pre-installed. @@ -100,3 +104,6 @@ For Haskell: - scientific - split - vector + +For Pascal: +- None \ No newline at end of file diff --git a/docker/pascal/Dockerfile b/docker/pascal/Dockerfile new file mode 100644 index 0000000..79a6413 --- /dev/null +++ b/docker/pascal/Dockerfile @@ -0,0 +1,5 @@ +FROM frolvlad/alpine-fpc +LABEL author="SpaceEEC" + +COPY run.sh /var/run/ +WORKDIR /var/ws diff --git a/docker/pascal/run.sh b/docker/pascal/run.sh new file mode 100644 index 0000000..4903b85 --- /dev/null +++ b/docker/pascal/run.sh @@ -0,0 +1,11 @@ +echo "$1" > program.pas + +# fpc does not use stderr, ld however does, capture both +res="$(fpc program.pas 2>&1)" + +if [ $? -eq 0 ]; then + ./program +else + echo "$res" + exit 1 +fi diff --git a/src/languages/pascal.js b/src/languages/pascal.js new file mode 100644 index 0000000..6aca115 --- /dev/null +++ b/src/languages/pascal.js @@ -0,0 +1,12 @@ +const Language = require('../struct/Language'); + +class Pascal extends Language { + constructor() { + super('pascal', { + highlight: 'pas', + aliases: ['pascal', 'pas'] + }); + } +} + +module.exports = Pascal;