Multiple implementations (JS, Wasm, C) of a Lisp.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.3 KiB

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Pariatech's Lisp</title>
<style>
body {
background-color: rgb(0, 0, 0);
color: rgb(0, 255, 0);
font: 1em monospace;
}
a {
color: rgb(0, 255, 0);
text-decoration: none;
}
a:hover {
color: rgba(0, 255, 0, 0.5);
}
.hidden,
#hidden-input {
/* position: absolute; */
/* top: -1px; */
/* left: -1px; */
width: 0px;
height: 0px;
border: 0;
padding: 0;
white-space: nowrap;
}
.cursor {
background: rgb(255, 0, 0);
color: rgb(0, 0, 0);
}
.second-cursor {
background: rgb(0, 255, 0);
color: rgb(0, 0, 0);
}
.cursor.end-of-line::before {
content: " ";
}
canvas {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: black;
}
#canvas-switch {
position: fixed;
top: 0;
right: 0;
background: rgb(0, 255, 0);
color: rgb(0, 0, 0);
border-radius: 0;
border: none;
cursor: pointer;
padding: 0.5em;
width: 8em;
}
#canvas-switch:hover {
background: black;
border: 1px rgb(0, 255, 0) solid;
color: rgb(0, 255, 0);
}
</style>
</head>
<body>
<a href="https://www.pariatech.com"><pre>
____ __ __
/\ _`\ __ /\ \__ /\ \
\ \ \L\ \ __ _ __ /\_\ __ \ \ ,_\ __ ___\ \ \___
\ \ ,__/'__`\ /\`'__\/\ \ /'__`\ \ \ \/ /'__`\ /'___\ \ _ `\
\ \ \/\ \L\.\_\ \ \/ \ \ \/\ \L\.\_\ \ \_/\ __//\ \__/\ \ \ \ \
\ \_\ \__/.\_\\ \_\ \ \_\ \__/.\_\\ \__\ \____\ \____\\ \_\ \_\
\/_/\/__/\/_/ \/_/ \/_/\/__/\/_/ \/__/\/____/\/____/ \/_/\/_/
</pre></a>
<p>Operations: + - * / def let fn set = not if and or < <= > >= print princ eval cons list car cdr
eval quote ' quasiquote ` unquote , unquote-splicing ,@ expand macro defmacro defn read save load load-from-file</p>
<p id="input-line"><span id="history"></span>
<span id="prefix">USER > </span><span id="text"><span class="cursor">&nbsp;</span><span class="second-cursor"></span></span></p>
<textarea id="hidden-input"></textarea>
<canvas id="canvas" width="350" height="350" style="display: none;"></canvas>
<button id="canvas-switch">CANVAS</div>
<script type="module" src="./main.js"></script>
</body>
</html>