state.value
; 7 | }; 8 | -------------------------------------------------------------------------------- /languages/shakespeare/index.ts: -------------------------------------------------------------------------------- 1 | import { Renderer } from "./renderer"; 2 | import { LanguageProvider } from "../types"; 3 | import { RS, sampleProgram, editorTokensProvider } from "./common"; 4 | 5 | const provider: LanguageProvider{value.value}
17 | {value.stack.map((v, i) => (
18 | An unexpected error occurred:
42 |{error.message}
43 | {error.stack}
44 | 45 | Please{" "} 46 | 47 | create an issue on GitHub 48 | {" "} 49 | with: 50 |
51 |57 | Once done, refresh the page to reload the IDE. If needed,{" "} 58 | copy your code before refreshing the page. 59 |
60 |
75 | {value}
76 |
77 | {value && }
78 | {error != null && (
79 | {error.header}
81 |{error.message}
82 |An online visual debugger for esoteric languages
91 |107 | Need support for your favorite esolang? Submit an{" "} 108 | issue on GitHub (or{" "} 109 | implement it yourself!) 110 |
111 |47 | Esolang Park checks the syntax of your source code{" "} 48 | while you're typing. Any errors in the syntax of your program are 49 | marked in the editor with a (mostly) useful error message, without 50 | needing to run the program. 51 |
52 | 53 | ); 54 | }; 55 | 56 | const BreakpointsSection = () => { 57 | return ( 58 |63 | Esolang Park allows you to set debugging breakpoints in your code 64 | . When you run your program and execution reaches a line with 65 | breakpoint, the program will pause and you can inspect the state of the 66 | program. 67 |
68 |69 | Click on the left of any line number to set a breakpoint on that line. 70 | Click on the red circle to remove the breakpoint. 71 |
72 | 73 | ); 74 | }; 75 | 76 | const ExecControlsSection = () => { 77 | return ( 78 |97 | When your run a program, the "Run code" button changes to the 98 | execution controls. Pause execution to{" "} 99 | 100 | inspect the runtime state, start stepping through execution, change 101 | the execution interval or stop execution entirely 102 | 103 | . 104 |
105 |106 | The execution interval dictates how fast your program should be run by 107 | Esolang Park. The smallest execution interval currently supported is 108 | 5ms. 109 |
110 |122 | Click the document button to read a short introduction and view 123 | reference links for the esolang. This also contains{" "} 124 | notes about the implementation of this esolang, including any 125 | incompatibilities and quirks you should take care of while debugging 126 | your code. 127 |
128 |129 | Click the question mark button to view this guide at any point. 130 |
131 | 132 | ); 133 | }; 134 | 135 | type Props = { 136 | isOpen: boolean; 137 | onClose: () => void; 138 | }; 139 | 140 | export const FeaturesGuide = (props: Props) => { 141 | return ( 142 |151 | Esolang Park is an online interpreter and debugger interface{" "} 152 | for esoteric programming languages. Think Repl.it, but a simpler 153 | version for esoteric languages, with a visual debugger catered to 154 | each language, that runs in your browser. 155 |
156 |157 | The goal of Esolang Park is to be a platform for esolang enthusiasts 158 | to test and debug their code more easily, as well as for other 159 | people to discover and play around with esoteric languages without 160 | leaving the browser. 161 |
162 |163 | Esolang Park is very early in development, things are by no 164 | means optimal, and there are most certainly bugs hanging around in 165 | the source code. If you catch one, please create an issue on GitHub! 166 |
167 |