Skip to content

Instantly share code, notes, and snippets.

@nasser
Created October 20, 2014 19:15
Show Gist options
  • Save nasser/8e959377672c5c344fef to your computer and use it in GitHub Desktop.
Save nasser/8e959377672c5c344fef to your computer and use it in GitHub Desktop.
<meta charset="utf-8">
<script src="js/jquery.js"></script>
<script src="js/jqconsole.js"></script>
<script src="js/sugar.js"></script>
<script src="js/peg.js"></script>
<script src="js/plt.js"></script>
<script type="text/javascript">
// uncomment next line to enable refresh
// PLT.refresh = true
// write helper functions and semantics here
</script>
<title>Language</title>
<grammar>
start = action
action = n:token space a:token* space t:token?
{ return { name:n.token, attributes:a, target:t.token } }
token = t:[^ ]+ { return { token: t.join("") } }
SPACE = ' '+
space = ' '*
</grammar>
<h3>Colors</h3>
<code>red</code>
<code>blue</code>
<h3>Operators</h3>
<!-- infix -->
<code>red = blue</code>
<code>red + blue</code>
<code>red * blue</code>
<h3>Actions</h3>
<!-- prefix -->
<code>paint red foo</code>
<code>paint foo red</code>
<code>reverse foo</code>
<!-- arity -->
<code>size foo</code>
<code>size large foo</code>
<code>size x-large foo</code>
<code>size bigger foo</code>
<code>size bigger foo</code>
<code>size smaller foo</code>
<span style="font-size:x-large">Foo</span>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment