A full browser-based IDE for AP Computer Science Principles (APCSP) College Board pseudocode. No install, no build step — just open index.html.
- Syntax highlighting — keywords, builtins, strings, numbers, comments, procedure names all colored distinctly
- Line numbers — gutter that tracks cursor position
- Multi-file tabs — open several files at once, switch between them
- File explorer sidebar with open/close/new file
- Find in file —
Ctrl+F, navigate with ↑↓, match counter - Toggle line comments —
Ctrl+/ - Resizable panels — drag the sidebar or console divider
- Save to disk —
Ctrl+Sdownloads the file - Open from disk —
Ctrl+Oor File → Open - Zoom —
Ctrl++/Ctrl+-adjusts font size - Menu bar — File, Edit, View, Run, Help with keyboard shortcuts
- Status bar — cursor position, language, file encoding
- Pseudocode Reference modal — Help → Pseudocode Reference
| Feature | Syntax |
|---|---|
| Assignment | x ← value or x <- value |
| Display | DISPLAY(x) |
| Input | x ← INPUT() |
| If | IF (cond) { } |
| If / Else | IF (cond) { } ELSE { } |
| Repeat N times | REPEAT n TIMES { } |
| Repeat until | REPEAT UNTIL (cond) { } |
| For each | FOR EACH item IN list { } |
| Procedures | PROCEDURE name(params) { } |
| Return | RETURN(value) |
| Lists | x ← [1, 2, 3] |
| List index (1-based) | x[1] |
| Append | APPEND(list, val) |
| Remove | REMOVE(list, i) |
| Insert | INSERT(list, i, val) |
| Length | LENGTH(list) |
| Modulo | x MOD y |
| Logic | NOT AND OR |
| Comparison | = != < > <= >= |
| Comments | // comment |
- Clone or download this repo
- Open
index.htmlin any modern browser - Write pseudocode in the editor
- Press ▶ Run or
Ctrl+Enter
| Shortcut | Action |
|---|---|
Ctrl+Enter |
Run |
Ctrl+S |
Save file |
Ctrl+N |
New file |
Ctrl+O |
Open file |
Ctrl+F |
Find in file |
Ctrl+/ |
Toggle comment |
Ctrl+B |
Toggle sidebar |
| `Ctrl+`` | Toggle console |
Ctrl++ / Ctrl+- |
Zoom in / out |
Tab |
Insert 3 spaces |
index.html — page structure, menus, panels, modal
style.css — VS Code–inspired dark theme (JetBrains Mono)
interpreter.js — Lexer → Parser (AST) → Interpreter (pure JS, no deps)
app.js — UI: tabs, highlight, gutter, find, resize, I/O
The interpreter uses standard compiler stages:
- Lexer — tokenises source into a flat token stream
- Parser — recursive-descent parser builds an AST
- Interpreter — async tree-walk evaluator with lexical scoping
MIT