PageSourceSearch

https://none-none1.github.io/Interpret-Esolangs-Online/

html none-none1.github.io collected 2026-10-03 09:41:30 UTC 16,409 bytes, 445 lines download raw bytes

1<!doctype html>
2<html>
3  <head>
4    <link rel="icon" type="image/x-icon" href="favicon.ico">
5    <link rel="stylesheet" href="style.css" />
6    <link
7      rel="stylesheet"
8      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"
9    />
10    <title>Interpret Esolangs Online</title>
11  </head>
12  <body>
13    <meta charset="UTF-8" />
14    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
15    <!-- PyScript CSS -->
16    <link
17      rel="stylesheet"
18      href_="https://pyscript.net/releases/2025.5.1/core.css"
19      id="pyscss"
20    />
21    <!-- This script tag bootstraps PyScript -->
22    
22<script
23      type="module"
24      src_="https://pyscript.net/releases/2025.5.1/core.js"
25      id="pysjs"
26    ></script>
26
27    <button
28      class="right"
29      onclick="
30        (document.documentElement.classList.toggle('dark-mode'),
31          document.getElementById('mode').classList.toggle('fa-sun'),
32          document.getElementById('mode').classList.toggle('fa-moon'),
33          localStorage.setItem(
34            'mode',
35            localStorage.getItem('mode') == 'dark' ? 'light' : 'dark',
36          ))
37      "
38    >
39      <i id="mode" class="fa fa-sun"></i>
40    </button>
41    <h2 style="display:none" id="aug16"></h2>
42    <h3>Welcome to Interpret Esolangs Online</h3>
43    <p>
44      Interpret Esolangs Online allows you to run programs in various esoteric
45      languages, including brainfuck, Deadfish, etc.
46    </p>
47    <!-- Script for python execution -->
48    
48<script defer src="pyexec.js"></script>
48
49    <!-- Load WASM modules -->
50    
50<script defer src="brain-crack/bc_em.js"></script>
50
51    
51<script defer src="ibf/ibf_em.js"></script>
51
52    
52<script>
53      document.addEventListener("DOMContentLoaded", async function () {
54        window.wasmReady = Promise.all([createBrainFlak(), createIBF()]).then(
55          ([brainFlakModule, ibfModule]) => {
56            window.BrainFlakModule = brainFlakModule;
57            window.IBFModule = ibfModule;
58          },
59        );
60      });
61    </script>
61
62    <!-- Script for esolangs -->
63    
63<script defer src="abcdxyz.js"></script>
63
64    
64<script defer src="actionlang.js"></script>
64
65    
65<script defer src="alphuck.js"></script>
65
66    
66<script defer src="aplwsi.js"></script>
66
67    
67<script defer src="arithmetic.js"></script>
67
68    
68<script defer src="b2c.js"></script>
68
69    
69<script defer src="befunge.js"></script>
69
70    
70<script defer src="bfp2.js"></script>
70
71    
71<script defer src="brainalpha.js"></script>
71
72    
72<script defer src="brainfeed.js"></script>
72
73    
73<script defer src="brainflak.js"></script>
73
74    
74<script defer src="brainfuck.js"></script>
74
75    
75<script defer src="bx.js"></script>
75
76    
76<script defer src="ccccc.js"></script>
76
77    
77<script defer src="chicken.js"></script>
77
78    
78<script defer src="dead_fish.js"></script>
78
79    
79<script defer src="deadfish.js"></script>
79
80    
80<script defer src="deadfisht.js"></script>
80
81    
81<script defer src="galax.js"></script>
81
82    
82<script defer src="gofe.js"></script>
82
83    
83<script defer src="hello.js"></script>
83
84    
84<script defer src="hellopp.js"></script>
84
85    
85<script defer src="hq9p.js"></script>
85
86    
86<script defer src="hworld.js"></script>
86
87    
87<script defer src="ibf.js"></script>
87
88    
88<script defer src="kipple.js"></script>
88
89    
89<script defer src="lstackg.js"></script>
89
90    
90<script defer src="methemetics.js"></script>
90
91    
91<script defer src="nil.js"></script>
91
92    
92<script defer src="no.js"></script>
92
93    
93<script defer src="nope.js"></script>
93
94    
94<script defer src="ooocode.js"></script>
94
95    
95<script defer src="ork.js"></script>
95
96    
96<script defer src="plusintminus.js"></script>
96
97    
97<script defer src="plusorminus.js"></script>
97
98    
98<script defer src="plusintoutput.js"></script>
98
99    
99<script defer src="plusoroutput.js"></script>
99
100    
100<script defer src="poetic.js"></script>
100
101    
101<script defer src="print.js"></script>
101
102    
102<script defer src="quine.js"></script>
102
103    
103<script defer src="rbf.js"></script>
103
104    
104<script defer src="reversefuck.js"></script>
104
105    
105<script defer src="six.js"></script>
105
106    
106<script defer src="slet.js"></script>
106
107    
107<script defer src="smbf.js"></script>
107
108    
108<script defer src="smbf_sharp.js"></script>
108
109    
109<script defer src="text.js"></script>
109
110    
110<script defer src="trigbf.js"></script>
110
111    
111<script defer src="trigbf_improved.js"></script>
111
112    
112<script defer src="typeid.js"></script>
112
113    
113<script defer src="underload.js"></script>
113
114    
114<script defer src="wee.js"></script>
114
115    
115<script defer src="wte_teplw.js"></script>
115
116    
116<script defer src="wizzcake.js"></script>
116
117    
117<script defer src="wizzcakep.js"></script>
117
118    <code id="pysout" style="display: none"></code>
119    <code id="pyserr" style="display: none"></code>
120    <select id="lang">
121      <option>6</option>
122      <option>ABCDXYZ</option>
123      <option>ActionLang</option>
124      <option>Alphuck</option>
125      <option>APLWSI</option>
126      <option>Arithmetic</option>
127      <option>B2C</option>
128      <option>Befunge-93</option>
129      <option>Brain-Flak (Add 'a' before code to enable ASCII mode)</option>
130      <option>Brainfuck+2</option>
131      <option>Brainalpha</option>
132      <option>!!brainfeed</option>
133      <option>brainfuck</option>
134      <option>Brainfuck extended</option>
135      <option>ccc:cc (Add 'v' before code to enable verbose mode)</option>
136      <option>Chicken</option>
137      <option>&gt;&lt;x&gt;</option>
138      <option>Deadfish</option>
139      <option>Deadfish~</option>
140      <option>›*&«&^</option>
141      <option>Gofe</option>
142      <option>Hello</option>
143      <option>Hello++</option>
144      <option>HQ9+</option>
145      <option>HWorld</option>
146      <option>Immutable Brainfuck</option>
147      <option>Kipple</option>
148      <option>&lt;stack&gt;</option>
149      <option>Methemetics</option>
150      <option>Nil</option>
151      <option>No.</option>
152      <option>Nope.</option>
153      <option>oOo CODE</option>
154      <option>ORK</option>
155      <option>PlusIntMinus</option>
156      <option>PlusIntOutput</option>
157      <option>PlusOrMinus</option>
158      <option>PlusOrOutput</option>
159      <option>Poetic</option>
160      <option>pRINT</option>
161      <option>Quine</option>
162      <option>Random Brainfuck</option>
163      <option>ReverseFuck</option>
164      <option>Self-modifying Brainfuck</option>
165      <option>Self-modifying Brainfuck&#35;</option>
166      <option>SLet</option>
167      <option>Text</option>
168      <option>Trigbf</option>
169      <option>Trigbf improved</option>
170      <option>Typeid</option>
171      <option>Underload</option>
172      <option>Weeeeeeeeeeeeeeeeeeeeeeeeeeeeee</option>
173      <option>
174        Welcome to Esolang, the esoteric programming languages wiki!
175      </option>
176      <option>Wizzcake</option>
177      <option>Wizzcake+</option>
178    </select>
179    
179<script>
180      if (localStorage.getItem("mode") === null) {
181        localStorage.setItem("mode", "light");
182      }
183      if (localStorage.getItem("mode") === "dark") {
184        document.documentElement.classList.add("dark-mode");
185        document.getElementById("mode").classList.add("fa-moon");
186        document.getElementById("mode").classList.remove("fa-sun");
187      }
188      if(new Date().getMonth()===7&&new Date().getDate()===16){
189        document.getElementById("aug16").style.display="block";
190        document.getElementById("aug16").style.color='red';
191        document.getElementById("aug16").innerText=`Interpret Esolangs Online is ${new Date().getFullYear() - 2023} years old today!`;
192      }
193      document.addEventListener("DOMContentLoaded", function () {
194        window.run = async function () {
195          var funcs = {};
196          var langname = document.getElementById("lang").value;
197          var code = document.getElementById("program").value;
198          var input = document.getElementById("input").value;
199          if (
200            langname === "Brain-Flak (Add 'a' before code to enable ASCII mode)" ||
201            langname === "Immutable Brainfuck"
202          ) {
203            await window.wasmReady;
204          }
205          funcs["\u203a*&\u00ab&^"] = galax;
206          funcs["6"] = six;
207          funcs["ABCDXYZ"] = abcdxyz;
208          funcs["ActionLang"] = actionlang;
209          funcs["Alphuck"] = alphuck;
210          funcs["APLWSI"] = aplwsi;
211          funcs["Arithmetic"] = arithmetic;
212          funcs["B2C"] = b2c;
213          funcs["Befunge-93"] = befunge;
214          funcs["Brainfuck+2"] = bfp2;
215          funcs["Brainalpha"] = brainalpha;
216          funcs["!!brainfeed"] = brainfeed;
217          funcs["Brain-Flak (Add 'a' before code to enable ASCII mode)"] = brainflak;
218          funcs["brainfuck"] = brainfuck;
219          funcs["Brainfuck extended"] = bx;
220          funcs["ccc:cc (Add 'v' before code to enable verbose mode)"] = ccccc;
221          funcs["Chicken"] = chicken;
222          funcs["><x>"] = dead_fish;
223          funcs["Deadfish"] = deadfish;
224          funcs["Deadfish~"] = deadfisht;
225          funcs["Gofe"] = gofe;
226          funcs["Hello"] = hello;
227          funcs["Hello++"] = hellopp;
228          funcs["HQ9+"] = hq9p;
229          funcs["HWorld"] = hworld;
230          funcs["Immutable Brainfuck"] = ibf;
231          funcs["Kipple"] = kipple;
232          funcs["<stack>"] = lstackg;
233          funcs["Methemetics"] = methemetics;
234          funcs["Nil"] = nil;
235          funcs["No."] = no;
236          funcs["Nope."] = nope;
237          funcs["ORK"] = ork;
238          funcs["oOo CODE"] = ooocode;
239          funcs["PlusIntMinus"] = plusintminus;
240          funcs["PlusIntOutput"] = plusintoutput;
241          funcs["PlusOrMinus"] = plusorminus;
242          funcs["PlusOrOutput"] = plusoroutput;
243          funcs["Poetic"] = poetic;
244          funcs["pRINT"] = print;
245          funcs["Quine"] = quine;
246          funcs["Random Brainfuck"] = rbf;
247          funcs["ReverseFuck"] = reversefuck;
248          funcs["Self-modifying Brainfuck"] = smbf;
249          funcs["Self-modifying Brainfuck#"] = smbf_sharp;
250          funcs["SLet"] = slet;
251          funcs["Text"] = text;
252          funcs["Trigbf"] = trigbf;
253          funcs["Trigbf improved"] = trigbf_improved;
254          funcs["Typeid"] = typeid;
255          funcs["Underload"] = underload;
256          funcs["Weeeeeeeeeeeeeeeeeeeeeeeeeeeeee"] = wee;
257          funcs[
258            "Welcome to Esolang, the esoteric programming languages wiki!"
259          ] = wte_teplw;
260          funcs["Wizzcake"] = wizzcake;
261          funcs["Wizzcake+"] = wizzcakep;
262          var func = funcs[langname];
263          document.getElementById("log").value = "";
264          const s = new Date().getTime();
265          var erroc = false,
266            f = false;
267          try {
268            var output = func(code, input);
269            if (output === undefined) f = true;
270          } catch (err) {
271            document.getElementById("log").value = err.message + "\n";
272            erroc = true;
273          }
274          const e = new Date().getTime();
275          if (!f) {
276            if (erroc) {
277              document.getElementById("log").value =
278                document.getElementById("log").value +
279                `Program terminates in ${e - s} ms and raises an error.`;
280              document.getElementById("output").value = '';
281            } else {
282              document.getElementById("log").value =
283                document.getElementById("log").value +
284                `Program terminates in ${e - s} ms successfully.`;
285              document.getElementById("output").value = output;
286            }
287          }
288        };
289        window.upload = function () {
290          var ev = window.event || event;
291          var file = ev.target.files[0];
292          var reader = new FileReader();
293          reader.onload = function () {
294            document.getElementById("program").value = reader.result;
295          };
296          reader.readAsText(file);
297        };
298        window.store = function () {
299          var link = document.createElement("a");
300          link.setAttribute(
301            "href",
302            "data:text/plain;charset=utf-8," +
303              encodeURIComponent(document.getElementById("program").value),
304          );
305          link.setAttribute(
306            "download",
307            "program-" + Math.floor(Math.random() * 1000000000) + ".txt",
308          );
309          link.click();
310        };
311        window.create_link = function () {
312          var prog = encodeURIComponent(
313            document.getElementById("program").value,
314          )
315            .replaceAll("=", "_")
316            .replaceAll("+", "@")
317            .replaceAll("/", "$");
318          var input = encodeURIComponent(document.getElementById("input").value)
319            .replaceAll("=", "_")
320            .replaceAll("+", "@")
321            .replaceAll("/", "$");
322          var lang = encodeURIComponent(document.getElementById("lang").value)
323            .replaceAll("=", "_")
324            .replaceAll("+", "@")
325            .replaceAll("/", "$");
326          var urlname =
327            window.location.href.split("#")[0] +
328            "#" +
329            btoa(lang + "\x00" + prog + "\x00" + input);
330          var encoded = btoa(urlname)
331            .replaceAll("=", "_")
332            .replaceAll("+", "@")
333            .replaceAll("/", "$");
334          var link = document.createElement("a");
335          link.setAttribute("href", "link.html#" + encoded);
336          link.setAttribute("target", "_blank");
337          link.click();
338        };
339        if (!window.location.hash) {
340          // old permalink encoding method
341          var args = new URLSearchParams(window.location.search);
342          var flag = 0;
343          if (args.has("lang")) {
344            document.getElementById("lang").value = atob(
345              args
346                .get("lang")
347                .replaceAll("_", "=")
348                .replaceAll("@", "+")
349                .replaceAll("$", "/"),
350            );
351            flag = 1;
352          }
353          if (args.has("code")) {
354            document.getElementById("program").value = atob(
355              args
356                .get("code")
357                .replaceAll("_", "=")
358                .replaceAll("@", "+")
359                .replaceAll("$", "/"),
360            );
361            flag = 1;
362          }
363          if (args.has("input")) {
364            document.getElementById("input").value = atob(
365              args
366                .get("input")
367                .replaceAll("_", "=")
368                .replaceAll("@", "+")
369                .replaceAll("$", "/"),
370            );
371            flag = 1;
372          }
373          if (flag) {
374            run();
375          }
376        } else {
377          if (window.location.hash.slice(1)) {
378            var debase64 = atob(
379              window.location.hash
380                .slice(1)
381                .replaceAll("_", "/")
382                .replaceAll("-", "+"),
383            ).split("\x00");
384            document.getElementById("lang").value = decodeURIComponent(
385              debase64[0],
386            );
387            document.getElementById("program").value = decodeURIComponent(
388              debase64[1],
389            );
390            document.getElementById("input").value = decodeURIComponent(
391              debase64[2],
392            );
393            run();
394          }
395        }
396      });
397    </script>
397
398    <br />
399    <textarea id="program" cols="80" rows="20" placeholder="code"></textarea>
400    <textarea id="input" cols="80" rows="20" placeholder="input"></textarea>
401    <textarea
402      id="output"
403      cols="80"
404      rows="20"
405      readonly
406      placeholder="output"
407    ></textarea>
408    <textarea
409      id="log"
410      cols="80"
411      rows="20"
412      readonly
413      placeholder="log"
414    ></textarea>
415    <br />
416    <button onclick="run()" title="Executes the program">Run</button>
417    <button
418      onclick="create_link()"
419      title="Creates a permanent link that can later be used to execute the same program"
420    >
421      Create permanent link
422    </button>
423    <button onclick="store()" title="Download the program as a text file">
424      Download code as text file
425    </button>
426    <input
427      type="file"
428      onchange="upload()"
429      title="Upload a local file to the webpage"
430    />
431    <br />
432    <a href="https://github.com/none-None1/Interpret-Esolangs-Online"
433      >The source code</a
434    >
435    of this webpage.
436    <br />
437    <a href="contribute.html">Contribution Guide</a>
438    <hr />
439    <a href="about.html">About</a>
440    <br />
441    <small>The whole project is licensed under <a href="http://creativecommons.org/publicdomain/zero/1.0/">CC0-1.0</a>.</small>
442    <br />
443    <small>Your code is executed locally and is never uploaded anywhere.</small>
444  </body>
445</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.