Import all language configs into YAML

This was an absolutely disgusting operation. Here's the commands I
used to do it (see <https://docs.gomplate.ca/> for the tool):

$ node
> require('fs').writeFile('langs.json', JSON.stringify(require('./langs').langs), console.log)
$ ./gomplate -c .=langs.json -f template.yaml > langs.yaml
$ cat langs.json | jq 'keys[]' -r L | while read lang; do cat langs.yaml | sed -n "/^ #START $lang\$/,/^ #END $lang\$/p" | tail -n+2 | head -n-1 | sed 's/^  //' > langs/$lang.yaml; done

I had some difficulty getting valid YAML to be generated, so I found
the tool at <http://www.yamllint.com/> to be helpful in identifying
errors.

For validation that nothing important had changed in the
transformation, I used <http://www.jsondiff.com/> to compare
langs.json against the output of this command:

$ ./gomplate -c .=langs.json -f template.yaml | node yaml2json.js | jq '(.. | select(type == "string")) |= sub("\n+$";"") | (.. | select(.template?) | .template?) |= (.+"\n") | (.. | select(.format?.input?) | .format?.input?) |= (.+"\n")'

Here's yaml2json.js:

import fs from "fs";
import YAML from "yaml";

console.log(JSON.stringify(YAML.parse(fs.readFileSync(0, "utf-8")), null, 2));

And here's the template.yaml, which is approximately the worst thing
ever:

{{ range . }}
"{{ .id }}":
 #START {{ .id }}
  id: "{{ .id }}"
{{ if has . "aliases" }}  aliases:
{{ range .aliases }}    - "{{ . }}"
{{ end }}{{ end }}  name: "{{ .name }}"
{{ if has . "monacoLang" }}  monacoLang: {{ .monacoLang }}
{{ end }}{{ if has . "info" }}
  info:
{{ if has .info "impl" }}    impl: "{{ .info.impl }}"
{{ end }}{{ if has .info "version" }}    version: "{{ .info.version }}"
{{ end }}    year: {{ .info.year }}
    desc: "{{ .info.desc }}"
{{ if eq "string" (printf "%T" .info.ext) }}    ext: {{ .info.ext }}
{{ else if eq 0 (len .info.ext) }}    ext: []
{{ else }}    ext:
{{ range .info.ext }}      - {{ . }}
{{ end }}{{ end }}    web:
{{ if has .info.web "wiki" }}      wiki: "{{ .info.web.wiki }}"
{{ end }}{{ if has .info.web "esolang" }}      esolang: "{{ .info.web.esolang }}"
{{ end }}{{ if has .info.web "home" }}      home: "{{ .info.web.home }}"
{{ end }}{{ if has .info.web "impl" }}      impl: "{{ .info.web.impl }}"
{{ end }}      source: {{ if eq "string" (printf "%T" .info.web.source) }}"{{ .info.web.source }}"
{{ else }}null
{{ end }}{{ if eq "string" (printf "%T" .info.category) }}    category: {{ .info.category }}
{{ else if eq 0 (len .info.category) }}    category: []
{{ else }}    category:
{{ range .info.category }}      - {{ . }}
{{ end }}{{ end }}{{ if eq "string" (printf "%T" .info.mode) }}    mode: {{ .info.mode }}
{{ else if eq 0 (len .info.mode) }}    mode: []
{{ else }}    mode:
{{ range .info.mode }}      - {{ . }}
{{ end }}{{ end }}{{ if eq "string" (printf "%T" .info.platform) }}    platform: {{ .info.platform }}
{{ else if eq 0 (len .info.platform) }}    platform: []
{{ else }}    platform:
{{ range .info.platform }}      - {{ . }}
{{ end }}{{ end }}{{ if eq "string" (printf "%T" .info.syntax) }}    syntax: {{ .info.syntax }}
{{ else if eq 0 (len .info.syntax) }}    syntax: []
{{ else }}    syntax:
{{ range .info.syntax }}      - {{ . }}
{{ end }}{{ end }}{{ if eq "string" (printf "%T" .info.typing) }}    typing: {{ .info.typing }}
{{ else if eq 0 (len .info.typing) }}    typing: []
{{ else }}    typing:
{{ range .info.typing }}      - {{ . }}
{{ end }}{{ end }}{{ if eq "string" (printf "%T" .info.paradigm) }}    paradigm: {{ .info.paradigm }}
{{ else if eq 0 (len .info.paradigm) }}    paradigm: []
{{ else }}    paradigm:
{{ range .info.paradigm }}      - {{ . }}
{{ end }}{{ end }}{{ if eq "string" (printf "%T" .info.usage) }}    usage: {{ .info.usage }}
{{ else if eq 0 (len .info.usage) }}    usage: []
{{ else }}    usage:
{{ range .info.usage }}      - {{ . }}
{{ end }}{{ end }}{{ end }}{{ if or (has . "daemon") (has . "setup") }}
{{ end }}{{ if has . "daemon" }}  daemon: |
{{ .daemon | indent 4 }}
{{ end }}{{ if has . "setup" }}  setup: |
{{ .setup | indent 4 }}
{{ end }}{{ if has . "repl" }}
  repl: |
{{ .repl | indent 4 }}
{{ end }}{{ if has . "input" }}{{ if .input | strings.Contains "\x1b" }}  input: "{{ .input | strings.ReplaceAll "\x1b" "\\x1b" }}"
{{ else }}  input: |{{ if .input | regexp.Match "^\\s" }}2{{ end }}
{{ .input | indent 4 }}
{{ end }}{{ end }}{{ if has . "output" }}  output: |
{{ .output | indent 4 }}
{{ end }}
  main: "{{ .main }}"
  template: {{ if eq .id "whitespace" }}{{ .template | strings.Quote }}
{{ else }}|{{ if .template | regexp.Match "^\\s" }}2{{ end }}
{{ .template | indent 4 }}{{ end }}{{ if has . "prefix" }}  prefix: |
{{ .prefix | indent 4 }}
{{ end }}{{ if has . "suffix" }}  suffix: |
{{ .suffix | indent 4 }}
{{ end }}{{ if has . "createEmpty" }}  createEmpty: "{{ .createEmpty }}"
{{ end }}
{{ if has . "compile" }}  compile: |
{{ .compile | indent 4 }}
{{ end }}  run: |
{{ .run | indent 4 }}
{{ if has . "helloInput" }}  helloInput: |
{{ .helloInput | indent 4 }}
{{ end }}{{ if has . "hello" }}  hello: |
{{ .hello | indent 4 }}
{{ end }}{{ if has . "helloMaxLength" }}  helloMaxLength: {{ .helloMaxLength }}
{{ end }}{{ if has . "runReplInput" }}  runReplInput: |
{{ .runReplInput | indent 4 }}
{{ end }}{{ if has . "runReplOutput" }}  runReplOutput: |
{{ .runReplOutput | indent 4 }}
{{ end }}{{ if has . "scope" }}
  scope:
    code: |
{{ .scope.code | indent 6 }}
{{ if has .scope "after" }}    after: "{{ .scope.after }}"
{{ end }}{{ if has .scope "input" }}{{ if .scope.input | strings.Contains "\x1b" }}    input: "{{ .scope.input | strings.ReplaceAll "\x1b" "\\x1b" }}"
{{ else }}    input: |
{{ .scope.input | indent 6 }}
{{ end }}{{ end }}{{ if has .scope "output" }}    output: |
{{ .scope.output | indent 6 }}
{{ end }}{{ end }}{{ if has . "format" }}
  format:
    run: |
{{ .format.run | indent 6 }}
{{ if has .format "input" }}    input: |
{{ .format.input | indent 6 }}{{ end }}{{ if has .format "output" }}    output: |
{{ .format.output | indent 6 }}{{ end }}{{ end }}{{ if has . "pkg" }}
  pkg:
    install: |
{{ .pkg.install | indent 6 }}
{{ if has .pkg "uninstall" }}
    uninstall: |
{{ .pkg.uninstall | indent 6 }}
{{ end }}{{ if has .pkg "all" }}
    all: |
{{ .pkg.all | indent 6 }}
{{ end }}{{ if has .pkg "search" }}
    search: |
{{ .pkg.search | indent 6 }}
{{ end }}{{ end }}{{ if has . "lsp" }}
  lsp:
{{ if has .lsp "setup" }}    setup: |
{{ .lsp.setup | indent 6 }}
{{ end }}    start: |
{{ .lsp.start | indent 6 }}
{{ if has .lsp "disableDynamicRegistration" }}    disableDynamicRegistration: {{ .lsp.disableDynamicRegistration }}
{{ end }}{{ if has .lsp "init" }}    init:
{{ .lsp.init | data.ToYAML | indent 6 }}{{ end }}{{ if has .lsp "config" }}    config: {{ .lsp.config | data.ToYAML }}{{ end }}{{ if has .lsp "lang" }}    lang: "{{ .lsp.lang }}"
{{ end }}{{ if has .lsp "code" }}    code: {{ .lsp.code | strings.Quote }}
{{ end }}{{ if has .lsp "after" }}    after: {{ .lsp.after | strings.Quote }}
{{ end }}{{ if has .lsp "item" }}    item: {{ .lsp.item | strings.Quote }}
{{ end }}{{ end }}{{ if has . "skip" }}
  skip:
{{ range .skip }}    - {{ . }}
{{ end }}{{ end }} #END {{ .id }}
{{ end }}
This commit is contained in:
Radon Rosborough 2021-01-02 09:59:29 -08:00
parent 4f3633384c
commit 2daa11c7aa
219 changed files with 5958 additions and 27 deletions

View File

@ -307,7 +307,7 @@ export class Session {
code = createEmpty !== undefined ? createEmpty : template + "\n";
}
if (code && suffix) {
code += suffix;
code += suffix + "\n";
}
await this.writeCode(code);
const termArgs = this.privilegedSpawn(bash(cmdline));

View File

@ -19,6 +19,9 @@ function fixupLangConfig(langConfig) {
return langConfig.trim();
} else if (typeof langConfig === "object") {
for (const key in langConfig) {
if (langConfig.id === "whitespace" && key === "template") {
continue;
}
langConfig[key] = fixupLangConfig(langConfig[key]);
}
}

View File

@ -249,7 +249,7 @@ class Test {
await this.waitForOutput(output);
};
testFormat = async () => {
const input = this.config.format.input;
const input = this.config.format.input + "\n";
const output = (this.config.format.output || this.config.template) + "\n";
this.send({ event: "formatCode", code: input });
const result = await this.wait("formatter response", (msg) => {

29
langs/><>.yaml Normal file
View File

@ -0,0 +1,29 @@
id: "><>"
aliases:
- "fishlang"
name: "><>"
info:
year: 2009
desc: "Stack-based, reflective, two-dimensional esoteric programming language"
ext: fish
web:
esolang: "https://esolangs.org/wiki/Fish"
source: "https://gist.github.com/anonymous/6392418"
category: esoteric
mode: interpreted
platform: []
syntax:
- golf
- 2d
typing: float
paradigm: stack
usage: []
main: "main.fish"
template: |
"Hello, world!"r\
o;!?l<
run: |
fish-lang main.fish

21
langs/a+.yaml Normal file
View File

@ -0,0 +1,21 @@
id: "a+"
aliases:
- "aplus"
name: "A+"
repl: |
rlwrap a+
input: |
2 * 16
output: |
65536
main: "main.a+"
template: |
'Hello, world!'
run: |
rlwrap a+ main.a+
skip:
- scope

20
langs/abc.yaml Normal file
View File

@ -0,0 +1,20 @@
id: "abc"
name: "ABC"
repl: |
abc
input: |
WRITE 123 * 234
main: "main.abc"
template: |
WRITE "Hello, world!" /
run: |
abc "$PWD/main.abc" -
scope:
code: |
PUT 123 * 234 IN x
input: |
WRITE x

48
langs/ada.yaml Normal file
View File

@ -0,0 +1,48 @@
id: "ada"
aliases:
- "adb"
- "gnat"
name: "Ada"
info:
impl: "GNAT"
year: 1980
desc: "Structured, statically typed, imperative, and object-oriented high-level programming language, extended from Pascal and other languages"
ext:
- adb
- ads
web:
wiki: "https://en.wikipedia.org/wiki/Ada_(programming_language)"
home: "https://www.adaic.org/"
impl: "https://www.gnu.org/software/gnat/"
source: "https://gcc.gnu.org/git.html"
category: general
mode: compiled
platform: []
syntax: pascal
typing: static
paradigm:
- imperative
- oo
usage: popular
main: "main.adb"
template: |
with Ada.Text_IO;
procedure Main is
begin
Ada.Text_IO.Put_Line("Hello, world!");
end Main;
compile: |
x86_64-linux-gnu-gnatmake-9 main.adb
run: |
./main
lsp:
start: |
ada_language_server
code: "\n Ada.IO"
after: ");"
item: "IO_Exceptions"

19
langs/afnix.yaml Normal file
View File

@ -0,0 +1,19 @@
id: "afnix"
aliases:
- "als"
- "axc"
- "axi"
name: "Afnix"
repl: |
LD_LIBRARY_PATH=/usr/lib/afnix axi
input: |
DELAY: 1
println (* 123 234)
main: "main.als"
template: |
println "Hello, world!"
run: |
LD_LIBRARY_PATH=/usr/lib/afnix axi main.als; LD_LIBRARY_PATH=/usr/lib/afnix axi

34
langs/algol.yaml Normal file
View File

@ -0,0 +1,34 @@
id: "algol"
aliases:
- "alg"
- "a68g"
- "genie"
- "a68genie"
name: "ALGOL 68"
info:
impl: "ALGOL 68 Genie"
version: "ALGOL 68"
year: 1958
desc: "Seminal imperative programming language which introduced lexical scope and formal grammar specification"
ext: alg
web:
wiki: "https://en.wikipedia.org/wiki/ALGOL"
home: "http://algol68.sourceforge.net/"
source: "https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html"
category: general
mode:
- interpreted
- compiled
platform: []
syntax: pascal
typing: static
paradigm: imperative
usage: []
main: "main.alg"
template: |
print(("Hello, world!",new line))
run: |
a68g main.alg

18
langs/ante.yaml Normal file
View File

@ -0,0 +1,18 @@
id: "ante"
aliases:
- "an"
name: "Ante"
repl: |
ante
output: |
i32
main: "main.an"
template: |
puts("Hello, world!".cStr)
compile: |
ante main.an
run: |
./main; ante

9
langs/antecards.yaml Normal file
View File

@ -0,0 +1,9 @@
id: "antecards"
name: "Ante (Cards)"
main: "main.ante"
template: |
9♦8♥J♦A♦2♣3♥7♠J♦A♦7♦J♦J♦A♦3♦J♦5♥6♦4♥J♥A♥6♠6♠J♥A♦8♦J♦A♦8♠J♦A♦3♦J♦A♦6♠J♦A♦8♠J♦A♥3♦2♠J♥A♥2♣6♠J♥
run: |
RUBYOPT="-W0" ante-cards main.ante

41
langs/apl.yaml Normal file
View File

@ -0,0 +1,41 @@
id: "apl"
name: "APL"
info:
impl: "GNU APL"
year: 1966
desc: "Array-based programming language using large range of special symbols for concision"
ext: apl
web:
wiki: "https://en.wikipedia.org/wiki/APL_(programming_language)"
impl: "https://www.gnu.org/software/apl/"
source: "https://savannah.gnu.org/svn/?group=apl"
category:
- general
mode: interpreted
platform: []
syntax:
- golf
- symbol
typing: dynamic
paradigm:
- array
- functional
- imperative
usage: []
repl: |
apl
input: |
123 × 234
main: "main.apl"
template: |
'Hello, world!'
run: |
apl -f main.apl
scope:
code: |
x ← 123 × 234

42
langs/arm.yaml Normal file
View File

@ -0,0 +1,42 @@
id: "arm"
name: "ARM"
info:
impl: "GCC"
year: 1985
desc: "Popular RISC architecture used in mobile devices"
ext: S
web:
wiki: "https://en.wikipedia.org/wiki/ARM_architecture"
home: "https://developer.arm.com/architectures/cpu-architecture"
impl: "https://gcc.gnu.org/"
source: "https://gcc.gnu.org/git.html"
category: assembly
mode: compiled
platform: []
syntax: assembly
typing: weak
paradigm: imperative
usage: []
main: "main.S"
template: |2
.text
.globl main
main:
mov r7, #4
mov r0, #1
ldr r1, =message
mov r2, #14
swi 0
mov r7, #1
mov r0, #0
swi 0
.data
message:
.string "Hello, world!\n"
compile: |
arm-linux-gnueabihf-gcc main.S -o main -static
run: |
qemu-arm-static main

30
langs/asciidoc.yaml Normal file
View File

@ -0,0 +1,30 @@
id: "asciidoc"
aliases:
- "adoc"
- "asc"
name: "AsciiDoc"
info:
year: 2002
desc: "Human-readable document format, semantically equivalent to DocBook XML, but using plain-text mark-up conventions"
ext: adoc
web:
wiki: "https://en.wikipedia.org/wiki/AsciiDoc"
home: "https://asciidoc.org/"
source: "https://github.com/asciidoc/asciidoc"
category: markup
mode: []
platform: []
syntax: text
typing: []
paradigm: []
usage: []
main: "main.adoc"
template: |
Hello, world!
compile: |
asciidoc -s main.adoc
run: |
prettier --no-config main.html

18
langs/aspectc++.yaml Normal file
View File

@ -0,0 +1,18 @@
id: "aspectc++"
aliases:
- "aspectcpp"
name: "AspectC++"
main: "main.cpp"
template: |
#include <iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
compile: |
ag++ main.cpp -o main | (grep -v "TO BE FIXED" || true)
run: |
./main

17
langs/aspectj.yaml Normal file
View File

@ -0,0 +1,17 @@
id: "aspectj"
aliases:
- "aj"
name: "AspectJ"
main: "Main.aj"
template: |
public class Main {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
compile: |
ajc Main.aj
run: |
java Main

14
langs/asymptote.yaml Normal file
View File

@ -0,0 +1,14 @@
id: "asymptote"
aliases:
- "asy"
name: "Asymptote"
repl: |
asy
main: "main.asy"
template: |
write("Hello, world!");
run: |
asy main.asy; asy

45
langs/ats.yaml Normal file
View File

@ -0,0 +1,45 @@
id: "ats"
aliases:
- "dats"
- "sats"
- "cats"
- "hats"
name: "ATS"
monacoLang: postiats
info:
impl: "ATS2/Postiats"
year: 2007
desc: "Programming language designed to unify programming with formal specification"
ext:
- sats
- dats
- cats
- hats
web:
wiki: "https://en.wikipedia.org/wiki/ATS_(programming_language)"
home: "http://www.ats-lang.org/"
source: "https://github.com/githwxi/ATS-Postiats"
category: general
mode: compiled
platform: []
syntax:
- c
- haskell
typing:
- static
- theorem
paradigm:
- imperative
- declarative
usage: []
main: "main.dats"
template: |
val _ = print ("Hello, world!\n")
implement main0 () = ()
compile: |
patscc main.dats -o main
run: |
./main

30
langs/awk.yaml Normal file
View File

@ -0,0 +1,30 @@
id: "awk"
aliases:
- "gawk"
- "mawk"
- "nawk"
name: "Awk"
info:
impl: "GNU Awk"
year: 1977
desc: "Domain-specific language designed for text processing and typically used as a data extraction and reporting tool"
ext: awk
web:
wiki: "https://en.wikipedia.org/wiki/AWK"
impl: "https://www.gnu.org/software/gawk/manual/gawk.html"
source: "https://savannah.gnu.org/git/?group=gawk"
category: tool
mode: interpreted
platform: []
syntax: c
typing: weak
paradigm: imperative
usage: []
main: "main.awk"
template: |
BEGIN { print "Hello, world!" }
run: |
awk -f main.awk

49
langs/bash.yaml Normal file
View File

@ -0,0 +1,49 @@
id: "bash"
aliases:
- "bashrc"
- "bourneshell"
name: "Bash"
monacoLang: shell
info:
impl: "GNU Bash"
year: 1989
desc: "Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell"
ext:
- bash
- sh
web:
wiki: "https://en.wikipedia.org/wiki/Bash_(Unix_shell)"
impl: "https://www.gnu.org/software/bash/"
source: "https://savannah.gnu.org/projects/bash/"
category: shell
mode: interpreted
platform: []
syntax: pascal
typing: weak
paradigm: imperative
usage: []
repl: |
bash --rcfile /dev/null
input: |
expr 123 \* 234
main: "main.bash"
template: |
echo "Hello, world!"
run: |
bash --rcfile main.bash
scope:
code: |
x="$(expr 123 \* 234)"
input: |
echo "$x"
lsp:
start: |
bash-language-server start
code: "read"
item: "readonly"

43
langs/basic.yaml Normal file
View File

@ -0,0 +1,43 @@
id: "basic"
aliases:
- "bas"
- "qbasic"
name: "BASIC"
info:
impl: "Bywater BASIC"
year: 1964
desc: "General-purpose, high-level programming language whose design philosophy emphasizes ease of use"
ext: bas
web:
wiki: "https://en.wikipedia.org/wiki/BASIC"
impl: "https://sourceforge.net/projects/bwbasic/"
source: "https://sourceforge.net/projects/bwbasic/files/bwbasic/"
category: general
mode: interpreted
platform: []
syntax:
- basic
- column
- whitespace
typing: static
paradigm: imperative
usage: []
repl: |
bwbasic
input: |
PRINT 123 * 234
main: "main.bas"
template: |
PRINT "Hello, world!"
run: |
bwbasic main.bas
scope:
code: |
x = 123 * 234
input: |
PRINT x

31
langs/battlestar.yaml Normal file
View File

@ -0,0 +1,31 @@
id: "battlestar"
aliases:
- "battlestarc"
- "bts"
name: "Battlestar"
info:
year: 2014
desc: "A different take on assembly, with the goal of creating tiny executables"
ext: bts
web:
source: "https://github.com/xyproto/battlestar"
category: assembly
mode: compiled
platform: []
syntax: assembly
typing: weak
paradigm: imperative
usage: personal
main: "main.bts"
template: |
const message = "Hello, world!
"
fun main
syscall(1, 1, message, len(message))
end
run: |
bts main.bts

13
langs/bc.yaml Normal file
View File

@ -0,0 +1,13 @@
id: "bc"
name: "bc"
repl: |
bc
main: "main.bc"
template: |
"Hello, world!
"
run: |
bc main.bc

23
langs/beanshell.yaml Normal file
View File

@ -0,0 +1,23 @@
id: "beanshell"
aliases:
- "bsh"
name: "Beanshell"
repl: |
CLASSPATH=/usr/share/java/jline.jar:/usr/share/java/bsh.jar java -Duser.home="$PWD" jline.ConsoleRunner bsh.Interpreter
input: |
print(123 * 234);
main: ".bshrc"
template: |
print("Hello, world!");
createEmpty: ""
run: |
CLASSPATH=/usr/share/java/jline.jar:/usr/share/java/bsh.jar java -Duser.home="$PWD" jline.ConsoleRunner bsh.Interpreter
scope:
code: |
x = 123 * 234;
input: |
print(x);

115
langs/beatnik.yaml Normal file
View File

@ -0,0 +1,115 @@
id: "beatnik"
name: "Beatnik"
info:
impl: "Cat's Eye Beatnik"
year: 2001
desc: "Stack-based esoteric programming language created by Cliff L. Biffle"
ext: beatnik
web:
wiki: "https://en.wikipedia.org/wiki/Beatnik_(programming_language)"
esolang: "https://esolangs.org/wiki/Beatnik"
home: "https://cliffle.com/esoterica/beatnik/"
source: "https://github.com/catseye/Beatnik"
category: esoteric
mode: interpreted
platform: []
syntax: []
typing: integer
paradigm: stack
usage: []
main: "main.beatnik"
template: |
Soars, larkspurs, rains.
Indistinctness.
Mario snarl (nurses, natures, rules...) sensuously retries goal.
Agribusinesses' costs par lain ropes (mopes) autos' cores.
Tuner ambitiousness.
Flit.
Dour entombment.
Legals' saner kinking lapse.
Nests glint.
Dread, tied futures, dourer usual tumor grunts alter atonal
garb tries shouldered coins.
Taste a vast lustiness.
Stile stuns gad subgroup gram lanes.
Draftee insurer road: cuckold blunt, strut sunnier.
Rely enure pantheism: arty gain groups (genies, pan) titters, tattles, nears.
Bluffer tapes? Idle diatom stooge!
Feted antes anklets ague? Remit goiter gout!
Doubtless teared toed alohas will dull gangs' aerials' tails' sluices;
Gusset ends! Gawkier halo!
Enter abstruse rested loser beer guy louts.
Curtain roams lasso weir lupus stunt.
Truant bears animate talon. Entire torte originally timer.
Redo stilt gobs.
Utter centaurs;
Urgent stars;
Usurers (dilute);
Noses;
Bones;
Brig sonar graders;
Utensil silts;
Lazies.
Fret arson veterinary rows.
Atlas grunted: "Pates, slues, sulfuric manor liaising tines,
trailers, rep... unfair! Instant snots!"
Sled rested until eatery fail.
Ergs fortitude
Indent spotter
Euros enter egg.
Curious tenures.
Torus cutlasses.
Sarong torso earns cruel lags it reeled.
Engineer: "Erase handbag -- unite ratification!"
oaring oaten donkeys unsold, surer rapid saltest tags
BUTTERED TIBIA LUGS REWIRING TOILETS
anion festers raring edit epilogues.
DIRGE ROTOR.
linnet oaring.
GORE BOOTIES.
Ironed goon lists tallest sublets --
Riots,
Raucous onset.
Ignobly, runners' diet anguishes sunrise loner.
Erode mob, slier switcher!
Loaners stilt drudge pearl atoll, risking hats' ends.
Rebind sitters.
Toga epistles -- crud lard. (Pager purse dons souls.)
glob title a curio hired rites shed suds lade grease strut arctic revs toad
unless idlers rind stilt region land GERMICIDES SULTANA GUTS gill siting leans
nice spurs
tests gloves
roused asp
Holes! Moles! (Sores!)
Hygienists! Scars! (Asses!)
Smells spell rares.
Cubs instant sing in parse goodies.
Rosin. Unhelpful sisal acres. Slope told.
MALENESS PASTA LAB. "Infirmary vine," rang illiterates (beans).
Rosin sours, insults truss abalones, nailed rules, helical atlases.
Dear remodeling stings mar rents.
Sunless shiner orb (silly idol.)
Clarity disses senna.
Vagabonds sauted; sloes performed gelds.
Alter post radial lip sectioning gums.
Saint Towellings.
Larger aeons telephone stolid char, pal!
Boats Dean forsook, rosters, tunas, terrariums -- united, traced.
Nude pagoda careens.
run: |
beatnik main.beatnik

37
langs/befunge.yaml Normal file
View File

@ -0,0 +1,37 @@
id: "befunge"
aliases:
- "be"
name: "Befunge"
info:
impl: "amicloud Befunge-93"
version: "Befunge-93"
year: 1993
desc: "Two-dimensional esoteric programming language invented in 1993 by Chris Pressey with the goal of being as difficult to compile as possible"
ext:
- be
- bf
- b93
- b98
- befunge
web:
wiki: "https://en.wikipedia.org/wiki/Befunge"
esolang: "https://esolangs.org/wiki/Befunge"
home: "https://catseye.tc/article/Languages.md#befunge-93"
source: "https://github.com/amicloud/befunge93"
category: esoteric
mode: interpreted
platform: []
syntax:
- golf
- 2d
typing: integer
paradigm: stack
usage: []
main: "main.be"
template: |
64+"!dlrow ,olleH">:#,_@
run: |
befunge-repl main.be

34
langs/blc.yaml Normal file
View File

@ -0,0 +1,34 @@
id: "blc"
aliases:
- "binarylambdacalculus"
- "lc"
- "binary"
- "lambdacalculus"
- "lambda"
name: "Binary Lambda Calculus"
info:
year: 2004
desc: "Minimal, pure functional programming language invented by John Tromp in 2004, based on a binary encoding of the untyped lambda calculus in De Bruijn index notation"
ext: blc
web:
wiki: "https://en.wikipedia.org/wiki/Binary_combinatory_logic"
esolang: "https://esolangs.org/wiki/Binary_lambda_calculus"
home: "https://tromp.github.io/cl/Binary_lambda_calculus.html"
impl: "https://www.ioccc.org/2012/tromp/hint.html"
source: "https://www.ioccc.org/2012/tromp/tromp.c"
category: esoteric
mode: interpreted
platform: []
syntax: []
typing: lambda
paradigm: functional
usage: []
main: "main.blc"
template: |
001010100100100001100101011011000110110001101111001011000010
000001110111011011110111001001101100011001000010000100001010
run: |
cat main.blc | binary-to-text | tromp

42
langs/boo.yaml Normal file
View File

@ -0,0 +1,42 @@
id: "boo"
aliases:
- "booc"
name: "Boo"
info:
year: 2003
desc: "Object-oriented, statically typed, general-purpose programming language on Microsoft's Common Language Infrastructure"
ext: boo
web:
wiki: "https://en.wikipedia.org/wiki/Boo_(programming_language)"
home: "https://boo-language.github.io/"
source: "https://github.com/boo-lang/boo"
category: general
mode: compiled
platform: clr
syntax:
- python
- extensible
- whitespace
typing:
- static
- dynamic
paradigm:
- imperative
- oo
usage: []
setup: |
mkdir -p "$HOME/.local/share" && touch "$HOME/.local/share/booish_history"
repl: |
booish
main: "main.boo"
template: |
print "Hello, world!"
compile: |
booc main.boo
run: |
mono main.exe; booish

68
langs/brainf.yaml Normal file
View File

@ -0,0 +1,68 @@
id: "brainf"
aliases:
- "brainfuck"
- "bf"
name: "Brainf***"
info:
impl: "Beef"
year: 1993
desc: "Famous esoteric programming language created in 1993 by Urban Müller"
ext:
- b
- bf
web:
wiki: "https://en.wikipedia.org/wiki/Brainfuck"
esolang: "https://esolangs.org/wiki/Brainfuck"
impl: "https://kiyuko.org/software/beef"
source: "https://github.com/andreabolognani/beef"
category: esoteric
mode: interpreted
platform: bf
syntax: golf
typing: integer
paradigm: turing
usage: []
repl: |
brainf-repl
input: |
>++>+[>++++[-<++++>]<<]> [>>+>+<<<-]>>>[<<<+>>>-]<<+>[<->[>++++++++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]++++++++[<++++++>-]>[<<+>>-]>[<<+>>-]<<]>]<[->>++++++++[<++++++>-]]<[.[-]<]<
output: |
86
main: "main.bf"
template: |
++++++++
[
>++++
[
>++
>+++
>+++
>+
<<<<-
]
>+
>+
>-
>>+
[<]
<-
]
>>.
>---.
+++++++..+++.
>>.
<-.
<.
+++.------.--------.
>>+.
>++.
run: |
brainf-repl main.bf
hello: |
Hello World

11
langs/bython.yaml Normal file
View File

@ -0,0 +1,11 @@
id: "bython"
aliases:
- "by"
name: "Bython"
main: "main.by"
template: |
print("Hello, world!")
run: |
bython main.by

88
langs/c++.yaml Normal file
View File

@ -0,0 +1,88 @@
id: "c++"
aliases:
- "cpp"
- "g++"
- "clang++"
- "c++98"
- "c++03"
- "c++11"
- "c++14"
- "c++17"
- "c++20"
- "cpp98"
- "cpp03"
- "cpp11"
- "cpp14"
- "cpp17"
- "cpp20"
- "hpp"
- "cxx"
- "hxx"
name: "C++"
monacoLang: cpp
info:
impl: "LLVM"
version: "C++20"
year: 1985
desc: "General-purpose programming language created by Bjarne Stroustrup as an extension of the C programming language"
ext:
- C
- cc
- cpp
- cxx
- c++
- h
- hh
- hpp
- hxx
- h++
web:
wiki: "https://en.wikipedia.org/wiki/C%2B%2B"
impl: "https://llvm.org/"
source: "https://github.com/llvm/llvm-project"
category: general
mode: compiled
platform: []
syntax: c
typing: static
paradigm:
- functional
- imperative
- oo
usage: popular
main: "main.cpp"
template: |
#include <iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
compile: |
clang++ -std=c++17 -pedantic -Wall -Wextra main.cpp -o main
run: |
./main
format:
run: |
clang-format --assume-filename=format.cpp
input: |
#include <iostream>
int main()
{
std::cout << "Hello, world!" << std::endl;
return 0;
}
lsp:
setup: |
echo '-Wall -Wextra' | sed -E 's/\s+/\n/g' > compile_flags.txt
start: |
clangd
skip:
- lsp

66
langs/c.yaml Normal file
View File

@ -0,0 +1,66 @@
id: "c"
aliases:
- "gcc"
- "clang"
- "h"
- "cc"
- "c99"
- "c11"
- "c18"
name: "C"
monacoLang: c
info:
impl: "LLVM"
version: "C18"
year: 1972
desc: "General-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, with a static type system"
ext:
- c
- h
web:
wiki: "https://en.wikipedia.org/wiki/C_(programming_language)"
impl: "https://llvm.org/"
source: "https://github.com/llvm/llvm-project"
category: general
mode: compiled
platform: []
syntax: c
typing: static
paradigm: imperative
usage: popular
main: "main.c"
template: |
#include <stdio.h>
int main() {
printf("Hello, world!\n");
return 0;
}
compile: |
clang -std=c17 -pedantic -Wall -Wextra main.c -o main
run: |
./main
format:
run: |
clang-format --assume-filename=format.c
input: |
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
return 0;
}
lsp:
setup: |
echo '-Wall -Wextra' | sed -E 's/\s+/\n/g' > compile_flags.txt
start: |
clangd
skip:
- lsp

32
langs/cat.yaml Normal file
View File

@ -0,0 +1,32 @@
id: "cat"
aliases:
- "cat-language"
name: "Cat"
info:
year: 2006
desc: "Statically typed stack-based programming language in C#"
ext: cat
web:
source: "https://github.com/cdiggins/cat-language"
category: pure
mode: interpreted
platform: []
syntax: tokens
typing: static
paradigm: stack
usage: []
repl: |
NODE_PATH=/opt/cat node /opt/cat/repl.js
input: |
123 234 mul
main: "main.cat"
template: |
72 101 108 108 111 44 32 119 111 114 108 100 33 10
run: |
NODE_PATH=/opt/cat node /opt/cat/repl.js main.cat
hello: |
72,101,108,108,111,44,32,119,111,114,108,100,33,10

29
langs/ceylon.yaml Normal file
View File

@ -0,0 +1,29 @@
id: "ceylon"
name: "Ceylon"
info:
year: 2011
desc: "Object-oriented, strongly statically typed programming language with an emphasis on immutability, created by Red Hat"
ext: ceylon
web:
wiki: "https://en.wikipedia.org/wiki/Ceylon_(programming_language)"
home: "https://ceylon-lang.org/"
source: "https://ceylon-lang.org/code/source/"
category: general
mode: compiled
platform: jvm
syntax: c
typing: static
paradigm:
- imperative
- oo
usage: []
main: "source/main.ceylon"
template: |
shared void run() {
print("Hello, world!");
}
run: |
PATH="/usr/lib/jvm/java-8-openjdk-amd64/bin:$PATH" ceylon run --compile=force default

86
langs/chef.yaml Normal file
View File

@ -0,0 +1,86 @@
id: "chef"
name: "Chef"
info:
impl: "Acme::Chef"
year: 2002
desc: "Stack-based language where programs look like cooking recipes"
ext: chef
web:
esolang: "https://esolangs.org/wiki/Chef"
home: "https://www.dangermouse.net/esoteric/chef.html"
source: "http://search.cpan.org/author/SMUELLER/Acme-Chef/"
category: esoteric
mode:
- compiled
- interpreted
platform: []
syntax: text
typing: integer
paradigm: imperative
usage: []
main: "main.chef"
template: |
Hello World Cake with Chocolate Sauce.
Ingredients.
33 g chocolate chips
100 g butter
54 ml double cream
2 pinches baking powder
114 g sugar
111 ml beaten eggs
119 g flour
32 g cocoa powder
0 g cake mixture
Cooking time: 25 minutes.
Pre-heat oven to 180 degrees Celsius.
Method.
Put chocolate chips into the mixing bowl.
Put butter into the mixing bowl.
Put sugar into the mixing bowl.
Put beaten eggs into the mixing bowl.
Put flour into the mixing bowl.
Put baking powder into the mixing bowl.
Put cocoa powder into the mixing bowl.
Stir the mixing bowl for 1 minute.
Combine double cream into the mixing bowl.
Stir the mixing bowl for 4 minutes.
Liquefy the contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
bake the cake mixture.
Wait until baked.
Serve with chocolate sauce.
Chocolate Sauce.
Ingredients.
111 g sugar
108 ml hot water
108 ml heated double cream
101 g dark chocolate
72 g milk chocolate
Method.
Clean the mixing bowl.
Put sugar into the mixing bowl.
Put hot water into the mixing bowl.
Put heated double cream into the mixing bowl.
dissolve the sugar.
agitate the sugar until dissolved.
Liquefy the dark chocolate.
Put dark chocolate into the mixing bowl.
Liquefy the milk chocolate.
Put milk chocolate into the mixing bowl.
Liquefy contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
Refrigerate for 1 hour.
run: |
chef main.chef
hello: |
Hello world!

25
langs/cil.yaml Normal file
View File

@ -0,0 +1,25 @@
id: "cil"
aliases:
- "msil"
- "il"
- "ilasm"
name: "CIL"
main: "main.il"
template: |
.assembly main {}
.class Main
{
.method static void Main() cil managed
{
.entrypoint
ldstr "Hello, world!"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
}
compile: |
ilasm main.il
run: |
mono main.exe

44
langs/clean.yaml Normal file
View File

@ -0,0 +1,44 @@
id: "clean"
aliases:
- "icl"
- "clm"
- "dcl"
name: "Clean"
info:
year: 1987
desc: "General-purpose purely functional computer programming language"
ext:
- icl
- dcl
- abc
web:
wiki: "https://en.wikipedia.org/wiki/Clean_(programming_language)"
home: "https://clean.cs.ru.nl/Clean"
source: "https://gitlab.science.ru.nl/clean-compiler-and-rts/compiler"
category: general
mode: compiled
platform: []
syntax: haskell
typing: static
paradigm:
- declarative
- functional
usage: []
main: "main.icl"
template: |
module main
import StdEnv
Start world
#(console, world) = stdio world
#console = fwrites "Hello, world!\n" console
#(ok, world) = fclose console world
= world
compile: |
clm main -o main
run: |
./main

54
langs/clojure.yaml Normal file
View File

@ -0,0 +1,54 @@
id: "clojure"
aliases:
- "clj"
name: "Clojure"
monacoLang: clojure
info:
impl: "Java Clojure"
year: 2007
desc: "Modern, dynamic, and functional dialect of the Lisp programming language on the Java platform"
ext:
- clj
- cljc
- edn
web:
wiki: "https://en.wikipedia.org/wiki/Clojure"
home: "https://clojure.org/"
source: "https://github.com/clojure/clojure"
category: general
mode: interpreted
platform: jvm
syntax:
- lisp
- extensible
typing: dynamic
paradigm:
- declarative
- functional
- imperative
- oo
usage: []
repl: |
clojure
input: |
(* 123 234)
main: "main.clj"
template: |
(println "Hello, world!")
run: |
clojure -i main.clj -r
scope:
code: |
(def x (* 123 234))
lsp:
start: |
clojure-lsp
skip:
- lsp

48
langs/clojurescript.yaml Normal file
View File

@ -0,0 +1,48 @@
id: "clojurescript"
aliases:
- "cljs"
- "lumo"
name: "ClojureScript"
monacoLang: clojure
info:
year: 2011
desc: "Compiler for Clojure that targets JavaScript"
ext: cljs
web:
wiki: "https://en.wikipedia.org/wiki/Clojure#Platforms"
home: "https://clojurescript.org/"
source: "https://github.com/clojure/clojurescript"
category: general
mode:
- compiled
- interpreted
platform: js
syntax:
- lisp
- extensible
typing:
- dynamic
- weak
paradigm:
- declarative
- functional
- imperative
- oo
usage: []
repl: |
lumo -r
input: |
(* 123 234)
main: "main.cljs"
template: |
(println "Hello, world!")
run: |
lumo -i main.cljs -r
scope:
code: |
(def x (* 123 234))

11
langs/cmake.yaml Normal file
View File

@ -0,0 +1,11 @@
id: "cmake"
aliases:
- "cmakelists"
name: "CMake"
main: "main.cmake"
template: |
message("Hello, world!")
run: |
cmake -P main.cmake

44
langs/cmd.yaml Normal file
View File

@ -0,0 +1,44 @@
id: "cmd"
aliases:
- "bat"
- "batch"
- "wine"
name: "Cmd"
monacoLang: bat
info:
year: 1987
desc: "Obsolete (but still default) command-line interpreter for Microsoft Windows"
ext: bat
web:
wiki: "https://en.wikipedia.org/wiki/Cmd.exe"
home: "https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands"
source: null
category: shell
mode: interpreted
platform: windows
syntax: basic
typing: weak
paradigm: imperative
usage: []
setup: |
shopt -s dotglob; cp -R /opt/cmd/home-template/* ./
repl: |
wine cmd
input: |
set /a 123 * 234
main: "main.bat"
template: |
echo "Hello, world!"
run: |
wine cmd /k main.bat
scope:
code: |
set /a x = 123 * 234
input: |
echo %x%

43
langs/cobol.yaml Normal file
View File

@ -0,0 +1,43 @@
id: "cobol"
aliases:
- "cbl"
- "cob"
- "cobc"
- "cpy"
name: "COBOL"
info:
impl: "GnuCOBOL"
version: "COBOL 2014"
year: 1959
desc: "Compiled English-like computer programming language designed for business use"
ext:
- cbl
- cob
- cpy
web:
wiki: "https://en.wikipedia.org/wiki/COBOL"
impl: "https://sourceforge.net/projects/gnucobol/"
source: "https://sourceforge.net/p/gnucobol/_list/svn"
category: general
mode: compiled
platform: []
syntax: basic
typing: weak
paradigm:
- imperative
- oo
usage: popular
main: "main.cbl"
template: |
IDENTIFICATION DIVISION.
PROGRAM-ID. MAIN.
PROCEDURE DIVISION.
DISPLAY "Hello, world!".
STOP RUN.
compile: |
cobc -free -x main.cbl -o main
run: |
./main

50
langs/coffeescript.yaml Normal file
View File

@ -0,0 +1,50 @@
id: "coffeescript"
aliases:
- "coffee"
- "litcoffee"
name: "CoffeeScript"
monacoLang: coffee
info:
year: 2009
desc: "Compile-to-JavaScript programming language adding syntactic sugar inspired by Ruby, Python and Haskell in an effort to enhance JavaScript's brevity and readability"
ext:
- coffee
- litcoffee
web:
wiki: "https://en.wikipedia.org/wiki/CoffeeScript"
home: "https://coffeescript.org/"
source: "https://github.com/jashkenas/coffeescript"
category: general
mode:
- interpreted
- compiled
platform: js
syntax:
- c
- haskell
typing: weak
paradigm:
- declarative
- functional
- imperative
usage: []
repl: |
coffee
main: "main.coffee"
template: |
console.log "Hello, world!"
compile: |
coffee -b -c main.coffee
run: |
node -e '
eval.apply(this, [require("fs").readFileSync("main.js", {encoding: "utf-8"})])
require("/usr/lib/node_modules/coffeescript/repl").start()
'
scope:
code: |
x = 123 * 234

54
langs/commonlisp.yaml Normal file
View File

@ -0,0 +1,54 @@
id: "commonlisp"
aliases:
- "lisp"
- "sbcl"
name: "Common Lisp"
info:
impl: "SBCL"
year: 1984
desc: "Modern, multi-paradigm, high-performance, compiled, ANSI-standardized, most prominent (along with Scheme) descendant of the Lisp family"
ext:
- lisp
- lsp
- l
- cl
- fasl
web:
wiki: "https://en.wikipedia.org/wiki/Common_Lisp"
home: "https://common-lisp.net/"
impl: "http://www.sbcl.org/"
source: "https://sourceforge.net/p/sbcl/sbcl/ci/master/tree/"
category: general
mode:
- compiled
- interpreted
platform: []
syntax:
- lisp
- extensible
typing:
- static
- dynamic
paradigm:
- declarative
- functional
- imperative
- oo
usage: []
repl: |
rlwrap sbcl
input: |
(* 123 234)
main: "main.lisp"
template: |
(format t "Hello, world!")
run: |
rlwrap sbcl --userinit main.lisp
scope:
code: |
(defvar x (* 123 234))

32
langs/confluence.yaml Normal file
View File

@ -0,0 +1,32 @@
id: "confluence"
aliases:
- "jira"
- "atlassian"
name: "Confluence"
info:
impl: "Pandoc"
year: 2004
desc: "Markup format for a popular web-based corporate wiki developed by Atlassian"
ext: []
web:
wiki: "https://en.wikipedia.org/wiki/Confluence_(software)"
home: "https://confluence.atlassian.com/doc/confluence-wiki-markup-251003035.html"
impl: "https://pandoc.org/"
source: "https://github.com/jgm/pandoc"
category: markup
mode: []
platform: []
syntax: text
typing: []
paradigm: []
usage: []
main: "main.txt"
template: |
Hello, world!
compile: |
pandoc main.txt -f jira -o main.html
run: |
prettier --no-config main.html

27
langs/crystal.yaml Normal file
View File

@ -0,0 +1,27 @@
id: "crystal"
aliases:
- "cr"
name: "Crystal"
info:
year: 2014
desc: "General-purpose, object-oriented programming language with syntax inspired by the language Ruby"
ext: cr
web:
wiki: "https://en.wikipedia.org/wiki/Crystal_(programming_language)"
home: "https://crystal-lang.org/"
source: "https://github.com/crystal-lang/crystal"
category: general
mode: compiled
platform: []
syntax: pascal
typing: static
paradigm: oo
usage: []
main: "main.cr"
template: |
puts "Hello, world!"
run: |
crystal main.cr

31
langs/csharp.yaml Normal file
View File

@ -0,0 +1,31 @@
id: "csharp"
aliases:
- "cs"
- "mcs"
name: "C#"
monacoLang: csharp
main: "main.cs"
template: |
class main {
static void Main(string[] args) {
System.Console.WriteLine("Hello, world!");
}
}
compile: |
mcs main.cs
run: |
mono main.exe
format:
run: |
clang-format --style="{BasedOnStyle: llvm, IndentWidth: 4}" --assume-filename=format.cs
input: |
class main
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello, world!");
}
}

20
langs/curry.yaml Normal file
View File

@ -0,0 +1,20 @@
id: "curry"
aliases:
- "curry2prolog"
- "pakcs"
name: "Curry"
repl: |
pakcs
main: "main.curry"
template: |
main :: IO ()
main = putStrLn "Hello, world!"
run: |
pakcs :load main.curry :eval main
scope:
code: |
x = 123 * 234

28
langs/d.yaml Normal file
View File

@ -0,0 +1,28 @@
id: "d"
aliases:
- "dmd"
name: "D"
main: "main.d"
template: |
import std.stdio;
void main()
{
writeln("Hello, world!");
}
compile: |
dmd main.d
run: |
./main
format:
run: |
dfmt
input: |
import std.stdio;
void main() {
writeln("Hello, world!");
}

15
langs/dafny.yaml Normal file
View File

@ -0,0 +1,15 @@
id: "dafny"
aliases:
- "dfy"
name: "Dafny"
main: "main.dfy"
template: |
method Main() {
print "Hello, world!\n";
}
compile: |
dafny main.dfy
run: |
mono main.exe

21
langs/dart.yaml Normal file
View File

@ -0,0 +1,21 @@
id: "dart"
name: "Dart"
monacoLang: dart
main: "main.dart"
template: |
void main() {
print('Hello, world!');
}
run: |
dart main.dart
lsp:
start: |
dart /usr/lib/dart/bin/snapshots/analysis_server.dart.snapshot --lsp
disableDynamicRegistration: true
lang: "dart"
skip:
- lsp

20
langs/dc.yaml Normal file
View File

@ -0,0 +1,20 @@
id: "dc"
name: "dc"
repl: |
echo 'Reading from stdin...' >&2; dc
input: |
123 234 * p
main: "main.dc"
template: |
[Hello, world!] p
run: |
echo 'Reading from stdin...' >&2; dc main.dc -
scope:
code: |
123 234 *
input: |
p

11
langs/dhall.yaml Normal file
View File

@ -0,0 +1,11 @@
id: "dhall"
name: "Dhall"
main: "main.dhall"
template: |
{ output = "Hello, world!" }
compile: |
cat main.dhall | dhall-to-json > main.json
run: |
cat main.json | jq .

16
langs/dogescript.yaml Normal file
View File

@ -0,0 +1,16 @@
id: "dogescript"
aliases:
- "doge"
- "ds"
- "wow"
name: "Dogescript"
repl: |
dogescript
main: "main.djs"
template: |
plz console.loge with "Hello, world!"
run: |
dogescript main.djs | node; dogescript

13
langs/dokuwiki.yaml Normal file
View File

@ -0,0 +1,13 @@
id: "dokuwiki"
aliases:
- "doku"
name: "DokuWiki"
main: "main.txt"
template: |
Hello, world!
compile: |
pandoc main.txt -f dokuwiki -o main.html
run: |
prettier --no-config main.html

24
langs/dylan.yaml Normal file
View File

@ -0,0 +1,24 @@
id: "dylan"
aliases:
- "opendylan"
name: "Dylan"
setup: |
cp -R /opt/dylan/project-template/* ./
main: "main.dylan"
template: |
Module: main
define function main
(name :: <string>, arguments :: <vector>)
format-out("Hello, world!\n");
exit-application(0);
end function main;
main(application-name(), application-arguments());
compile: |
dylan-compiler -build main.lid
run: |
_build/bin/main

22
langs/ec.yaml Normal file
View File

@ -0,0 +1,22 @@
id: "ec"
aliases:
- "ecere"
- "ecp"
- "ecs"
- "ecc"
name: "eC"
main: "main.ec"
template: |
class Main : Application
{
void Main()
{
PrintLn("Hello, world!");
}
}
compile: |
ecp -c main.ec -o main.sym && ecc -c main.ec -o main.c && ecs -console main.sym main.imp -o main.main.ec && ecp -c main.main.ec -o main.main.sym && ecc -c main.main.ec -o main.main.c && clang main.c main.main.c -lecereCOM -o main
run: |
./main

36
langs/elixir.yaml Normal file
View File

@ -0,0 +1,36 @@
id: "elixir"
aliases:
- "iex"
- "exs"
name: "Elixir"
repl: |
iex
input: |
DELAY: 1
123 * 234
main: "main.exs"
template: |
IO.puts("Hello, world!")
run: |
iex main.exs
scope:
code: |
defmodule Scope do
def x do
123 * 234
end
end
input: |
DELAY: 1
Scope.x
lsp:
start: |
/opt/elixir-ls/language_server.sh
skip:
- lsp

31
langs/elm.yaml Normal file
View File

@ -0,0 +1,31 @@
id: "elm"
name: "Elm"
repl: |
elm repl
main: "Main.elm"
template: |
module Main exposing (..)
output : String
output = "Hello, world!"
run: |
cp /opt/elm/elm.json elm.json && run-elm Main.elm; elm repl
scope:
code: |
x = 123 * 234
input: |
import Main
Main.x
lsp:
setup: |
cp /opt/elm/elm.json elm.json
start: |
elm-language-server --stdio
skip:
- lsp

23
langs/elvish.yaml Normal file
View File

@ -0,0 +1,23 @@
id: "elvish"
aliases:
- "elv"
name: "Elvish"
repl: |
SHELL=/usr/bin/elvish HOME="$PWD" elvish
input: |
* 123 234
main: ".elvish/rc.elv"
template: |
echo "Hello, world!"
createEmpty: ""
run: |
SHELL=/usr/bin/elvish HOME="$PWD" elvish
scope:
code: |
x = (* 123 234)
input: |
echo $x

34
langs/emacs.yaml Normal file
View File

@ -0,0 +1,34 @@
id: "emacs"
aliases:
- "emacslisp"
- "elisp"
- "gnuemacs"
- "xemacs"
- "ielm"
name: "Emacs Lisp"
repl: |
emacs --eval "(progn (require 'package) (push '("melpa" . "https://melpa.org/packages/") package-archives) (package-initialize) (ielm))"
input: |
(* 123 234)
main: "main.el"
template: |
(message "Hello, world!")
run: |
emacs --load main.el --eval "(progn (require 'package) (push '("melpa" . "https://melpa.org/packages/") package-archives) (package-initialize) (ielm))"
scope:
code: |
(defvar x (* 123 234))
pkg:
install: |
emacs -Q --batch --eval "(progn (require 'package) (push '("melpa" . "https://melpa.org/packages/") package-archives) (package-initialize) (unless (ignore-errors (>= (length (directory-files "~/.emacs.d/elpa/archives")) 4)) (package-refresh-contents)) (package-install 'NAME))"
uninstall: |
ls ~/.emacs.d/elpa | grep -- - | grep '^NAME-[0-9]' | while read pkg; do emacs -Q --batch --eval "(progn (require 'package) (push '("melpa" . "https://melpa.org/packages/") package-archives) (package-initialize) (unless (ignore-errors (>= (length (directory-files "~/.emacs.d/elpa/archives")) 4)) (package-refresh-contents)) (call-interactively 'package-delete))" <<< "$pkg"; done
all: |
set -o pipefail; (curl -sS https://elpa.gnu.org/packages/ | grep '<td>' | grep -Eo '[^>]+</a>' | grep -Eo '^[^<]+' && curl -sS https://melpa.org/archive.json | jq -r 'keys | .[]') | sort | uniq

17
langs/emojicode.yaml Normal file
View File

@ -0,0 +1,17 @@
id: "emojicode"
aliases:
- "emoji"
- "emojic"
- "emojicodec"
name: "Emojicode"
main: "main.emojic"
template: |
🏁 🍇
😀 🔤Hello, world!🔤❗️
🍉
compile: |
emojicodec main.emojic
run: |
./main

20
langs/entropy.yaml Normal file
View File

@ -0,0 +1,20 @@
id: "entropy"
aliases:
- "ent"
- "entc"
- "vge"
name: "Entropy"
main: "main.vge"
template: |
Program MyNamespace MyProgram [
print "Hello, world!";
]
compile: |
mono /opt/entropy/entc.exe main.vge | grep -Ev 'WARNING:|Using default' > main.cs && mcs -lib:/opt/entropy -r:Rottytooth.Esolang.Entropy main.cs
run: |
MONO_PATH=/opt/entropy mono main.exe
hello: |
[F-J][c-g][j-n][j-n][m-q][*-.][\x1e-"][u-y][m-q][p-t][j-n][b-f][\x1f-#]
helloMaxLength: 13

38
langs/erlang.yaml Normal file
View File

@ -0,0 +1,38 @@
id: "erlang"
aliases:
- "erl"
name: "Erlang"
repl: |
erl
input: |
123 * 234.
main: "main.erl"
template: |
-module(main).
-export([main/0]).
main() ->
io:fwrite("Hello, world!\n").
compile: |
erl -compile main
run: |
erl -s main main
scope:
code: |
-export([x/0]).
x() -> 123 * 234.
after: "-export([main/0])."
input: |
main:x().
lsp:
start: |
erlang_ls
skip:
- lsp

16
langs/euphoria.yaml Normal file
View File

@ -0,0 +1,16 @@
id: "euphoria"
aliases:
- "ex"
- "exw"
- "exu"
- "euc"
- "eui"
- "eub"
name: "Euphoria"
main: "main.exu"
template: |
puts(1, "Hello, world!\n")
run: |
exu main.exu

28
langs/factor.yaml Normal file
View File

@ -0,0 +1,28 @@
id: "factor"
aliases:
- "fact"
name: "Factor"
repl: |
factor-lang
input: |
123 234 *
main: ".factor-rc"
template: |
IN: main
USE: io
"Hello, world!" print
createEmpty: ""
run: |
factor-lang
scope:
code: |
USE: math
: x ( -- x ) 123 234 * ;
input: |
USE: main
x

11
langs/false.yaml Normal file
View File

@ -0,0 +1,11 @@
id: "false"
aliases:
- "falselang"
name: "FALSE"
main: "main.false"
template: |
"Hello, world!"
run: |
false-lang main.false

20
langs/fish.yaml Normal file
View File

@ -0,0 +1,20 @@
id: "fish"
name: "Fish"
repl: |
SHELL=/usr/bin/fish fish
input: |
expr 123 \* 234
main: "main.fish"
template: |
echo "Hello, world!"
run: |
SHELL=/usr/bin/fish fish -C "$(< main.fish)"
scope:
code: |
set x (expr 123 \* 234)
input: |
echo $x

30
langs/flex.yaml Normal file
View File

@ -0,0 +1,30 @@
id: "flex"
aliases:
- "lex"
name: "Flex"
main: "main.lex"
template: |
%{
#include <stdio.h>
%}
%%
%%
int yywrap() {
printf("Hello, world!\n");
return 1;
}
int main() {
yylex();
return 0;
}
compile: |
lex -o main.c main.lex && clang main.c -o main
run: |
echo 'Reading from stdin, ctrl+D to end input...' >&2 && ./main
helloInput: |
EOF

23
langs/forth.yaml Normal file
View File

@ -0,0 +1,23 @@
id: "forth"
aliases:
- "gforth"
name: "Forth"
repl: |
gforth
input: |
123 234 * .
main: "main.fs"
template: |
." Hello, world!" CR
run: |
gforth main.fs
scope:
code: |
VARIABLE X
123 234 * X !
input: |
X @ .

28
langs/fortran.yaml Normal file
View File

@ -0,0 +1,28 @@
id: "fortran"
aliases:
- "f"
- "flang"
- "fortran77"
- "fortran90"
- "fortran95"
- "fortran2003"
- "fortran2008"
name: "FORTRAN"
main: "main.f"
template: |2
program hello
print *, "Hello, world!"
end program hello
compile: |
flang main.f -o main
run: |
./main
lsp:
start: |
fortls
skip:
- lsp

25
langs/fsharp.yaml Normal file
View File

@ -0,0 +1,25 @@
id: "fsharp"
aliases:
- "fsharpi"
- "fsx"
- "fs"
name: "F#"
monacoLang: fsharp
repl: |
fsharpi
input: |
123 * 234 ;;
main: "main.fsx"
template: |
printfn "Hello, world!"
run: |
fsharpi --use:main.fsx
scope:
code: |
let x = 123 * 234
input: |
x ;;

12
langs/gambas.yaml Normal file
View File

@ -0,0 +1,12 @@
id: "gambas"
aliases:
- "gambasscript"
- "gbs"
name: "Gambas"
main: "main.gbs"
template: |
Print "Hello, world!"
run: |
gbs3 main.gbs

20
langs/gap.yaml Normal file
View File

@ -0,0 +1,20 @@
id: "gap"
name: "GAP"
repl: |
gap
input: |
123 * 234;
main: "main.gap"
template: |
Print("Hello, world!\n");
run: |
gap main.gap
scope:
code: |
x := 123 * 234;
input: |
123 * 234;

20
langs/gdb.yaml Normal file
View File

@ -0,0 +1,20 @@
id: "gdb"
name: "GDB"
repl: |
gdb
input: |
p 123 * 234
main: "main.gdb"
template: |
p "Hello, world!"
run: |
gdb -x main.gdb
scope:
code: |
set $x = 123 * 234
input: |
p $x

19
langs/gel.yaml Normal file
View File

@ -0,0 +1,19 @@
id: "gel"
aliases:
- "genius"
name: "GEL"
repl: |
genius
main: ".geniusinit"
template: |
print("Hello, world!")
createEmpty: ""
run: |
genius
scope:
code: |
x = 123 * 234

20
langs/gnuplot.yaml Normal file
View File

@ -0,0 +1,20 @@
id: "gnuplot"
name: "Gnuplot"
repl: |
gnuplot
input: |
print 123 * 234
main: "main.gnuplot"
template: |
print "Hello, world!"
run: |
gnuplot main.gnuplot -
scope:
code: |
x = 123 * 234
input: |
print x

39
langs/go.yaml Normal file
View File

@ -0,0 +1,39 @@
id: "go"
aliases:
- "golang"
name: "Go"
monacoLang: go
main: "main.go"
template: |
package main
import "fmt"
func main() {
fmt.Println("Hello, world!")
}
compile: |
go build main.go
run: |
./main
format:
run: |
gofmt
input: |
package main
import "fmt"
func main() {
fmt.Println("Hello, world!");
}
lsp:
start: |
gopls
skip:
- lsp

11
langs/golfscript.yaml Normal file
View File

@ -0,0 +1,11 @@
id: "golfscript"
aliases:
- "golf"
name: "GolfScript"
main: "main.gs"
template: |
'Hello, world!'
run: |
golfscript main.gs

11
langs/grass.yaml Normal file
View File

@ -0,0 +1,11 @@
id: "grass"
name: "Grass"
main: "main.grass"
template: |
wWWwwww
run: |
grass < main.grass
hello: |
w

16
langs/groovy.yaml Normal file
View File

@ -0,0 +1,16 @@
id: "groovy"
name: "Groovy"
repl: |
JAVA_OPTS="-Djava.util.prefs.systemRoot=$PWD/.java -Djava.util.prefs.userRoot=$PWD/.java/.userPrefs" groovysh
main: "main.groovy"
template: |
print "Hello, world!";
run: |
JAVA_OPTS="-Djava.util.prefs.systemRoot=$PWD/.java -Djava.util.prefs.userRoot=$PWD/.java/.userPrefs" groovysh main.groovy
scope:
code: |
x = 123 * 234;

30
langs/hack.yaml Normal file
View File

@ -0,0 +1,30 @@
id: "hack"
aliases:
- "hhvm"
name: "Hack"
repl: |
hhvm -a
input: |
print 123 * 234
main: "main.hack"
template: |
<<__EntryPoint>>
function main(): void {
echo "Hello, world!\n";
}
run: |
echo "Type 'r' at the debugger prompt to run the code" && hhvm -a main.hack
helloInput: |
r
scope:
code: |
function x() : int {
return 123 * 234;
}
input: |
r
p x()

44
langs/haskell.yaml Normal file
View File

@ -0,0 +1,44 @@
id: "haskell"
aliases:
- "ghc"
- "ghci"
- "hs"
name: "Haskell"
repl: |
rm -f .ghci && ghci
main: "Main.hs"
template: |
module Main where
main :: IO ()
main = putStrLn "Hello, world!"
run: |
(echo ':load Main' && echo 'main') > .ghci && ghci
scope:
code: |
x = 123 * 234
format:
run: |
brittany
input: |
module Main where
main :: IO ()
main =
putStrLn "Hello, world!"
lsp:
setup: |
cp /opt/haskell/hie.yaml hie.yaml
start: |
HIE_HOOGLE_DATABASE=/opt/haskell/hoogle.hoo hie --lsp
init:
languageServerHaskell: {}
skip:
- lsp

17
langs/haxe.yaml Normal file
View File

@ -0,0 +1,17 @@
id: "haxe"
aliases:
- "hx"
name: "Haxe"
main: "Main.hx"
template: |
class Main {
static public function main() {
trace("Hello, world!");
}
}
compile: |
haxe --main Main --js Main.js
run: |
node Main.js

16
langs/hcl.yaml Normal file
View File

@ -0,0 +1,16 @@
id: "hcl"
aliases:
- "tf"
- "terraform"
- "hashicorp"
- "hc"
name: "HCL"
main: "main.hcl"
template: |
output = "Hello, world!"
compile: |
cat main.hcl | yj -cj > main.json
run: |
cat main.json | jq .

18
langs/hexagony.yaml Normal file
View File

@ -0,0 +1,18 @@
id: "hexagony"
aliases:
- "hxg"
- "hex"
name: "Hexagony"
main: "main.hxg"
template: |2
H ; e ;
l ; d ; *
; r ; o ; w
l ; ; o ; * 4
3 3 ; @ . >
; 2 3 < \
4 ; * /
run: |
/opt/hexagony/interpreter.rb main.hxg

53
langs/hmmm.yaml Normal file
View File

@ -0,0 +1,53 @@
id: "hmmm"
name: "HMMM"
main: "main.hmmm"
template: |2
0 setn r1, 72
1 write r1
2 setn r1, 101
3 write r1
4 setn r1, 108
5 write r1
6 setn r1, 108
7 write r1
8 setn r1, 111
9 write r1
10 setn r1, 44
11 write r1
12 setn r1, 32
13 write r1
14 setn r1, 119
15 write r1
16 setn r1, 111
17 write r1
18 setn r1, 114
19 write r1
20 setn r1, 108
21 write r1
22 setn r1, 100
23 write r1
24 setn r1, 33
25 write r1
26 setn r1, 10
27 write r1
28 halt
run: |
hmmm main.hmmm
hello: |
72
101
108
108
111
44
32
119
111
114
108
100
33
10

18
langs/hy.yaml Normal file
View File

@ -0,0 +1,18 @@
id: "hy"
name: "Hy"
repl: |
hy
input: |
(* 123 234)
main: "main.hy"
template: |
(print "Hello, world!")
run: |
hy -i main.hy
scope:
code: |
(setv x (* 123 234))

17
langs/icon.yaml Normal file
View File

@ -0,0 +1,17 @@
id: "icon"
aliases:
- "icn"
- "icont"
- "iconx"
name: "Icon"
main: "main.icn"
template: |
procedure main ()
write("Hello, world!")
end
compile: |
icont main.icn
run: |
./main

23
langs/idris.yaml Normal file
View File

@ -0,0 +1,23 @@
id: "idris"
aliases:
- "idr"
- "idris2"
name: "Idris"
repl: |
rm -f .idris/repl/init; idris2
main: "Main.idr"
template: |
module Main
main : IO ()
main = putStrLn "Hello, world!"
run: |
mkdir -p .idris/repl; echo ':exec main' > .idris/repl/init; idris2 Main.idr -x main; idris2 Main.idr
scope:
code: |
x : Int
x = 123 * 234

17
langs/ink.yaml Normal file
View File

@ -0,0 +1,17 @@
id: "ink"
name: "Ink"
repl: |
ink
main: "main.ink"
template: |
std := load('../../../opt/ink/std')
str := load('../../../opt/ink/str')
log := std.log
log('Hello, world!')
run: |
ink main.ink; ink

30
langs/intercal.yaml Normal file
View File

@ -0,0 +1,30 @@
id: "intercal"
aliases:
- "i"
- "ick"
name: "INTERCAL"
main: "main.i"
template: |
DO ,1 <- #14
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
PLEASE DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
PLEASE DO ,1 SUB #13 <- #162
DO ,1 SUB #14 <- #52
PLEASE READ OUT ,1
PLEASE GIVE UP
compile: |
ick -b main.i
run: |
./main

14
langs/ioke.yaml Normal file
View File

@ -0,0 +1,14 @@
id: "ioke"
aliases:
- "ik"
name: "Ioke"
repl: |
JAVA_OPTS="-Duser.home=$PWD" ioke
main: "main.ik"
template: |
"Hello, world!" println
run: |
JAVA_OPTS="-Duser.home=$PWD" ioke main.ik; JAVA_OPTS="-Duser.home=$PWD" ioke

15
langs/j.yaml Normal file
View File

@ -0,0 +1,15 @@
id: "j"
aliases:
- "jconsole"
- "ijconsole"
name: "J"
repl: |
echo 'ijconsole:' && ijconsole
main: "main.ijs"
template: |
echo 'Hello, world!'
run: |
ijconsole main.ijs

26
langs/jasmin.yaml Normal file
View File

@ -0,0 +1,26 @@
id: "jasmin"
name: "Jasmin"
main: "Main.j"
template: |
.class public Main
.super java/lang/Object
.method public <init>()V
aload_0
invokenonvirtual java/lang/Object/<init>()V
return
.end method
.method public static main([Ljava/lang/String;)V
.limit stack 2
getstatic java/lang/System/out Ljava/io/PrintStream;
ldc "Hello, world!"
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
return
.end method
compile: |
jasmin Main.j
run: |
java Main

146
langs/java.yaml Normal file
View File

@ -0,0 +1,146 @@
id: "java"
aliases:
- "javac"
name: "Java"
monacoLang: java
main: "Main.java"
template: |
public class Main {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
compile: |
javac Main.java
run: |
java Main
format:
run: |
clang-format --style="{BasedOnStyle: llvm, IndentWidth: 4}" --assume-filename=Format.java
input: |
public class Main
{
public static void main(String[] args)
{
System.out.println("Hello, world!");
}
}
lsp:
setup: |
rm -rf jdt && cp -RT /opt/jdt/config_linux jdt
start: |
java -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Dlog.level=ALL -noverify -Xmx1G -jar /opt/jdt/plugins/org.eclipse.equinox.launcher_*.jar -configuration "$PWD/jdt" -data "$PWD" --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED
init:
bundles:
- /opt/jdt/bundles/com.microsoft.java.test.plugin-0.19.0.jar
- /opt/jdt/bundles/com.microsoft.jdtls.ext.core-0.5.1.jar
- /opt/jdt/bundles/dg.jdt.ls.decompiler.cfr-0.0.2-201802221740.jar
- /opt/jdt/bundles/dg.jdt.ls.decompiler.common-0.0.2-201802221740.jar
- /opt/jdt/bundles/dg.jdt.ls.decompiler.fernflower-0.0.2-201802221740.jar
- /opt/jdt/bundles/dg.jdt.ls.decompiler.procyon-0.0.2-201802221740.jar
- /opt/jdt/bundles/io.projectreactor.reactor-core.jar
- /opt/jdt/bundles/java.debug.plugin.jar
- /opt/jdt/bundles/jdt-ls-commons.jar
- /opt/jdt/bundles/jdt-ls-extension.jar
- /opt/jdt/bundles/org.reactivestreams.reactive-streams.jar
extendedClientCapabilities:
advancedExtractRefactoringSupport: true
advancedGenerateAccessorsSupport: true
advancedOrganizeImportsSupport: true
classFileContentsSupport: true
generateConstructorsPromptSupport: true
generateToStringPromptSupport: true
hashCodeEqualsPromptSupport: true
moveRefactoringSupport: true
overrideMethodsPromptSupport: true
progressReportProvider: true
settings:
java:
autobuild:
enabled: true
codeGeneration:
generateComments: false
hashCodeEquals:
useInstanceof: false
useJava7Objects: false
toString:
codeStyle: STRING_CONCATENATION
limitElements: 0
listArrayContents: true
skipNullValues: false
template: ${object.className} [${member.name()}=${member.value}, ${otherMembers}]
useBlocks: false
completion:
enabled: true
favoriteStaticMembers:
- org.junit.Assert.*
- org.junit.Assume.*
- org.junit.jupiter.api.Assertions.*
- org.junit.jupiter.api.Assumptions.*
- org.junit.jupiter.api.DynamicContainer.*
- org.junit.jupiter.api.DynamicTest.*
- org.mockito.Mockito.*
- org.mockito.ArgumentMatchers.*
- org.mockito.Answers.*
filteredTypes:
- java.awt.*
- com.sun.*
guessMethodArguments: true
importOrder:
- java
- javax
- com
- org
overwrite: true
configuration:
checkProjectSettingsExclusions: true
updateBuildConfiguration: automatic
dependency:
packagePresentation: flat
errors:
incompleteClasspath:
severity: warning
foldingRange:
enabled: true
format:
comments:
enabled: true
enabled: true
onType:
enabled: true
implementationsCodeLens:
enabled: false
import:
exclusions:
- '**/node_modules/**'
- '**/.metadata/**'
- '**/archetype-resources/**'
- '**/META-INF/maven/**'
gradle:
enabled: true
wrapper:
enabled: true
maven:
enabled: true
maven:
downloadSources: false
maxConcurrentBuilds: 1
progressReports:
enabled: true
referencesCodeLens:
enabled: false
saveActions:
organizeImports: false
selection:
enabled: true
signatureHelp:
enabled: true
trace:
server: "off"
skip:
- lsp

41
langs/javascript.yaml Normal file
View File

@ -0,0 +1,41 @@
id: "javascript"
aliases:
- "node"
- "js"
- "web"
- "jsx"
- "v8"
- "closure"
- "nodejs"
name: "Node.js"
monacoLang: javascript
repl: |
node
main: "main.js"
template: |
console.log("Hello, world!");
run: |
node -e "$(< main.js)" -i
scope:
code: |
let x = 123 * 234;
format:
run: |
prettier --no-config --stdin-filepath=format.js
input: |
console.log('Hello, world!');
pkg:
install: |
yarn add NAME
uninstall: |
yarn remove NAME
search: |
curl -sS 'https://registry.npmjs.org/-/v1/search?text=NAME' | jq -r '.objects | map(.package.name) | .[]'

20
langs/jq.yaml Normal file
View File

@ -0,0 +1,20 @@
id: "jq"
name: "jq"
repl: |
echo 'Reading from stdin...' >&2 && while true; do jq .; done
input: |
{"foo":"bar"}
output: |
"foo": "bar"
main: "main.jq"
template: |
"Hello, world!"
run: |
echo 'Reading from stdin...' >&2 && while true; do jq "$(< main.jq)"; done
helloInput: |
{}
runReplOutput: |
"Hello, world!"

141
langs/jsf.yaml Normal file
View File

@ -0,0 +1,141 @@
id: "jsf"
name: "JSF***"
main: "main.js"
template: |
[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]][([]+[][(![]
+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(
!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]
+[+[]]]+([][[]]+[])[+!![]]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!!
[]]+([][[]]+[])[+[]]+([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!
![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!!
[]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+(!![]+[])[+!![]]]((!![]+[
])[+!![]]+(!![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!
![]]+([][[]]+[])[+!![]]+(![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]
]+(!![]+[])[+[]]])[!![]+!![]+[+[]]]+([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![
]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!!
[]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(![]+[
])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!
![]+[])[+[]]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(!![]+[])[!![]+!![]+!![]])()[(![
]+[])[!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![
]+[])[+[]]])[+!![]+[+[]]]+(+[]+[![]]+([]+[])[([]+[][(![]+[])[+[]]+(![]+[])[!![]+
!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+(!
[]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][[]]+[])[+!![
]]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]
+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]
+!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]
+(!![]+[])[+[]]])[+!![]+[+[]]]+(!![]+[])[+!![]]])[!![]+!![]+[+[]]]]([][(![]+[])[
+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]][([]+[][(![]+[])[+[]]+(!
[]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]
+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][
[]]+[])[+!![]]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+
[])[+[]]+([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]
])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![
]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+(!
![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]
+[])[+!![]]+([]+[])[(![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![
]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(!![]+[])[+[]]+([]
+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]
+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]
])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(
![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+(!![]+[])[+!![]]]()[+!![]+[!![]+!![
]]]+(![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]][([
]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![
]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]
]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![
]+[])[+!![]]+([][[]]+[])[+[]]+([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[
+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(!
[]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+(!![]+[])[+!![]]
]((!![]+[])[+!![]]+(!![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!!
[]+[])[+!![]]+([][[]]+[])[+!![]]+(!![]+[])[(![]+[])[!![]+!![]+!![]]+([][[]]+[])[
+[]]+([][(!![]+[])[!![]+!![]+!![]]+([][[]]+[])[+!![]]+(!![]+[])[+[]]+(!![]+[])[+
!![]]+([![]]+[][[]])[+!![]+[+[]]]+(!![]+[])[!![]+!![]+!![]]+(![]+[])[!![]+!![]+!
![]]]()+[])[!![]+!![]]]()[+!![]+[+[]]]+![]+(!![]+[])[(![]+[])[!![]+!![]+!![]]+([
][[]]+[])[+[]]+([][(!![]+[])[!![]+!![]+!![]]+([][[]]+[])[+!![]]+(!![]+[])[+[]]+(
!![]+[])[+!![]]+([![]]+[][[]])[+!![]+[+[]]]+(!![]+[])[!![]+!![]+!![]]+(![]+[])[!
![]+!![]+!![]]]()+[])[!![]+!![]]]()[+!![]+[+[]]])()[([]+[][(![]+[])[+[]]+(![]+[]
)[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[
+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][[]]+[
])[+!![]]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+
[]]+([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!!
[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])
[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+(!![]+[])[+!![]]](([]+[])[([![]]+[][[]])[+
!![]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!![]]+(![]+[])[!![]+!![]]+([![]]+[][[]])[+!
![]+[+[]]]+([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[
]]])[!![]+!![]+!![]]+(![]+[])[!![]+!![]+!![]]]()))[+!![]+[+[]]]+(+!![])+(+!![])+
(+[])+([]+[])[(![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[
+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(!![]+[])[+[]]+([]+[][(!
[]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]
+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!!
[]+[+[]]]+(![]+[])[!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[]
)[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+(!![]+[])[+!![]]]()[+!![]+[!![]+!![]]])()
+(!![]+[])[!![]+!![]+!![]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]+(!![]+[][(![]
+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][
(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]][([]+[][(![]+[]
)[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(![]
+[])[+!![]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]](![]+[])+[])[+!![]]+(![]+[][
(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+[+[
]]]+(+(+!![]+[+!![]]+(+!![])+(!![]+!![])))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]
+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([]+[])[([]+[
][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!
![]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])
[+!![]+[+[]]]+([][[]]+[])[+!![]]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[
])[+!![]]+([][[]]+[])[+[]]+([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!!
[]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+
[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+(!![]+[])[+!![]]][(
[][[]]+[])[+!![]]+(![]+[])[+!![]]+([]+(+[])[([]+[][(![]+[])[+[]]+(![]+[])[!![]+!
![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![
]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][[]]+[])[+!![]
]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+
[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+
!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+
(!![]+[])[+[]]])[+!![]+[+[]]]+(!![]+[])[+!![]]])[+!![]+[+!![]]]+(!![]+[])[!![]+!
![]+!![]]]](!![]+!![]+!![]+[!![]+!![]+!![]+!![]])+(!![]+[])[+!![]]+(![]+[])[!![]
+!![]]+([][[]]+[])[!![]+!![]]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![
]]+(!![]+[])[+[]]][([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![
]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])
[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(![]+[])[!![]+!![]+!![]
]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+[][(![]+[])[+[]]+(![]+[])
[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![
]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+
[]]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+(!![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]
+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+[])[(![]+[])[+[]]+(!![
]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+
[]]]+([][[]]+[])[+!![]]+(!![]+[])[+[]]+([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+
(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[])
[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(!
![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+
[+[]]]+(!![]+[])[+!![]]]()[+!![]+[!![]+!![]]]+(![]+[][(![]+[])[+[]]+(![]+[])[!![
]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]][([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]
+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[]
)[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(!
[]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+[][(
![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]
]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![
]+[])[+[]]])[+!![]+[+[]]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+(!![]+[])[!![]+!![]
+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+(!![]
+[])[(![]+[])[!![]+!![]+!![]]+([][[]]+[])[+[]]+([][(!![]+[])[!![]+!![]+!![]]+([]
[[]]+[])[+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([![]]+[][[]])[+!![]+[+[]]]+(!![
]+[])[!![]+!![]+!![]]+(![]+[])[!![]+!![]+!![]]]()+[])[!![]+!![]]]()[+!![]+[+[]]]
+![]+(!![]+[])[(![]+[])[!![]+!![]+!![]]+([][[]]+[])[+[]]+([][(!![]+[])[!![]+!![]
+!![]]+([][[]]+[])[+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([![]]+[][[]])[+!![]+[
+[]]]+(!![]+[])[!![]+!![]+!![]]+(![]+[])[!![]+!![]+!![]]]()+[])[!![]+!![]]]()[+!
![]+[+[]]])()[([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])
[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![
]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(![]+[])[!![]+!![]+!![]]+(!!
[]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+[][(![]+[])[+[]]+(![]+[])[!![]
+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[][
(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+
(!![]+[])[+!![]]](([]+[])[([![]]+[][[]])[+!![]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!
![]]+(![]+[])[!![]+!![]]+([![]]+[][[]])[+!![]+[+[]]]+([]+[][(![]+[])[+[]]+(![]+[
])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(![]+[])[!![]+!![
]+!![]]]()))[+!![]+[+[]]]+(!![]+!![]+!![]+!![])+(+!![])+([]+[])[(![]+[])[+[]]+(!
![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+
[+[]]]+([][[]]+[])[+!![]]+(!![]+[])[+[]]+([]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]
]+(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+(![]+[
])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+
(!![]+[][(![]+[])[+[]]+(![]+[])[!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![
]+[+[]]]+(!![]+[])[+!![]]]()[+!![]+[!![]+!![]]])())
run: |
sed 's/[^[]()!+]//g' main.js | node

26
langs/julia.yaml Normal file
View File

@ -0,0 +1,26 @@
id: "julia"
aliases:
- "jl"
name: "Julia"
repl: |
julia
main: "main.jl"
template: |
println("Hello, world!")
run: |
julia -L main.jl
scope:
code: |
x = 123 * 234
lsp:
start: |
JULIA_DEPOT_PATH=:/opt/julia julia -e 'using LanguageServer; run(LanguageServerInstance(stdin, stdout))'
config: null
skip:
- lsp

Some files were not shown because too many files have changed in this diff Show More