I've been playing with an exciting feature of HTML5 that I hadn't heard of: the contentEditable attribute. It's magical! It just makes anything suddenly be editable in-browser! It also finally provides me with the thing I've been wanting ever since growing dissatisfied with text editors: A way to build a new text editor, without having to actually code up the guts of text movement, manipulation, and entry. Oh, happy day!

More on this as the situation progresses.

/* * This is my parser. * It's not much, but it's mine. */ blocks = code:(if_block / lines)* { return code; } if_block = "if" ws "(" cond:string ")" ws "{" result:lines "}" { return {type: "if", condition: cond, body: result }; } /* while_block = "while" ws "(" cond:string ")" ws "{" result:lines "}" { return {type: "while", condition: cond, body: result }; } */ lines = lines:line+ ws? { return lines; } line = ws? contents:string ";" { return contents; } ws = (" " / "\n")+ { return ""; } string = characters:([A-Za-z]+ [A-Za-z ]*) { return characters.join(""); }