parent
2462baebaf
commit
b28faf3ea5
@ -1,4 +1,30 @@ |
||||
<article> |
||||
<p>I've been playing with an exciting feature of HTML5 that I hadn't heard of: the <code class="language-html">contentEditable</code> 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 <em>new</em> text editor, <em>without</em> having to actually code up the guts of text movement, manipulation, and entry. Oh, happy day!</p> |
||||
<p>More on this as the situation progresses.</p> |
||||
</article> |
||||
/* |
||||
* 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(""); } |
||||
|
||||
</article> |
||||
|
Loading…
Reference in new issue