diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-11-17 10:04:55 -0700 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-11-17 10:04:55 -0700 |
commit | 7d897cb2b5f3292c403700dbac98f79f1052422b (patch) | |
tree | 97bd7f9949e0c5730bb821d7569c08b2c36ccdc7 /godel/index.html | |
parent | 56bf4878236f5464ba19d27b4342fa2a3a99eac6 (diff) | |
download | simponic.xyz-7d897cb2b5f3292c403700dbac98f79f1052422b.tar.gz simponic.xyz-7d897cb2b5f3292c403700dbac98f79f1052422b.zip |
add addition l-program
Diffstat (limited to 'godel/index.html')
-rw-r--r-- | godel/index.html | 116 |
1 files changed, 76 insertions, 40 deletions
diff --git a/godel/index.html b/godel/index.html index 055f13d..1769959 100644 --- a/godel/index.html +++ b/godel/index.html @@ -1,46 +1,82 @@ -<!doctype html> +<!DOCTYPE html> <html> - <head> - <title>Liz's L-Program Compiler</title> - <link rel="stylesheet" type="text/css" href="codemirror/codemirror.css" /> - <link rel="stylesheet" type="text/css" href="css/styles.css" /> - </head> - <body> - <div class="container"> - <h1>Liz's L-Program Compiler</h1> - <p><i>Developed for Kulyukin's CS5000</i></p> - <hr /> - <div class="source-container"> - <div class="textarea-container"> - <h3>L Source</h3> - <textarea id="instructions"> -// asdf -[ B1 ] X1 <- X1 + 1 - IF X1 != 0 GOTO B1 - X1 <- X1 -</textarea - > - <div> - <button id="compile">Compile</button - ><span style="margin-left: 0.5rem" id="compile_status"></span> - </div> +<head> + <title>Liz's L-Program Compiler</title> + <link rel="stylesheet" type="text/css" href= + "codemirror/codemirror.css"> + <link rel="stylesheet" type="text/css" href="css/styles.css"> +</head> +<body> + <div class="container"> + <h1>Liz's L-Program Compiler</h1> + <p><i>Developed for Kulyukin's CS5000</i></p> + <hr> + <div class="source-container"> + <div class="textarea-container"> + <h3>L Source</h3> + <textarea id= + "instructions">// 0. primitive instructions only +// 1. labels match the regex [A-E](:digit:)+. +// 2. variables are initialized to zero +// and match (Y | (X|Z)(:digit:)+). +// 3. instructions must be delimited by a newline. +// 4. anything following the comment token "//" up to a +// newline are ignored. +// 5. by default, a computation that takes more than 500_000 +// "procedures", it will be halted. +// 6. the implicit exit label "E" exists; thus to exit +// prematurely, "GOTO E". +// 7. input your initial snapshot in the "variables" map +// on the Program in the compiled JS output +// 8. for a more detailed view on the grammar, it's at +// /godel/grammar.peg + +// Y <- X1 +[ A1 ] IF X1 != 0 GOTO A2 + GOTO B1 +[ A2 ] X1 <- X1 - 1 + Y <- Y + 1 + GOTO A1 + +// Z1 <- X2 +[ B1 ] IF X2 != 0 GOTO B2 + GOTO C1 +[ B2 ] X2 <- X2 - 1 + Z1 <- Z1 + 1 + GOTO B1 + +// Y <- Y + Z1 +[ C1 ] IF Z1 != 0 GOTO C2 + GOTO E +[ C2 ] Z1 <- Z1 - 1 + Y <- Y + 1 + GOTO C1</textarea> + <div> + <button id="compile">Compile</button> </div> - <div class="textarea-container"> - <h3>Compiled JS</h3> - <textarea id="compiled"></textarea> - <div> - <button id="eval">Eval</button - ><span style="margin-left: 0.5rem" id="eval_status"></span> - </div> + <div> + <span style="margin-left: 0.5rem" id= + "compile_status"></span> + </div> + </div> + <div class="textarea-container"> + <h3>Compiled JS</h3> + <textarea id="compiled"></textarea> + <div> + <button id="eval">Eval</button> + </div> + <div> + <span style="margin-left: 0.5rem" id= + "eval_status"></span> </div> </div> </div> - <script src="codemirror/codemirror.js"></script> - <script src="js-beautify/js-beautify.js"></script> - - <script src="js/observable.js"></script> - <script src="js/parser.js"></script> - <script src="js/compiler.js"></script> - <script src="js/main.js"></script> - </body> + </div> + <script src="codemirror/codemirror.js"></script> + <script src="js-beautify/js-beautify.js"></script> + <script src="js/observable.js"></script> + <script src="js/parser.js"></script> + <script src="js/compiler.js"></script> + <script src="js/main.js"></script> +</body> </html> |